You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

267 lines
10 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
  3. ;;;
  4. ;;; This file is part of GNU Guix.
  5. ;;;
  6. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  7. ;;; under the terms of the GNU General Public License as published by
  8. ;;; the Free Software Foundation; either version 3 of the License, or (at
  9. ;;; your option) any later version.
  10. ;;;
  11. ;;; GNU Guix is distributed in the hope that it will be useful, but
  12. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ;;; GNU General Public License for more details.
  15. ;;;
  16. ;;; You should have received a copy of the GNU General Public License
  17. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  18. (define-module (gnu packages mp3)
  19. #:use-module ((guix licenses)
  20. #:renamer (symbol-prefix-proc 'license:))
  21. #:use-module (gnu packages)
  22. #:use-module (gnu packages autotools)
  23. #:use-module (gnu packages cdrom)
  24. #:use-module (gnu packages compression)
  25. #:use-module (gnu packages ghostscript)
  26. #:use-module (gnu packages glib)
  27. #:use-module (gnu packages gtk)
  28. #:use-module (gnu packages oggvorbis)
  29. #:use-module (gnu packages pcre)
  30. #:use-module (gnu packages pkg-config)
  31. #:use-module (guix packages)
  32. #:use-module (guix download)
  33. #:use-module (guix build-system gnu))
  34. (define-public libmad
  35. (package
  36. (name "libmad")
  37. (version "0.15.1b")
  38. (source (origin
  39. (method url-fetch)
  40. (uri (string-append "mirror://sourceforge/mad/libmad/"
  41. version "/libmad-"
  42. version ".tar.gz"))
  43. (sha256
  44. (base32
  45. "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
  46. (patches (list (search-patch "libmad-mips-newgcc.patch")))))
  47. (build-system gnu-build-system)
  48. (arguments
  49. `(#:phases
  50. (alist-replace
  51. 'configure
  52. (lambda* (#:key #:allow-other-keys #:rest args)
  53. (let ((configure (assoc-ref %standard-phases 'configure)))
  54. ;; remove option that is not supported by gcc any more
  55. (substitute* "configure" ((" -fforce-mem") ""))
  56. (apply configure args)))
  57. %standard-phases)))
  58. (synopsis "libmad, an MPEG audio decoder")
  59. (description
  60. "MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to
  61. lower sampling frequencies, as well as the de facto MPEG 2.5 format.
  62. All three audio layers — Layer I, Layer II, and Layer III (i.e. MP3) — are
  63. fully implemented.
  64. This package contains the library.")
  65. (license license:gpl2+)
  66. (home-page "http://www.underbit.com/products/mad/")))
  67. (define-public libid3tag
  68. (package
  69. (name "libid3tag")
  70. (version "0.15.1b")
  71. (source (origin
  72. (method url-fetch)
  73. (uri (string-append "mirror://sourceforge/mad/libid3tag/"
  74. version "/libid3tag-"
  75. version ".tar.gz"))
  76. (sha256
  77. (base32
  78. "0lb1w883dc46dajbdvnia5870brl5lvnlk7g7y58y9wpg5p4znk3"))))
  79. (build-system gnu-build-system)
  80. (inputs `(("zlib" ,zlib)))
  81. (synopsis "libid3tag, a library for reading ID3 tags")
  82. (description
  83. "libid3tag is a library for reading ID3 tags, both ID3v1 and the various
  84. versions of ID3v2")
  85. (license license:gpl2+)
  86. (home-page "http://www.underbit.com/products/mad/")))
  87. (define-public id3lib
  88. (package
  89. (name "id3lib")
  90. (version "3.8.3")
  91. (source (origin
  92. (method url-fetch)
  93. (uri (string-append "mirror://sourceforge/id3lib/id3lib/"
  94. version "/id3lib-"
  95. version ".tar.gz"))
  96. (sha256
  97. (base32
  98. "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"))))
  99. (build-system gnu-build-system)
  100. (arguments
  101. `(#:phases
  102. (alist-replace
  103. 'configure
  104. (lambda* (#:key #:allow-other-keys #:rest args)
  105. (let ((configure (assoc-ref %standard-phases 'configure)))
  106. (substitute* "configure"
  107. (("iomanip.h") "")) ; drop check for unused header
  108. ;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/
  109. (substitute* "include/id3/id3lib_strings.h"
  110. (("include <string>") "include <cstring>\n#include <string>"))
  111. (substitute* "include/id3/writers.h"
  112. (("//\\#include <string.h>") "#include <cstring>"))
  113. (substitute* "examples/test_io.cpp"
  114. (("dami;") "dami;\nusing namespace std;"))
  115. (apply configure args)))
  116. %standard-phases)))
  117. (synopsis "a library for reading, writing, and manipulating ID3v1 and ID3v2 tags")
  118. (description
  119. "id3lib is a cross-platform software development library for reading,
  120. writing, and manipulating ID3v1 and ID3v2 tags. It is an on-going project
  121. whose primary goals are full compliance with the ID3v2 standard, portability
  122. across several platforms, and providing a powerful and feature-rich API with
  123. a highly stable and efficient implementation.")
  124. (license license:lgpl2.0+)
  125. (home-page "http://id3lib.sourceforge.net/")))
  126. (define-public libmp3splt
  127. (package
  128. (name "libmp3splt")
  129. (version "0.8.1a")
  130. (source (origin
  131. (method url-fetch)
  132. (uri (string-append "mirror://sourceforge/mp3splt/libmp3splt/"
  133. version "/libmp3splt-"
  134. version ".tar.gz"))
  135. (sha256
  136. (base32
  137. "0d20r1bd4fgp9kp7w3qixjgll34czck9dgw59mx2kbhb0mhh00d8"))))
  138. (build-system gnu-build-system)
  139. (inputs `(("libid3tag" ,libid3tag)
  140. ("libmad" ,libmad)
  141. ("libogg" ,libogg)
  142. ("libtool" ,libtool)
  143. ("libvorbid" ,libvorbis)
  144. ("pkg-config" ,pkg-config)
  145. ("pcre" ,pcre)))
  146. (synopsis "libmp3splt, a library for splitting mp3 and ogg vorbis files")
  147. (description
  148. "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
  149. and an end time position, without decoding. For splitting an album, one may
  150. select split points and filenames manually or obtain them automatically from
  151. CDDB (internet or a local file) or from .cue files. The tool also supports
  152. automatic silence split, that can be used also to adjust cddb/cue splitpoints.
  153. This package contains the library.")
  154. (license license:gpl2+)
  155. (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
  156. (define-public mp3splt
  157. (package
  158. (name "mp3splt")
  159. (version "2.5.1")
  160. (source (origin
  161. (method url-fetch)
  162. (uri (string-append "mirror://sourceforge/mp3splt/mp3splt/"
  163. version "/mp3splt-"
  164. version ".tar.gz"))
  165. (sha256
  166. (base32
  167. "106dnka56prlc9nsfh300f8841am2lmkwlzgl9lkr25mgnc35wwh"))))
  168. (build-system gnu-build-system)
  169. (inputs `(("libmp3splt" ,libmp3splt)))
  170. (synopsis "mp3splt, a utiliy for splitting mp3 and ogg vorbis files")
  171. (description
  172. "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
  173. and an end time position, without decoding. For splitting an album, one may
  174. select split points and filenames manually or obtain them automatically from
  175. CDDB (internet or a local file) or from .cue files. The tool also supports
  176. automatic silence split, that can be used also to adjust cddb/cue splitpoints.
  177. This package contains the binary.")
  178. (license license:gpl2+)
  179. (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
  180. (define-public mpg321
  181. (package
  182. (name "mpg321")
  183. (version "0.3.1")
  184. (source (origin
  185. (method url-fetch)
  186. (uri (string-append "mirror://sourceforge/mpg321/"
  187. version "/mpg321-" version ".tar.gz"))
  188. (sha256
  189. (base32
  190. "0yamsqvj15nsxxnjs9mgyslzx7krgsfk3q1hk3g6l8w9bbbj770b"))))
  191. (build-system gnu-build-system)
  192. (arguments '(#:configure-flags '("--disable-alsa")))
  193. (inputs
  194. `(("zlib" ,zlib)
  195. ("libmad" ,libmad)
  196. ("libid3tag" ,libid3tag)
  197. ("libao" ,ao)))
  198. (home-page "http://mpg321.sourceforge.net/")
  199. (synopsis "Command-line MP3 player")
  200. (description "mpg321 is a command-line mp3 player. mpg321 is used for
  201. frontends, as an mp3 player and as an mp3 to wave file decoder (primarily for
  202. use with CD-recording software).")
  203. (license license:gpl2)))
  204. (define-public lame
  205. (package
  206. (name "lame")
  207. (version "3.99.5")
  208. (source (origin
  209. (method url-fetch)
  210. (uri (string-append "mirror://sourceforge/lame/lame/3.99/lame-"
  211. version ".tar.gz"))
  212. (sha256
  213. (base32
  214. "1zr3kadv35ii6liia0bpfgxpag27xcivp571ybckpbz4b10nnd14"))))
  215. (build-system gnu-build-system)
  216. (home-page "http://lame.sourceforge.net/")
  217. (synopsis "MPEG Audio Layer III (MP3) encoder")
  218. (description "LAME is a high quality MPEG Audio Layer III (MP3) encoder.")
  219. (license license:lgpl2.0)))
  220. (define-public ripperx
  221. (package
  222. (name "ripperx")
  223. (version "2.7.3")
  224. (source (origin
  225. (method url-fetch)
  226. (uri (string-append "mirror://sourceforge/ripperx/ripperx/"
  227. version "/ripperX-"
  228. version ".tar.gz"))
  229. (sha256
  230. (base32
  231. "130rsb2ly0l6hz728m9qr605ir4073xfl2acvf83id63kxfzjn3x"))
  232. (patches
  233. ;; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713684
  234. (list (search-patch "ripperx-libm.patch")))))
  235. (build-system gnu-build-system)
  236. (propagated-inputs
  237. `(("gs-fonts" ,gs-fonts)
  238. ("cdparanoia" ,cdparanoia)
  239. ("flac" ,flac)
  240. ("lame" ,lame)
  241. ("vorbis-tools" ,vorbis-tools)))
  242. (inputs
  243. `(("glib" ,glib)
  244. ("gtk+" ,gtk+-2)
  245. ("id3lib" ,id3lib)
  246. ("pkg-config" ,pkg-config)))
  247. (synopsis "GTK program to rip and encode CD audio tracks")
  248. (description
  249. "RipperX is a GTK program to rip CD audio tracks and encode them to the
  250. Ogg, MP3, or FLAC formats. It's goal is to be easy to use, requiring only
  251. a few mouse clicks to convert an entire album. It supports CDDB lookups
  252. for album and track information.")
  253. (license license:gpl2)
  254. (home-page "http://sourceforge.net/projects/ripperx/")))