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