summary refs log tree commit diff
path: root/gnu/packages/cdrom.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/cdrom.scm')
-rw-r--r--gnu/packages/cdrom.scm175
1 files changed, 174 insertions, 1 deletions
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 7e86753abe..15329b3109 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
+;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,7 +27,7 @@
 (define-module (gnu packages cdrom)
   #:use-module (guix download)
   #:use-module (guix packages)
-  #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+))
+  #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0))
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
@@ -36,19 +37,29 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages zip)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages elf)
+  #:use-module (gnu packages wxwidgets)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages base)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages photo)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages wget)
   #:use-module (gnu packages xiph))
 
@@ -197,6 +208,104 @@ extra-robust data verification, synchronization, error handling and scratch
 reconstruction capability.")
     (license gpl2))) ; libraries under lgpl2.1
 
+(define-public cdrtools
+  (package
+    (name "cdrtools")
+    (version "3.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d"))
+              (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
+    (build-system gnu-build-system)
+    ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'set-linux-headers
+           (lambda _
+             (substitute* "autoconf/configure"
+               (("/usr/src/linux")
+                (assoc-ref %build-inputs "linux-headers")))
+             #t))
+         (add-before 'build 'substitute-dirs
+           (lambda _
+             (substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
+                                  (find-files "DEFAULTS_ENG" "^Defaults\\.")
+                                  (find-files "TEMPLATES" "^Defaults\\."))
+               (("/opt/schily") (assoc-ref %outputs "out")))
+             #t))
+         (replace 'build
+           (lambda _
+             (zero?
+              (system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm"))))
+         (replace 'install
+           (lambda _
+             (zero?
+              (system* "make"
+                       "RM=rm" "LN=ln" "SYMLINK=ln -s"
+                       (string-append "INS_BASE=" (assoc-ref %outputs "out"))
+                       (string-append "INS_RBASE=" (assoc-ref %outputs "out"))
+                       "install" )))))
+       #:tests? #f))  ; no tests
+   (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
+   (description "cdrtools is a collection of command line utilities to create
+CD's, DVD's or Blue Ray discs.  The most important components are
+@command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper
+which uses libparanoia, and @command{mkisofs}, which can create various disc
+images.")
+   (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html")
+
+   ;; mkisofs is GPL, the other programs are CDDL.
+   (license (list cddl1.0 gpl2))))
+
+(define-public dvd+rw-tools
+  (package
+    (name "dvd+rw-tools")
+    (version "7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq"))
+              (patches (search-patches "dvd+rw-tools-add-include.patch"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("cdrtools" ,cdrtools)))
+    (native-inputs
+     `(("m4" ,m4)))
+    (arguments
+     `(#:tests? #f ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t))
+         (add-before 'build 'embed-mkisofs
+           (lambda*  (#:key inputs #:allow-other-keys)
+             ;; We use sed --in-place because substitute* cannot handle the
+             ;; character encoding used by growisofs.c.
+             (zero? (system* "sed" "-i" "-e"
+                             (string-append
+                              "s,\"mkisofs\","
+                              "\"" (which "mkisofs") "\",")
+                             "growisofs.c")))))))
+    (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/")
+    (synopsis "DVD and Blu-ray Disc burning tools")
+    (description "dvd+rw-tools, mostly known for its command
+@command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools.
+It requires another program, such as @command{mkisofs}, @command{genisoimage},
+or @command{xorrisofs} to create ISO 9660 images.")
+    (license gpl2)))
+
 (define-public dvdisaster
   (package
     (name "dvdisaster")
@@ -238,6 +347,70 @@ depend on the file system of the medium.  The maximum error correction
 capacity is user-selectable.")
     (license gpl2+)))
 
+(define-public dvdstyler
+  (package
+    (name "dvdstyler")
+    (version "3.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/"
+                            version "/DVDStyler-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1j432kszmwmsd3nz398h5514dbm5vsrn4rr3iil72ckjj1h3i00q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append "XMLTO="
+                                              (assoc-ref %build-inputs "xmlto")
+                                              "/bin/xmlto"
+                                              " --searchpath "
+                                              (assoc-ref %build-inputs "docbook-xsl")
+                                              "/xml/xsl/docbook-xsl-1.79.1/htmlhelp:"
+                                              (assoc-ref %build-inputs "docbook-xml")
+                                              "/xml/dtd/docbook"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler")
+               `("PATH" ":" prefix
+                 (,(string-join
+                    (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+                         '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg"))
+                    ":"))))
+             #t)))
+       #:tests? #f)) ; No tests.
+    (inputs ; TODO package bundled wxvillalib
+     `(("wxwidgets" ,wxwidgets-3.1)
+       ("wssvg" ,wxsvg)
+       ("dbus" ,dbus)
+       ("cdrtools" ,cdrtools)
+       ("dvd+rw-tools" ,dvd+rw-tools)
+       ("dvdauthor" ,dvdauthor)
+       ("eudev" ,eudev)
+       ("fontconfig" ,fontconfig)
+       ("libexif" ,libexif)
+       ("libjpeg" ,libjpeg)
+       ("ffmpeg" ,ffmpeg)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("flex" ,flex)
+       ("python" ,python-2)
+       ("xmlto" ,xmlto)
+       ("gettext" ,gnu-gettext)
+       ("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("zip" ,zip)))
+    (synopsis "DVD authoring application")
+    (description "DVDStyler is a DVD authoring application which allows users
+to burn video files in many formats to DVD discs, complete with individually
+designed menus.  It can be used to create professional-looking DVD's with
+custom buttons, backgrounds and animations, from within a user-friendly
+graphical interface.")
+    (home-page "https://www.dvdstyler.org")
+    (license gpl2)))
+
 (define-public libcue
   (package
     (name "libcue")