mirror of
https://github.com/outbackdingo/hyprcosmic-comp.git
synced 2026-08-25 14:53:22 +00:00
Install as the compositor, at upstream's paths
HyprCosmic is a fork of COSMIC, not an add-on to it, so cosmic-comp goes where a cosmic-comp goes: $(bindir)/cosmic-comp. This reverses the private $(libexecdir)/hyprcosmic layout. That bought a fallback -- both compositors on disk, both sessions bootable -- and cost coherence: a session that had to name absolute paths to find its own binary, and no answer to "which cosmic-comp is running". The fallback survives in a better form, because cosmic-session installs cosmic.desktop as well as hyprcosmic.desktop and both are now served by this binary. The consequence is stated rather than hidden: a package built from this conflicts with the distribution's cosmic-comp over /usr/bin/cosmic-comp. That is the honest relationship between two builds of the same program. libexecdir is dropped from the Makefile, having been added by this fork and used by nothing else. CI asserts the binary and both .ron defaults land at upstream's paths, and that nothing returns to the libexec directory -- a stray copy there is a second compositor that nothing runs and no uninstall removes.
This commit is contained in:
@@ -132,17 +132,24 @@ jobs:
|
||||
- name: Install into a staging root
|
||||
run: make install DESTDIR="$PWD/stage" prefix=/usr
|
||||
|
||||
# These two assertions are Patch D as an executable statement. HyprCosmic
|
||||
# installs beside COSMIC rather than over it, which is what keeps the stock
|
||||
# session available to log into when this compositor will not start. If a
|
||||
# future edit sends the binary back to $(bindir)/cosmic-comp, that stops
|
||||
# being true silently -- unless something fails here.
|
||||
- name: Assert it installs beside COSMIC, not over it
|
||||
# HyprCosmic replaces COSMIC rather than sitting beside it, so this build
|
||||
# is *the* cosmic-comp on a machine that installs it and has to place
|
||||
# everything upstream's does. The compositor starts without the two .ron
|
||||
# defaults and then has no shortcuts and no tiling exceptions, which is a
|
||||
# failure that looks like "the keyboard does nothing" rather than like a
|
||||
# missing file -- worth an assertion rather than a bug report.
|
||||
#
|
||||
# The negative assertion is the one that would rot quietly: nothing may go
|
||||
# back to the private libexec directory this fork used to install into,
|
||||
# because a stray copy there is a second compositor that nothing runs and
|
||||
# that no `uninstall` removes.
|
||||
- name: Assert it installs as the compositor, at upstream's paths
|
||||
run: |
|
||||
set -eux
|
||||
test -x stage/usr/libexec/hyprcosmic/cosmic-comp
|
||||
test ! -e stage/usr/bin/cosmic-comp
|
||||
test ! -e stage/usr/share/cosmic/com.system76.CosmicSettings.Shortcuts/v1/defaults
|
||||
test -x stage/usr/bin/cosmic-comp
|
||||
test -f stage/usr/share/cosmic/com.system76.CosmicSettings.Shortcuts/v1/defaults
|
||||
test -f stage/usr/share/cosmic/com.system76.CosmicSettings.WindowRules/v1/tiling_exception_defaults
|
||||
test ! -e stage/usr/libexec/hyprcosmic/cosmic-comp
|
||||
find stage -type f -printf '%M %10s %P\n'
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
|
||||
Reference in New Issue
Block a user