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/

Reply via email to