From 31ce3a51c49686267ae5ce4d4fdb7bdb5b7451af Mon Sep 17 00:00:00 2001 From: dingo Date: Mon, 10 Aug 2026 17:31:00 +0700 Subject: [PATCH] Build and install cosmic-conf and the shared assets from the top-level justfile `just build` built 26 upstream components and our two forks. `just install` installed the same set. Neither touched cosmic-conf or anything under config/, which meant the recipe that is supposed to produce a desktop produced one with no config compiler, no bar layout, no rofi theme and no power menu -- a HyprCosmic session that comes up to a blank screen and cannot be logged out of. So three lines, in the places the existing recipes already establish: build cargo build --release --manifest-path cosmic-conf/Cargo.toml install the binary to $prefix/bin, then tools/install-assets.sh clean cosmic-conf/target cargo directly rather than `just cosmic-conf/build-release`, because cosmic-conf is a crate in this repository rather than a submodule and has no Justfile of its own to delegate to. install-assets.sh runs last and with --no-session. Last because it is the only step whose output is worth reading: several of the files it places name /usr/share/hyprcosmic as a literal -- a .rasi has no variables and the autostart file is deliberately not a shell -- so a prefix other than /usr installs them where nothing will look, and the script says which ones. --no-session because cosmic-session/install has already placed start-hyprcosmic and hyprcosmic.desktop by then, and installing them twice would leave it unclear which recipe owns them. Verified by running the two new install lines verbatim into a staging root: eight files, the cosmic-conf binary and the seven shared assets, and no session entry point among them. --- justfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/justfile b/justfile index 0f7c518..dd1c177 100644 --- a/justfile +++ b/justfile @@ -8,6 +8,10 @@ build: {{ just }} cosmic-applibrary/build-release {{ just }} cosmic-bg/build-release {{ make }} -C cosmic-comp all + # cargo directly, not `just cosmic-conf/build-release`: cosmic-conf is not a + # submodule, it is a crate in this repository, and it has no Justfile of its + # own to delegate to. + cargo build --release --manifest-path cosmic-conf/Cargo.toml {{ just }} cosmic-edit/build-release {{ just }} cosmic-files/build-release {{ just }} cosmic-greeter/build-release @@ -36,6 +40,7 @@ install rootdir="" prefix="/usr/local": build {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-applibrary/install {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-bg/install {{ make }} -C cosmic-comp install DESTDIR={{rootdir}} prefix={{prefix}} + install -Dm0755 cosmic-conf/target/release/cosmic-conf {{rootdir}}{{prefix}}/bin/cosmic-conf {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-edit/install {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-files/install {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-greeter/install @@ -59,6 +64,16 @@ install rootdir="" prefix="/usr/local": build {{ make }} -C cosmic-workspaces-epoch install DESTDIR={{rootdir}} prefix={{prefix}} {{ just }} rootdir={{rootdir}} pop-launcher/install {{ make }} -C xdg-desktop-portal-cosmic install DESTDIR={{rootdir}} prefix={{prefix}} + # The waybar and rofi assets, and the power menu. Last, because it is the + # only step that prints a warning worth reading: several of these files name + # /usr/share/hyprcosmic as a literal -- a .rasi has no variables and the + # autostart file is not a shell -- so a prefix other than /usr installs them + # somewhere they will not be looked for. The script says which files. + # + # --no-session because cosmic-session/install above already placed + # start-hyprcosmic and hyprcosmic.desktop, and installing them twice would + # only make it unclear which recipe owns them. + PREFIX={{prefix}} DESTDIR={{rootdir}} ./tools/install-assets.sh --no-session _mkdir dir: mkdir -p dir @@ -80,6 +95,7 @@ clean: rm -rf cosmic-applibrary/target rm -rf cosmic-bg/target rm -rf cosmic-comp/target + rm -rf cosmic-conf/target rm -rf cosmic-edit/target {{ just }} cosmic-files/clean rm -rf cosmic-greeter/target