Package: sonic-pi-server
Version: 4.6.0~repack3-2
Severity: grave
Tags: patch
Justification: renders package unusable

Dear Maintainer,

Since sonic-pi-server makes symbolic links to some subdirectories in
/usr/lib/erlang/lib directory for its Tau server, it is bound to break
on every upstream release of Erlang.

Currently, it is broken in unstable, and only autopkgtests prevent Erlang
29.0.3 to migrate to testing, which would cause breackage there.

I suggest to make the dependencies of sonic-pi-server on erlang-base
more strict, and add an upper limit of the required version (it looks
like erlang-base (<< 1:29.0.3+dfsg+) with added "+" at the end, see the
attached patch for the detail). And since erlang-depends does not
provide such a limit automatically (it seems to be a fairly unusual
requirement, all the other packages happily work with the newer
Erlang versions), I've constructed it in debian/rules using grep-status
from the dctrl-tools package) in the patch.

After that, sonic-pi will still require binary-only NMU to adapt to
the new Erlang version, but at least it will not break any existing
installation in unstable (Erlang packages will refuse to be upgraded
for those with sonic-pi-server installed).

If it is okay to you and you approve the patch, I can do NMU to
incorporate it.

-- System Information:
Debian Release: 13.6
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'stable-debug'), (500, 
'proposed-updates'), (500, 'oldstable-security'), (500, 'stable'), (500, 
'oldstable'), (1, 'experimental'), (1, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64

Kernel: Linux 6.12.95+deb13-amd64 (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages sonic-pi-server depends on:
ii  erlang-asn1           1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-base           1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-crypto         1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-inets          1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-public-key     1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-runtime-tools  1:27.3.4.1+dfsg-1+deb13u2
ii  erlang-ssl            1:27.3.4.1+dfsg-1+deb13u2
pn  jack-example-tools    <none>
pn  jackd                 <none>
ii  libc6                 2.41-12+deb13u4
ii  libfmt10              10.1.1+ds1-4
ii  libgcc-s1             14.2.0-19
pn  librtmidi7            <none>
ii  libstdc++6            14.2.0-19
pn  osmid                 <none>
ii  pipewire-bin          1.4.2-1
ii  pipewire-jack         1.4.2-1
ii  ruby                  1:3.3+b1
pn  ruby-activesupport    <none>
pn  ruby-aubio            <none>
pn  ruby-hamster          <none>
ii  ruby-kramdown         2.5.1-1
pn  ruby-memoist          <none>
pn  ruby-multi-json       <none>
pn  ruby-rubame           <none>
pn  ruby-rugged           <none>
pn  ruby-sys-proctable    <none>
pn  ruby-tomlrb           <none>
pn  ruby-treetop          <none>
pn  ruby-wavefile         <none>
pn  sc3-plugins-server    <none>
pn  sonic-pi-samples      <none>
ii  sox                   14.4.2+git20190427-5+b3
pn  supercollider-server  <none>

Versions of packages sonic-pi-server recommends:
ii  pipewire-jack  1.4.2-1

Versions of packages sonic-pi-server suggests:
pn  sonic-pi-server-doc  <none>
diff -Nru sonic-pi-4.6.0~repack3/debian/changelog 
sonic-pi-4.6.0~repack3/debian/changelog
--- sonic-pi-4.6.0~repack3/debian/changelog     2026-06-18 00:27:23.000000000 
+0300
+++ sonic-pi-4.6.0~repack3/debian/changelog     2026-07-15 16:42:20.000000000 
+0300
@@ -1,3 +1,9 @@
+sonic-pi (4.6.0~repack3-3) unstable; urgency=medium
+
+  * Actually depend on specific erlang version
+
+ -- Sergei Golovan <[email protected]>  Wed, 15 Jul 2026 16:42:20 +0300
+
 sonic-pi (4.6.0~repack3-2) unstable; urgency=medium
 
   * Depend on specific erlang version
diff -Nru sonic-pi-4.6.0~repack3/debian/control 
sonic-pi-4.6.0~repack3/debian/control
--- sonic-pi-4.6.0~repack3/debian/control       2026-06-17 23:58:15.000000000 
+0300
+++ sonic-pi-4.6.0~repack3/debian/control       2026-07-15 16:42:20.000000000 
+0300
@@ -49,6 +49,7 @@
  ruby-rugged,
  ruby-wavefile (>= 0.6.0-2),
  sc3-plugins-server,
+ dctrl-tools,
 Standards-Version: 4.7.4
 Homepage: https://sonic-pi.net/
 Vcs-Browser: https://salsa.debian.org/multimedia-team/sonic-pi
@@ -74,6 +75,7 @@
  ${misc:Depends},
  ${erlang-asn1:Depends},
  ${erlang-base:Depends},
+ ${erlang-base:UpperBound},
  ${erlang-crypto:Depends},
  ${erlang-inets:Depends},
  ${erlang-public-key:Depends},
diff -Nru sonic-pi-4.6.0~repack3/debian/rules 
sonic-pi-4.6.0~repack3/debian/rules
--- sonic-pi-4.6.0~repack3/debian/rules 2026-06-17 23:58:15.000000000 +0300
+++ sonic-pi-4.6.0~repack3/debian/rules 2026-07-15 16:42:20.000000000 +0300
@@ -7,6 +7,8 @@
 # Erlang gregorian seconds = Unix seconds + seconds from year 0 to 1970
 ERLANG_EPOCH := $(shell expr $(SOURCE_DATE_EPOCH) + 62167219200)
 
+ERLANG_UPPER_BOUND := $(shell grep-status -s Version -PX erlang-base |sed -e 
's/Version:\s\+\(.*\)-.*/\1+/')
+
 %:
        dh $@ --buildsystem=cmake --sourcedirectory=app --builddirectory=app
 
@@ -65,6 +67,9 @@
        dh_shlibdeps
        erlang-depends
 
+override_dh_gencontrol:
+       dh_gencontrol -- -Verlang-base:UpperBound='erlang-base (<< 
$(ERLANG_UPPER_BOUND))'
+
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
        cd app/server/ruby/test && \

Reply via email to