unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#43232: jack2 fails to build on aarch64
@ 2020-09-06  3:53 Vitaliy Shatrov
  2020-09-06  8:58 ` Andreas Enge
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Vitaliy Shatrov @ 2020-09-06  3:53 UTC (permalink / raw)
  To: 43232; +Cc: Mike Rosset


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.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: jack2 fails to build on aarch64
  2020-09-06  3:53 bug#43232: jack2 fails to build on aarch64 Vitaliy Shatrov
@ 2020-09-06  8:58 ` Andreas Enge
  2020-09-06 10:02   ` Andreas Enge
  2020-09-06 13:46   ` Mike Rosset
  2020-09-15  4:25 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 18+ messages in thread
From: Andreas Enge @ 2020-09-06  8:58 UTC (permalink / raw)
  To: Vitaliy Shatrov; +Cc: Mike Rosset, 43232

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






^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: jack2 fails to build on aarch64
  2020-09-06  8:58 ` Andreas Enge
@ 2020-09-06 10:02   ` Andreas Enge
  2020-09-06 13:46   ` Mike Rosset
  1 sibling, 0 replies; 18+ messages in thread
From: Andreas Enge @ 2020-09-06 10:02 UTC (permalink / raw)
  To: Vitaliy Shatrov; +Cc: Mike Rosset, 43232

Updating jack2 to 1.9.14 does not solve the problem.

Andreas





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: jack2 fails to build on aarch64
  2020-09-06  8:58 ` Andreas Enge
  2020-09-06 10:02   ` Andreas Enge
@ 2020-09-06 13:46   ` Mike Rosset
  1 sibling, 0 replies; 18+ messages in thread
From: Mike Rosset @ 2020-09-06 13:46 UTC (permalink / raw)
  To: Andreas Enge; +Cc: Vitaliy Shatrov, 43232


Andreas Enge <andreas@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-06  3:53 bug#43232: jack2 fails to build on aarch64 Vitaliy Shatrov
  2020-09-06  8:58 ` Andreas Enge
@ 2020-09-15  4:25 ` Mike Rosset
  2020-09-15  6:21   ` Efraim Flashner
  2020-09-15  7:48 ` bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required Mike Rosset
  2020-09-15  8:33 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
  3 siblings, 1 reply; 18+ messages in thread
From: Mike Rosset @ 2020-09-15  4:25 UTC (permalink / raw)
  To: 43232; +Cc: Mike Rosset

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15  4:25 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
@ 2020-09-15  6:21   ` Efraim Flashner
  2020-09-15  7:29     ` Mike Rosset
  2020-09-15 20:39     ` Mark H Weaver
  0 siblings, 2 replies; 18+ messages in thread
From: Efraim Flashner @ 2020-09-15  6:21 UTC (permalink / raw)
  To: Mike Rosset; +Cc: 43232

[-- Attachment #1: Type: text/plain, Size: 2817 bytes --]

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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15  6:21   ` Efraim Flashner
@ 2020-09-15  7:29     ` Mike Rosset
  2020-09-15 20:39     ` Mark H Weaver
  1 sibling, 0 replies; 18+ messages in thread
From: Mike Rosset @ 2020-09-15  7:29 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: 43232


Efraim Flashner <efraim@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
  2020-09-06  3:53 bug#43232: jack2 fails to build on aarch64 Vitaliy Shatrov
  2020-09-06  8:58 ` Andreas Enge
  2020-09-15  4:25 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
@ 2020-09-15  7:48 ` Mike Rosset
  2020-09-15  8:02   ` Andreas Enge
  2020-09-15  8:33 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
  3 siblings, 1 reply; 18+ messages in thread
From: Mike Rosset @ 2020-09-15  7:48 UTC (permalink / raw)
  To: 43232; +Cc: Mike Rosset

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
  2020-09-15  7:48 ` bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required Mike Rosset
@ 2020-09-15  8:02   ` Andreas Enge
  2020-09-15  8:37     ` Mike Rosset
  0 siblings, 1 reply; 18+ messages in thread
From: Andreas Enge @ 2020-09-15  8:02 UTC (permalink / raw)
  To: Mike Rosset; +Cc: 43232

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





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-06  3:53 bug#43232: jack2 fails to build on aarch64 Vitaliy Shatrov
                   ` (2 preceding siblings ...)
  2020-09-15  7:48 ` bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required Mike Rosset
@ 2020-09-15  8:33 ` Mike Rosset
  3 siblings, 0 replies; 18+ messages in thread
From: Mike Rosset @ 2020-09-15  8:33 UTC (permalink / raw)
  To: 43232; +Cc: Mike Rosset

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
  2020-09-15  8:02   ` Andreas Enge
@ 2020-09-15  8:37     ` Mike Rosset
  2020-09-15 18:48       ` Andreas Enge
  0 siblings, 1 reply; 18+ messages in thread
From: Mike Rosset @ 2020-09-15  8:37 UTC (permalink / raw)
  To: Andreas Enge; +Cc: 43232


Andreas Enge <andreas@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
  2020-09-15  8:37     ` Mike Rosset
@ 2020-09-15 18:48       ` Andreas Enge
  2020-09-15 19:16         ` Mike Rosset
  0 siblings, 1 reply; 18+ messages in thread
From: Andreas Enge @ 2020-09-15 18:48 UTC (permalink / raw)
  To: Mike Rosset; +Cc: 43232-done, Vitaliy Shatrov, 43232

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





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required.
  2020-09-15 18:48       ` Andreas Enge
@ 2020-09-15 19:16         ` Mike Rosset
  0 siblings, 0 replies; 18+ messages in thread
From: Mike Rosset @ 2020-09-15 19:16 UTC (permalink / raw)
  To: Andreas Enge; +Cc: 43232-done, Vitaliy Shatrov, 43232


Andreas Enge <andreas@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15  6:21   ` Efraim Flashner
  2020-09-15  7:29     ` Mike Rosset
@ 2020-09-15 20:39     ` Mark H Weaver
  2020-09-15 20:48       ` Mark H Weaver
  2020-09-15 21:07       ` Mike Rosset
  1 sibling, 2 replies; 18+ messages in thread
From: Mark H Weaver @ 2020-09-15 20:39 UTC (permalink / raw)
  To: Efraim Flashner, Mike Rosset; +Cc: 43232

Efraim Flashner <efraim@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15 20:39     ` Mark H Weaver
@ 2020-09-15 20:48       ` Mark H Weaver
  2020-09-15 22:28         ` Mike Rosset
  2020-09-15 21:07       ` Mike Rosset
  1 sibling, 1 reply; 18+ messages in thread
From: Mark H Weaver @ 2020-09-15 20:48 UTC (permalink / raw)
  To: Efraim Flashner, Mike Rosset; +Cc: 43232

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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15 20:39     ` Mark H Weaver
  2020-09-15 20:48       ` Mark H Weaver
@ 2020-09-15 21:07       ` Mike Rosset
  1 sibling, 0 replies; 18+ messages in thread
From: Mike Rosset @ 2020-09-15 21:07 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 43232


Mark H Weaver <mhw@netris.org> writes:

> Efraim Flashner <efraim@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15 20:48       ` Mark H Weaver
@ 2020-09-15 22:28         ` Mike Rosset
  2020-09-15 22:45           ` Mark H Weaver
  0 siblings, 1 reply; 18+ messages in thread
From: Mike Rosset @ 2020-09-15 22:28 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 43232


Mark H Weaver <mhw@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14.
  2020-09-15 22:28         ` Mike Rosset
@ 2020-09-15 22:45           ` Mark H Weaver
  0 siblings, 0 replies; 18+ messages in thread
From: Mark H Weaver @ 2020-09-15 22:45 UTC (permalink / raw)
  To: Mike Rosset; +Cc: 43232

Mike Rosset <mike.rosset@gmail.com> writes:

> Mark H Weaver <mhw@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




^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-09-15 23:08 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-06  3:53 bug#43232: jack2 fails to build on aarch64 Vitaliy Shatrov
2020-09-06  8:58 ` Andreas Enge
2020-09-06 10:02   ` Andreas Enge
2020-09-06 13:46   ` Mike Rosset
2020-09-15  4:25 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset
2020-09-15  6:21   ` Efraim Flashner
2020-09-15  7:29     ` Mike Rosset
2020-09-15 20:39     ` Mark H Weaver
2020-09-15 20:48       ` Mark H Weaver
2020-09-15 22:28         ` Mike Rosset
2020-09-15 22:45           ` Mark H Weaver
2020-09-15 21:07       ` Mike Rosset
2020-09-15  7:48 ` bug#43232: [PATCH 2/2] gnu: jack2: 'declare-for-int phase no longer required Mike Rosset
2020-09-15  8:02   ` Andreas Enge
2020-09-15  8:37     ` Mike Rosset
2020-09-15 18:48       ` Andreas Enge
2020-09-15 19:16         ` Mike Rosset
2020-09-15  8:33 ` bug#43232: [PATCH] gnu: jack-2: Update to 1.9.14 Mike Rosset

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).