* [bug#37329] [PATCH] gnu: Add audacious. @ 2019-09-07 4:57 Kei Kebreau 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via 2020-11-18 17:14 ` Nicolas Goaziou 0 siblings, 2 replies; 8+ messages in thread From: Kei Kebreau @ 2019-09-07 4:57 UTC (permalink / raw) To: 37329; +Cc: 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")) + #: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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 4:57 [bug#37329] [PATCH] gnu: Add audacious Kei Kebreau @ 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 12:04 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 14:56 ` Kei Kebreau 2020-11-18 17:14 ` Nicolas Goaziou 1 sibling, 2 replies; 8+ messages in thread From: Tobias Geerinckx-Rice via Guix-patches via @ 2019-09-07 11:45 UTC (permalink / raw) To: 37329; +Cc: kkebreau [-- Attachment #1: Type: text/plain, Size: 7063 bytes --] 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via @ 2019-09-07 12:04 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 14:56 ` Kei Kebreau 1 sibling, 0 replies; 8+ messages in thread From: Tobias Geerinckx-Rice via Guix-patches via @ 2019-09-07 12:04 UTC (permalink / raw) To: 37329, kkebreau [-- Attachment #1: Type: text/plain, Size: 480 bytes --] 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 12:04 ` Tobias Geerinckx-Rice via Guix-patches via @ 2019-09-07 14:56 ` Kei Kebreau 2019-09-07 20:43 ` Ricardo Wurmus 1 sibling, 1 reply; 8+ messages in thread From: Kei Kebreau @ 2019-09-07 14:56 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: 37329 [-- Attachment #1: Type: text/plain, Size: 8087 bytes --] Tobias Geerinckx-Rice <me@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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 14:56 ` Kei Kebreau @ 2019-09-07 20:43 ` Ricardo Wurmus 2019-09-08 0:18 ` Kei Kebreau 0 siblings, 1 reply; 8+ messages in thread From: Ricardo Wurmus @ 2019-09-07 20:43 UTC (permalink / raw) To: Kei Kebreau; +Cc: 37329 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…? >>> + #: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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 20:43 ` Ricardo Wurmus @ 2019-09-08 0:18 ` Kei Kebreau 0 siblings, 0 replies; 8+ messages in thread From: Kei Kebreau @ 2019-09-08 0:18 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: 37329 [-- Attachment #1.1: Type: text/plain, Size: 2064 bytes --] Ricardo Wurmus <rekado@elephly.net> writes: > 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 >>>> + #: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. [-- Attachment #1.2: 0001-gnu-Add-audacious.patch --] [-- Type: text/plain, Size: 7185 bytes --] From 7b2b638fc518d9362f1715144d4f50fa5761dcb0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau <kkebreau@posteo.net> Date: Sat, 7 Sep 2019 00:48:16 -0400 Subject: [PATCH] gnu: Add audacious. * gnu/packages/music.scm (audacious): New variable. --- gnu/packages/music.scm | 147 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 146 insertions(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a43bccf4f8..0037566519 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -141,7 +141,7 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages golang) #:use-module (gnu packages lua) - #:use-module ((srfi srfi-1) #:select (last))) + #:use-module ((srfi srfi-1) #:select (alist-delete last))) (define-public aria-maestosa (package @@ -203,6 +203,151 @@ 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 (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 + "0hi61825ayrwc4snwr76f2669k06fii3n8ll1szjk5zr65v1ghzf")))) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for gdbus-codegen + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus" ,dbus) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ;; Plugin dependencies + ("alsa-lib" ,alsa-lib) + ("curl" ,curl) + ("faad2" ,faad2) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("fluidsynth" ,fluidsynth) + ("gdk-pixbuf" ,gdk-pixbuf) + ("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:gpl2+ + license:gpl3 + license:gpl3+ + license:expat + license:isc + license:lgpl2.0)))) + +(define-public audacious-qt + (package + (inherit audacious) + (name "audacious-qt") + (arguments + (substitute-keyword-arguments (package-arguments audacious) + ((#:configure-flags flags) + `(cons* "--disable-gtk" "--enable-qt" ,flags)))) + (inputs + `(("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ,@(alist-delete "gtk+" (package-inputs audacious)))))) + +(define-public audacious-both + (package + (inherit audacious) + (name "audacious-both") + (arguments + (substitute-keyword-arguments (package-arguments audacious) + ((#:configure-flags flags) + `(cons* "--enable-qt" ,flags)))) + (inputs + `(("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ,@(package-inputs audacious))))) + ;; 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#37329] [PATCH] gnu: Add audacious. 2019-09-07 4:57 [bug#37329] [PATCH] gnu: Add audacious Kei Kebreau 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via @ 2020-11-18 17:14 ` Nicolas Goaziou 2020-11-26 17:35 ` bug#37329: " Nicolas Goaziou 1 sibling, 1 reply; 8+ messages in thread From: Nicolas Goaziou @ 2020-11-18 17:14 UTC (permalink / raw) To: 37329 [-- Attachment #1: Type: text/plain, Size: 323 bytes --] 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 [-- Attachment #2: Add audacious --] [-- Type: text/x-diff, Size: 5744 bytes --] From 96b9869fe7380299048ecd019ed9bc106c0c03ff Mon Sep 17 00:00:00 2001 From: Kei Kebrau <kkebrau@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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#37329: [PATCH] gnu: Add audacious. 2020-11-18 17:14 ` Nicolas Goaziou @ 2020-11-26 17:35 ` Nicolas Goaziou 0 siblings, 0 replies; 8+ messages in thread From: Nicolas Goaziou @ 2020-11-26 17:35 UTC (permalink / raw) To: 37329-done Nicolas Goaziou <mail@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. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-11-26 17:36 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-09-07 4:57 [bug#37329] [PATCH] gnu: Add audacious Kei Kebreau 2019-09-07 11:45 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 12:04 ` Tobias Geerinckx-Rice via Guix-patches via 2019-09-07 14:56 ` Kei Kebreau 2019-09-07 20:43 ` Ricardo Wurmus 2019-09-08 0:18 ` Kei Kebreau 2020-11-18 17:14 ` Nicolas Goaziou 2020-11-26 17:35 ` bug#37329: " Nicolas Goaziou
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).