ng0 writes: > * gnu/packages/linux.scm (alsa-plugins): New variable. > --- > gnu/packages/linux.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 63 insertions(+) > > diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm > index 8f0a9ab..3b20c95 100644 > --- a/gnu/packages/linux.scm > +++ b/gnu/packages/linux.scm > @@ -15,6 +15,7 @@ > ;;; Copyright © 2016 Ricardo Wurmus > ;;; Copyright © 2016 David Craven > ;;; Copyright © 2016 John Darrington > +;;; Copyright © 2016 ng0 > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -69,6 +70,8 @@ > #:use-module (gnu packages slang) > #:use-module (gnu packages texinfo) > #:use-module (gnu packages tls) > + #:use-module (gnu packages video) > + #:use-module (gnu packages xiph) > #:use-module (gnu packages xml) > #:use-module (gnu packages xdisorg) > #:use-module (gnu packages xorg) > @@ -869,6 +872,66 @@ MIDI functionality to the Linux-based operating system.") > ;; GPLv2-only. > (license license:gpl2))) > > +(define-public alsa-plugins > + (package > + (name "alsa-plugins") > + (version "1.1.1") > + (source (origin > + (method url-fetch) > + (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" > + name "-" version ".tar.bz2")) > + (sha256 > + (base32 > + "1w81z5jlwqhd1l2m7qrq69lc4k9dnrg1wn52jsl2hrf3hbhd394f")))) > + (build-system gnu-build-system) > + ;; TODO: Split libavcodec and speex if possible. It looks like they can not > + ;; be split, there are references to both in files. > + ;; TODO: Remove OSS related plugins, they add support to run native > + ;; ALSA applications on OSS however we do not offer OSS and OSS is > + ;; obsolete. > + (outputs '("out" "pulseaudio")) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (add-after 'install 'split > + (lambda* (#:key inputs outputs #:allow-other-keys) > + ;; Distribute the binaries to the various outputs. > + (let* ((out (assoc-ref outputs "out")) > + (outlib (string-append out "/lib/alsa-lib")) > + (outconf (string-append out "/share/alsa/alsa.conf.d")) > + (pua (assoc-ref outputs "pulseaudio")) > + (pualib (string-append pua "/lib/alsa-lib")) > + (puaconf (string-append pua "/share/alsa/alsa.conf.d"))) > + (mkdir-p puaconf) > + (mkdir-p pualib) > + (for-each (lambda (file) > + (rename-file file (string-append puaconf "/" file))) > + (find-files out ".*\\.(conf|example)")) > + (for-each (lambda (file) > + (rename-file file (string-append pualib "/" file))) > + (find-files out ".*pulse\\.(la|so)")) > + (delete-file-recursively (string-append out "/share"))) > + #t))))) "find-files" is returning the entire path to the files, so "rename-file" sees the files' destination as "/gnu/store/.../gnu/store...destination-file". You need to adjust find-files accordingly, perhaps by changing into the directory to be copied from first and then calling "find-files" from the current directory ".". Hope that makes sense. :-) > + (inputs > + `(("alsa-lib" ,alsa-lib) > + ("speex" ,speex) ; libspeexdsp resampling plugin > + ("libsamplerate" ,libsamplerate) ; libsamplerate resampling plugin > + ("ffmpeg" ,ffmpeg) ; libavcodec resampling plugin, a52 plugin > + ("pulseaudio" ,pulseaudio))) ; PulseAudio plugin > + (native-inputs > + `(("pkg-config" ,pkg-config))) > + (home-page "http://www.alsa-project.org/") > + (synopsis "Plugins for the Advanced Linux Sound Architecture (ALSA)") > + (description > + "The Advanced Linux Sound Architecture (ALSA) provides audio and > +MIDI functionality to the Linux-based operating system. This package enhances ALSA > +by providing additional plugins which include: upmixing, downmixing, jackd and > +pulseaudio support for native alsa applications, format conversion (s16 to a52), and > +external rate conversion.") > + (license (list license:gpl2+ > + ;; `rate/rate_samplerate.c': LGPL v2.1 or later. > + license:lgpl2.1+)))) > + > (define-public iptables > (package > (name "iptables")