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.
This commit is contained in:
2026-08-10 20:47:57 +07:00
parent a397334242
commit 7df465ef26
+15 -2
View File
@@ -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