From 7df465ef26fc9b14dc21d5e72b05c89e3132822d Mon Sep 17 00:00:00 2001 From: dingo Date: Mon, 10 Aug 2026 20:47:57 +0700 Subject: [PATCH] justfile: build the portal with just, because it has no Makefile Run 31383454158, arch job. It compiled all 26 other components over two hours and eighteen minutes and then failed on the last line of `build`: /usr/sbin/make -C xdg-desktop-portal-cosmic all make: *** No rule to make target 'all'. Stop. xdg-desktop-portal-cosmic has no Makefile. It has a justfile, with `build` and `install` recipes, and the submodule is clean at the commit this fork pins. This is upstream's, not something introduced here. The line dates from 2022 (f4fb6a86), pop-os/cosmic-epoch master still carries it verbatim, and upstream pins the same portal commit this fork does -- f211aa37, epoch-1.5.0 -- so `just build` on upstream cosmic-epoch fails in exactly the same place. The portal moved from a Makefile to a justfile and the meta-repository's recipe was never updated. It goes unnoticed because distributions build COSMIC one component at a time and never take this path; it takes a full meta-build to reach the failure, and the failure is on the very last line. `build` rather than `build-release`: the portal has no build-release recipe, and its `build` defaults to debug='0', which selects --release. `install` takes rootdir/prefix rather than DESTDIR/prefix, being a justfile. Every other delegation in this justfile was checked the same way -- each `make -C dir target` against that directory's Makefile targets, each `just dir/recipe` against that directory's recipes, following justfile imports -- and the portal was the only one that did not resolve. --- justfile | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/justfile b/justfile index dd1c177..3998ed1 100644 --- a/justfile +++ b/justfile @@ -33,7 +33,18 @@ build: {{ make }} -C cosmic-wallpapers all {{ make }} -C cosmic-workspaces-epoch all {{ just }} pop-launcher/build-release - {{ make }} -C xdg-desktop-portal-cosmic all + # `just`, not `make`. Upstream cosmic-epoch still says + # `{{ make }} -C xdg-desktop-portal-cosmic all` here, and at the submodule + # commit both it and this fork pin (f211aa37, epoch-1.5.0) the portal has no + # Makefile at all -- it moved to a justfile and the meta-repository's recipe + # was never updated. `just build` upstream therefore fails on this line + # after compiling all 26 other components, which is presumably why it went + # unnoticed: distributions build COSMIC one component at a time and never + # take this path. + # + # `build` rather than `build-release`: the portal has no build-release + # recipe. Its `build` defaults to debug='0', which selects --release. + {{ just }} xdg-desktop-portal-cosmic/build install rootdir="" prefix="/usr/local": build {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-applets/install @@ -63,7 +74,9 @@ install rootdir="" prefix="/usr/local": build {{ make }} -C cosmic-wallpapers install DESTDIR={{rootdir}} prefix={{prefix}} {{ 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}} + # See the note in `build`: this is a justfile, not a Makefile, so the + # arguments are rootdir/prefix rather than DESTDIR/prefix. + {{ just }} rootdir={{rootdir}} prefix={{prefix}} xdg-desktop-portal-cosmic/install # 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