Package: src:raysession
Version: 0.17.4-1
Severity: serious
Tags: ftbfs forky sid patch
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Below you will find the last part of the build log, which in this case
is also the most relevant part. If required, the full build log
is available here:
https://people.debian.org/~sanvila/build-logs/202603/
Note: This happens because the Makefile installs themes in this location:
/usr/share/raysession/HoustonPatchbay/themes/*
but then debian/rules tries to "mv" the themes, acting as if they were
installed here instead:
/usr/share/raysession/HoustonPatchbay/*
which may or may not be the case depending on luck.
In this build log:
https://buildd.debian.org/status/fetch.php?pkg=raysession&arch=all&ver=0.17.4-1&stamp=1773956261&raw=0
you will see this:
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray-daemon
install -d /build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray-proxy
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/applications/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray-jack_checker_daemon
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/icons/hicolor/scalable/apps/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray-jack_config_script
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray-pulse2jack
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/raysession/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray_control
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/raysession/locale/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/bin/ray_git
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/applications/raysession.desktop
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/raysession//
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/icons/hicolor/*/apps/raysession.png
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/raysession/HoustonPatchbay/locale/
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/icons/hicolor/scalable/apps/raysession.svg
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/etc/xdg/raysession/client_templates/
rm -rf
/build/reproducible-path/raysession-0.17.4/debian/raysession/etc/xdg/raysession/client_templates/40_ray_nsm
install -d
/build/reproducible-path/raysession-0.17.4/debian/raysession/usr/share/bash-completion/completions/
rm -rf
/build/reproducible-path/raysession-0.17.4/debian/raysession/etc/xdg/raysession/client_templates/60_ray_lash
rm -f
/build/reproducible-path/raysession-0.17.4/debian/raysession/etc/bash_completion.d/ray_completion.sh
Those are targets "uninstall" and "pure_install" running at the same time
because
the Makefile has a built-in race condition here:
install: uninstall pure_install
When building the package in parallel, the behavior of that is undefined.
In the buildds, the themes ended up being at
/usr/share/raysession/HoustonPatchbay/*
by pure chance, and debian/rules is currently relying on such undefined
behaviour
to work.
Upstream has just accepted a Pull Request I sent to fix the race condition,
and the attached patch should fix the problem for everybody (after the race
condition is fixed, debian/rules does not need to "mv" anything).
(Please replace XXXXXX in Bug-Debian field by the actual bug number, which
is unknown as I write this).
Thanks.
--------------------------------------------------------------------------------
[...]
# Install Translations
mkdir -p /<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/locale/
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/locale
install -m 644 locale/*.ts
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/locale/
install -m 644 HoustonPatchbay/locale/*.ts
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/locale
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
rm -fr
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/themes/'Yellow
Boards'
mv
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Black
Gold'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Dark
Boards'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Dark
Purples'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Gray
Sand'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Light
Blue Rose'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Modern
Dark'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Portholes
Dark'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Silver
Gold'/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/War/ \
/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/'Yellow
Boards'/ /<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/themes/
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Black
Gold/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Dark
Boards/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Dark
Purples/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Gray
Sand/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Light
Blue Rose/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Modern
Dark/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Portholes
Dark/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Silver
Gold/': No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/War/':
No such file or directory
mv: cannot stat
'/<<PKGBUILDDIR>>/debian/raysession/usr/share/raysession/HoustonPatchbay/Yellow
Boards/': No such file or directory
make[1]: *** [debian/rules:21: override_dh_auto_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:4: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit
status 2
--------------------------------------------------------------------------------diff --git a/debian/patches/fix-race-condition.patch
b/debian/patches/fix-race-condition.patch
new file mode 100644
index 0000000..1e21d42
--- /dev/null
+++ b/debian/patches/fix-race-condition.patch
@@ -0,0 +1,31 @@
+From: Santiago Vila <[email protected]>
+Subject: Fix race condition in Makefile
+Bug-Debian: https://bugs.debian.org/XXXXXXX
+Origin:
https://github.com/Houston4444/RaySession/commit/8478c6143d1880c40d7d27a9cc4be99d2948b8e0
+
+Drop "install" target and rename "pure_install" to just "install".
+
+The "install" target should not depend on both "uninstall" and
+"pure_install" targets, because they could be executed at the same
+time when parallel make is enabled, with undefined behavior.
+
+--- a/Makefile
++++ b/Makefile
+@@ -121,8 +121,6 @@
+
+ # -------------------------
+
+-install: uninstall pure_install
+-
+ uninstall:
+ rm -f $(DESTDIR)$(PREFIX)/bin/raysession
+ rm -f $(DESTDIR)$(PREFIX)/bin/ray-daemon
+@@ -142,7 +140,7 @@
+ rm -f $(DESTDIR)$(PREFIX)/share/bash-completion/completions/ray_control
+ rm -rf $(DEST_RAY)
+
+-pure_install:
++install:
+ # Create directories
+ install -d $(DESTDIR)$(PREFIX)/bin/
+ install -d $(DESTDIR)$(PREFIX)/share/applications/
diff --git a/debian/patches/series b/debian/patches/series
index 529c740..853214e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
0002-do-not-compile.patch
0003-fix-symlinks-and-use-system-fonts.patch
0004-fix-locale-install.patch
+fix-race-condition.patch
diff --git a/debian/rules b/debian/rules
index f420584..a8b11f7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,13 +18,3 @@ execute_before_dh_link:
override_dh_auto_install:
dh_auto_install -- PREFIX=/usr
rm -fr
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/themes/'Yellow
Boards'
- mv
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Black Gold'/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Dark Boards'/
\
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Dark
Purples'/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Gray Sand'/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Light Blue
Rose'/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Modern Dark'/
\
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Portholes
Dark'/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Silver Gold'/
\
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/War/ \
-
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/'Yellow
Boards'/
$(CURDIR)/debian/raysession/usr/share/raysession/HoustonPatchbay/themes/