GNU bug report logs - #43232
jack2 fails to build on aarch64

Previous Next

Package: guix;

Reported by: Vitaliy Shatrov <guix.vits <at> disroot.org>

Date: Sun, 6 Sep 2020 03:54:02 UTC

Severity: normal

Done: Andreas Enge <andreas <at> enge.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 43232 in the body.
You can then email your comments to 43232 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Sun, 06 Sep 2020 03:54:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Vitaliy Shatrov <guix.vits <at> disroot.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 06 Sep 2020 03:54:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vitaliy Shatrov <guix.vits <at> disroot.org>
To: Д-д-добрые Люди <bug-guix <at> gnu.org>
Cc: Mike Rosset <mike.rosset <at> gmail.com>
Subject: jack2 fails to build on aarch64
Date: Sun, 06 Sep 2020 10:53:52 +0700
Hello Guix.

gst-plugins-good needs jack2.  Sites like YouTube need gst-plugins-good.
Some people think they need the video in Web-browsers (lol, mpv rules).

guix 81ea278 is still has no jack2, it's all i know about.

Please fix jack2, someone.
Thankful for Your attention, Vitaliy.




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Sun, 06 Sep 2020 08:59:02 GMT) Full text and rfc822 format available.

Message #8 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Vitaliy Shatrov <guix.vits <at> disroot.org>
Cc: Mike Rosset <mike.rosset <at> gmail.com>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: jack2 fails to build on aarch64
Date: Sun, 6 Sep 2020 10:58:05 +0200
The error message is:
[228/274] Compiling example-clients/simdtests.cpp
...
[243/274] Linking build/example-clients/jack_simdtests
...
ld: example-clients/simdtests.cpp.28.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
ld: /gnu/store/9xmlrmk7vnlzwq5049500r9lrcf6ikqq-gcc-7.5.0-lib/lib/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
...
Waf: Leaving directory `/tmp/guix-build-jack2-1.9.13.drv-0/jack2-1.9.13/build'
Build failed
 -> task in 'jack_simdtests' failed with exit status 1 (run with -v to display more information)
command "python" "waf" "build" failed with status 1

Following the advice and running "python waf build -v", the executed gcc
command is printed:
Build failed
 -> task in 'jack_simdtests' failed with exit status 1: 
	{task 281472893294736: cprogram simdtests.cpp.28.o -> jack_simdtests}
['/gnu/store/ap7hgyv4rjqmhg4a6cb6cypsh3g1f5q4-gcc-7.5.0/bin/gcc', '-Wl,-rpath=/gnu/store/bwmp037cg6gfz31j9q441j800mvk7wva-jack2-1.9.13/lib', 'example-clients/simdtests.cpp.28.o', '-o/tmp/guix-build-jack2-1.9.13.drv-0/jack2-1.9.13/build/example-clients/jack_simdtests', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Lcommon', '-L/gnu/store/zwrg5jwyj1222vyjdpmppijzhz04sqid-opus-1.3.1/lib', '-L/gnu/store/mpm43myhw7difa8p3a9xnag3zb6pnn4b-dbus-1.12.16/lib', '-ljack', '-lpthread', '-lopus', '-ldb', '-lrt', '-ldl', '-ldbus-1', '-lm']

Andreas






Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Sun, 06 Sep 2020 10:03:02 GMT) Full text and rfc822 format available.

Message #11 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Vitaliy Shatrov <guix.vits <at> disroot.org>
Cc: Mike Rosset <mike.rosset <at> gmail.com>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: jack2 fails to build on aarch64
Date: Sun, 6 Sep 2020 12:02:41 +0200
Updating jack2 to 1.9.14 does not solve the problem.

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Sun, 06 Sep 2020 13:47:02 GMT) Full text and rfc822 format available.

Message #14 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Andreas Enge <andreas <at> enge.fr>
Cc: Vitaliy Shatrov <guix.vits <at> disroot.org>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: jack2 fails to build on aarch64
Date: Sun, 06 Sep 2020 06:46:29 -0700
Andreas Enge <andreas <at> enge.fr> writes:

> The error message is:
> [228/274] Compiling example-clients/simdtests.cpp
> ...
> [243/274] Linking build/example-clients/jack_simdtests
> ...
> ld: example-clients/simdtests.cpp.28.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
> ld: /gnu/store/9xmlrmk7vnlzwq5049500r9lrcf6ikqq-gcc-7.5.0-lib/lib/libstdc++.so.6: error adding symbols: DSO missing from command line
> collect2: error: ld returned 1 exit status
> ...
> Waf: Leaving directory `/tmp/guix-build-jack2-1.9.13.drv-0/jack2-1.9.13/build'
> Build failed
>  -> task in 'jack_simdtests' failed with exit status 1 (run with -v to display more information)
> command "python" "waf" "build" failed with status 1
>
> Following the advice and running "python waf build -v", the executed gcc
> command is printed:
> Build failed
>  -> task in 'jack_simdtests' failed with exit status 1:
>       {task 281472893294736: cprogram simdtests.cpp.28.o -> jack_simdtests}
> ['/gnu/store/ap7hgyv4rjqmhg4a6cb6cypsh3g1f5q4-gcc-7.5.0/bin/gcc', '-Wl,-rpath=/gnu/store/bwmp037cg6gfz31j9q441j800mvk7wva-jack2-1.9.13/lib', 'example-clients/simdtests.cpp.28.o', '-o/tmp/guix-build-jack2-1.9.13.drv-0/jack2-1.9.13/build/example-clients/jack_simdtests', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Lcommon', '-L/gnu/store/zwrg5jwyj1222vyjdpmppijzhz04sqid-opus-1.3.1/lib', '-L/gnu/store/mpm43myhw7difa8p3a9xnag3zb6pnn4b-dbus-1.12.16/lib', '-ljack', '-lpthread', '-lopus', '-ldb', '-lrt', '-ldl', '-ldbus-1', '-lm']
>
> Andreas

undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3 looks
like a potentially gcc flag order issues.  Seems -lstdc++ should be at the
end of the g++ command invocation. I'll see if I'll have time today to look into this more.


Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 04:26:02 GMT) Full text and rfc822 format available.

Message #17 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: 43232 <at> debbugs.gnu.org
Cc: Mike Rosset <mike.rosset <at> gmail.com>
Subject: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Mon, 14 Sep 2020 21:25:25 -0700
* gnu/packages/audio.scm (jack-2): Update to 1.9.14.
[arguments]: new 'declare-for-int phase after unpack that declares 'i in the
for initialize statement.  Add -lstdc++ to LDFLAGS 'set-linkflags phase
ensures -lstdc++ is at the tail.

This fixes issues that cause jack-2 to not build on system aarh64-linux.
---
 gnu/packages/audio.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 38ee4f8bcc..83c08b718e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2030,7 +2030,7 @@ synchronous execution of all clients, and low latency operation.")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
-    (version "1.9.13")
+    (version "1.9.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@@ -2039,7 +2039,7 @@ synchronous execution of all clients, and low latency operation.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
+               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -2047,8 +2047,18 @@ synchronous execution of all clients, and low latency operation.")
                            "--alsa")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'declare-for-int
+           (lambda _
+             ;; Declare the for loop i incrementer.
+             (substitute* "dbus/sigsegv.c"
+               (("for\\(i = 0") "for(int i = 0"))
+             #t))
          (add-before 'configure 'set-linkflags
            (lambda _
+             ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
+             ;; will not link with undefined reference to symbol
+             ;; '__gxx_personality_v0@@CXXABI_1.3'
+             (setenv "LDFLAGS" "-lstdc++")
              ;; Add $libdir to the RUNPATH of all the binaries.
              (substitute* "wscript"
                ((".*CFLAGS.*-Wall.*" m)
-- 
2.28.0





Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 06:23:01 GMT) Full text and rfc822 format available.

Message #20 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Mike Rosset <mike.rosset <at> gmail.com>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 09:21:39 +0300
[Message part 1 (text/plain, inline)]
On Mon, Sep 14, 2020 at 09:25:25PM -0700, Mike Rosset wrote:
> * gnu/packages/audio.scm (jack-2): Update to 1.9.14.
> [arguments]: new 'declare-for-int phase after unpack that declares 'i in the
> for initialize statement.  Add -lstdc++ to LDFLAGS 'set-linkflags phase
> ensures -lstdc++ is at the tail.
> 
> This fixes issues that cause jack-2 to not build on system aarh64-linux.
> ---
>  gnu/packages/audio.scm | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
> index 38ee4f8bcc..83c08b718e 100644
> --- a/gnu/packages/audio.scm
> +++ b/gnu/packages/audio.scm
> @@ -2030,7 +2030,7 @@ synchronous execution of all clients, and low latency operation.")
>  (define-public jack-2
>    (package (inherit jack-1)
>      (name "jack2")
> -    (version "1.9.13")
> +    (version "1.9.14")
>      (source (origin
>               (method url-fetch)
>               (uri (string-append "https://github.com/jackaudio/jack2/releases/"
> @@ -2039,7 +2039,7 @@ synchronous execution of all clients, and low latency operation.")
>               (file-name (string-append name "-" version ".tar.gz"))
>               (sha256
>                (base32
> -               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
> +               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
>      (build-system waf-build-system)
>      (arguments
>       `(#:tests? #f  ; no check target
> @@ -2047,8 +2047,18 @@ synchronous execution of all clients, and low latency operation.")
>                             "--alsa")
>         #:phases
>         (modify-phases %standard-phases
> +         (add-after 'unpack 'declare-for-int
> +           (lambda _
> +             ;; Declare the for loop i incrementer.
> +             (substitute* "dbus/sigsegv.c"
> +               (("for\\(i = 0") "for(int i = 0"))
> +             #t))

Any chance of an upstream bug number or something for this? It seems
like the type of thing that might be put into a snippet.

>           (add-before 'configure 'set-linkflags
>             (lambda _
> +             ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
> +             ;; will not link with undefined reference to symbol
> +             ;; '__gxx_personality_v0@@CXXABI_1.3'
> +             (setenv "LDFLAGS" "-lstdc++")
>               ;; Add $libdir to the RUNPATH of all the binaries.
>               (substitute* "wscript"
>                 ((".*CFLAGS.*-Wall.*" m)
> -- 
> 2.28.0
> 
> 
> 
> 

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 07:30:02 GMT) Full text and rfc822 format available.

Message #23 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 00:29:43 -0700
Efraim Flashner <efraim <at> flashner.co.il> writes:

> On Mon, Sep 14, 2020 at 09:25:25PM -0700, Mike Rosset wrote:
>>         (modify-phases %standard-phases
>> +         (add-after 'unpack 'declare-for-int
>> +           (lambda _
>> +             ;; Declare the for loop i incrementer.
>> +             (substitute* "dbus/sigsegv.c"
>> +               (("for\\(i = 0") "for(int i = 0"))
>> +             #t))
>
> Any chance of an upstream bug number or something for this? It seems
> like the type of thing that might be put into a snippet.
>

That's a good idea, in retrospect Andreas did not report having this
issue.  Let me do a second in series that removes this hunk.

The second hunk resolves the undefined reference to symbol
'__gxx_personality_v0@@CXXABI_1.3 I think that change is a safe one..

Then I can do some follow up the for loop initialization
errors. Hopefully it's just not me effected by that error. I'll see
about making this a snippet as well.

Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 07:49:02 GMT) Full text and rfc822 format available.

Message #26 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: 43232 <at> debbugs.gnu.org
Cc: Mike Rosset <mike.rosset <at> gmail.com>
Subject: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
Date: Tue, 15 Sep 2020 00:48:02 -0700
* gnu/packages/audio.scm (jack2): remove 'declare-for-int phase.
[arguements]: phases 'declare-for-int has been removed. since package now
builds.
---
 gnu/packages/audio.scm | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 83c08b718e..fb98777290 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2047,12 +2047,6 @@ synchronous execution of all clients, and low latency operation.")
                            "--alsa")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'declare-for-int
-           (lambda _
-             ;; Declare the for loop i incrementer.
-             (substitute* "dbus/sigsegv.c"
-               (("for\\(i = 0") "for(int i = 0"))
-             #t))
          (add-before 'configure 'set-linkflags
            (lambda _
              ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
-- 
2.28.0





Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 08:04:02 GMT) Full text and rfc822 format available.

Message #29 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Mike Rosset <mike.rosset <at> gmail.com>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no
 longer required.
Date: Tue, 15 Sep 2020 10:02:32 +0200
Hello Mike,

On Tue, Sep 15, 2020 at 12:48:02AM -0700, Mike Rosset wrote:
> * gnu/packages/audio.scm (jack2): remove 'declare-for-int phase.
> [arguements]: phases 'declare-for-int has been removed. since package now
> builds.

I am getting a bit lost; it looks like this patch has to be applied on top
of your previous one. But since the previous one is not in master yet, there
will be no point in pushing one patch, then another one that partially
reverts the first one.

Could you please just post a new patch with the one modification you propose,
to be applied on master?

Thanks,

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 08:34:02 GMT) Full text and rfc822 format available.

Message #32 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: 43232 <at> debbugs.gnu.org
Cc: Mike Rosset <mike.rosset <at> gmail.com>
Subject: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 01:33:23 -0700
* gnu/packages/audio.scm (jack-2): Update to 1.9.14.
[arguments]: 'set-linkflags phase now adds -lstdc++ to the LDFLAGS
environment variable.

This fixes an issue that where the linker would fail with "undefined reference
to symbol '__gxx_personality_v0@@CXXABI_1.3" on aarch64-linux system.
---
 gnu/packages/audio.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 38ee4f8bcc..fb98777290 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2030,7 +2030,7 @@ synchronous execution of all clients, and low latency operation.")
 (define-public jack-2
   (package (inherit jack-1)
     (name "jack2")
-    (version "1.9.13")
+    (version "1.9.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/jackaudio/jack2/releases/"
@@ -2039,7 +2039,7 @@ synchronous execution of all clients, and low latency operation.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1d1d403jn4366mqig6g8ghr8057b3rn7gs26b5p3rkal34j20qw2"))))
+               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -2049,6 +2049,10 @@ synchronous execution of all clients, and low latency operation.")
        (modify-phases %standard-phases
          (add-before 'configure 'set-linkflags
            (lambda _
+             ;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
+             ;; will not link with undefined reference to symbol
+             ;; '__gxx_personality_v0@@CXXABI_1.3'
+             (setenv "LDFLAGS" "-lstdc++")
              ;; Add $libdir to the RUNPATH of all the binaries.
              (substitute* "wscript"
                ((".*CFLAGS.*-Wall.*" m)
-- 
2.28.0





Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 08:38:01 GMT) Full text and rfc822 format available.

Message #35 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Andreas Enge <andreas <at> enge.fr>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no
 longer required.
Date: Tue, 15 Sep 2020 01:37:05 -0700
Andreas Enge <andreas <at> enge.fr> writes:

> Hello Mike,
>
> On Tue, Sep 15, 2020 at 12:48:02AM -0700, Mike Rosset wrote:
>> * gnu/packages/audio.scm (jack2): remove 'declare-for-int phase.
>> [arguements]: phases 'declare-for-int has been removed. since package now
>> builds.
>
> I am getting a bit lost; it looks like this patch has to be applied on top
> of your previous one. But since the previous one is not in master yet, there
> will be no point in pushing one patch, then another one that partially
> reverts the first one.
>
> Could you please just post a new patch with the one modification you propose,
> to be applied on master?
>
> Thanks,
>
> Andreas

Apologies, I just wanted to keep a series for posterity which normally
I'm terrible at. I should have mentioned you could just squash them.

I emailed a new first in series that squashed and improved the commit
message.

Hope that helps.

Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 18:49:02 GMT) Full text and rfc822 format available.

Message #38 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: Mike Rosset <mike.rosset <at> gmail.com>
Cc: 43232-done <at> debbugs.gnu.org, Vitaliy Shatrov <guix.vits <at> disroot.org>,
 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no
 longer required.
Date: Tue, 15 Sep 2020 20:48:24 +0200
On Tue, Sep 15, 2020 at 01:37:05AM -0700, Mike Rosset wrote:
> Apologies, I just wanted to keep a series for posterity which normally
> I'm terrible at. I should have mentioned you could just squash them.

No problem, it is just less work for me to apply just one patch :)

I pushed the commit, thanks a lot! The new jack2 now also compiles on
aarch64, so the original problem is solved.

Andreas





Reply sent to Andreas Enge <andreas <at> enge.fr>:
You have taken responsibility. (Tue, 15 Sep 2020 18:49:02 GMT) Full text and rfc822 format available.

Notification sent to Vitaliy Shatrov <guix.vits <at> disroot.org>:
bug acknowledged by developer. (Tue, 15 Sep 2020 18:49:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 19:17:01 GMT) Full text and rfc822 format available.

Message #46 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Andreas Enge <andreas <at> enge.fr>
Cc: 43232-done <at> debbugs.gnu.org, Vitaliy Shatrov <guix.vits <at> disroot.org>,
 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no
 longer required.
Date: Tue, 15 Sep 2020 12:16:07 -0700
Andreas Enge <andreas <at> enge.fr> writes:

> On Tue, Sep 15, 2020 at 01:37:05AM -0700, Mike Rosset wrote:
>> Apologies, I just wanted to keep a series for posterity which normally
>> I'm terrible at. I should have mentioned you could just squash them.
>
> No problem, it is just less work for me to apply just one patch :)

Totally understandable. I'll remember this in the future.

> I pushed the commit, thanks a lot! The new jack2 now also compiles on
> aarch64, so the original problem is solved.
>
> Andreas

Thanks for reviewing this, much appreciated.

Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 19:17:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 20:41:02 GMT) Full text and rfc822 format available.

Message #52 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Efraim Flashner <efraim <at> flashner.co.il>, Mike Rosset
 <mike.rosset <at> gmail.com>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 16:39:25 -0400
Efraim Flashner <efraim <at> flashner.co.il> writes:

> On Mon, Sep 14, 2020 at 09:25:25PM -0700, Mike Rosset wrote:
>> * gnu/packages/audio.scm (jack-2): Update to 1.9.14.
>> [arguments]: new 'declare-for-int phase after unpack that declares 'i in the
>> for initialize statement.  Add -lstdc++ to LDFLAGS 'set-linkflags phase
>> ensures -lstdc++ is at the tail.
[...]
>> @@ -2047,8 +2047,18 @@ synchronous execution of all clients, and low latency operation.")
>>                             "--alsa")
>>         #:phases
>>         (modify-phases %standard-phases
>> +         (add-after 'unpack 'declare-for-int
>> +           (lambda _
>> +             ;; Declare the for loop i incrementer.
>> +             (substitute* "dbus/sigsegv.c"
>> +               (("for\\(i = 0") "for(int i = 0"))
>> +             #t))
>
> Any chance of an upstream bug number or something for this? It seems
> like the type of thing that might be put into a snippet.

I agree that somehow this fix should be in the 'origin', so that this
fix will be in the output of "guix build --source".  However, I'd go
further and suggest that it should be a patch instead of a call to
'substitute*'.

Although patches are larger and a bit more work to create, they are far
more robust.  When this bug is eventually fixed upstream, a patch to fix
it will begin raising an error, alerting us that it's time to remove it.

In contrast, a call to 'substitute*' will silently start doing nothing,
and may easily be forgotten.  To make matters worse, a future version of
jack-2 might add another 'for' loop in that file, matching the same
pattern but where it is important that 'i' _not_ be initialized to 0.
This 'substitute*' call, likely vestigial by that time but long since
forgotten, could start silently introducing a new bug.

What do you think?

      Thanks,
        Mark




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 20:50:01 GMT) Full text and rfc822 format available.

Message #55 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Efraim Flashner <efraim <at> flashner.co.il>, Mike Rosset
 <mike.rosset <at> gmail.com>
Cc: 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 16:48:17 -0400
Earlier, I wrote:
> In contrast, a call to 'substitute*' will silently start doing nothing,
> and may easily be forgotten.  To make matters worse, a future version of
> jack-2 might add another 'for' loop in that file, matching the same
> pattern but where it is important that 'i' _not_ be initialized to 0.

Sorry, I made a mistake in the details here, since the pattern applies
only when 'i' is already initialized to 0, but the more general point
still stands, namely that patches are more robust than 'substitute*' for
fixing bugs, and less likely to be misapplied or left forgotten in a
vestigial state after they are no longer needed.

      Mark




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 21:09:01 GMT) Full text and rfc822 format available.

Message #58 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: Efraim Flashner <efraim <at> flashner.co.il>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 14:07:50 -0700
Mark H Weaver <mhw <at> netris.org> writes:

> Efraim Flashner <efraim <at> flashner.co.il> writes:
>
>> On Mon, Sep 14, 2020 at 09:25:25PM -0700, Mike Rosset wrote:
>>> * gnu/packages/audio.scm (jack-2): Update to 1.9.14.
>>> [arguments]: new 'declare-for-int phase after unpack that declares 'i in the
>>> for initialize statement.  Add -lstdc++ to LDFLAGS 'set-linkflags phase
>>> ensures -lstdc++ is at the tail.
> [...]
>>> @@ -2047,8 +2047,18 @@ synchronous execution of all clients, and low latency operation.")
>>>                             "--alsa")
>>>         #:phases
>>>         (modify-phases %standard-phases
>>> +         (add-after 'unpack 'declare-for-int
>>> +           (lambda _
>>> +             ;; Declare the for loop i incrementer.
>>> +             (substitute* "dbus/sigsegv.c"
>>> +               (("for\\(i = 0") "for(int i = 0"))
>>> +             #t))
>>
>> Any chance of an upstream bug number or something for this? It seems
>> like the type of thing that might be put into a snippet.
>
> I agree that somehow this fix should be in the 'origin', so that this
> fix will be in the output of "guix build --source".  However, I'd go
> further and suggest that it should be a patch instead of a call to
> 'substitute*'.
>
> Although patches are larger and a bit more work to create, they are far
> more robust.  When this bug is eventually fixed upstream, a patch to fix
> it will begin raising an error, alerting us that it's time to remove it.
>
> In contrast, a call to 'substitute*' will silently start doing nothing,
> and may easily be forgotten.  To make matters worse, a future version of
> jack-2 might add another 'for' loop in that file, matching the same
> pattern but where it is important that 'i' _not_ be initialized to 0.
> This 'substitute*' call, likely vestigial by that time but long since
> forgotten, could start silently introducing a new bug.
>
> What do you think?
>
>       Thanks,
>         Mark

Hello Mark,

 Turns out version 1.9.14 is not effected by this. So the version bump
is good enough. I resubmitted a first in series with just the version
bump and linker change. Which Andreas has merged into master.

Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 22:30:02 GMT) Full text and rfc822 format available.

Message #61 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mike Rosset <mike.rosset <at> gmail.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: Efraim Flashner <efraim <at> flashner.co.il>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 15:28:57 -0700
Mark H Weaver <mhw <at> netris.org> writes:

> Earlier, I wrote:
>> In contrast, a call to 'substitute*' will silently start doing nothing,
>> and may easily be forgotten.  To make matters worse, a future version of
>> jack-2 might add another 'for' loop in that file, matching the same
>> pattern but where it is important that 'i' _not_ be initialized to 0.
>
> Sorry, I made a mistake in the details here, since the pattern applies
> only when 'i' is already initialized to 0, but the more general point
> still stands, namely that patches are more robust than 'substitute*' for
> fixing bugs, and less likely to be misapplied or left forgotten in a
> vestigial state after they are no longer needed.
>
>       Mark

 That change was not quite fitting right with me either.
So I appreciate the review and comments.  Thankful it's not needed with
1.9.14 and I'll take your comments into account in the future.

Mike




Information forwarded to bug-guix <at> gnu.org:
bug#43232; Package guix. (Tue, 15 Sep 2020 22:48:01 GMT) Full text and rfc822 format available.

Message #64 received at 43232 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Mike Rosset <mike.rosset <at> gmail.com>
Cc: Efraim Flashner <efraim <at> flashner.co.il>, 43232 <at> debbugs.gnu.org
Subject: Re: bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
Date: Tue, 15 Sep 2020 18:45:50 -0400
Mike Rosset <mike.rosset <at> gmail.com> writes:

> Mark H Weaver <mhw <at> netris.org> writes:
>
>> [...] patches are more robust than 'substitute*' for
>> fixing bugs, and less likely to be misapplied or left forgotten in a
>> vestigial state after they are no longer needed.
>
>  That change was not quite fitting right with me either.
> So I appreciate the review and comments.  Thankful it's not needed with
> 1.9.14 and I'll take your comments into account in the future.

Sounds good.  Thank you, Mike!

     Mark




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 14 Oct 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 194 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.