diff mbox series

[bug#59725,v2] gnu: paulxstretch: Fix paths.

Message ID nwZtzlZ5wUYt32ueZDjLnJjEM7ytEUzeIG7v4p92VsKaIuekQt1AmNR32GcZVq6lCGj9-LQ7-MpWcuor_IqXsnn5L5ry7Auc6g4GyGk6ExI=@proton.me
State New
Headers show
Series [bug#59725,v2] gnu: paulxstretch: Fix paths. | expand

Commit Message

Sughosha Jan. 6, 2023, 1:27 p.m. UTC
This method seems more precise, since if the file or directory does not exist, build fails.

* gnu/packages/music.scm (paulxstretch): Fix paths.
  [arguments]: Add fix-paths phase.
  [inputs]: Add dconf and glib:bin.
---
 gnu/packages/music.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

宋文武 Jan. 31, 2023, 5:51 a.m. UTC | #1
Sughosha <Sughosha@proton.me> writes:

> This method seems more precise, since if the file or directory does not exist, build fails.
>
> * gnu/packages/music.scm (paulxstretch): Fix paths.
>   [arguments]: Add fix-paths phase.
>   [inputs]: Add dconf and glib:bin.

Hello, paulxstretch will "Segmentation fault" with or without this
patch.  I think that's due to "DynamicLibrary" usages in juce, also it's
better to package juce standalone to get rid of the bundled one from
paulxstretch.
Sughosha Feb. 6, 2023, 10:49 p.m. UTC | #2
宋文武 <iyzsong@envs.net> wrote:

> Hello, paulxstretch will "Segmentation fault" with or without this
> patch. I think that's due to "DynamicLibrary" usages in juce, also it's
> better to package juce standalone to get rid of the bundled one from
> paulxstretch.

I don't know why paulxstretch gives "Segmentation fault" error. If I build
it locally (not as a guix package) inside a guix development shell, I don't
get this error. But anyways, even though the executable binary fails to
start, at least the vst plugin works well.
Maxim Cournoyer March 21, 2023, 1:40 p.m. UTC | #3
Hi,

Sughosha <Sughosha@proton.me> writes:

> This method seems more precise, since if the file or directory does not exist, build fails.

It also allows Guix users to rewrite package inputs, contrary to the
previous approach which would have hard-coded the references to the
package variables in a definitive way.

> * gnu/packages/music.scm (paulxstretch): Fix paths.
>   [arguments]: Add fix-paths phase.
>   [inputs]: Add dconf and glib:bin.

I've modified the commit message like so:

--8<---------------cut here---------------start------------->8---
gnu: paulxstretch: Patch paths.

* gnu/packages/music.scm (paulxstretch) [arguments]: Add patch-paths phase.
[inputs]: Add dconf, fontconfig and glib:bin.
--8<---------------cut here---------------end--------------->8---

Capitalizing the sentence following the ':', removing the hanging indent
in the GNU Changelog commit message, and adding the missing fontconfig.

> ---
>  gnu/packages/music.scm | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 5be767a138..bdd856396d 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -2481,6 +2481,23 @@ (define-public paulxstretch
>       (list #:tests? #f                            ;no test suite
>             #:phases
>             #~(modify-phases %standard-phases
> +               (add-after 'unpack 'fix-paths
> +                 (lambda* (#:key inputs #:allow-other-keys)
> +                   (substitute*
> +                    "deps/juce/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h"
> +                     (("/usr/include/freetype2")
> +                      (search-input-directory inputs "/include/freetype2")))
> +                   (substitute*
> +                    "deps/juce/modules/juce_graphics/native/juce_linux_Fonts.cpp"
> +                     (("/etc/fonts")
> +                      (search-input-directory inputs "/etc/fonts")))
> +                   (substitute*
> +                    "deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp"
> +                     (("/usr/bin/dconf")
> +                      (search-input-file inputs "/bin/dconf"))
> +                     (("/usr/bin/gsettings")
> +                      (search-input-file inputs "/bin/gsettings")))))
> +                    
>                 (replace 'install
>                   (lambda _
>                     (let* ((bin (string-append #$output "/bin"))
> @@ -2507,8 +2524,11 @@ (define-public paulxstretch
>      (native-inputs (list pkg-config))
>      (inputs (list alsa-lib
>                    curl
> +                  dconf
>                    fftwf
> +                  fontconfig
>                    freetype
> +                  `(,glib "bin")
>                    jack-1
>                    libx11
>                    libxcursor

Applied, after breaking some long lines to fit under 80 chars.

As others reported, there is still the segfault when running the binary,
but at least this probably brings us closer to something that fully works.

Let's open other issues for the remaining problems found.
diff mbox series

Patch

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 5be767a138..bdd856396d 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2481,6 +2481,23 @@  (define-public paulxstretch
      (list #:tests? #f                            ;no test suite
            #:phases
            #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute*
+                    "deps/juce/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_CodeBlocks.h"
+                     (("/usr/include/freetype2")
+                      (search-input-directory inputs "/include/freetype2")))
+                   (substitute*
+                    "deps/juce/modules/juce_graphics/native/juce_linux_Fonts.cpp"
+                     (("/etc/fonts")
+                      (search-input-directory inputs "/etc/fonts")))
+                   (substitute*
+                    "deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp"
+                     (("/usr/bin/dconf")
+                      (search-input-file inputs "/bin/dconf"))
+                     (("/usr/bin/gsettings")
+                      (search-input-file inputs "/bin/gsettings")))))
+                    
                (replace 'install
                  (lambda _
                    (let* ((bin (string-append #$output "/bin"))
@@ -2507,8 +2524,11 @@  (define-public paulxstretch
     (native-inputs (list pkg-config))
     (inputs (list alsa-lib
                   curl
+                  dconf
                   fftwf
+                  fontconfig
                   freetype
+                  `(,glib "bin")
                   jack-1
                   libx11
                   libxcursor