[PATCH] gnu: Add audacious.

  • Done
  • quality assurance status badge
Details
4 participants
  • Kei Kebreau
  • Nicolas Goaziou
  • Tobias Geerinckx-Rice
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Kei Kebreau
Severity
normal
K
K
Kei Kebreau wrote on 7 Sep 2019 06:57
(address . guix-patches@gnu.org)(name . Kei Kebreau)(address . kkebreau@posteo.net)
20190907045755.6578-1-kkebreau@posteo.net
* gnu/packages/music.scm (audacious): New variable.
---
gnu/packages/music.scm | 102 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 102 insertions(+)

Toggle diff (115 lines)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index a43bccf4f8..33c53dec35 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -203,6 +203,108 @@ and play MIDI files with a few clicks in a user-friendly interface offering
score, keyboard, guitar, drum and controller views.")
(license license:gpl3+)))
+(define-public audacious
+ (package
+ (name "audacious")
+ (version "3.10.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://distfiles.audacious-media-player.org/"
+ "audacious-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "14vbkhld5hwh96j8p8hjq9ybvc2m060a1y8crz14i51wpd0fhrl3"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--disable-gtk" "--enable-qt"
+ ;; Add the output lib directory to the RUNPATH.
+ (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+ #:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'unpack-plugins
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((plugins (assoc-ref inputs "audacious-plugins")))
+ (invoke "tar" "xvf" plugins)
+ (chdir (string-append "audacious-plugins-" ,version))
+ #t)))
+ (add-after 'unpack-plugins 'configure-plugins
+ (lambda* (#:key configure-flags outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "configure"
+ (("/bin/sh") (which "sh")))
+ (apply invoke "./configure"
+ (append configure-flags
+ ;; audacious-plugins requires audacious to build.
+ (list (string-append "PKG_CONFIG_PATH="
+ out "/lib/pkgconfig:"
+ (getenv "PKG_CONFIG_PATH"))
+ (string-append "--prefix=" out)))))))
+ (add-after 'configure-plugins 'build-plugins
+ (lambda _
+ (invoke "make" "-j" (number->string (parallel-job-count)))))
+ (add-after 'build-plugins 'install-plugins
+ (lambda _
+ (invoke "make" "install"))))))
+ (native-inputs
+ `(("audacious-plugins"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://distfiles.audacious-media-player.org/"
+ "audacious-plugins-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0hi61825ayrwc4snwr76f2669k06fii3n8ll1szjk5zr65v1ghzf"))))
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin") ; for gdbus-codegen
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("dbus" ,dbus)
+ ("glib" ,glib)
+ ("qtbase" ,qtbase)
+ ;; Plugin dependencies
+ ("alsa-lib" ,alsa-lib)
+ ("curl" ,curl)
+ ("ffmpeg" ,ffmpeg)
+ ("flac" ,flac)
+ ("fluidsynth" ,fluidsynth)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("libbs2b" ,libbs2b)
+ ("libcddb" ,libcddb)
+ ("libcdio-paranoia" ,libcdio-paranoia)
+ ("libcue" ,libcue)
+ ("libmodplug" ,libmodplug)
+ ("libnotify" ,libnotify)
+ ("libogg" ,libogg)
+ ("libsamplerate" ,libsamplerate)
+ ("libsndfile" ,libsndfile)
+ ("libvorbis" ,libvorbis)
+ ("libxml2" ,libxml2)
+ ("lirc" ,lirc)
+ ("jack" ,jack-1)
+ ("mpg123" ,mpg123)
+ ("neon" ,neon)
+ ("pulseaudio" ,pulseaudio)
+ ("qtmultimedia" ,qtmultimedia)
+ ("soxr" ,soxr)
+ ("wavpack" ,wavpack)))
+ (home-page "https://audacious-media-player.org")
+ (synopsis "Audio player based on XMMS")
+ (description
+ "Audacious is an audio player descended from XMMS. Drag and drop folders
+and individual song files, search for artists and albums in your entire music
+library, or create and edit your own custom playlists. Listen to CD’s or stream
+music from the Internet. Tweak the sound with the graphical equalizer or
+experiment with LADSPA effects. Enjoy the modern GTK-themed interface or change
+things up with Winamp Classic skins. Use the plugins included with Audacious to
+fetch lyrics for your music, to set an alarm in the morning, and more.")
+ ;; According to COPYING, Audacious and its plugins are licensed under the
+ ;; BSD 2-clause license and libguess is licensed under the BSD 3-clause
+ ;; license.
+ (license (list license:bsd-2
+ license:bsd-3))))
+
;; We don't use the latest release because it depends on Qt4. Instead we
;; download the sources from the tip of the "qt5" branch.
(define-public clementine
--
2.23.0
T
T
Tobias Geerinckx-Rice wrote on 7 Sep 2019 13:45
(address . guix-patches@gnu.org)
87ef0swcrf.fsf@nckx
Kei,

Kei Kebreau ???
Toggle quote (37 lines)
> * gnu/packages/music.scm (audacious): New variable.
> ---
> gnu/packages/music.scm | 102
> +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 102 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index a43bccf4f8..33c53dec35 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -203,6 +203,108 @@ and play MIDI files with a few clicks in a
> user-friendly interface offering
> score, keyboard, guitar, drum and controller views.")
> (license license:gpl3+)))
>
> +(define-public audacious
> + (package
> + (name "audacious")
> + (version "3.10.1")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append
> "https://distfiles.audacious-media-player.org/"
> + "audacious-" version
> ".tar.bz2"))
> + (sha256
> + (base32
> +
> "14vbkhld5hwh96j8p8hjq9ybvc2m060a1y8crz14i51wpd0fhrl3"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:configure-flags
> + (list "--disable-gtk" "--enable-qt"
> + ;; Add the output lib directory to the RUNPATH.
> + (string-append "LDFLAGS=-Wl,-rpath=" %output
> "/lib"))

This comment just repeats the code, so it's not needed.

Toggle quote (2 lines)
> + #:tests? #f ; no check target

Could you run C-M-q (or etc/indent-code.el) on the whole
definition? That will allow later editors to do the same without
changing unrelated lines.

Toggle quote (10 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'install 'unpack-plugins
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((plugins (assoc-ref inputs
> "audacious-plugins")))
> + (invoke "tar" "xvf" plugins)
> + (chdir (string-append "audacious-plugins-"
> ,version))

It's not wrong, and I know this saves (with-directory-excursion)s
down the road, but brr. :-)

Toggle quote (32 lines)
> + #t)))
> + (add-after 'unpack-plugins 'configure-plugins
> + (lambda* (#:key configure-flags outputs
> #:allow-other-keys)
> + (let ((out (assoc-ref outputs "out")))
> + (substitute* "configure"
> + (("/bin/sh") (which "sh")))
> + (apply invoke "./configure"
> + (append configure-flags
> + ;; audacious-plugins requires
> audacious to build.
> + (list (string-append
> "PKG_CONFIG_PATH="
> + out
> "/lib/pkgconfig:"
> + (getenv
> "PKG_CONFIG_PATH"))
> + (string-append "--prefix="
> out)))))))
> + (add-after 'configure-plugins 'build-plugins
> + (lambda _
> + (invoke "make" "-j" (number->string
> (parallel-job-count)))))
> + (add-after 'build-plugins 'install-plugins
> + (lambda _
> + (invoke "make" "install"))))))
> + (native-inputs
> + `(("audacious-plugins"
> + ,(origin
> + (method url-fetch)
> + (uri (string-append
> "https://distfiles.audacious-media-playerorg/"
^^^^^^^^^
Typo!

Toggle quote (7 lines)
> + "audacious-plugins-" version
> ".tar.bz2"))
> + (sha256
> + (base32
> +
> "0hi61825ayrwc4snwr76f2669k06fii3n8ll1szjk5zr65v1ghzf"))))

I don't mind bundling these like this (Audacious's a leaf package
and — subjectively — media things are allowed/expected to be a bit
bloaty), but it may prove controversial :-)

Would it not be worth supporting a plug-in search path? Are
there, for example, well-supported Audacious plug-ins that aren't
part of this collection?

$ guix size audacious-with-plugins # although I'd prefer 2
packages
total: 1649.2 MiB

$ guix size audacious # no plugins or plugin inputs
total: 1333.9 MiB

Have you considered a separate ‘audacious-plugins’ package that
could use that mechanism? Why [not]?

Toggle quote (36 lines)
> + ("gettext" ,gettext-minimal)
> + ("glib:bin" ,glib "bin") ; for gdbus-codegen
> + ("pkg-config" ,pkg-config)))
> + (inputs
> + `(("dbus" ,dbus)
> + ("glib" ,glib)
> + ("qtbase" ,qtbase)
> + ;; Plugin dependencies
> + ("alsa-lib" ,alsa-lib)
> + ("curl" ,curl)
> + ("ffmpeg" ,ffmpeg)
> + ("flac" ,flac)
> + ("fluidsynth" ,fluidsynth)
> + ("gdk-pixbuf" ,gdk-pixbuf)
> + ("libbs2b" ,libbs2b)
> + ("libcddb" ,libcddb)
> + ("libcdio-paranoia" ,libcdio-paranoia)
> + ("libcue" ,libcue)
> + ("libmodplug" ,libmodplug)
> + ("libnotify" ,libnotify)
> + ("libogg" ,libogg)
> + ("libsamplerate" ,libsamplerate)
> + ("libsndfile" ,libsndfile)
> + ("libvorbis" ,libvorbis)
> + ("libxml2" ,libxml2)
> + ("lirc" ,lirc)
> + ("jack" ,jack-1)
> + ("mpg123" ,mpg123)
> + ("neon" ,neon)
> + ("pulseaudio" ,pulseaudio)
> + ("qtmultimedia" ,qtmultimedia)
> + ("soxr" ,soxr)
> + ("wavpack" ,wavpack)))
> + (home-page "https://audacious-media-player.org")
> + (synopsis "Audio player based on XMMS")

Hmm. To me, ‘Foo copied a lot of files from bar once’ is never
a useful answer to ‘What is foo?’.

All ‘XMMS’ means to me is ‘that ugly audio player I installed
and then immediately removed in the nineties’. Now, that may be
all I need to know about Audacious, I don't know :o)

I hope it's not. Is there something in particular that
distinguishes Audacious from most other players that we could
mention instead?

Toggle quote (23 lines)
> + (description
> + "Audacious is an audio player descended from XMMS. Drag
> and drop folders
> +and individual song files, search for artists and albums in
> your entire music
> +library, or create and edit your own custom playlists. Listen
> to CD’s or stream
> +music from the Internet. Tweak the sound with the graphical
> equalizer or
> +experiment with LADSPA effects. Enjoy the modern GTK-themed
> interface or change
> +things up with Winamp Classic skins. Use the plugins included
> with Audacious to
> +fetch lyrics for your music, to set an alarm in the morning,
> and more.")
> + ;; According to COPYING, Audacious and its plugins are
> licensed under the
> + ;; BSD 2-clause license and libguess is licensed under the
> BSD 3-clause
> + ;; license.
> + (license (list license:bsd-2
> + license:bsd-3))))

From COPYING:

“Please note that many of the plugins distributed with
Audacious are under
different licenses.”

And indeed, I see quite a bit of GPL and some ISC code in there.

Thanks!

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXXOYZAAKCRANsP+IT1Vt
eRc1AQDAzQJpRojV1SWKz5Iy9MNyCUxUcmELO0v0eMfumcgtuAD/S8FU56+WGj8z
j5kf2gxIVwDfiOuYkC7YT49/KtD+TQ0=
=Znuo
-----END PGP SIGNATURE-----

T
T
Tobias Geerinckx-Rice wrote on 7 Sep 2019 14:04
87d0gcwbwc.fsf@nckx
Kei,

Tobias Geerinckx-Rice via Guix-patches via ???
Toggle quote (9 lines)
>> + (arguments
>> + `(#:configure-flags
>> + (list "--disable-gtk" "--enable-qt"
>> + ;; Add the output lib directory to the RUNPATH.
>> + (string-append "LDFLAGS=-Wl,-rpath=" %output
>> "/lib"))
>
> This comment just repeats the code, so it's not needed.

I forgot to ask: why Qt over GTK? That would probably make an
interesting comment.

Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXXOcwwAKCRANsP+IT1Vt
eUjYAQDMgZM3SsMckqJ0xMkF9YoRLVKGC5BeTlw9FkPrQjncFQEAzFk/sWS5AUbR
JzZlqgB+PkRDwF3vLl/EDTtbLmlMpQI=
=yPN2
-----END PGP SIGNATURE-----

K
K
Kei Kebreau wrote on 7 Sep 2019 16:56
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)(address . 37329@debbugs.gnu.org)
87imq4xiil.fsf@posteo.net
Tobias Geerinckx-Rice <me@tobias.gr> writes:

Toggle quote (34 lines)
> Kei,
>
> Kei Kebreau ???
>> * gnu/packages/music.scm (audacious): New variable.
>> ---
>> gnu/packages/music.scm | 102
>> +++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 102 insertions(+)
>>
>> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
>> index a43bccf4f8..33c53dec35 100644
>> --- a/gnu/packages/music.scm
>> +++ b/gnu/packages/music.scm
>> @@ -203,6 +203,108 @@ and play MIDI files with a few clicks in a
>> user-friendly interface offering
>> score, keyboard, guitar, drum and controller views.")
>> (license license:gpl3+)))
>> +(define-public audacious
>> + (package
>> + (name "audacious")
>> + (version "3.10.1")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (string-append
>> "https://distfiles.audacious-media-player.org/"
>> + "audacious-" version ".tar.bz2"))
>> + (sha256
>> + (base32
>> + "14vbkhld5hwh96j8p8hjq9ybvc2m060a1y8crz14i51wpd0fhrl3"))))
>> + (build-system gnu-build-system)
>> + (arguments
>> + `(#:configure-flags
>> + (list "--disable-gtk" "--enable-qt"

In reply to your later email: I used Qt instead of the default GTK+ 2
because of a personal preference, but apparently it's possible to enable
both to let users choose what they prefer.

Toggle quote (12 lines)
>> + ;; Add the output lib directory to the RUNPATH.
>> + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
>
> This comment just repeats the code, so it's not needed.
>
>> + #:tests? #f ; no check target
>
> Could you run C-M-q (or etc/indent-code.el) on the whole definition?
> That will allow later editors to do the same without changing
> unrelated lines.
>

Done for both!

Toggle quote (14 lines)
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-after 'install 'unpack-plugins
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + (let ((plugins (assoc-ref inputs
>> "audacious-plugins")))
>> + (invoke "tar" "xvf" plugins)
>> + (chdir (string-append "audacious-plugins-"
>> ,version))
>
> It's not wrong, and I know this saves (with-directory-excursion)s down
> the road, but brr. :-)
>

Is it the lack of clarity in later phases that's undesirable?

Toggle quote (36 lines)
>> + #t)))
>> + (add-after 'unpack-plugins 'configure-plugins
>> + (lambda* (#:key configure-flags outputs
>> #:allow-other-keys)
>> + (let ((out (assoc-ref outputs "out")))
>> + (substitute* "configure"
>> + (("/bin/sh") (which "sh")))
>> + (apply invoke "./configure"
>> + (append configure-flags
>> + ;; audacious-plugins requires
>> audacious to build.
>> + (list (string-append
>> "PKG_CONFIG_PATH="
>> + out
>> "/lib/pkgconfig:"
>> + (getenv
>> "PKG_CONFIG_PATH"))
>> + (string-append "--prefix="
>> out)))))))
>> + (add-after 'configure-plugins 'build-plugins
>> + (lambda _
>> + (invoke "make" "-j" (number->string
>> (parallel-job-count)))))
>> + (add-after 'build-plugins 'install-plugins
>> + (lambda _
>> + (invoke "make" "install"))))))
>> + (native-inputs
>> + `(("audacious-plugins"
>> + ,(origin
>> + (method url-fetch)
>> + (uri (string-append
>> "https://distfiles.audacious-media-playerorg/"
> ^^^^^^^^^
> Typo!
>

Nice catch, thanks!

Toggle quote (26 lines)
>> + "audacious-plugins-" version
>> ".tar.bz2"))
>> + (sha256
>> + (base32
>> + "0hi61825ayrwc4snwr76f2669k06fii3n8ll1szjk5zr65v1ghzf"))))
>
> I don't mind bundling these like this (Audacious's a leaf package and
> — subjectively — media things are allowed/expected to be a bit
> bloaty), but it may prove controversial :-)
>
> Would it not be worth supporting a plug-in search path? Are there,
> for example, well-supported Audacious plug-ins that aren't part of
> this collection?
>
> $ guix size audacious-with-plugins # although I'd prefer 2 packages
> …
> total: 1649.2 MiB
>
> $ guix size audacious # no plugins or plugin inputs
> …
> total: 1333.9 MiB
>
> Have you considered a separate ‘audacious-plugins’ package that could
> use that mechanism? Why [not]?
>

Audacious fails to run without output plugins (e.g. Pulseaudio, JACK,
etc.), immediately asking the user whether audacious-plugins is
installed. A separate audacious-plugins package would require audacious
as a dependency, and since such basic plugins are needed to run
audacious, I'm not sure how to split the packages in a way that would
avoid a dependency loop.

Toggle quote (47 lines)
>> + ("gettext" ,gettext-minimal)
>> + ("glib:bin" ,glib "bin") ; for gdbus-codegen
>> + ("pkg-config" ,pkg-config)))
>> + (inputs
>> + `(("dbus" ,dbus)
>> + ("glib" ,glib)
>> + ("qtbase" ,qtbase)
>> + ;; Plugin dependencies
>> + ("alsa-lib" ,alsa-lib)
>> + ("curl" ,curl)
>> + ("ffmpeg" ,ffmpeg)
>> + ("flac" ,flac)
>> + ("fluidsynth" ,fluidsynth)
>> + ("gdk-pixbuf" ,gdk-pixbuf)
>> + ("libbs2b" ,libbs2b)
>> + ("libcddb" ,libcddb)
>> + ("libcdio-paranoia" ,libcdio-paranoia)
>> + ("libcue" ,libcue)
>> + ("libmodplug" ,libmodplug)
>> + ("libnotify" ,libnotify)
>> + ("libogg" ,libogg)
>> + ("libsamplerate" ,libsamplerate)
>> + ("libsndfile" ,libsndfile)
>> + ("libvorbis" ,libvorbis)
>> + ("libxml2" ,libxml2)
>> + ("lirc" ,lirc)
>> + ("jack" ,jack-1)
>> + ("mpg123" ,mpg123)
>> + ("neon" ,neon)
>> + ("pulseaudio" ,pulseaudio)
>> + ("qtmultimedia" ,qtmultimedia)
>> + ("soxr" ,soxr)
>> + ("wavpack" ,wavpack)))
>> + (home-page "https://audacious-media-player.org")
>> + (synopsis "Audio player based on XMMS")
>
> Hmm. To me, ‘Foo copied a lot of files from bar once’ is never a
> useful answer to ‘What is foo?’.
>
> All ‘XMMS’ means to me is ‘that ugly audio player I installed and then
> immediately removed in the nineties’. Now, that may be all I need to
> know about Audacious, I don't know :o)
>
> I hope it's not. Is there something in particular that distinguishes
> Audacious from most other players that we could mention instead?
>

How about: "Modular and skinnable audio player"?

Toggle quote (32 lines)
>> + (description
>> + "Audacious is an audio player descended from XMMS. Drag and
>> drop folders
>> +and individual song files, search for artists and albums in your
>> entire music
>> +library, or create and edit your own custom playlists. Listen to
>> CD’s or stream
>> +music from the Internet. Tweak the sound with the graphical
>> equalizer or
>> +experiment with LADSPA effects. Enjoy the modern GTK-themed
>> interface or change
>> +things up with Winamp Classic skins. Use the plugins included with
>> Audacious to
>> +fetch lyrics for your music, to set an alarm in the morning, and
>> more.")
>> + ;; According to COPYING, Audacious and its plugins are licensed
>> under the
>> + ;; BSD 2-clause license and libguess is licensed under the BSD
>> 3-clause
>> + ;; license.
>> + (license (list license:bsd-2
>> + license:bsd-3))))
>
> From COPYING:
>
> “Please note that many of the plugins distributed with Audacious are
> under
> different licenses.”
>
> And indeed, I see quite a bit of GPL and some ISC code in there.
>

I'll root around for those extra licenses!

Toggle quote (4 lines)
> Thanks!
>
> T G-R

Thanks for reviewing!

Kei
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAl1zxQIACgkQ5qXuPBlG
eg1Fag/9EQ7ZHeVngVcDlWu7I6kK5qlxqFQ/Q/SyOhoqYixJTf10JoIcAVwH9hUn
4cHJggGe2rUwGgMZGnh/0CQjTeXL8Gx09K+rz6pIedFY5PIeYOVVMBZcHlGLaBcf
0GZF/7mRT7O+TBvIuxp3NeaiBinQaC0tXPXKirKjJCBhReDRlhS3e2qjsAXonFNs
XD2WFoBupJM/6eHuMe8jqKk3sLzjBgQsF0ET8R/RoajMHr1aqUaxjUyjJ+nAhF8k
ObXw4tGpB51cOnCFemtNA1/Wuo54YLmysmXgoerT8BQxUeCQibl48Zmz58V59Huf
VXZUI0XFzLxILNgZFknSiA2YFITn8Lwp6/izDcAynji5dbSPeAYUNdcDZ5AcGGMq
LEmbNEOYM5Txj1idvH5BkMzlOLPcEPrXwW+M7EcpuZ6x8C80G6Uq+l1yhtzA1PjV
ngiSktqL9U654P+5yzZ9JWP0fdrnHdc+mro4Y3x8NaIcmVtBsxi1ibDJK07SJV7T
bhPFdkEqPM7USMl8ThDgukXimhYsEp3A6h7OZpS+SUjw88JFge3ZeOoRh88GtSNP
GKAf913EsNbJ4RJ8IFp7ZsEC1bSakch9VBADn2cxR5793SOYQjgr8W9wyCd6dXBh
y2TC1hmCIMe/eUawXJonTGdXwykcWx04wpFodoRXQL/jgt8q5wM=
=Fo8P
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 7 Sep 2019 22:43
(name . Kei Kebreau)(address . kkebreau@posteo.net)
87y2yzu9as.fsf@elephly.net
Kei Kebreau <kkebreau@posteo.net> writes:

Toggle quote (8 lines)
>>> + (arguments
>>> + `(#:configure-flags
>>> + (list "--disable-gtk" "--enable-qt"
>
> In reply to your later email: I used Qt instead of the default GTK+ 2
> because of a personal preference, but apparently it's possible to enable
> both to let users choose what they prefer.

Would this retain references to *both* toolkits? Wouldn’t this make the
package much bigger than it otherwise would be?

What’s the smaller variant…?

Toggle quote (16 lines)
>>> + #:phases
>>> + (modify-phases %standard-phases
>>> + (add-after 'install 'unpack-plugins
>>> + (lambda* (#:key inputs #:allow-other-keys)
>>> + (let ((plugins (assoc-ref inputs
>>> "audacious-plugins")))
>>> + (invoke "tar" "xvf" plugins)
>>> + (chdir (string-append "audacious-plugins-"
>>> ,version))
>>
>> It's not wrong, and I know this saves (with-directory-excursion)s down
>> the road, but brr. :-)
>>
>
> Is it the lack of clarity in later phases that's undesirable?

It’s a littly icky to have phases modify global state (other than the
files they operate on), because it is no longer enough to look at just
the phase of interest. If it can be avoided without making things too
ugly I’d prefer to avoid “chdir” here.

--
Ricardo
K
K
Kei Kebreau wrote on 8 Sep 2019 02:18
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87muffiqsr.fsf@posteo.net
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (16 lines)
> Kei Kebreau <kkebreau@posteo.net> writes:
>
>>>> + (arguments
>>>> + `(#:configure-flags
>>>> + (list "--disable-gtk" "--enable-qt"
>>
>> In reply to your later email: I used Qt instead of the default GTK+ 2
>> because of a personal preference, but apparently it's possible to enable
>> both to let users choose what they prefer.
>
> Would this retain references to *both* toolkits? Wouldn’t this make the
> package much bigger than it otherwise would be?
>
> What’s the smaller variant…?
>

Enabling both toolkits would retain references to both, but it isn't
much larger than enabling only Qt. That said, a GTK+ 2
exclusive build is smaller than a Qt exclusive one by a large margin:

Excluding plugins:
* Both toolkits: 1495.1 MiB
* Qt only: 1344.2 MiB
* GTK+ 2 only: 538.0 MiB

Including plugins:
* Both toolkits: 1736.2 MiB
* Qt only: 1734.9 MiB
* GTK+ 2 only: 1126.6 MiB

Toggle quote (21 lines)
>>>> + #:phases
>>>> + (modify-phases %standard-phases
>>>> + (add-after 'install 'unpack-plugins
>>>> + (lambda* (#:key inputs #:allow-other-keys)
>>>> + (let ((plugins (assoc-ref inputs
>>>> "audacious-plugins")))
>>>> + (invoke "tar" "xvf" plugins)
>>>> + (chdir (string-append "audacious-plugins-"
>>>> ,version))
>>>
>>> It's not wrong, and I know this saves (with-directory-excursion)s down
>>> the road, but brr. :-)
>>>
>>
>> Is it the lack of clarity in later phases that's undesirable?
>
> It’s a littly icky to have phases modify global state (other than the
> files they operate on), because it is no longer enough to look at just
> the phase of interest. If it can be avoided without making things too
> ugly I’d prefer to avoid “chdir” here.

Understood. Adding a few "with-directory-excursion" calls isn't a bad
addition here. I've attached a new patch with all three toolkit options
(Qt only, GTK+ 2 only, both) included for testing purposes.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAl10SNQACgkQ5qXuPBlG
eg1CLw/7BXdBhlpWzBD3Mxr3l6dcsaIBP/rIyXY/B8X62nlQV1JDta77kQzvXPwE
odLJEYRoyyzBQtoMVo5VlNBN6EeeEwPcTKosc3wPZt0a0uatKNB8WFQsLTqURERU
hN3psBUh2TVucp//PnmF37NACD97WQ1c+1khrQDPaENPywTsIR9ehinQA4Pbrtn8
CJW17F7QSzjsLHV+m6h8eOLkCWG4jFnfc0FV8WrBf3RCKNurk8Xf+sddicK/t3q6
wqKXvP1zBEVrS0QbAku9l5bViMBdoNyim9jFzdqzYXNErBvixVsvig0J20PeIbeQ
lsM9gg9RtjWONctKBlkFUu6MTsN/jmpkYlUPoX62CrXOyrklD7rEYFD733YkVKnd
lmKXPZ++SHX4yitipwvMf5z3/XzRi8K2BzcxWjDneyr6HfK3w1CfjmoadvHjENAz
02l57N65+F1aA3LaSzNMed0fX3V/kisRooeYTpHNNJh58ChLPTUXrWczVVlw4bWh
bfrjkmy8OkeK306TdFgviM+7MjSzoYjZcs0l1um/6CcyCwt6hiTSK8wQ18K4FVam
8oswkpvcE3emI8LPij4aAaYqDNOVRFUeIT9D0XnaYZk6BvphriBVoWeepv3c5OD3
PBR/CXXyLhVDCPuj3BP1W2i2eFzYoA+ZvxiBAdeMQmIGcKwWcJc=
=CItw
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 18 Nov 2020 18:14
Re: [PATCH] gnu: Add audacious.
(address . 37329@debbugs.gnu.org)
87k0ui7fkr.fsf@nicolasgoaziou.fr
Hello,

I updated Kei's patch for Audacious 4.0.5. I dropped GTK-2, as it is in
maintenance mode only, and Qt is upstream default toolkit.

This is a beast, guix size reports 1459 MiB, but I assume its users do
not expect anything lightweight, since it is comes with plenty of
plugins.

WDYT?

Regards,
--
Nicolas Goaziou
N
N
Nicolas Goaziou wrote on 26 Nov 2020 18:35
Re: [bug#37329] [PATCH] gnu: Add audacious.
(address . 37329-done@debbugs.gnu.org)
87r1og81i2.fsf@nicolasgoaziou.fr
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

Toggle quote (9 lines)
> I updated Kei's patch for Audacious 4.0.5. I dropped GTK-2, as it is in
> maintenance mode only, and Qt is upstream default toolkit.
>
> This is a beast, guix size reports 1459 MiB, but I assume its users do
> not expect anything lightweight, since it is comes with plenty of
> plugins.
>
> WDYT?

Applied. Closing.
Closed
?