[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#37329] [PATCH] gnu: Add audacious.
From: |
Tobias Geerinckx-Rice |
Subject: |
[bug#37329] [PATCH] gnu: Add audacious. |
Date: |
Sat, 07 Sep 2019 13:45:40 +0200 |
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
Description: PGP signature