New package: cosmic-1.5.0 - #61854
Closed
mendescotta wants to merge 102 commits into
Closed
Conversation
elogind ships a D-Bus activation file for org.freedesktop.login1. If
anything requests that name at boot before the supervised elogind has
claimed it, dbus spawns an unsupervised elogind that wins the race and
holds the name forever; the runit elogind service then crash-loops
("elogind is already running as PID x") and the greeter's
'sv check elogind' gate never passes, so greetd never starts. The race
direction is a coin flip on every boot.
Before the elogind check, kill any elogind process whose PID does not
match runit's supervise/pid so the supervised instance can claim the
name on its next restart. No-op on healthy boots; skipped when the
elogind service isn't enabled so a deliberately unsupervised elogind is
never touched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…alls Two bugs left every fresh install without a working _cosmicgreeter account: - _cosmicgreeter_groups used a space separator, but the system-accounts trigger passes it to 'useradd -G', which takes a comma-separated list. 'input' became a stray positional argument and useradd failed with a usage error the trigger discards, so the user was silently never created. Use video,input. - make_dirs had only a path, but the mkdirs trigger expects 'path mode owner group' (also the cause of the 'shift: can't shift that many' warning on removal), so /var/lib/cosmic-greeter was never created. Use 0755 _cosmicgreeter _cosmicgreeter, matching regreet. Existing installs never hit this because their account predated these vars; verified by fresh install from a fully purged system (no user, group, or homedir): both are now created correctly by the triggers. Bump revision to 5 (also covers the previous commit's run script fix). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lformed Dark builder palette)
Two bugs in resources/default_schema shipped to /usr/share/cosmic:
- com.system76.CosmicTheme.{Dark,Light}/v2/ lack the list_button key
that Theme #[version = 2] requires (libcosmic 8cb10bf); cosmic-config
does not fall back to v1, so cosmic-greeter-daemon logged
GetKey("list_button", NotFound) on every boot.
- com.system76.CosmicTheme.Dark.Builder/v2/palette is a bare
CosmicPaletteInner struct, but ThemeBuilder.palette is the externally
tagged CosmicPalette enum, so RON parsing failed with
ExpectedIdentifier at 1:1. Wrap it in Dark(...) to match the already
correct Light builder palette.
Both errors were non-fatal (defaults were substituted) but spammed
tty1 and the daemon log on every boot.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…iles resources/default_schema was missing the defaults key for com.system76.CosmicSettings.Shortcuts and the tiling_exception_defaults key for com.system76.CosmicSettings.WindowRules, causing GetKey(NotFound) / NoConfigDirectory errors on every cosmic-comp startup (non-fatal, falls back to empty defaults, but noisy).
Re-focusing/re-confirming the already-selected username in the login field was falling back to the user's last-used session and clobbering whatever session the user had just picked from the session dropdown. Only reset the session pick when the username actually changes.
tracing-journald is an unconditional dependency (not gated on the "systemd" cargo feature this template already disables), so cosmic-comp always tried to connect to /run/systemd/journal/socket and printed a WARN on every boot when it wasn't there. runit has no journald, so remove the attempt entirely instead of just living with the warning; the stdout/stderr fmt_layer was the only logger that ever worked here.
Bump all 26 templates (24 pop-os components + cosmic-desktop-full/minimal metapackages) to COSMIC Epoch 1.4.0, revisions reset to 1, checksums regenerated against the real epoch-1.4.0 tags. Drop cosmic-comp/patches/fix-logind-feature-imports.patch: upstream PR pop-os/cosmic-comp#2582 merged the identical fix. Add configure_args="--no-default-features" to xdg-desktop-portal-cosmic: 1.4.0 flips its "systemd" cargo feature on by default, pulling in tracing-journald and reproducing the same journald boot-noise class of bug already fixed in cosmic-comp. Building without the default feature avoids it entirely (confirmed tracing-journald is no longer compiled in). All other existing patches (cosmic-comp x3, cosmic-greeter x6, cosmic-settings x2, cosmic-applets x1) verified to still apply cleanly and did apply during a full rebuild of all 26 packages, which succeeded end-to-end and was installed on the host.
Every boot printed "failed to connect to journald" from cosmic-greeter, cosmic-greeter-daemon, and the session locker on this runit system, since there's no journald socket to connect to. The logind feature transitively re-enables the systemd feature (and tracing-journald with it), so disabling --no-default-features alone didn't stop the probe. Patches out the journald layer attempt in all three binaries, always using the working stdout/stderr fmt_layer, matching the same fix already applied to cosmic-comp. Reboot-tested and confirmed the line is gone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… warning
The guard read /var/service/elogind/supervise/pid before confirming via
sv check that runsv had actually written it, so on a fresh boot it could
compare against a stale/zero PID and kill the real, just-started elogind
instead of a stray - breaking pam_elogind's session-release D-Bus
connection ("Failed to release session: Transport endpoint is not
connected"). Move sv check elogind before the read to close the window.
Also split the pgrep pattern into two <=15-char calls so procps stops
warning about pattern length on every cosmic-greeter start.
Upstream repo also renamed cosmic-utils/cosmic-tweaks -> cosmic-utils/tweaks; updated homepage/distfiles URLs to match.
Was pinned to 1.2.7; latest is a tag with no GitHub Release object so it's easy to miss. Builds from source locally instead of relying on the repo.sys109.de binary.
New epoch-1.4.0 COSMIC sound theme, packaging the sound files System76 ships alongside the rest of the desktop.
Power-profile management daemon. Ships a runit service instead of the upstream systemd unit; D-Bus policy/interface/polkit files installed as-is since those are init-system independent.
CFS/process-priority tuning daemon for desktop responsiveness. Ships a runit service instead of the upstream systemd unit. Wires up the optional execsnoop process-monitoring feature against Void's bcc-tools (binary is plain "execsnoop", no -bpfcc suffix). Needed two build workarounds for the pipewire crate's bindgen step: Void's libclang21 only ships versioned sonames (no bare libclang.so), so shim one in locally and point BINDGEN_EXTRA_CLANG_ARGS at the matching clang resource-dir, since loading libclang through the shim symlink breaks its own resource-dir autodetection.
Bumps cosmic-applets, cosmic-applibrary, cosmic-bg, cosmic-comp, cosmic-desktop-full, cosmic-desktop-minimal, cosmic-edit, cosmic-files, cosmic-greeter, cosmic-icons, cosmic-idle, cosmic-launcher, cosmic-monitor, cosmic-notifications, cosmic-osd, cosmic-panel, cosmic-player, cosmic-randr, cosmic-screenshot, cosmic-session, cosmic-settings, cosmic-settings-daemon, cosmic-sound-theme, cosmic-term, cosmic-wallpapers, cosmic-workspaces-epoch, pop-launcher, and xdg-desktop-portal-cosmic to epoch-1.5.0/1.5.0. Fixes the cosmic-idle/cosmic-comp busy-loop-on-DPMS-off bug present in 1.4. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fixes Bella109/void-packages#7: start-cosmic hung silently when launched from a manual TTY -> .zprofile flow, because it assumed a greeter's PAM session had already created /run/user/$UID. Export and create the directory if missing before proceeding. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Only mkdir when the directory is actually missing, instead of unconditionally mkdir -p, so a pre-existing custom XDG_RUNTIME_DIR pointing somewhere unusual is left untouched.
- system76-scheduler: new package should start at revision=1, not 2 - cosmic-greeter: add missing explanatory headers to disable-journald-logging.patch and 03_fix_pam.patch, matching the other patches in the tree - cosmic-desktop-full: pull in cosmic-sound-theme and cosmic-tweaks, both missing from the metapackage's depends despite being packaged
Don't assert elogind specifically as the cause of the missing /run/user/$UID -- the same symptom can happen for any non-PAM-managed launch path, not just an elogind registration race.
epoch-1.5.0 (2026-07-29) is still the newest tagged release across all pop-os/cosmic-* repos, but several component repos have real (non-i18n) fixes on master since the tag was cut. Pin those to the specific commit instead of waiting for the next tag, following the existing _commit=/version=x.y.z.YYYYMMDD convention used elsewhere in the tree: - cosmic-comp: wl-dmabuf v6 support + weblate i18n updates - cosmic-settings: fix search unloading the active page - cosmic-bg: dependency bump + default-config syntax fix - cosmic-term: configurable pane borders + subpixel glyph-rect rounding - cosmic-greeter: detect/enable logind support at runtime - cosmic-launcher: fix flicker/close when Ctrl used as a modifier - cosmic-notifications: delay popup creation until parent size is known All existing patches for these packages were verified to apply cleanly against the new sources (checked via dry-run patch against the fetched tarballs). cosmic-session checked and confirmed already at the tag (0 commits ahead), left unchanged. All other cosmic-*/pop-launcher/ xdg-desktop-portal-cosmic packages checked and confirmed up to date.
download.savannah.nongnu.org is broken/unreliable; switch to the mirror host. Also updates hddtemp's hardcoded URL to match. Based on borisv's fix: https://codeberg.org/borisv/void-packages/commit/48a428e94262d3575edf29ff18b53b9550cfef04
…aders - cosmic-comp: drop no_features.patch (dead code: it patches the Makefile's `all` target's ARGS, but do_install runs `make install`, and the real cargo invocation already passes --no-default-features via configure_args) - cosmic-comp: fix typo in remove-systemd_servies.patch filename - cosmic-greeter/cosmic-desktop-full/cosmic-desktop-minimal: drop skip_extraction=yes — it never matches a real distfile basename, so it silently did nothing; misleading leftover, not an intentional extraction skip - cosmic-desktop-full: bump revision (missed in cbc4b65, which added cosmic-sound-theme/cosmic-tweaks to depends without one) - add missing explanatory headers to the remaining patches that predate the cbc4b65 housekeeping pass (cosmic-greeter x4, cosmic-comp x2, cosmic-applets x1), matching the format already used elsewhere in the tree
…ping-pass content changes Missed alongside the cosmic-desktop-full revision bump in the previous commit -- patch content changed for all three (dropped dead no_features.patch, renamed a typo'd patch filename, added rationale headers to several patches), so xbps-install -u wasn't picking up the rebuilt packages even though local binaries were rebuilt.
libcosmic's vendored iced_winit fork panics instead of exiting cleanly when the compositor tears down the Wayland connection (e.g. on logout): the SCTK event-loop thread re-dispatches forever after a fatal IO error until an unrelated unwrap() further down eventually panics. That dependency is a cargo git dependency pinned in cosmic-panel's own Cargo.lock, not part of this package's source tree, so it can't be fixed with a normal srcpkgs patches/ entry. Fetch it in pre_build and patch the checkout in place before cargo build compiles it.
cosmic-session defaults its tracing filter to INFO, unlike cosmic-greeter's daemon/greeter/locker binaries in this checkout (disable-journald-logging.patch), which already default to WARN. Since there's no journald here (cosmic-session's own disable-journald-logging.patch), every INFO line goes straight to the raw stdout fmt_layer, which lands on tty1 during boot/login before the compositor takes over the display. Bring cosmic-session's default in line with the rest of this checkout's session binaries: WARN by default, still overridable via RUST_LOG.
Folds in packages from benjcal's void-linux#61599 that this branch was missing: blocaled (standalone localed D-Bus service, a dependency of cosmic-initial-setup), cosmic-initial-setup, and cosmic-store, plus the top-level "cosmic" meta-package matching Void's convention for desktop environments (gnome, kde5, xfce4, ...). cosmic's depends list references this branch's existing cosmic-applibrary package rather than adding a duplicate cosmic-app-library -- same upstream project (pop-os/cosmic-applibrary was renamed to cosmic-app-library upstream but the archive checksum is identical), just keeping this branch's existing pkgname since cosmic-desktop-full/-minimal already depend on it.
Member
|
first of all, there's already an open PR for this second of all, this does not comply with our contribution policy |
Author
|
@classabbyamp, sorry newbie mistake 🙇🏽 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the COSMIC desktop environment (v1.5.0) to Void Linux, packaging the full System76/Pop!_OS COSMIC stack (compositor, panel, settings, app launcher, greeter, applets, etc.) plus supporting dependencies.
This builds on and cross-references #61599, which proposed the same desktop earlier. Relative to that PR:
cosmic-comp,cosmic-bg,cosmic-greeter,cosmic-launcher,cosmic-notifications,cosmic-settings,cosmic-term) track newer upstream commits past theepoch-1.5.0tag to pick up fixes landed since the tag.cosmic-panelandcosmic-sessioninclude two additional fixes:cosmic-panel: patches the vendorediced_winitSCTK event loop so it exits cleanly instead of panicking when the compositor tears down the Wayland connection (e.g. on logout).cosmic-session: lowers the default tracing filter from INFO to WARN so session startup doesn't spam raw log lines to tty1 before the compositor takes over the display, consistent with the rest of the session binaries in this set.blocaled,cosmic-initial-setup, andcosmic-store, plus a top-levelcosmicmeta-package matching Void's convention for desktop environments (gnome,kde5,xfce4, ...), folded in from New package: cosmic-1.5.0 #61599 for completeness.Test plan
./xbps-src pkg cosmicbuilds the full dependency chain from a clean masterdirstart-cosmic/ display manager (tested locally with cosmic-greeter)cosmic-storeandcosmic-initial-setuplaunch and function