guix-more/more/packages/cdrom.scm

cdrom.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
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
19
(define-module (more packages cdrom)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (guix packages)
22
  #:use-module (guix download)
23
  #:use-module (guix build-system gnu)
24
  #:use-module (gnu packages)
25
  #:use-module (gnu packages acl)
26
  #:use-module (gnu packages m4)
27
  #:use-module (gnu packages linux))
28
29
(define-public cdrtools
30
  (package
31
    (name "cdrtools")
32
    (version "3.02a07")
33
    (source (origin
34
              (method url-fetch)
35
              (uri (string-append
36
                    "mirror://sourceforge/cdrtools/alpha/cdrtools-"
37
                    version ".tar.bz2"))
38
              (file-name (string-append name "-" version ".tar.bz2"))
39
              (sha256
40
               (base32
41
                "06s9y0z5s5011hgi3fps2540vd3pcv5ih7fl0l5pqgddlxzsdha9"))))
42
    (build-system gnu-build-system)
43
    (native-inputs
44
     `(("m4" ,m4)))
45
    (inputs
46
     `(("acl" ,acl)
47
       ("libcap" ,libcap)))
48
    (arguments
49
     `(#:phases
50
       (modify-phases %standard-phases
51
         (add-before 'configure 'fix-binaries
52
           (lambda* (#:key #:allow-other-keys)
53
             (setenv "CONFIG_SHELL" (which "sh"))
54
             (substitute* "RULES/rules.prg"
55
               (("/bin/rm") (which "rm"))
56
               (("/bin/ln") (which "ln"))
57
               (("/bin/mv") (which "mv")))
58
             (substitute* "cdda2wav/configure"
59
               (("#! /bin/sh") (string-append "#!" (which "sh"))))
60
             (substitute* "autoconf/acgeneral.m4"
61
               (("#! /bin/sh") (string-append "#!" (which "sh"))))
62
             (substitute* "autoconf/configure"
63
               (("#! /bin/sh") (string-append "#!" (which "sh"))))))
64
         (replace 'configure
65
           (lambda* (#:key outputs #:allow-other-keys)
66
             (substitute* "DEFAULTS/Defaults.linux"
67
               (("/opt/schily") (assoc-ref outputs "out"))
68
               (("DEFINSGRP=.*") "DEFINSGRP=root"))))
69
         (add-after 'install 'create-compatibility-links
70
           (lambda* (#:key outputs #:allow-other-keys)
71
             (let ((bin-dir (string-append (assoc-ref outputs "out") "/bin")))
72
               (symlink (string-append bin-dir "/cdrecord")
73
                        (string-append bin-dir "/wodim"))
74
               (symlink (string-append bin-dir "/readcd")
75
                        (string-append bin-dir "/readom"))
76
               (symlink (string-append bin-dir "/mkisofs")
77
                        (string-append bin-dir "/genisoimage"))
78
               (symlink (string-append bin-dir "/cdda2wav")
79
                        (string-append bin-dir "/icedax"))))))
80
       #:make-flags
81
       (list (string-append "INS_BASE=" (assoc-ref %outputs "out"))
82
             (string-append "INS_RBASE=" (assoc-ref %outputs "out"))
83
             "XCC_COM=gcc")
84
       #:parallel-build? #f
85
       #:tests? #f))
86
    (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html")
87
    (synopsis "CD utilities collection")
88
    (description
89
     "CD utilities collection.")
90
    (license (list license:gpl2+ license:lgpl2.1))))
91