GNU bug report logs - #37329
[PATCH] gnu: Add audacious.

Previous Next

Package: guix-patches;

Reported by: Kei Kebreau <kkebreau <at> posteo.net>

Date: Sat, 7 Sep 2019 04:59:01 UTC

Severity: normal

Tags: patch

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.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 37329 in the body.
You can then email your comments to 37329 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 guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 04:59:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kei Kebreau <kkebreau <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 07 Sep 2019 04:59:01 GMT) Full text and rfc822 format available.

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

From: Kei Kebreau <kkebreau <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: Kei Kebreau <kkebreau <at> posteo.net>
Subject: [PATCH] gnu: Add audacious.
Date: Sat,  7 Sep 2019 00:57:55 -0400
* 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"))
+       #: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





Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 11:46:01 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: guix-patches <at> gnu.org
Cc: Kei Kebreau <kkebreau <at> posteo.net>, 37329 <at> debbugs.gnu.org
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Sat, 07 Sep 2019 13:45:40 +0200
[Message part 1 (text/plain, inline)]
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"
> +             ;; 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.

> +       #: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.  :-)

> +               #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!

> +                               "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]?

> +       ("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?

> +    (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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 11:46:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 12:05:02 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 37329 <at> debbugs.gnu.org, kkebreau <at> posteo.net
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Sat, 07 Sep 2019 14:04:19 +0200
[Message part 1 (text/plain, inline)]
Kei,

Tobias Geerinckx-Rice via Guix-patches via 写道:
>> +    (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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 14:57:02 GMT) Full text and rfc822 format available.

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

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: 37329 <at> debbugs.gnu.org
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Sat, 07 Sep 2019 10:56:02 -0400
[Message part 1 (text/plain, inline)]
Tobias Geerinckx-Rice <me <at> tobias.gr> writes:

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

>> +             ;; 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!

>> +       #: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?

>> +               #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!

>> +                               "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.

>> +       ("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"?

>> +    (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!

> Thanks!
>
> T G-R

Thanks for reviewing!

Kei
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sat, 07 Sep 2019 20:44:01 GMT) Full text and rfc822 format available.

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

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Kei Kebreau <kkebreau <at> posteo.net>
Cc: Tobias Geerinckx-Rice <me <at> tobias.gr>, 37329 <at> debbugs.gnu.org
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Sat, 07 Sep 2019 22:43:23 +0200
Kei Kebreau <kkebreau <at> 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…?

>>> +       #: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





Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Sun, 08 Sep 2019 00:19:02 GMT) Full text and rfc822 format available.

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

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Ricardo Wurmus <rekado <at> elephly.net>
Cc: Tobias Geerinckx-Rice <me <at> tobias.gr>, 37329 <at> debbugs.gnu.org
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Sat, 07 Sep 2019 20:18:28 -0400
[Message part 1 (text/plain, inline)]
Ricardo Wurmus <rekado <at> elephly.net> writes:

> Kei Kebreau <kkebreau <at> 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

>>>> +       #: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.

[0001-gnu-Add-audacious.patch (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#37329; Package guix-patches. (Wed, 18 Nov 2020 17:15:02 GMT) Full text and rfc822 format available.

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

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 37329 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add audacious.
Date: Wed, 18 Nov 2020 18:14:12 +0100
[Message part 1 (text/plain, inline)]
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
[0001-gnu-Add-audacious.patch (text/x-diff, inline)]
From 96b9869fe7380299048ecd019ed9bc106c0c03ff Mon Sep 17 00:00:00 2001
From: Kei Kebrau <kkebrau <at> posteo.net>
Date: Wed, 18 Nov 2020 18:05:38 +0100
Subject: [PATCH] gnu: Add audacious.

* gnu/packages/music.scm (audacious): New variable.
---
 gnu/packages/music.scm | 117 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 0728144b60..c69182fbee 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -158,6 +158,123 @@
   #:use-module (gnu packages lua)
   #:use-module ((srfi srfi-1) #:select (last)))
 
+(define-public audacious
+  (package
+    (name "audacious")
+    (version "4.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://distfiles.audacious-media-player.org/"
+                           "audacious-" version ".tar.bz2"))
+       (sha256
+        (base32 "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (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)
+               #t)))
+         (add-after 'unpack-plugins 'configure-plugins
+           (lambda* (#:key configure-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (with-directory-excursion
+                   (string-append "audacious-plugins-" ,version)
+                 (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 _
+             (with-directory-excursion
+                 (string-append "audacious-plugins-" ,version)
+               (invoke "make" "-j" (number->string (parallel-job-count))))))
+         (add-after 'build-plugins 'install-plugins
+           (lambda _
+             (with-directory-excursion
+                 (string-append "audacious-plugins-" ,version)
+               (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 "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz"))))
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")         ; for gdbus-codegen
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ;; Plugin dependencies
+       ("alsa-lib" ,alsa-lib)
+       ("curl" ,curl)
+       ("faad2" ,faad2)
+       ("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("fluidsynth" ,fluidsynth)
+       ("lame" ,lame)
+       ("libbs2b" ,libbs2b)
+       ("libcddb" ,libcddb)
+       ("libcdio-paranoia" ,libcdio-paranoia)
+       ("libcue" ,libcue)
+       ("libmodplug" ,libmodplug)
+       ("libnotify" ,libnotify)
+       ("libogg" ,libogg)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("libvorbis" ,libvorbis)
+       ("libxcomposite" ,libxcomposite)
+       ("libxml2" ,libxml2)
+       ("libxrender" ,libxrender)
+       ("lirc" ,lirc)
+       ("jack" ,jack-1)
+       ("mesa" ,mesa)
+       ("mpg123" ,mpg123)
+       ("neon" ,neon)
+       ("pulseaudio" ,pulseaudio)
+       ("sdl2" ,sdl2)
+       ("soxr" ,soxr)
+       ("wavpack" ,wavpack)))
+    (home-page "https://audacious-media-player.org")
+    (synopsis "Modular and skinnable audio player")
+    (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
+                   ;; Plugin licenses that aren't BSD 2- or 3-clause.
+                   license:lgpl2.1
+                   license:gpl2
+                   license:gpl3
+                   license:expat
+                   license:isc
+                   license:lgpl2.0))))
+
 (define-public aria-maestosa
   (package
     (name "aria-maestosa")
-- 
2.29.2


Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Thu, 26 Nov 2020 17:36:02 GMT) Full text and rfc822 format available.

Notification sent to Kei Kebreau <kkebreau <at> posteo.net>:
bug acknowledged by developer. (Thu, 26 Nov 2020 17:36:02 GMT) Full text and rfc822 format available.

Message #31 received at 37329-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 37329-done <at> debbugs.gnu.org
Subject: Re: [bug#37329] [PATCH] gnu: Add audacious.
Date: Thu, 26 Nov 2020 18:35:33 +0100
Nicolas Goaziou <mail <at> nicolasgoaziou.fr> writes:

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




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

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

Previous Next


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