Bug#1067447: jackd2: patch to fix ftbfs on m68k; jack{1,2}: unneeded libffado-dev B-D on some arches

Thorsten Glaser <[email protected]>
Newsgroups gmane.linux.debian.ports.68k
Message-ID <Pine.BSM.4.64L.2403211655400.19384__16419.1712321312$1711042277$gmane$org@herc.mirbsd.org>
Source: jackd2
Version: 1.9.21~dfsg-3
Severity: important
Tags: patch
X-Debbugs-Cc: [email protected], [email protected]
Control: affects -1 src:jack-audio-connection-kit

Hi,

please apply the attached patch for jackd2 and forward it upstream
that makes the implicit alignment assumptions (not supported by the
C and C++ standards) explicit, which allows building on m68k. The
diff won’t change a bit for other architectures.

Please also apply the patches for jackd2 and jack-audio-connection-kit
both to restrict B-D on libffado-dev to these architectures where the
firewire binary package is actually built. The reverse B-D chain of
ffado is… pure hell, and even more cyclic without this.

Thanks!
jack-audio-connection-kit_0.126.0-2+m68k.debdiff (text/plain, 1.1 KB)
diff -Nru jack-audio-connection-kit-0.126.0/debian/changelog jack-audio-connection-kit-0.126.0/debian/changelog
--- jack-audio-connection-kit-0.126.0/debian/changelog	2023-01-06 23:02:48.000000000 +0100
+++ jack-audio-connection-kit-0.126.0/debian/changelog	2024-03-21 02:03:21.000000000 +0100
@@ -1,3 +1,9 @@
+jack-audio-connection-kit (1:0.126.0-2+m68k) unreleased; urgency=medium
+
+  * Only B-D: libffado-dev if jackd1-firewire is built
+
+ -- Thorsten Glaser <[email protected]>  Thu, 21 Mar 2024 02:03:21 +0100
+
 jack-audio-connection-kit (1:0.126.0-2) unstable; urgency=medium
 
   * Team upload
diff -Nru jack-audio-connection-kit-0.126.0/debian/control jack-audio-connection-kit-0.126.0/debian/control
--- jack-audio-connection-kit-0.126.0/debian/control	2023-01-06 23:02:48.000000000 +0100
+++ jack-audio-connection-kit-0.126.0/debian/control	2024-03-21 01:50:44.000000000 +0100
@@ -15,7 +15,7 @@
  doxygen,
  libasound2-dev [linux-any],
  libdb-dev,
- libffado-dev [linux-any],
+ libffado-dev [amd64 i386 powerpc],
  libraw1394-dev [linux-any],
  libreadline-dev,
  libsamplerate-dev,
jackd2_1.9.21~dfsg-3+m68k.debdiff (text/plain, 6.2 KB)
diff -Nru jackd2-1.9.21~dfsg/debian/changelog jackd2-1.9.21~dfsg/debian/changelog
--- jackd2-1.9.21~dfsg/debian/changelog	2023-05-04 21:29:39.000000000 +0200
+++ jackd2-1.9.21~dfsg/debian/changelog	2024-03-21 02:20:11.000000000 +0100
@@ -1,3 +1,10 @@
+jackd2 (1.9.21~dfsg-3+m68k) unreleased; urgency=medium
+
+  * Only B-D: libffado-dev if jackd2-firewire is built
+  * debian/patches/fix-implicit-alignment-assumptions.diff: add
+
+ -- Thorsten Glaser <[email protected]>  Thu, 21 Mar 2024 02:20:11 +0100
+
 jackd2 (1.9.21~dfsg-3) unstable; urgency=medium
 
   * Team upload.
diff -Nru jackd2-1.9.21~dfsg/debian/control jackd2-1.9.21~dfsg/debian/control
--- jackd2-1.9.21~dfsg/debian/control	2023-05-04 21:29:39.000000000 +0200
+++ jackd2-1.9.21~dfsg/debian/control	2024-03-21 01:54:43.000000000 +0100
@@ -11,7 +11,7 @@
                libdb-dev,
                libdbus-1-dev,
                libexpat1-dev,
-               libffado-dev [linux-any],
+               libffado-dev [amd64 i386 powerpc],
                libncurses-dev,
                libopus-dev,
                libraw1394-dev [linux-any],
diff -Nru jackd2-1.9.21~dfsg/debian/patches/fix-implicit-alignment-assumptions.diff jackd2-1.9.21~dfsg/debian/patches/fix-implicit-alignment-assumptions.diff
--- jackd2-1.9.21~dfsg/debian/patches/fix-implicit-alignment-assumptions.diff	1970-01-01 01:00:00.000000000 +0100
+++ jackd2-1.9.21~dfsg/debian/patches/fix-implicit-alignment-assumptions.diff	2024-03-21 02:20:03.000000000 +0100
@@ -0,0 +1,93 @@
+Description: fix implicit alignment assumptions
+ The language standard does not guarantee “natural” alignment
+ (i.e. alignment to (at least) the size of the integer type),
+ and on some architectures, int normally is only 16-bit-aligned.
+ Make the assumption explicit to allow compilation on these.
+Author: Thorsten Glaser <[email protected]>
+
+--- a/common/JackActivationCount.h
++++ b/common/JackActivationCount.h
+@@ -39,7 +39,7 @@ class JackActivationCount
+ 
+     private:
+ 
+-        alignas(SInt32) SInt32 fValue;
++        alignas(SInt32) alignas(sizeof(SInt32)) SInt32 fValue;
+         SInt32 fCount;
+ 
+     public:
+--- a/common/JackAtomicArrayState.h
++++ b/common/JackAtomicArrayState.h
+@@ -122,7 +122,7 @@ class JackAtomicArrayState
+         // fState[2] ==> request
+ 
+         T fState[3];
+-        alignas(UInt32) alignas(AtomicArrayCounter) volatile AtomicArrayCounter fCounter;
++        alignas(UInt32) alignas(sizeof(UInt32)) alignas(AtomicArrayCounter) volatile AtomicArrayCounter fCounter;
+ 
+         UInt32 WriteNextStateStartAux(int state, bool* result)
+         {
+--- a/common/JackAtomicState.h
++++ b/common/JackAtomicState.h
+@@ -94,7 +94,7 @@ class JackAtomicState
+     protected:
+ 
+         T fState[2];
+-        alignas(UInt32) alignas(AtomicCounter) volatile AtomicCounter fCounter;
++        alignas(UInt32) alignas(sizeof(UInt32)) alignas(AtomicCounter) volatile AtomicCounter fCounter;
+         SInt32 fCallWriteCounter;
+ 
+         UInt32 WriteNextStateStartAux()
+--- a/common/JackConnectionManager.h
++++ b/common/JackConnectionManager.h
+@@ -417,7 +417,7 @@ class SERVER_EXPORT JackConnectionManage
+         JackFixedArray1<PORT_NUM_FOR_CLIENT> fInputPort[CLIENT_NUM];	/*! Table of input port per refnum : to find a refnum for a given port */
+         JackFixedArray<PORT_NUM_FOR_CLIENT> fOutputPort[CLIENT_NUM];	/*! Table of output port per refnum : to find a refnum for a given port */
+         JackFixedMatrix<CLIENT_NUM> fConnectionRef;						/*! Table of port connections by (refnum , refnum) */
+-        alignas(UInt32) alignas(JackActivationCount) JackActivationCount fInputCounter[CLIENT_NUM];	/*! Activation counter per refnum */
++        alignas(UInt32) alignas(sizeof(UInt32)) alignas(JackActivationCount) JackActivationCount fInputCounter[CLIENT_NUM];	/*! Activation counter per refnum */
+         JackLoopFeedback<CONNECTION_NUM_FOR_PORT> fLoopFeedback;		/*! Loop feedback connections */
+ 
+         bool IsLoopPathAux(int ref1, int ref2) const;
+--- a/common/JackEngineControl.h
++++ b/common/JackEngineControl.h
+@@ -64,7 +64,7 @@ struct SERVER_EXPORT JackEngineControl :
+     int fClientPriority;
+     int fMaxClientPriority;
+     char fServerName[JACK_SERVER_NAME_SIZE+1];
+-    alignas(UInt32) alignas(JackTransportEngine) JackTransportEngine fTransport;
++    alignas(UInt32) alignas(sizeof(UInt32)) alignas(JackTransportEngine) JackTransportEngine fTransport;
+     jack_timer_type_t fClockSource;
+     int fDriverNum;
+     bool fVerbose;
+@@ -86,7 +86,7 @@ struct SERVER_EXPORT JackEngineControl :
+     UInt64 fConstraint;
+ 
+     // Timer
+-    alignas(UInt32) alignas(JackFrameTimer) JackFrameTimer fFrameTimer;
++    alignas(UInt32) alignas(sizeof(UInt32)) alignas(JackFrameTimer) JackFrameTimer fFrameTimer;
+ 
+ #ifdef JACK_MONITOR
+     JackEngineProfiling fProfiler;
+--- a/common/JackMessageBuffer.h
++++ b/common/JackMessageBuffer.h
+@@ -64,7 +64,7 @@ class JackMessageBuffer : public JackRun
+         JackProcessSync fGuard;
+         volatile unsigned int fInBuffer;
+         volatile unsigned int fOutBuffer;
+-        alignas(SInt32) SInt32 fOverruns;
++        alignas(SInt32) alignas(sizeof(SInt32)) SInt32 fOverruns;
+         bool fRunning;
+ 
+         void Flush();
+--- a/common/JackTransportEngine.h
++++ b/common/JackTransportEngine.h
+@@ -104,7 +104,7 @@ class SERVER_EXPORT JackTransportEngine
+         bool fPendingPos;
+         bool fNetworkSync;
+         bool fConditionnal;
+-        alignas(SInt32) SInt32 fWriteCounter;
++        alignas(SInt32) alignas(sizeof(SInt32)) SInt32 fWriteCounter;
+ 
+         bool CheckAllRolling(JackClientInterface** table);
+         void MakeAllStartingLocating(JackClientInterface** table);
diff -Nru jackd2-1.9.21~dfsg/debian/patches/series jackd2-1.9.21~dfsg/debian/patches/series
--- jackd2-1.9.21~dfsg/debian/patches/series	2023-05-04 21:29:39.000000000 +0200
+++ jackd2-1.9.21~dfsg/debian/patches/series	2024-03-21 02:06:03.000000000 +0100
@@ -2,3 +2,4 @@
 0001-man-fill_template-Use-numeric-year-month-date-for-ma.patch
 0002-man-fill_template-Use-UTC-date-to-avoid-differences-.patch
 0003-man-fill_template-Use-POSIX-compatible-comparison.patch
+fix-implicit-alignment-assumptions.diff
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.