GNU bug report logs - #26669
[PATCH 1/7] gnu: Add cdrtools.

Previous Next

Package: guix-patches;

Reported by: Thomas Danckaert <post <at> thomasdanckaert.be>

Date: Wed, 26 Apr 2017 16:07:01 UTC

Severity: normal

Tags: patch

Done: Thomas Danckaert <post <at> thomasdanckaert.be>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26669 in the body.
You can then email your comments to 26669 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thomas Danckaert <post <at> thomasdanckaert.be>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 26 Apr 2017 16:07:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <post <at> thomasdanckaert.be>
To: guix-patches <at> gnu.org
Subject: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 26 Apr 2017 18:05:34 +0200 (CEST)
[Message part 1 (text/plain, inline)]
Hi,

this patch series adds a few CD/DVD/Blu Ray Disc burning tools.

There is/has been some controversy about the license of cdrtools, 
with claims it cannot be distributed in binary form because it mixes 
CDDL and GPL code.  As far as I understand, mkisofs is GPL, while the 
other executables are CDDL, and I do not really see the problem.  If 
others disagree, or we want to be extra careful, I suppose we can 
disable substitutes for cdrtools, so we only distribute it as source?

cdrtools also bundles a forked LGPL-licensed copy of cdparanoia.  
This is perhaps unfortunate, but I don't think it's easy to unbundle 
it (cdrtools doesn't build agains our current cdparanoia).

Thomas
[0001-gnu-Add-cdrtools.patch (text/x-patch, inline)]
From 96fb5484e4a4d741da685ce63f578feb69bc016f Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Date: Fri, 21 Apr 2017 15:54:20 +0200
Subject: [PATCH 1/7] gnu: Add cdrtools.

* gnu/packages/cdrom.scm (cdrtools): New variable.
* gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |   1 +
 gnu/packages/cdrom.scm                             |  63 ++-
 .../patches/cdrtools-3.01-mkisofs-isoinfo.patch    | 514 +++++++++++++++++++++
 3 files changed, 577 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cb94d27e9..a2c56e03d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -513,6 +513,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/calibre-drop-unrar.patch			\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
   %D%/packages/patches/cdparanoia-fpic.patch			\
+  %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
   %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
   %D%/packages/patches/ceph-disable-unittest-throttle.patch	\
   %D%/packages/patches/ceph-skip-collect-sys-info-test.patch	\
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 7e86753ab..69af39655 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -26,7 +26,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)
@@ -197,6 +197,67 @@ 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)
+   (inputs
+    `(("linux-headers" ,linux-libre-headers)))
+   (native-inputs
+    `(("coreutils" ,coreutils)))
+   (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
+
+      ;; It's unclear if binaries can be distributed due to the mixing of CDDL
+      ;; and GPL code.
+      #:substitutable? #f))
+   (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 dvdisaster
   (package
     (name "dvdisaster")
diff --git a/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch
new file mode 100644
index 000000000..9c817d419
--- /dev/null
+++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch
@@ -0,0 +1,514 @@
+Patch for version 3.01, taken from upstream at
+https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch
+
+--- cdrtools-3.01.orig/mkisofs/diag/isoinfo.c	2015-07-22 20:36:45.000000000 +0000
++++ cdrtools-3.01/mkisofs/diag/isoinfo.c	2015-11-17 19:35:40.000000000 +0000
+@@ -1,8 +1,8 @@
+-/* @(#)isoinfo.c	1.95 15/07/22 joerg */
++/* @(#)isoinfo.c	1.100 15/11/17 joerg */
+ #include <schily/mconfig.h>
+ #ifndef	lint
+ static	UConst char sccsid[] =
+-	"@(#)isoinfo.c	1.95 15/07/22 joerg";
++	"@(#)isoinfo.c	1.100 15/11/17 joerg";
+ #endif
+ /*
+  * File isodump.c - dump iso9660 directory information.
+@@ -148,8 +148,10 @@ LOCAL char	er_id[256];
+ LOCAL int	su_version = 0;
+ LOCAL int	rr_version = 0;
+ LOCAL int	aa_version = 0;
++LOCAL int	cl_extent = 0;
+ LOCAL int	ucs_level = 0;
+ LOCAL BOOL	iso9660_inodes = FALSE;
++LOCAL uid_t	myuid;
+ 
+ #ifdef	USE_FIND
+ LOCAL findn_t	*find_node;		/* syntaxtree from find_parse()	*/
+@@ -208,6 +210,9 @@ LOCAL	void	extract		__PR((char *rootname
+ LOCAL	void	extract_file	__PR((int f,
+ 					struct iso_directory_record * idr,
+ 					char *fname));
++LOCAL	void	parse_cl_dir	__PR((struct iso_directory_record *idr,
++					int extent));
++LOCAL	BOOL	parse_de	__PR((struct iso_directory_record *idr));
+ LOCAL	void	parse_dir	__PR((char * rootname, int extent, int len));
+ LOCAL	void	usage		__PR((int excode));
+ EXPORT	int	main		__PR((int argc, char *argv[]));
+@@ -459,7 +464,6 @@ parse_rr(pnt, len, cont_flag)
+ 	int slen;
+ 	int xlen;
+ 	int ncount;
+-	int cl_extent;
+ 	int pl_extent;
+ 	int cont_extent, cont_offset, cont_size;
+ 	int flag1, flag2;
+@@ -469,7 +473,7 @@ parse_rr(pnt, len, cont_flag)
+ 
+ 	symlinkname[0] = 0;
+ 
+-	cont_extent = cont_offset = cont_size = 0;
++	cl_extent = cont_extent = cont_offset = cont_size = 0;
+ 
+ 	ncount = 0;
+ 	flag1 = -1;
+@@ -714,6 +718,7 @@ struct todo
+ };
+ 
+ LOCAL struct todo	*todo_idr = NULL;
++LOCAL struct todo	**todo_pp = &todo_idr;
+ 
+ LOCAL char		*months[12] = {"Jan", "Feb", "Mar", "Apr",
+ 				"May", "Jun", "Jul",
+@@ -962,8 +967,14 @@ static	BOOL		isfirst = TRUE;
+ 	close(f);
+ 	return;
+ setmode:
+-	fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW);
+ 	fchownat(AT_FDCWD, fname, fstat_buf.st_uid, fstat_buf.st_gid, AT_SYMLINK_NOFOLLOW);
++	if (myuid != 0 && S_ISDIR(fstat_buf.st_mode)) {
++		/*
++		 * Temporary hack until we have a dirstack like star.
++		 */
++		fstat_buf.st_mode |= S_IWUSR;
++	}
++	fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW);
+ 	times[0].tv_sec = fstat_buf.st_atime;
+ 	times[0].tv_nsec = stat_ansecs(&fstat_buf);
+ 	times[1].tv_sec = fstat_buf.st_mtime;
+@@ -1001,6 +1012,143 @@ extract_file(f, idr, fname)
+ 	}
+ }
+ 
++
++LOCAL void
++parse_cl_dir(idr, extent)
++	struct iso_directory_record	*idr;
++	int				extent;
++{
++	char				cl_name_buf[256*3];
++
++	strlcpy(cl_name_buf, name_buf, sizeof (cl_name_buf));
++#ifdef	USE_SCG
++	readsecs(extent - sector_offset, idr, 1);
++#else
++	lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET);
++	read(fileno(infile), idr, 2048);
++#endif
++
++	if (parse_de(idr) && use_rock)
++		dump_rr(idr);
++	strlcpy(name_buf, cl_name_buf, sizeof (name_buf));
++}
++
++LOCAL BOOL
++parse_de(idr)
++	struct iso_directory_record	*idr;
++{
++	unsigned char	uc;
++
++	if (idr->length[0] == 0)
++		return (FALSE);
++	memset(&fstat_buf, 0, sizeof (fstat_buf));
++	found_rr = 0;
++	name_buf[0] = xname[0] = 0;
++	fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size);
++	if (idr->flags[0] & 2)
++		fstat_buf.st_mode |= S_IFDIR;
++	else
++		fstat_buf.st_mode |= S_IFREG;
++	if (idr->name_len[0] == 1 && idr->name[0] == 0)
++		strcpy(name_buf, ".");
++	else if (idr->name_len[0] == 1 && idr->name[0] == 1)
++		strcpy(name_buf, "..");
++	else {
++		switch (ucs_level) {
++		case 3:
++		case 2:
++		case 1:
++			/*
++			 * Unicode name.  Convert as best we can.
++			 */
++			{
++			int	j;
++				name_buf[0] = '\0';
++#ifdef	USE_ICONV
++			if (use_iconv(unls)) {
++				int	u;
++				char	*to = name_buf;
++
++				for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) {
++					char	*ibuf = (char *)&idr->name[j*2];
++					size_t	isize = 2;		/* UCS-2 character size */
++					size_t	osize = 4;
++
++					if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize,
++							(char **)&to, &osize) == -1) {
++						int	err = geterrno();
++
++						if ((err == EINVAL || err == EILSEQ) &&
++						    osize == 4) {
++							*to = '_';
++							u += 1;
++							to++;
++						}
++					} else {
++						u += 4 - osize;
++						to = &name_buf[u];
++					}
++				}
++				j = u;
++			} else
++#endif
++			for (j = 0; j < (int)idr->name_len[0] / 2; j++) {
++				UInt16_t	unichar;
++
++				unichar = (idr->name[j*2] & 0xFF) * 256 +
++					    (idr->name[j*2+1] & 0xFF);
++
++				/*
++				 * Get the backconverted char
++				 */
++				if (unls)
++					uc = sic_uni2c(unls, unichar);
++				else
++					uc = unichar > 255 ? '_' : unichar;
++
++				name_buf[j] = uc ? uc : '_';
++			}
++			name_buf[j] = '\0';
++			}
++			break;
++		case 0:
++			/*
++			 * Normal non-Unicode name.
++			 */
++			strncpy(name_buf, idr->name, idr->name_len[0]);
++			name_buf[idr->name_len[0]] = 0;
++			break;
++		default:
++			/*
++			 * Don't know how to do these yet.  Maybe they are the same
++			 * as one of the above.
++			 */
++			exit(1);
++		}
++	}
++	memcpy(date_buf, idr->date, 9);
++	/*
++	 * Always first set up time stamps and file modes from
++	 * ISO-9660. This is used as a fallback in case that
++	 * there is no related Rock Ridge based data.
++	 */
++	fstat_buf.st_atime =
++	fstat_buf.st_mtime =
++	fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE);
++	fstat_buf.st_mode |= S_IRUSR|S_IXUSR |
++		    S_IRGRP|S_IXGRP |
++		    S_IROTH|S_IXOTH;
++	fstat_buf.st_nlink = 1;
++	fstat_buf.st_ino = 0;
++	fstat_buf.st_uid = 0;
++	fstat_buf.st_gid = 0;
++	if (iso9660_inodes) {
++		fstat_buf.st_ino = (unsigned long)
++		    isonum_733((unsigned char *)idr->extent);
++	}
++	return (TRUE);
++}
++
+ LOCAL void
+ parse_dir(rootname, extent, len)
+ 	char	*rootname;
+@@ -1012,12 +1160,13 @@ parse_dir(rootname, extent, len)
+ 	struct iso_directory_record * idr;
+ 	struct iso_directory_record	didr;
+ 	struct stat			dstat;
+-	unsigned char	uc;
++	unsigned char	cl_buffer[2048];
+ 	unsigned char	flags = 0;
+ 	Llong		size = 0;
+ 	int		sextent = 0;
+ 	int	rlen;
+ 	int	blen;
++	int	rr_flags = 0;
+ static	char	*n = 0;
+ static	int	nlen = 0;
+ 
+@@ -1039,115 +1188,23 @@ static	int	nlen = 0;
+ 		i = 0;
+ 		while (1 == 1) {
+ 			idr = (struct iso_directory_record *) &buffer[i];
+-			if (idr->length[0] == 0) break;
+-			memset(&fstat_buf, 0, sizeof (fstat_buf));
+-			found_rr = 0;
+-			name_buf[0] = xname[0] = 0;
+-			fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size);
+-			if (idr->flags[0] & 2)
+-				fstat_buf.st_mode |= S_IFDIR;
+-			else
+-				fstat_buf.st_mode |= S_IFREG;
+-			if (idr->name_len[0] == 1 && idr->name[0] == 0)
+-				strcpy(name_buf, ".");
+-			else if (idr->name_len[0] == 1 && idr->name[0] == 1)
+-				strcpy(name_buf, "..");
+-			else {
+-				switch (ucs_level) {
+-				case 3:
+-				case 2:
+-				case 1:
+-					/*
+-					 * Unicode name.  Convert as best we can.
+-					 */
+-					{
+-					int	j;
+-
+-					name_buf[0] = '\0';
+-#ifdef	USE_ICONV
+-					if (use_iconv(unls)) {
+-						int	u;
+-						char	*to = name_buf;
+-
+-						for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) {
+-							char	*ibuf = (char *)&idr->name[j*2];
+-							size_t	isize = 2;		/* UCS-2 character size */
+-							size_t	osize = 4;
+-
+-							if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize,
+-									(char **)&to, &osize) == -1) {
+-								int	err = geterrno();
+-
+-								if ((err == EINVAL || err == EILSEQ) &&
+-								    osize == 4) {
+-									*to = '_';
+-									u += 1;
+-									to++;
+-								}
+-							} else {
+-								u += 4 - osize;
+-								to = &name_buf[u];
+-							}
+-						}
+-						j = u;
+-					} else
+-#endif
+-					for (j = 0; j < (int)idr->name_len[0] / 2; j++) {
+-						UInt16_t	unichar;
+-
+-						unichar = (idr->name[j*2] & 0xFF) * 256 +
+-							    (idr->name[j*2+1] & 0xFF);
+-
+-						/*
+-						 * Get the backconverted char
+-						 */
+-						if (unls)
+-							uc = sic_uni2c(unls, unichar);
+-						else
+-							uc = unichar > 255 ? '_' : unichar;
++			if (idr->length[0] == 0)
++				break;
++			parse_de(idr);
++			if (use_rock) {
++				rr_flags = dump_rr(idr);
+ 
+-						name_buf[j] = uc ? uc : '_';
+-					}
+-					name_buf[j] = '\0';
+-					}
+-					break;
+-				case 0:
++				if (rr_flags & RR_FLAG_CL) {
+ 					/*
+-					 * Normal non-Unicode name.
++					 * Need to reparse the child link
++					 * but note that we parse "CL/."
++					 * so we get no usable file name.
+ 					 */
+-					strncpy(name_buf, idr->name, idr->name_len[0]);
+-					name_buf[idr->name_len[0]] = 0;
+-					break;
+-				default:
+-					/*
+-					 * Don't know how to do these yet.  Maybe they are the same
+-					 * as one of the above.
+-					 */
+-					exit(1);
+-				}
++					idr = (struct iso_directory_record *) cl_buffer;
++					parse_cl_dir(idr, cl_extent);
++				} else if (rr_flags & RR_FLAG_RE)
++					goto cont;	/* skip rr_moved */
+ 			}
+-			memcpy(date_buf, idr->date, 9);
+-			/*
+-			 * Always first set up time stamps and file modes from
+-			 * ISO-9660. This is used as a fallback in case that
+-			 * there is no related Rock Ridge based data.
+-			 */
+-			fstat_buf.st_atime =
+-			fstat_buf.st_mtime =
+-			fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE);
+-			fstat_buf.st_mode |= S_IRUSR|S_IXUSR |
+-				    S_IRGRP|S_IXGRP |
+-				    S_IROTH|S_IXOTH;
+-			fstat_buf.st_nlink = 1;
+-			fstat_buf.st_ino = 0;
+-			fstat_buf.st_uid = 0;
+-			fstat_buf.st_gid = 0;
+-			if (iso9660_inodes) {
+-				fstat_buf.st_ino = (unsigned long)
+-				    isonum_733((unsigned char *)idr->extent);
+-			}
+-			if (use_rock)
+-				dump_rr(idr);
+ 			if (Xtract &&
+ 			    (idr->flags[0] & 2) != 0 &&
+ 			    idr->name_len[0] == 1 &&
+@@ -1170,30 +1227,30 @@ static	int	nlen = 0;
+ 				n[rlen] = '\0';
+ 
+ 			if ((idr->flags[0] & 2) != 0 &&
+-			    (idr->name_len[0] != 1 ||
++			    ((rr_flags & RR_FLAG_CL) ||
++			    idr->name_len[0] != 1 ||
+ 			    (idr->name[0] != 0 && idr->name[0] != 1))) {
+ 				/*
+ 				 * This is a plain directory (neither "xxx/."
+ 				 * nor "xxx/..").
+ 				 * Add this directory to the todo list.
+ 				 */
+-				td = todo_idr;
+-				if (td != NULL) {
+-					while (td->next != NULL)
+-						td = td->next;
+-					td->next = (struct todo *) malloc(sizeof (*td));
+-					td = td->next;
+-				} else {
+-					todo_idr = td = (struct todo *) malloc(sizeof (*td));
+-				}
++				td = (struct todo *) malloc(sizeof (*td));
++				if (td == NULL)
++					comerr(_("No memory.\n"));
+ 				td->next = NULL;
+ 				td->extent = isonum_733((unsigned char *)idr->extent);
+ 				td->length = isonum_733((unsigned char *)idr->size);
+ 				td->name = (char *) malloc(strlen(rootname)
+ 								+ strlen(name_buf) + 2);
++				if (td->name == NULL)
++					comerr(_("No memory.\n"));
+ 				strcpy(td->name, rootname);
+ 				strcat(td->name, name_buf);
+ 				strcat(td->name, "/");
++
++				*todo_pp = td;
++				todo_pp = &td->next;
+ 			} else {
+ 				if (xtract && strcmp(xtract, n) == 0) {
+ 					extract_file(STDOUT_FILENO, idr, "stdout");
+@@ -1253,6 +1310,7 @@ static	int	nlen = 0;
+ 				if ((idr->flags[0] & ISO_MULTIEXTENT) == 0)
+ 					size = 0;
+ 			}
++		cont:
+ 			i += buffer[i];
+ 			if (i > 2048 - offsetof(struct iso_directory_record, name[0])) break;
+ 		}
+@@ -1381,12 +1439,13 @@ main(argc, argv)
+ 		usage(0);
+ 	if (prvers) {
+ 		printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 1999-2015 %s\n"),
+-					VERSION,
++					"3.02a02",
+ 					HOST_CPU, HOST_VENDOR, HOST_OS,
+ 					_("Eric Youngdale"),
+ 					_("Joerg Schilling"));
+ 		exit(0);
+ 	}
++	myuid = getuid();
+ #ifdef	USE_FIND
+ 	if (do_find) {
+ 		finda_t	fa;
+--- cdrtools-3.01.orig/mkisofs/udf.c	2013-04-24 20:45:18.000000000 +0000
++++ cdrtools-3.01/mkisofs/udf.c	2015-11-25 22:07:30.000000000 +0000
+@@ -1,15 +1,15 @@
+-/* @(#)udf.c	1.42 13/04/24 Copyright 2001-2013 J. Schilling */
++/* @(#)udf.c	1.43 15/11/25 Copyright 2001-2015 J. Schilling */
+ #include <schily/mconfig.h>
+ #ifndef lint
+ static	UConst char sccsid[] =
+-	"@(#)udf.c	1.42 13/04/24 Copyright 2001-2013 J. Schilling";
++	"@(#)udf.c	1.43 15/11/25 Copyright 2001-2015 J. Schilling";
+ #endif
+ /*
+  * udf.c - UDF support for mkisofs
+  *
+  * Written by Ben Rudiak-Gould (2001).
+  *
+- * Copyright 2001-2013 J. Schilling.
++ * Copyright 2001-2015 J. Schilling.
+  */
+ /*
+  * This program is free software; you can redistribute it and/or modify
+@@ -98,7 +98,7 @@ static	UConst char sccsid[] =
+ extern	int	use_sparcboot;
+ 
+ extern struct directory *root;
+-extern time_t		begun;
++extern struct timeval	tv_begun;
+ 
+ static unsigned lba_main_seq;
+ static unsigned lba_main_seq_copy;
+@@ -110,7 +110,7 @@ static unsigned lba_end_anchor_vol_desc;
+ static unsigned num_udf_files;
+ static unsigned num_udf_directories;
+ 
+-static unsigned volume_set_id[2];
++static unsigned volume_set_id[2] = { 0, 0 };
+ 
+ #define	UDF_MAIN_SEQ_LENGTH (16)
+ #define	UDF_INTEG_SEQ_LENGTH (2)
+@@ -723,7 +723,7 @@ set_primary_vol_desc(buf, lba)
+ 	/*pvd->volume_abstract;*/
+ 	/*pvd->volume_copyright_notice;*/
+ 	/*pvd->application_ident;*/
+-	set_timestamp_from_time_t(&pvd->recording_date_and_time, begun);
++	set_timestamp_from_time_t(&pvd->recording_date_and_time, tv_begun.tv_sec);
+ 	set_impl_ident(&pvd->impl_ident);
+ 	set_tag(&pvd->desc_tag, UDF_TAGID_PRIMARY_VOLUME_DESC, lba, 512);
+ }
+@@ -831,7 +831,7 @@ set_logical_vol_integrity_desc(buf, lba)
+ 	udf_logical_volume_integrity_desc *lvid =
+ 				(udf_logical_volume_integrity_desc *)buf;
+ 
+-	set_timestamp_from_time_t(&lvid->recording_date, begun);
++	set_timestamp_from_time_t(&lvid->recording_date, tv_begun.tv_sec);
+ 	set32(&lvid->integrity_type, UDF_INTEGRITY_TYPE_CLOSE);
+ 	/*lvid->next_integrity_extent;*/
+ 	set64(&lvid->logical_volume_contents_use.unique_id,
+@@ -859,7 +859,7 @@ set_file_set_desc(buf, rba)
+ {
+ 	udf_file_set_desc *fsd = (udf_file_set_desc *)buf;
+ 
+-	set_timestamp_from_time_t(&fsd->recording_date_and_time, begun);
++	set_timestamp_from_time_t(&fsd->recording_date_and_time, tv_begun.tv_sec);
+ 	set16(&fsd->interchange_level, 3);
+ 	set16(&fsd->maximum_interchange_level, 3);
+ 	set32(&fsd->character_set_list, 1);
+@@ -1986,8 +1986,10 @@ udf_main_seq_write(out)
+ 	 * volume_set_id needs to be set to a (64-bit) "unique" number.
+ 	 * This will have to do for now.
+ 	 */
+-	volume_set_id[0] = begun;
+-	volume_set_id[1] = (unsigned)clock();	/* XXX Maybe non-portable */
++	if (volume_set_id[0] == 0) {
++		volume_set_id[0] = tv_begun.tv_sec;
++		volume_set_id[1] = (unsigned)tv_begun.tv_usec;
++	}
+ 
+ 	memset(buf, 0, sizeof (buf));
+ 	set_primary_vol_desc(buf, last_extent_written++);
+--- cdrtools-3.01.orig/mkisofs/mkisofs.c	2015-01-01 14:19:51.000000000 +0000
++++ cdrtools-3.01/mkisofs/mkisofs.c
+@@ -69 +69 @@ int		path_ind;
+-char	version_string[] = VERSION;
++char	version_string[] = "3.01-fix-20151126";
-- 
2.12.2


Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:01 GMT) Full text and rfc822 format available.

Message #8 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 3/7] gnu: brasero: Embed growisofs store item.
Date: Wed, 26 Apr 2017 18:30:34 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* gnu/packages/gnome.scm (brasero)[arguments]: Add phase 'embed-growisofs.
---
 gnu/packages/gnome.scm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fc19318b9..ef56168bf 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -150,7 +150,14 @@
                                          "/share/gir-1.0")
                           (string-append "--with-typelibdir="
                                          (assoc-ref %outputs "out")
-                                         "/lib/girepository-1.0"))))
+                                         "/lib/girepository-1.0"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'embed-growisofs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "plugins/growisofs/burn-growisofs.c"
+               (("\"growisofs") (string-append "\"" (which "growisofs"))))
+             #t )))))
     (propagated-inputs
      `(("hicolor-icon-theme" ,hicolor-icon-theme)))
     (native-inputs
@@ -159,7 +166,8 @@
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
+     `(("dvd+rw-tools" ,dvd+rw-tools)
+       ("glib" ,glib)
        ("gnome-doc-utils" ,gnome-doc-utils)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:02 GMT) Full text and rfc822 format available.

Message #11 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 2/7] gnu: Add dvd+rw-tools.
Date: Wed, 26 Apr 2017 18:30:33 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* 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 <alezost <at> gmail.com>
 ;;; Copyright © 2016 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2017 John Darrington <jmd <at> gnu.org>
+;;; Copyright © 2017 Thomas Danckaert <post <at> thomasdanckaert.be>
 ;;;
 ;;; 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





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:02 GMT) Full text and rfc822 format available.

Message #14 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 4/7] gnu: Add dvdauthor.
Date: Wed, 26 Apr 2017 18:30:35 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* gnu/packages/video.scm (dvdauthor): New variable.
---
 gnu/packages/video.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index cc07cc712..b04956a00 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2017 Feng Shu <tumashu <at> 163.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2017 Chris Marusich <cmmarusich <at> gmail.com>
+;;; Copyright © 2017 Thomas Danckaert <post <at> thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,6 +76,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
@@ -1193,6 +1195,33 @@ authentication and descrambling (if an external libdvdcss library is
 installed).")
     (license license:gpl2+)))
 
+(define-public dvdauthor
+  (package
+    (name "dvdauthor")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/dvdauthor/dvdauthor-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libdvdread" ,libdvdread)
+       ("libpng" ,libpng)
+       ("imagemagick" ,imagemagick)
+       ("libxml2" ,libxml2)
+       ("freetype" ,freetype)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Generates a DVD-Video movie from a MPEG-2 stream")
+    (description "@command{dvdauthor} will generate a DVD-Video movie from a
+MPEG-2 stream containing VOB packets.")
+    (home-page "http://dvdauthor.sourceforge.net")
+    (license license:gpl3+)))
+
 (define-public libdvdnav
   (package
     (name "libdvdnav")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:03 GMT) Full text and rfc822 format available.

Message #17 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 5/7] gnu: Add wxwidgets-3.1.
Date: Wed, 26 Apr 2017 18:30:36 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* gnu/packages/wxwidgets.scm (wxwidgets-3.1): New variable.
---
 gnu/packages/wxwidgets.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 077195cca..bd6ffec0f 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Theodoros Foradis <theodoros.for <at> openmailbox.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym <at> scratchpost.org>
 ;;; Copyright © 2017 Rene Saavedra <rennes <at> openmailbox.org>
+;;; Copyright © 2017 Thomas Danckaert <post <at> thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system python)
   #:use-module (guix build utils)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
@@ -97,6 +99,27 @@ and many other languages.")
                         (package-inputs wxwidgets))))
            (name "wxwidgets-gtk2")))
 
+;; Development version of wxWidgets, required to build against gstreamer-1.x.
+;; This can be removed when wxWidgets is updated to the next stable version.
+(define-public wxwidgets-3.1
+  (package (inherit wxwidgets)
+           (version "3.1.0")
+           (source
+            (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/wxWidgets/wxWidgets/archive/v"
+                                  version ".tar.gz"))
+              (file-name (string-append "wxwidgets-" version ".tar.gz"))
+              (sha256
+               (base32 "1yan5ysjwh6a7xw82sfjd1xn0nsy1dn2s0cx9ac7cw19191blc3y"))))
+           (inputs `(("gstreamer" ,gstreamer)
+                     ("gst-plugins-base" ,gst-plugins-base)
+                     ,@(package-inputs wxwidgets)))
+           (arguments
+            (substitute-keyword-arguments (package-arguments wxwidgets)
+              ((#:configure-flags flags)
+               `(cons "--enable-mediactrl" ,flags))))))
+
 (define-public python2-wxpython
   (package
     (name "python2-wxpython")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:03 GMT) Full text and rfc822 format available.

Message #20 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 6/7] gnu: Add wxsvg.
Date: Wed, 26 Apr 2017 18:30:37 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* gnu/packages/wxwidgets.scm (wxsvg): New variable.
---
 gnu/packages/wxwidgets.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index bd6ffec0f..b603fe588 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -36,6 +36,8 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages photo)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages sdl)
@@ -190,3 +192,30 @@ and many other languages.")
     (description "@code{wxpython} provides Python 2 bindings for wxWidgets.")
     (home-page "http://wxpython.org/")
     (license (package-license wxwidgets))))
+
+(define-public wxsvg
+  (package
+    (name "wxsvg")
+    (version "1.5.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/wxsvg/wxsvg/"
+                            version "/wxsvg-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "0m3ff8mjiq4hvy8rmxyc9fkpf24xwxhvr3a6jmvr2q5zc41xhz7x"))))
+    (build-system glib-or-gtk-build-system)
+    (inputs
+     `(("wxwidgets" ,wxwidgets-3.1)
+       ("cairo" ,cairo)
+       ("pango" ,pango)
+       ("libexif" ,libexif)
+       ("ffmpeg" ,ffmpeg)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "C++ library to create, manipulate and render SVG files")
+    (description "wxSVG is a C++ library to create, manipulate and render
+@dfn{Scalable Vector Graphics} (SVG) files with the wxWidgets toolkit.")
+    (home-page "http://wxsvg.sourceforge.net")
+    (license (list l:lgpl2.0+ (l:fsf-free "file://COPYING")))))
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 16:33:04 GMT) Full text and rfc822 format available.

Message #23 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
To: 26669 <at> debbugs.gnu.org
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>
Subject: [PATCH 7/7] gnu: Add dvdstyler.
Date: Wed, 26 Apr 2017 18:30:38 +0200
From: Thomas Danckaert <post <at> thomasdanckaert.be>

* gnu/packages/cdrom.scm (dvdstyler): New variable.
---
 gnu/packages/cdrom.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 5c1ac4a50..eb8a82f30 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -37,8 +37,12 @@
   #: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)
@@ -46,11 +50,16 @@
   #: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))
 
@@ -343,6 +352,69 @@ 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"))
+                    ":")))))))
+       #: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")
-- 
2.12.2





Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 17:01:01 GMT) Full text and rfc822 format available.

Message #26 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: Thomas Danckaert <post <at> thomasdanckaert.be>
Cc: 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 26 Apr 2017 18:59:53 +0200
Hi Thomas,

Thanks for the patches !

Without going into details, it seems to me that you have indentation
issues in this serie.

> +(define-public cdrtools
> +  (package

From here indentation is broken.

> +   (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)
> +   (inputs
> +    `(("linux-headers" ,linux-libre-headers)))
> +   (native-inputs
> +    `(("coreutils" ,coreutils)))
> +   (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\\.")

Please keep all lines in *.scm files to 80 columns or less.

> +                                          (find-files "TEMPLATES" "^Defaults\\."))
> +                       (("/opt/schily") (assoc-ref %outputs "out")))
> +                     #t))

Thanks,

Mathieu




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 26 Apr 2017 17:16:02 GMT) Full text and rfc822 format available.

Message #29 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 2/7] gnu: Add dvd+rw-tools.
Date: Wed, 26 Apr 2017 19:15:49 +0200
On Wed, 26 Apr 2017 18:30:33 +0200
Thomas Danckaert <thomas.danckaert <at> gmail.com> wrote:

> +           (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)))))

Maybe rather use

  (zero? (system* ...))

instead of

  (system* ...)
  #t

Otherwise LGTM!




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Thu, 27 Apr 2017 18:51:02 GMT) Full text and rfc822 format available.

Message #32 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 4/7] gnu: Add dvdauthor.
Date: Thu, 27 Apr 2017 20:50:27 +0200
LGTM!




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Fri, 28 Apr 2017 05:55:01 GMT) Full text and rfc822 format available.

Message #35 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 3/7] gnu: brasero: Embed growisofs store item.
Date: Fri, 28 Apr 2017 07:54:20 +0200
Please also mention the added input "dvd+rw-tools".




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 03 May 2017 13:00:02 GMT) Full text and rfc822 format available.

Message #38 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Thomas Danckaert <post <at> thomasdanckaert.be>
Cc: 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 03 May 2017 14:59:12 +0200
Hi!

Thomas Danckaert <post <at> thomasdanckaert.be> skribis:

> There is/has been some controversy about the license of cdrtools, with
> claims it cannot be distributed in binary form because it mixes CDDL
> and GPL code.  As far as I understand, mkisofs is GPL, while the other
> executables are CDDL, and I do not really see the problem.  If others
> disagree, or we want to be extra careful, I suppose we can disable
> substitutes for cdrtools, so we only distribute it as source?

We could do that if needed.  From your description it’s not clear to me
either what the problem is though.  It’s a case where I would recommend
checking <https://libreplanet.org/wiki/Software_blacklist> (apparently
there’s nothing about it) or Debian.  :-)

> cdrtools also bundles a forked LGPL-licensed copy of cdparanoia.  This
> is perhaps unfortunate, but I don't think it's easy to unbundle it
> (cdrtools doesn't build agains our current cdparanoia).

Just leave an XXX explaining this.

A couple of comments to complement what Mathieu wrote:

>>From 96fb5484e4a4d741da685ce63f578feb69bc016f Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.danckaert <at> gmail.com>
> Date: Fri, 21 Apr 2017 15:54:20 +0200
> Subject: [PATCH 1/7] gnu: Add cdrtools.
>
> * gnu/packages/cdrom.scm (cdrtools): New variable.
> * gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

[...]

> +   (inputs
> +    `(("linux-headers" ,linux-libre-headers)))
> +   (native-inputs
> +    `(("coreutils" ,coreutils)))

These are implicit inputs already so you can remove them.

> +++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch
> @@ -0,0 +1,514 @@
> +Patch for version 3.01, taken from upstream at
> +https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch

It would be nice to add a few words about what it does, like “Fix
compilation with recent glibc” or something.

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 03 May 2017 13:01:02 GMT) Full text and rfc822 format available.

Message #41 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 5/7] gnu: Add wxwidgets-3.1.
Date: Wed, 03 May 2017 15:00:33 +0200
Thomas Danckaert <thomas.danckaert <at> gmail.com> skribis:

> From: Thomas Danckaert <post <at> thomasdanckaert.be>
>
> * gnu/packages/wxwidgets.scm (wxwidgets-3.1): New variable.

LGTM, thanks!




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 03 May 2017 13:03:02 GMT) Full text and rfc822 format available.

Message #44 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 6/7] gnu: Add wxsvg.
Date: Wed, 03 May 2017 15:02:17 +0200
Thomas Danckaert <thomas.danckaert <at> gmail.com> skribis:

> From: Thomas Danckaert <post <at> thomasdanckaert.be>
>
> * gnu/packages/wxwidgets.scm (wxsvg): New variable.

[...]

> +    (home-page "http://wxsvg.sourceforge.net")
> +    (license (list l:lgpl2.0+ (l:fsf-free "file://COPYING")))))

Please add a comment explaining what is meant here (the kind of license
that appears in COPYING, whether we’re talking of a combination of
licenses or a choice users can make, etc.)

OK with this change, thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 03 May 2017 13:06:02 GMT) Full text and rfc822 format available.

Message #47 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Thomas Danckaert <thomas.danckaert <at> gmail.com>
Cc: Thomas Danckaert <post <at> thomasdanckaert.be>, 26669 <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 7/7] gnu: Add dvdstyler.
Date: Wed, 03 May 2017 15:04:47 +0200
Thomas Danckaert <thomas.danckaert <at> gmail.com> skribis:

> From: Thomas Danckaert <post <at> thomasdanckaert.be>
>
> * gnu/packages/cdrom.scm (dvdstyler): New variable.

[...]

> +    (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"))

I'd expect that adding libxml2 as an input would lead to the appropriate
definition of XML_CATALOG_FILES, and thus remove the need for these
#:configure-flags.  Could you try that?

> +       #: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"))
                            <-------'
Identation.  :-)

> +                    ":")))))))

Please return #t at the end of the phase.

> +    (license gpl2)))

GPLv2-only, right?

Otherwise LGTM, thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 10 May 2017 07:50:02 GMT) Full text and rfc822 format available.

Message #50 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: Thomas Danckaert <post <at> thomasdanckaert.be>
To: ludo <at> gnu.org, Danny Milosavljevic <dannym <at> scratchpost.org>, Mathieu
 Othacehe <m.othacehe <at> gmail.com>
Cc: 26669 <at> debbugs.gnu.org, 26669-close <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 10 May 2017 09:48:34 +0200 (CEST)
Hi all,

Thanks for your comments.

I pushed the series to master, with all comments addressed.  Except 
these 2 by Ludo, where I didn't really manage...

From: ludo <at> gnu.org (Ludovic Courtès)
Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 03 May 2017 14:59:12 +0200

>> +++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch
>> @@ -0,0 +1,514 @@
>> +Patch for version 3.01, taken from upstream at
>> +https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch
>
> It would be nice to add a few words about what it does, like “Fix
> compilation with recent glibc” or something.

Unfortunately, I couldn't find a proper explanation for the patch, 
and I'm not familiar enough with the cdrtools code base to completely 
understand it myself.  It seems like it fixes some issues and 
upgrades half-way to 3.02 at the same time...  Well at least we can 
get rid of the patch if/when they release 3.02.

From: ludo <at> gnu.org (Ludovic Courtès)
Subject: Re: bug#26669: [PATCH 7/7] gnu: Add dvdstyler.
Date: Wed, 03 May 2017 15:04:47 +0200

>> +    (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"))
>
> I'd expect that adding libxml2 as an input would lead to the 
> appropriate
> definition of XML_CATALOG_FILES, and thus remove the need for these
> #:configure-flags.  Could you try that?

I tried it, but it didn't work.  Even with these flags, documentation 
generation phase spits out a few warnings about attempted network 
access to retrieve xsd files, but way less than without the flags, 
and at html help is generated successfully :-) .

Thomas

Reply sent to Thomas Danckaert <post <at> thomasdanckaert.be>:
You have taken responsibility. (Wed, 10 May 2017 07:50:03 GMT) Full text and rfc822 format available.

Notification sent to Thomas Danckaert <post <at> thomasdanckaert.be>:
bug acknowledged by developer. (Wed, 10 May 2017 07:50:03 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 10 May 2017 11:56:02 GMT) Full text and rfc822 format available.

Message #58 received at 26669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Thomas Danckaert <post <at> thomasdanckaert.be>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 26669 <at> debbugs.gnu.org,
 Mathieu Othacehe <m.othacehe <at> gmail.com>, 26669-close <at> debbugs.gnu.org
Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
Date: Wed, 10 May 2017 13:55:13 +0200
Hi Thomas,

Thomas Danckaert <post <at> thomasdanckaert.be> skribis:

> Thanks for your comments.
>
> I pushed the series to master, with all comments addressed.  Except
> these 2 by Ludo, where I didn't really manage...
>
> From: ludo <at> gnu.org (Ludovic Courtès)
> Subject: Re: bug#26669: [PATCH 1/7] gnu: Add cdrtools.
> Date: Wed, 03 May 2017 14:59:12 +0200
>
>>> +++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch
>>> @@ -0,0 +1,514 @@
>>> +Patch for version 3.01, taken from upstream at
>>> +https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch
>>
>> It would be nice to add a few words about what it does, like “Fix
>> compilation with recent glibc” or something.
>
> Unfortunately, I couldn't find a proper explanation for the patch, and
> I'm not familiar enough with the cdrtools code base to completely
> understand it myself.  It seems like it fixes some issues and upgrades
> half-way to 3.02 at the same time...  Well at least we can get rid of
> the patch if/when they release 3.02.

OK, sounds reasonable.

> From: ludo <at> gnu.org (Ludovic Courtès)
> Subject: Re: bug#26669: [PATCH 7/7] gnu: Add dvdstyler.
> Date: Wed, 03 May 2017 15:04:47 +0200
>
>>> +    (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"))
>>
>> I'd expect that adding libxml2 as an input would lead to the
>> appropriate
>> definition of XML_CATALOG_FILES, and thus remove the need for these
>> #:configure-flags.  Could you try that?
>
> I tried it, but it didn't work.  Even with these flags, documentation
> generation phase spits out a few warnings about attempted network
> access to retrieve xsd files, but way less than without the flags, and
> at html help is generated successfully :-) .

Noted.

Thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#26669; Package guix-patches. (Wed, 10 May 2017 11:56:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 08 Jun 2017 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 99 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.