From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:34455) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i6c9B-0002ZH-3F for guix-patches@gnu.org; Sat, 07 Sep 2019 10:57:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i6c99-0007r1-7b for guix-patches@gnu.org; Sat, 07 Sep 2019 10:57:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:57399) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i6c98-0007pd-R1 for guix-patches@gnu.org; Sat, 07 Sep 2019 10:57:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i6c98-0002qI-KE for guix-patches@gnu.org; Sat, 07 Sep 2019 10:57:02 -0400 Subject: [bug#37329] [PATCH] gnu: Add audacious. Resent-Message-ID: From: Kei Kebreau References: <20190907045755.6578-1-kkebreau@posteo.net> <87ef0swcrf.fsf@nckx> Date: Sat, 07 Sep 2019 10:56:02 -0400 In-Reply-To: <87ef0swcrf.fsf@nckx> (Tobias Geerinckx-Rice's message of "Sat, 07 Sep 2019 13:45:40 +0200") Message-ID: <87imq4xiil.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Tobias Geerinckx-Rice Cc: 37329@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Tobias Geerinckx-Rice writes: > Kei, > > Kei Kebreau =E5=86=99=E9=81=93=EF=BC=9A >> * 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=3D-Wl,-rpath=3D" %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-"=20 >> ,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=3D" >> + out >> "/lib/pkgconfig:" >> + (getenv >> "PKG_CONFIG_PATH")) >> + (string-append "--prefix=3D" >> 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 > =E2=80=94 subjectively =E2=80=94 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 > =E2=80=A6 > total: 1649.2 MiB > > $ guix size audacious # no plugins or plugin inputs > =E2=80=A6 > total: 1333.9 MiB > > Have you considered a separate =E2=80=98audacious-plugins=E2=80=99 packag= e 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, =E2=80=98Foo copied a lot of files from bar once=E2=80=99 is= never a > useful answer to =E2=80=98What is foo?=E2=80=99. > > All =E2=80=98XMMS=E2=80=99 means to me is =E2=80=98that ugly audio player= I installed and then > immediately removed in the nineties=E2=80=99. Now, that may be all I nee= d 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=E2=80=99s 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: > > =E2=80=9CPlease note that many of the plugins distributed with Audacious= are > under > different licenses.=E2=80=9D > > 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 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----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----- --=-=-=--