Subject: [PATCH 2/7] gnu: Add dvd+rw-tools.

From: Thomas Danckaert <[email-masked]>
Date: Wed, 26 Apr 2017 18:30:33 +0200

From: Thomas Danckaert <[email-masked]>

* gnu/packages/cdrom.scm (dvd+rw-tools): New variable.
* gnu/packages/patches/dvd+rw-tools-add-include.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/cdrom.scm                             | 44 ++++++++++++++++++++++
 .../patches/dvd+rw-tools-add-include.patch         | 14 +++++++
 3 files changed, 59 insertions(+)
 create mode 100644 gnu/packages/patches/dvd+rw-tools-add-include.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a2c56e03d..22431ddc0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -544,6 +544,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/doc++-include-directives.patch		\
   %D%/packages/patches/doc++-segfault-fix.patch			\
   %D%/packages/patches/doxygen-test.patch			\
+  %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-disable-failing-tests.patch	\
   %D%/packages/patches/einstein-build.patch			\
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 69af39655..5c1ac4a50 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016 Alex Kost <[email-masked]>
 ;;; Copyright © 2016 Marius Bakke <[email-masked]>
 ;;; Copyright © 2017 John Darrington <[email-masked]>
+;;; Copyright © 2017 Thomas Danckaert <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@
   #: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)
@@ -258,6 +260,48 @@ images.")
    ;; 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.
+             (system* "sed" "-i" "-e"
+                      (string-append
+                       "s,\"mkisofs\","
+                       "\"" (assoc-ref inputs "cdrtools") "/bin/mkisofs\",")
+                      "growisofs.c")
+             #t)))))
+    (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")
diff --git a/gnu/packages/patches/dvd+rw-tools-add-include.patch b/gnu/packages/patches/dvd+rw-tools-add-include.patch
new file mode 100644
index 000000000..800f8f30b
--- /dev/null
+++ b/gnu/packages/patches/dvd+rw-tools-add-include.patch
@@ -0,0 +1,14 @@
+Without <limits.h>, INT_MAX is not defined.
+
+diff --git a/transport.hxx b/transport.hxx
+index 35a57a7..838add6 100644
+--- a/transport.hxx
++++ b/transport.hxx
+@@ -11,6 +11,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <limits.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
-- 
2.12.2