X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/9f388b1ee1733d84edff7f473cbcbc4ab42b7128..515b74694528d13614077c43407ff94a2dfa0c5a:/gnu/packages/mp3.scm diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 5904fef8d3..fdc8ba801f 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -1,11 +1,13 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Pierre Langlois -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2019, 2020 Pierre Langlois +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2019 Ricardo Wurmus +;;; Copyright © 2020 Michael Rohleder ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +32,7 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -39,12 +42,15 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages xiph) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages linux) ;alsa-lib #:use-module (gnu packages video) ;ffmpeg #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system python) @@ -64,7 +70,8 @@ "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv")) (patches (search-patches "libmad-armv7-thumb-pt1.patch" "libmad-armv7-thumb-pt2.patch" - "libmad-frame-length.patch" + "libmad-md_size.patch" + "libmad-length-check.patch" "libmad-mips-newgcc.patch")))) (build-system gnu-build-system) (arguments @@ -84,7 +91,7 @@ fully implemented. This package contains the library.") (license license:gpl2+) - (home-page "http://www.underbit.com/products/mad/"))) + (home-page "https://www.underbit.com/products/mad/"))) (define-public libid3tag (package @@ -105,7 +112,7 @@ This package contains the library.") "Libid3tag is a library for reading ID3 tags, both ID3v1 and the various versions of ID3v2.") (license license:gpl2+) - (home-page "http://www.underbit.com/products/mad/"))) + (home-page "https://www.underbit.com/products/mad/"))) (define-public id3lib (package @@ -121,7 +128,8 @@ versions of ID3v2.") (modules '((guix build utils))) ;; Don't use bundled zlib (snippet '(begin (delete-file-recursively "zlib") #t)) - (patches (search-patches "id3lib-CVE-2007-4460.patch")))) + (patches (search-patches "id3lib-CVE-2007-4460.patch" + "id3lib-UTF16-writing-bug.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (arguments @@ -153,20 +161,33 @@ a highly stable and efficient implementation.") (define-public taglib (package (name "taglib") - (version "1.11.1") + (version "1.12-beta-1") (source (origin - (method url-fetch) - (uri (string-append "http://taglib.github.io/releases/taglib-" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/taglib/taglib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn")))) + "1mp6w2ikniw8w6d5wr0h20j0ijg8jw7s9dli5a8k9znpznvxpym4")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on. - #:configure-flags (list "-DBUILD_SHARED_LIBS=ON"))) + #:configure-flags (list "-DBUILD_SHARED_LIBS=ON") + #:phases (modify-phases %standard-phases + (add-before 'configure 'adjust-zlib-ldflags + (lambda* (#:key inputs #:allow-other-keys) + ;; Make sure users of 'taglib-config --libs' get the -L + ;; flag for zlib. + (substitute* "CMakeLists.txt" + (("set\\(ZLIB_LIBRARIES_FLAGS -lz\\)") + (string-append "set(ZLIB_LIBRARIES_FLAGS \"-L" + (assoc-ref inputs "zlib") + "/lib -lz\")"))) + #t))))) (inputs `(("zlib" ,zlib))) - (home-page "http://taglib.org") + (home-page "https://taglib.org") (synopsis "Library to access audio file meta-data") (description "TagLib is a C++ library for reading and editing the meta-data of several @@ -184,7 +205,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (source (origin (method url-fetch) (uri (string-append - "http://ibiblio.org" + "https://ibiblio.org" "/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" version ".tgz")) (sha256 @@ -231,7 +252,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (inputs `(("gtk+" ,gtk+-2) ("ncurses" ,ncurses))) - (home-page "http://www.ibiblio.org/mp3info/") + (home-page "https://www.ibiblio.org/mp3info/") (synopsis "MP3 technical info viewer and ID3 1.x tag editor") (description "MP3Info is a little utility used to read and modify the ID3 tags of MP3 @@ -303,22 +324,24 @@ This package contains the binary.") (define-public mpg123 (package (name "mpg123") - (version "1.25.8") - (source (origin - (method url-fetch) - (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/" - version "/mpg123-" version ".tar.bz2") - (string-append - "http://www.mpg123.org/download/mpg123-" - version ".tar.bz2"))) - (sha256 - (base32 - "16s9z1xc5kv1p90g42vsr9m4gq3dwjsmrj873x4i8601mvpm3nkr")))) + (version "1.26.3") + (source + (origin + (method url-fetch) + (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/" + version "/mpg123-" version ".tar.bz2") + (string-append + "https://www.mpg123.org/download/mpg123-" + version ".tar.bz2"))) + (sha256 + (base32 "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-default-audio=pulse"))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("pulseaudio" ,pulseaudio) - ("alsa-lib" ,alsa-lib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio))) (home-page "https://www.mpg123.org/") (synopsis "Console MP3 player and decoder library") (description @@ -413,7 +436,7 @@ for album and track information.") (source (origin (method url-fetch) (uri (string-append - "http://files.musepack.net/source/libmpcdec-" + "https://files.musepack.net/source/libmpcdec-" version ".tar.bz2")) (sha256 (base32 @@ -424,7 +447,7 @@ for album and track information.") "This library supports decoding of the Musepack (MPC) audio compression format.") (license license:bsd-3) - (home-page "http://musepack.net"))) + (home-page "https://musepack.net"))) (define-public mpc123 (package @@ -470,34 +493,34 @@ compression format (.mpc files).") (define-public eyed3 (package (name "eyed3") - (version "0.8") - (source (origin - (method url-fetch) - (uri (string-append - "http://eyed3.nicfit.net/releases/eyeD3-" - version ".tar.gz")) - (sha256 - (base32 - "1dcswb0f6w3b05s1v43pq8fmavkd5g88ysndn9160wlaa1v9n40h")))) + (version "0.8.12") + (source + (origin + (method url-fetch) + (uri (pypi-uri "eyeD3" version)) + (sha256 + (base32 "0vabr7hh6vy1w8gn35vmx9qwiyrfv734d5ahifg7x3pv0c5fqkp5")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ; the required test data contains copyrighted material. + `(#:tests? #f)) ; the required test data contains copyrighted material (propagated-inputs - `(("python-six" ,python-six) - ("python-grako" ,python-grako))) + `(("python-grako" ,python-grako) + ("python-magic" ,python-magic) + ("python-pathlib" ,python-pathlib) + ("python-six" ,python-six))) (synopsis "MP3 tag ID3 metadata editor") (description "eyeD3 is a Python tool for working with audio files, specifically mp3 files containing ID3 metadata (i.e. song info). It provides a command-line tool (eyeD3) and a Python library (import eyed3) that can be used to write your own applications or plugins that are callable from the command-line tool.") - (home-page "http://eyed3.nicfit.net/") + (home-page "https://eyed3.readthedocs.io/en/latest/") (license license:gpl2+))) (define-public chromaprint (package (name "chromaprint") - (version "1.4.3") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append @@ -505,20 +528,67 @@ command-line tool.") version "/chromaprint-" version ".tar.gz")) (sha256 (base32 - "10kz8lncal4s2rp2rqpgc6xyjp0jzcrihgkx7chf127vfs5n067a")))) + "0sknmyl5254rc55bvkhfwpl4dfvz45xglk1rq8zq5crmwq058fjp")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; tests require googletest *sources* ;;#:configure-flags '("-DBUILD_TESTS=ON") ; for building the tests + #:configure-flags '("-DBUILD_TOOLS=ON") ; for fpcalc #:test-target "check")) (inputs ;; requires one of FFmpeg (prefered), FFTW3 or vDSP ;; use the same ffmpeg version as for acoustid-fingerprinter `(("ffmpeg" ,ffmpeg) - ("boots" ,boost))) + ("boost" ,boost))) (home-page "https://acoustid.org/chromaprint") (synopsis "Audio fingerprinting library") (description "Chromaprint is a library for calculating audio fingerprints which are used by the Acoustid service. Its main purpose is to provide an accurate identifier for record tracks.") (license license:lgpl2.1+))) + +(define-public python-audioread + (package + (name "python-audioread") + (version "2.1.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "audioread" version)) + (sha256 + (base32 + "0s6iilb8ca6j6nv5a5hbyxi5alr3crvsbr6kggh82a44pkx08f87")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; there is no "audiofile" fixture + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/sampsyo/audioread") + (synopsis "Decode audio files using whichever backend is available") + (description + "This package provides a Python library for audo decoding. It uses +whatever audio backend is available, such as GStreamer, Core Audio, MAD, +FFmpeg, etc.") + (license license:expat))) + +(define-public python-pyacoustid + (package + (name "python-pyacoustid") + (version "1.1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyacoustid" version)) + (sha256 + (base32 + "1zan6c22ca6sjy0g9ajwjp6mkzw7jv8r3n7jzska09a6x254lf87")))) + (build-system python-build-system) + (propagated-inputs + `(("python-audioread" ,python-audioread) + ("python-requests" ,python-requests))) + (home-page "https://github.com/sampsyo/pyacoustid") + (synopsis "Bindings for Chromaprint acoustic fingerprinting") + (description + "This package provides bindings for the Chromaprint acoustic +fingerprinting library and the Acoustid API.") + (license license:expat)))