From 7b2b638fc518d9362f1715144d4f50fa5761dcb0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau 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