Subject: Re: [bug#72655] [PATCH] Add bespokesynth package

From: 宋文武 <[email-masked]>
Date: Tue, 04 Feb 2025 17:16:19 +0800

Hello,

Apoorv <[email-masked]> writes:
> Subject: [PATCH 02/13] Add bespokesynth package
>
> ---
>  gnu/packages/music.scm | 53 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 0b418fa7a7..7a4b272013 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -8028,6 +8028,59 @@ (define-public airwindows-lv2
>        "This is an LV2 port of the Airwindows plugins originally created by Chris Johnson.")
>       (license license:expat))))
>  
> +(define-public bespokesynth
> +  (let ((commit "faf42ee537195c114837ed2571e2c9ec5830aab0")
> +        (revision "1"))
> +    (package
> +     (name "bespokesynth")
> +     (version (git-version "1.2.1" revision commit))
> +     (source
> +      (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/BespokeSynth/BespokeSynth")
> +             (recursive? #t)
> +             (commit commit)))

There are bundled dependencies (JUCE, jsoncpp, nanovg, etc.) in its
'libs' directory, could you give a try to unbundle them?

> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "0np0762vzqbxx0srgyi2kimzd3h3lycmr83wi67df9x83dyck152"))))
> +     (inputs (list xcb-util-cursor
> +                   xcb-util-keysyms
> +                   xcb-util
> +                   libxkbcommon
> +                   libxcb
> +                   gtk+
> +                   webkitgtk

um, webkitgtk is for GTK4, while gtk+ is GTK3, does it really use
different versions of GTK at the same time?

> +                   curl
> +                   alsa-lib
> +                   alsa-utils
> +                   jack-2
> +                   freetype
> +                   libxinerama
> +                   libxrandr
> +                   mesa
> +                   libxcursor
> +                   libusb))
> +     (native-inputs (list ninja patchelf pkg-config python))

How's patchelf used?

> +     (build-system cmake-build-system)
> +     (arguments
> +      (list
> +       #:tests? #f ;No test target available
> +       #:build-type "Release"
> +       #:phases
> +       #~(modify-phases
> +          %standard-phases
> +          (add-after 'unpack 'pre-configure
> +                     (lambda _
> +                       ;; Override default location of fonts.conf.
> +                       (substitute* "libs/JUCE/modules/juce_graphics/native/juce_Fonts_linux.cpp"
> +                                    (("/usr/share/fonts/fonts.conf")
> +                                     "/run/current-system/profile/etc/fonts/fonts.conf")))))))
> +     (home-page "http://bespokesynth.com/")
> +     (synopsis "Software modular synth")
> +     (description "Software modular synth")

Description should be a little longer, and be full sentences.

> +     (license license:gpl3))))
> +
>  ;;;
>  ;;; Avoid adding new packages to the end of this file. To reduce the chances
>  ;;; of a merge conflict, place them above by existing packages with similar

Actually I can't apply this patch cleanly, could you add it in the
middle of the file and sent the patch use 'git send-email'?

Thanks.