Skip to content

New package: cosmic-1.6.0 - #61599

Closed
benjcal wants to merge 31 commits into
void-linux:masterfrom
benjcal:cosmic-desktop
Closed

benjcal wants to merge 31 commits into
void-linux:masterfrom
benjcal:cosmic-desktop

Conversation

@benjcal

@benjcal benjcal commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR: YES

New package

Local build testing

  • I built this PR locally for my native architecture, (x86_64)

@benjcal benjcal changed the title New package: cosmic-1.4.0 [WIP] New package: cosmic-1.4.0 Jul 23, 2026
@classabbyamp classabbyamp added the new-package This PR adds a new package label Jul 23, 2026
@benjcal
benjcal force-pushed the cosmic-desktop branch 3 times, most recently from 1286e7c to f549d37 Compare July 24, 2026 21:06
@IzumiSenaSora

IzumiSenaSora commented Jul 26, 2026 •

Copy link
Copy Markdown

Man i just wanted to check if cosmic is available in void linux!
Even though it's not available but this pull request!
It seems cosmic can run without systemd!
Unlike gnome 49+

@benjcal

benjcal commented Jul 26, 2026 •

Copy link
Copy Markdown
Contributor Author

Man i just wanted to check if cosmic is available in void linux! Even though it's not available but this pull request! It seems cosmic can run without systemd! Unlike gnome 49+

Have you played with void-packages? You can pull this PR and build it and start playing with it! I'm running it with no systemd and it seems ok... There seems to be something with the sound but idk if that just my system. So testers are welcome!

@benjcal benjcal changed the title [WIP] New package: cosmic-1.4.0 New package: cosmic-1.4.0 Jul 26, 2026
@vodkanull

Copy link
Copy Markdown
Contributor

Thanks for working on this!
I just wanted to show some support. A few days ago I asked in r/voidlinux why COSMIC wasn't in the official repositories yet (I really like it and have been using MtFBella109 repo). Seeing an actual PR appear so soon after that discussion is great.
I’m going to try building and testing this PR on my system. If I find any issues I’ll report them here.
Thanks again for taking the time to package it.

@EllisK-L

Copy link
Copy Markdown
Contributor

Thanks for getting this PR up! I've been looking forward to it. I built and tested the full cosmic desktop. The issues I've encountered so far are being unable to launch cosmic-launcher, and my mouse doesn't update when hovering over links/buttons/window edges. It just stays as the default arrow.

Anyone able to replicate those issues, or is it just my system?

@benjcal

benjcal commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

@EllisK-L what kind of issue are you seeing with cosmic-launcher? I'm not super familiar with cosmic but I think that is the launcher on the screenshot, right? when I look at ps aux | grep cosmic-launcher I see it running in the background too...

A bit of context about my setup, I'm using sddm to start the cosmic session and I have dbus enabled.

An issue I saw was that my sound was not recognized, but running pipewire on a terminal got it working, so it seems to be related in how I have pipewire configured to autostart and not related to cosmic...

Screenshot_2026-07-28_12-41-51

I'm looking forward to hear more opinions and see how the thing is working in other people's machines... I'm still daily-driving plasma out of habit but I think I'm gonna throw some more hours at cosmic to see how stable it feels and what other sharp edges might be found.

@EllisK-L

Copy link
Copy Markdown
Contributor

I also launched cosmic with sddm, I don't think I tested audio, I can when I'm back at that system.

Here's an example of cosmic-launcher the default shortcut is the super key, but can also open it by just running it as a command. Here's an example on my PopOS 24 system:

Screenshot_2026-07-28_14-43-54

@benjcal

benjcal commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@EllisK-L you are right! Just fixed it, the issue was that cosmic-launcher required the package pop-launcher, so I just added that and now it is working fine!

@benjcal

benjcal commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor Author

Alright, just pushed a few more changes, mostly dealing with adapting COSMIC to Void Linux!

  • The big thing: I added elogind as a dependency to cosmic-session, along with the --features autostart configure arg, so it now autostarts things on session start! The audio issues I had are gone since this cleanly autostarts pipewire now.
  • Added a no-systemd.patch to cosmic-session to replace systemctl calls with loginctl equivalents (took it from Artix's patch).
  • Added a new package, blocaled from linux from scratch book, which cosmic-initial-setup requires to display languages correctly. From the readme: Blocaled provides a stand-alone implementation of the localed D-Bus service.
  • Added cosmic-session and greetd as runtime dependencies to cosmic-greeter. (Haven't tested cosmic-session with it yet... I've been using sddm to start the cosmic session.)

Now looking into why the CI is failing blocaled :-)

@benjcal
benjcal force-pushed the cosmic-desktop branch 4 times, most recently from 5fc3d09 to 5808787 Compare July 29, 2026 13:55
@benjcal benjcal changed the title New package: cosmic-1.4.0 [WIP] New package: cosmic-1.4.0 Jul 29, 2026
@benjcal benjcal changed the title [WIP] New package: cosmic-1.4.0 New package: cosmic-1.4.0 Jul 29, 2026
@IzumiSenaSora

Copy link
Copy Markdown

Update it to COSMIC 1.5.0?

@benjcal

benjcal commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor Author

Update it to COSMIC 1.5.0?

bro... 😄
Screenshot 2026-07-29 at 1 40 11 PM

@glauconeto

Copy link
Copy Markdown

Thank you for making this branch available, I will plan myself to test it in VM and on my test hardware machine.

@benjcal

benjcal commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

To the people here... COSMIC 1.5.0 just dropped... do we polish this version (1.4.0) and get it into void or do we jump straight to 1.5.0?

@EllisK-L

Copy link
Copy Markdown
Contributor

hmmm, Cosmic gets updates about every week, it's very possible this PR will take another week+ before it's merged. Since we're still pretty early in the testing phase of this PR updating to 1.5 probably wont hurt. But making sure it's polished in Void should be the focus. Up to you though as the PR authour :)

@benjcal benjcal changed the title New package: cosmic-1.4.0 New package: cosmic-1.5.0 Jul 29, 2026
@benjcal

benjcal commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

LLM didn't generate these. I started from this abandoned PR, updated versions, build, deleted unneeded patches, added missing (or renamed) packages, tested, debugged, etc.

There was not "make COSMIC packages for void Linux" prompt. I indeed used tons of AI for debugging and doing high level comparisons between how Arch and Artix Linux (Arch without systemd) packaged cosmic for their distro.

I typed stuff in the templates, other times the agent typed stuff in the templates. It is very much a hybrid.

By vibecoding I interpret not that an AI agent was used, but instead low effort "here's a few hundred lines of code that compile, maintainers... can you please merge?" The evidence of the effort and work is in the, now 52 messages in the PR since June.

If this is considered vibecodded Idk what to tell you 🤷‍♂️

@ii8

ii8 commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

CONTRIBUTING.md never uses the term "vibecoding", it says all content in contributions must originate from ... the contributor.

@dogknowsnx

dogknowsnx commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

help me understand what I need to do

"Just" chiming in - it's not only about what you need to do, but this set of packages needs to be reviewed and approved by at least one void member, and whenever LLMs have been utilized in order to create package templates, it will always be the "elephant in the room" - also when it comes to future maintainability (and there's always the chance that packages will become orphaned at some point).

Anyway, after skimming the templates, could you explain the need for certain dependencies (e.g. blocaled, or libqalculate for pop-launcher), and how do you "justify" the (excessive) usage of just?

Personally I'm not interested in using the cosmic desktop - just curious, since merging this set of interdependencies might potentially stall future updates, e.g. when there's the need for rebuilding against shared libraries.

EDIT: There's no need to quote me entirely and inflate this thread - I've stated my personal concerns, but you will have to wait for a member to chime in.

Also, @benjcal has not mentioned @Calandracas606 (nor any agent, for that matter) as co-authors in any commit message yet, as per CONTRIBUTING.md

@mendescotta Why do you refer to archlinux.org?

@mendescotta

mendescotta commented Sep 8, 2026 •

Copy link
Copy Markdown

help me understand what I need to do

"Just" chiming in - it's not only about what you need to do, but this set of packages needs to be reviewed and approved by at least one void member, and whenever LLMs have been utilized in order to create package templates, it will always be the "elephant in the room" - also when it comes to future maintainability (and there's always the chance that packages will become orphaned at some point).

Anyway, after skimming the templates, could you explain the need for certain dependencies (e.g. blocaled, or libqalculate for pop-launcher), and how do you "justify" the (excessive) usage of just?

Personally I'm not interested in using the cosmic desktop - just curious, since merging this set of interdependencies might potentially stall future updates, e.g. when there's the need for rebuilding against shared libraries.

https://archlinux.org/packages/extra/x86_64/pop-launcher/
These are the package dependencies....
Regarding AI, I can't see how it's a problem here since plenty of humans have reviewed and tested these templates and manually fixed them.... using an agent to bump a build number across 30 templates seems very reasonable and not vibecoding...
Benjcal also disclosed and explained his process which he could have omitted and everyone would be none the wiser since there's no ai slop in the code.
Adding a brand new Desktop environment is a big deal and alao exciting but not knowing why and how to have it approved is rather frustrating.
If the code turns out to be considered AI assisted in a way that disqualify it for merge, what's the solution? Rewrite the exact same things entirely by hand and resubmit?

@benjcal

benjcal commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Ok so... what I'm seeking for is guidance, not to start a conflict on the already hot topic of AI... we all have opinions and I just want to understand what are the rules for contributing here.

Since AI conversations seem to have a lot to do with intention and hair splitting (did you pressed the keys to type the characters in the code or did an AI agent typed those characters...) I'm not trying to contribute here to get internet points, a merge here (which I already have a few) doesn't make me more employable or whatever, also this is volunteer work and if we are not able to keep it interesting and engaging we risk losing the community that makes open source software possible.

@dogknowsnx About the co-author, thank you for the guidance, I'll fix that oversight. About the use of just that comes from "porting" these templates from PKGBUILDs for Arch Linux as I've mentioned before (see here as an example).

There are some packages that build fine with the cargo build that xbps-src has and TBH I haven't spent the time going one by one testing if I could get rid of the custom build/install commands that use just and instead use cargo on the template.

As @mendescotta mentioned, those other packages are requirements for cosmic. The two places I've referenced the most of these templates are https://archlinux.org/groups/x86_64/cosmic/ and https://github.com/pop-os/cosmic-epoch

I think what felt rather unfortunate was in a PR with like 50 messages, about a dozen people testing this, multiple iterations and back and forth testing and updates over the last three months, the blocker is "did you physically typed the characters in the text files"? I completely understand the issue, I don't want to review AI code either, but dang dude, not a single glance at anything else in the PR? in the message history? come on

@nazaradeh

Copy link
Copy Markdown
Contributor

As much as I like to avoid vibecoding, I think if it was just used as an aid here and every line is understood and and reviewed by the author (which it sounds like it is), we can move on from that conversation. Unless a core maintainer says otherwise, I'd just focus on wrapping up the other points of conversation. The only such topic seems to be the "settings for the top/bottom panel and the dock" missing. That topic didn't sound like it reached a conclusion.

It'd be good to hear from a core maintainer if they have any thoughts. I'd like to see this go in, too.

@dogknowsnx

dogknowsnx commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

About the use of just that comes from "porting" these templates from PKGBUILDs for Arch Linux

Again, I'm not a member, but that's not what I would expect from a quality PR

TBH I haven't spent the time going one by one testing if I could get rid of the custom build/install commands that use just and instead use cargo on the template.

This, on the other hand, I would expect from a quality PR, since defining do_install() will have preference over what's defined in the build_style

EDIT: Fwiw, I randomly picked cosmic-applibrary and it builds and installs fine w/o just - The custom do_install() is indeed justified here.

EDIT2: Another observation is that despite defining _tag=epoch-${version} in the case of e.g. cosmic-bg an older version is being built.

@benjcal

benjcal commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

At this point I'm more than happy to pass the torch. For my COSMIC needs I'm fine running this with my own build, but I at the moment no longer have the time to keep working on this.

@mendescotta

Copy link
Copy Markdown

@dogknowsnx what is the problem with using Just? That's what upstream uses.
I shared arch because it had a clean view of that package dependencies...

@dogknowsnx

dogknowsnx commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

1) It's not so much about which install method is being used, as it is about (unnecessarily) redefining do_install() while applying a specific build_style and thus defeating its purpose - that's simply bad practice (imho), since we're 2) not talking PKGBUILDs here..

I keep repeating myself while playing devil's advocate, but what you really want is the opinion and ultimately the interest in this project from a void member..

@Duncaen

Duncaen commented Sep 11, 2026

Copy link
Copy Markdown
Member

The custom do_install's make sense since the cargo build style will install only built binaries, while most of the packages include a bunch of other assets that also need to be installed.

For me the biggest issue is that the architecture is limited to x86_64*, I generally don't like merging things with restrictions like that, because I can't see a reason why this should only work for x86_64.

do_build() {
cargo build --release --locked --target ${RUST_TARGET}
cargo build --release --locked --target ${RUST_TARGET} --package cosmic-files-applet
}

@Duncaen Duncaen Sep 11, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't exactly look like it needs to be overwritten, doesn't it build the same cosmic-files-applet twice?

Otherwise there are arguments like configure_args="--workspace" you can set if it doesn't build everything.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please no vendored configuration files.

archs="x86_64*"
_tag=epoch-${version}
build_style=cargo
configure_args="--all"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
configure_args="--all"
configure_args="--workspace"

@benjcal

benjcal commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

@Duncaen the reason for the restriction to x86_64* is because (and I tested this) quite a few cargo dependencies depended on i64 numbers, so far as i686 is concerned. As for arm, same 32 bit limitation and for aarch64 I wasn't able to get a build. There was an issue with a cargo dependency that didn't build on aarch64 and I wasn't able to get it building

@nazaradeh

Copy link
Copy Markdown
Contributor

For me the biggest issue is that the architecture is limited to x86_64*, I generally don't like merging things with restrictions like that, because I can't see a reason why this should only work for x86_64.

I know the DE in general works on arm, since my friend built it from source to run on his macbook with void linux.

@Duncaen

Duncaen commented Sep 11, 2026

Copy link
Copy Markdown
Member

Also is there a reason this uses llvm18, while llvm23 is current?

@Duncaen

Duncaen commented Sep 11, 2026

Copy link
Copy Markdown
Member

The licensing is inconsistent, for some template its set as GPL-3.0-or-later while debian/copyright is just GPL-3.0, but then also cosmic-osd has debian/copyright is just GPL-3.0 and SPDX-License-Identifier: GPL-3.0-only in code files, but license = "GPL-3.0-or-later" in Cargo.toml https://github.com/search?q=repo%3Apop-os%2Fcosmic-osd+gpl&type=code

Each one should be reviewed and I guess upstream should clarify the license in case of cosmic-osd.

makedepends="libxkbcommon-devel glib-devel gstreamer1-devel gst-plugins-base1-devel"
short_desc="Media player for the COSMIC desktop"
maintainer="Benjamin Calderon <benj.calderon@gmail.com>"
license="GPL-3.0-or-later"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
license="GPL-3.0-or-later"
license="GPL-3.0-only"

https://github.com/search?q=repo%3Apop-os%2Fcosmic-player+gpl&type=code

depends="geoclue2 acpid alsa-utils playerctl wireplumber xdg-utils"
short_desc="Settings daemon for the COSMIC desktop environment"
maintainer="Benjamin Calderon <benj.calderon@gmail.com>"
license="GPL-3.0-or-later"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

https://github.com/search?q=repo%3Apop-os%2Fcosmic-settings-daemon+gpl&type=code

inconsistent, -or-later in Cargo.toml, but -only in SPDX identifiers and debian/contorl.

makedepends="libxkbcommon-devel pulseaudio-devel eudev-libudev-devel libinput-devel"
short_desc="On-Screen Display daemon for the COSMIC desktop"
maintainer="Benjamin Calderon <benj.calderon@gmail.com>"
license="GPL-3.0-or-later"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As mentioned in another comment, inconsistent, but more likely -only.

https://github.com/search?q=repo%3Apop-os%2Fcosmic-osd+gpl&type=code

depends="xdg-desktop-portal"
short_desc="Backend implementation for xdg-desktop-portal for COSMIC"
maintainer="Benjamin Calderon <benj.calderon@gmail.com>"
license="GPL-3.0-or-later"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

build_style=cargo
hostmakedepends="pkg-config just clang lld"
makedepends="libxkbcommon-devel libqalculate-devel"
depends="fd bash xdg-utils"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Don't see where this needs "bash" specifically.

depends="fd bash xdg-utils"
short_desc="Modular IPC-based desktop launcher service"
maintainer="Benjamin Calderon <benj.calderon@gmail.com>"
license="MPL-2.0, GPL-3.0-only"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
license="MPL-2.0, GPL-3.0-only"
license="MPL-2.0 AND GPL-3.0-only"

Comment on lines +20 to +23
do_build() {
export RUSTFLAGS="${RUSTFLAGS} -C link-arg=-fuse-ld=lld"
CC=clang just build-release --locked
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This do_build seems unnecessary, looking at the justfile.

# Compile with debug profile
build-debug *args:
    cargo build -p pop-launcher-bin {{args}}

# Compile with release profile
build-release *args: (build-debug '--release' args)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not sure about the clang/lld choice here, just for that single template, seems random.

@benjcal

benjcal commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor Author

Thanks a ton @Duncaen for the review and direction! I'll look into all of this and report back soon.

@benjcal benjcal closed this Oct 26, 2026
@edenian-prince

Copy link
Copy Markdown

@benjcal why is this closed now? do you need someone to take over?

@benjcal

benjcal commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

@edenian-prince yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-package This PR adds a new package

Projects

None yet

Development

Successfully merging this pull request may close these issues.