Skip to content

fix(components): remove mozjs128 and Cinnamon stack; drop imsettings-cinnamon subpackage#17368

Merged
reubeno merged 1 commit into
microsoft:4.0from
PawelWMS:pawelwi/mozjs128-remove
May 21, 2026
Merged

fix(components): remove mozjs128 and Cinnamon stack; drop imsettings-cinnamon subpackage#17368
reubeno merged 1 commit into
microsoft:4.0from
PawelWMS:pawelwi/mozjs128-remove

Conversation

@PawelWMS
Copy link
Copy Markdown
Contributor

@PawelWMS PawelWMS commented May 20, 2026

Koji build for imsettings

Summary

Remove mozjs128 (SpiderMonkey 128 JS engine) and the entire Cinnamon desktop-environment cluster it transitively supports, then drop the now-orphaned imsettings-cinnamon subpackage of the still-built imsettings SRPM. mozjs128 has been broken to build in the AZL4 mock chroot for a while (clang++: 'type_traits' file not found, internal tracking item #20154), and its sole consumer chain in AZL4 is the Cinnamon DE — which is not referenced by any AZL4 image manifest and has no other downstream users.

This removes 12 source components plus all their lock files and rendered spec trees, and adds a dedicated overlay file for imsettings to drop its now-uninstallable Cinnamon subpackage.

Cascading-dependency analysis

Recursive pkgx analyze remove against the azure-linux-4.0 base + SDK repos for both x86_64 and aarch64:

Build-breaking cascade

Component Reason
mozjs128 primary target
cjs BuildRequires: pkgconfig(mozjs-128) >= %{mozjs128_version}
cinnamon BuildRequires: pkgconfig(cjs-1.0) >= %{cjs_version}

Orphaned-after-removal (entire cluster consumed only by cinnamon)

Component Final consumer chain
cinnamon-control-center only consumed by cinnamon (via cinnamon-settings-daemon)
cinnamon-desktop only consumed by cinnamon, cinnamon-screensaver, cinnamon-session, cinnamon-settings-daemon, muffin, nemo — all in this removal set
cinnamon-menus only consumed by cinnamon, cinnamon-control-center
cinnamon-screensaver only consumed by cinnamon
cinnamon-session only consumed by cinnamon (and the imsettings-cinnamon subpackage, which is also dropped here)
cinnamon-settings-daemon only consumed by cinnamon-control-center
cinnamon-translations analyze remove reports 0 affected packages
muffin only consumed by cinnamon; also BuildRequires: pkgconfig(cinnamon-desktop) >= 6.2.0
nemo only consumed by cinnamon; also BuildRequires: pkgconfig(cinnamon-desktop) >= 6.4.0

imsettings-cinnamon subpackage drop

imsettings-cinnamon is a binary subpackage of the imsettings SRPM (the SRPM itself stays — it still produces other DE-specific subpackages: gnome, mate, plasma, xfce, lxde, xim). After the cluster removal, the subpackage's runtime Requires: cinnamon and Requires: cinnamon-session are unsatisfiable, and the subpackage delivers a single library (libimsettings-cinnamon-gsettings.so) that no AZL4 image consumes.

imsettings is moved from the inline components.toml entry into a dedicated base/comps/imsettings/imsettings.comp.toml with overlays that:

  1. drop the subpackage via spec-remove-subpackage;
  2. restore the trailing %endif for the surrounding %if !0%{?rhel} block (consumed by spec-remove-subpackage on both the %description and %files sides, per the qemu.comp.toml pattern);
  3. delete the orphaned libimsettings-cinnamon-gsettings.so from the buildroot in %install so the rest of the build doesn't trip the unpackaged-files check.

The imsettings SRPM continues to build and its non-Cinnamon subpackages are unaffected. The upstream force-enable-for-cinnamon.patch is kept in place — it only affects runtime IM-management behaviour when a Cinnamon session is detected (which cannot happen on AZL4), and removing it would enlarge divergence from Fedora for no benefit.

Files changed

  • base/comps/components.toml — 13 inline [components.<name>] rows removed (12 cluster components, plus imsettings which moves to a dedicated file).
  • base/comps/imsettings/imsettings.comp.toml — new dedicated component file with 4 overlays (1 subpackage removal, 2 %endif restores, 1 install-stage cleanup).
  • locks/{mozjs128,cjs,cinnamon,cinnamon-control-center,cinnamon-desktop,cinnamon-menus,cinnamon-screensaver,cinnamon-session,cinnamon-settings-daemon,cinnamon-translations,muffin,nemo}.lock — 12 lock files deleted.
  • locks/imsettings.lock — fingerprint refreshed.
  • specs/{c,m,n}/<component>/ — 12 rendered spec trees deleted (53 files: specs, patches, sources manifests).
  • specs/i/imsettings/imsettings.spec — re-rendered; no more %package/%description/%files cinnamon; outer %if !0%{?rhel} block remains balanced.

Total: 70 files changed, 29 insertions, 10,643 deletions.

Verification

  • azldev config dump -q -f json — parses (exit 0).
  • azldev comp list -p <each-removed-name> -q -O json — returns component not found for all 12 removed components.
  • azldev comp list -p imsettings -q -O json — returns the new dedicated-file definition.
  • azldev comp render -p imsettings — re-render succeeds; rendered spec contains no cinnamon subpackage references and preserves the surrounding %if !0%{?rhel} block.
  • grep -rE "(mozjs128|cjs|cinnamon|muffin|nemo)" base/images/ — no image manifest references any removed package.
  • grep -rE "(mozjs128|cjs|cinnamon|muffin|nemo)" base/comps/components-publish-channels.toml — no remaining publish-channel entry.
  • Kept specs scanned for BuildRequires:/Requires: referencing any removed package — remaining matches are inside the now-overlaid specs/i/imsettings/imsettings.spec %package cinnamon subpackage block (resolved by the overlay), in unrelated components (cjson, cjs-module-lexer), and a historical %changelog entry in specs/g/gjs/gjs.spec (gjs builds against mozjs140 now).

@reubeno
Copy link
Copy Markdown
Member

reubeno commented May 20, 2026

I'm supportive of the general approach but we can't leave RPMs behind that are uninstallable.

Is there a way to disable building the cinnamon subpackage(s) in question (e.g., of imsettings)?

@PawelWMS
Copy link
Copy Markdown
Contributor Author

PawelWMS commented May 20, 2026

I'm supportive of the general approach but we can't leave RPMs behind that are uninstallable.

Is there a way to disable building the cinnamon subpackage(s) in question (e.g., of imsettings)?

I agree, this is a draft for discussions with with @christopherco. If approved, removing imsettings-cinnamon is on the list.

@PawelWMS PawelWMS force-pushed the pawelwi/mozjs128-remove branch from 9e69b99 to e54f461 Compare May 20, 2026 17:15
@PawelWMS PawelWMS changed the title remove mozjs128 and its cascading dependents (cjs + cinnamon stack) fix(components): remove mozjs128 and cinnamon dep chain May 20, 2026
@PawelWMS PawelWMS force-pushed the pawelwi/mozjs128-remove branch from e54f461 to 65d3827 Compare May 21, 2026 00:25
@PawelWMS PawelWMS changed the title fix(components): remove mozjs128 and cinnamon dep chain fix(components): remove mozjs128 and Cinnamon stack; drop imsettings-cinnamon subpackage May 21, 2026
@PawelWMS PawelWMS marked this pull request as ready for review May 21, 2026 00:26
Copilot AI review requested due to automatic review settings May 21, 2026 00:26
@PawelWMS PawelWMS marked this pull request as draft May 21, 2026 00:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the mozjs128 SpiderMonkey engine and the Cinnamon desktop-environment component stack that depends on it, then updates imsettings to stop producing the now-uninstallable imsettings-cinnamon subpackage.

Changes:

  • Drop 12 Cinnamon/mozjs128-related components (component entries, locks, and rendered spec trees).
  • Introduce a dedicated imsettings component definition with overlays to remove the Cinnamon subpackage and clean up its orphaned installed file.
  • Refresh the imsettings lock and re-render the imsettings spec accordingly.

Reviewed changes

Copilot reviewed 56 out of 70 changed files in this pull request and generated no comments.

Show a summary per file
File Description
base/comps/components.toml Removes inline component entries for Cinnamon stack components and moves imsettings to a dedicated comp file.
base/comps/imsettings/imsettings.comp.toml New component definition adding overlays to remove imsettings-cinnamon, restore consumed conditionals, and delete the orphaned .so during %install.
locks/imsettings.lock Updates input-fingerprint due to the component-definition change.
specs/i/imsettings/imsettings.spec Rendered output reflecting removal of the Cinnamon subpackage, conditional balancing, and %install cleanup.
locks/cinnamon.lock Removed lock file for deleted component.
locks/cinnamon-control-center.lock Removed lock file for deleted component.
locks/cinnamon-desktop.lock Removed lock file for deleted component.
locks/cinnamon-menus.lock Removed lock file for deleted component.
locks/cinnamon-screensaver.lock Removed lock file for deleted component.
locks/cinnamon-session.lock Removed lock file for deleted component.
locks/cinnamon-settings-daemon.lock Removed lock file for deleted component.
locks/cinnamon-translations.lock Removed lock file for deleted component.
locks/cjs.lock Removed lock file for deleted component.
locks/muffin.lock Removed lock file for deleted component.
locks/nemo.lock Removed lock file for deleted component.
locks/mozjs128.lock Removed lock file for deleted component.
specs/c/cinnamon/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon/10_cinnamon-apps.gschema.override.in Removed rendered source file for deleted component.
specs/c/cinnamon/10_cinnamon-common.gschema.override Removed rendered source file for deleted component.
specs/c/cinnamon/22_fedora.styles Removed rendered source file for deleted component.
specs/c/cinnamon/Add_nightlight_applet.patch Removed rendered patch for deleted component.
specs/c/cinnamon/Use_DesktopAppInfo_from_GioUnix.patch Removed rendered patch for deleted component.
specs/c/cinnamon/default_panal_launcher.patch Removed rendered patch for deleted component.
specs/c/cinnamon/fix_mount_applet.patch Removed rendered patch for deleted component.
specs/c/cinnamon/remove_crap_from_menu.patch Removed rendered patch for deleted component.
specs/c/cinnamon/set_wheel.patch Removed rendered patch for deleted component.
specs/c/cinnamon-control-center/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-desktop/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-desktop/cinnamon-desktop.spec Removed rendered spec for deleted component.
specs/c/cinnamon-desktop/set_font_defaults.patch Removed rendered patch for deleted component.
specs/c/cinnamon-desktop/x-cinnamon-mimeapps.list Removed rendered source file for deleted component.
specs/c/cinnamon-menus/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-menus/cinnamon-menus.spec Removed rendered spec for deleted component.
specs/c/cinnamon-screensaver/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-screensaver/cinnamon-screensaver.spec Removed rendered spec for deleted component.
specs/c/cinnamon-session/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-session/cinnamon-session.spec Removed rendered spec for deleted component.
specs/c/cinnamon-session/8042c7f4756773b32e30f902d2cb05c865b9f6d7.patch Removed rendered patch for deleted component.
specs/c/cinnamon-settings-daemon/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-translations/sources Removed rendered sources metadata for deleted component.
specs/c/cinnamon-translations/cinnamon-translations.spec Removed rendered spec for deleted component.
specs/c/cjs/sources Removed rendered sources metadata for deleted component.
specs/c/cjs/cjs.spec Removed rendered spec for deleted component.
specs/m/muffin/sources Removed rendered sources metadata for deleted component.
specs/m/muffin/muffin.spec Removed rendered spec for deleted component.
specs/m/muffin/libinput.patch Removed rendered patch for deleted component.
specs/m/mozjs128/sources Removed rendered sources metadata for deleted component.
specs/m/mozjs128/mozjs128.spec Removed rendered spec for deleted component.
specs/m/mozjs128/known_failures.txt Removed rendered source file for deleted component.
specs/m/mozjs128/copy-headers.patch Removed rendered patch for deleted component.
specs/m/mozjs128/D261512.1755672843.diff Removed rendered patch/diff for deleted component.
specs/m/mozjs128/emitter.patch Removed rendered patch for deleted component.
specs/m/mozjs128/firefox-112.0-commasplit.patch Removed rendered patch for deleted component.
specs/m/mozjs128/fix-soname.patch Removed rendered patch for deleted component.
specs/m/mozjs128/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch Removed rendered patch for deleted component.
specs/m/mozjs128/icu_sources_data-Write-command-output-to-our-stderr.patch Removed rendered patch for deleted component.
specs/m/mozjs128/init_patch.patch Removed rendered patch for deleted component.
specs/m/mozjs128/remove-sloppy-m4-detection-from-bundled-autoconf.patch Removed rendered patch for deleted component.
specs/m/mozjs128/spidermonkey_checks_disable.patch Removed rendered patch for deleted component.
specs/m/mozjs128/tests-increase-timeout.patch Removed rendered patch for deleted component.
specs/m/mozjs128/tests-Use-native-TemporaryDirectory.patch Removed rendered patch for deleted component.
specs/n/nemo/sources Removed rendered sources metadata for deleted component.
specs/n/nemo/Don-t-scale-text-size-when-zooming.patch Removed rendered patch for deleted component.
specs/n/nemo/nemo-fedora.gschema.override Removed rendered override for deleted component.
specs/n/nemo/remove_desktop_search.patch Removed rendered patch for deleted component.

@PawelWMS PawelWMS force-pushed the pawelwi/mozjs128-remove branch from 65d3827 to e019417 Compare May 21, 2026 00:47
@PawelWMS PawelWMS marked this pull request as ready for review May 21, 2026 00:48
Copy link
Copy Markdown
Member

@reubeno reubeno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left one comment. Also, did you mean to submit this from a fork branch?

Comment thread base/comps/imsettings/imsettings.comp.toml Outdated
@PawelWMS
Copy link
Copy Markdown
Contributor Author

Left one comment. Also, did you mean to submit this from a fork branch?

Good catch. I wasn't, need to take a look at the AI instructions.:) Do you want me to re-open from upstream?

Remove `mozjs128` and the full downstream Cinnamon dependency cluster
that becomes unbuildable or orphaned on Azure Linux 4.0.

`mozjs128` is currently failing in AZL4 mock chroots (`clang++:
'type_traits' file not found`, internal tracking item #20154). In this
distro, its only consumer chain is:

- `mozjs128` -> `cjs` -> `cinnamon`

Removing those roots leaves the remaining Cinnamon stack orphaned, so
remove the closed cluster in the same change:

- `cinnamon-control-center`
- `cinnamon-desktop`
- `cinnamon-menus`
- `cinnamon-screensaver`
- `cinnamon-session`
- `cinnamon-settings-daemon`
- `cinnamon-translations`
- `muffin`
- `nemo`

The parent `imsettings` SRPM stays, but its `imsettings-cinnamon`
subpackage delivered `libimsettings-cinnamon-gsettings.so` and pulled
in `cinnamon` / `cinnamon-session` at runtime, so it is dropped here.
`imsettings` is moved from the inline `components.toml` entry into a
dedicated `base/comps/imsettings/imsettings.comp.toml` with overlays
that

  1. drop the cinnamon subpackage via `spec-remove-subpackage`;
  2. restore the trailing `%endif` for the surrounding
     `%if !0%{?rhel}` block (consumed by `spec-remove-subpackage` on
     both the `%description` and `%files` sides, per the
     `qemu.comp.toml` pattern);
  3. delete the orphaned `libimsettings-cinnamon-gsettings.so` from
     the buildroot in `%install` so the rest of the build doesn't
     trip the unpackaged-files check.

Changes in this commit:

- remove 13 component entries from `base/comps/components.toml`
  (12 cluster components + `imsettings`, the latter moved to a
  dedicated file)
- add `base/comps/imsettings/imsettings.comp.toml`
- delete 12 cluster lock files from `locks/`
- update `locks/imsettings.lock` fingerprint
- delete 12 cluster spec trees from `specs/`
- update `specs/i/imsettings/imsettings.spec`

Validation performed:

- `azldev config dump -q -f json` parses
- `azldev comp list -p <removed>` reports "component not found" for all
  cluster components
- no references to removed components in `base/images/` or
  `base/comps/components-publish-channels.toml`

Refs: internal tracking item #20154
Signed-off-by: Pawel Winogrodzki <pawelwi@microsoft.com>
@reubeno reubeno merged commit 2d4b369 into microsoft:4.0 May 21, 2026
10 checks passed
@PawelWMS PawelWMS deleted the pawelwi/mozjs128-remove branch May 21, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants