Skip to contentSkip to conversation

dvd+rw-tools: new package

PATCH New Steve Kenton 2 participants 2 messages Jan 19, 2015 – Feb 3, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/1 dvd+rw-tools: new package

The dvd+rw-tools are used to master Blu-ray Disc and DVD Disc media, both +RW/+R and -RW/-R. The +RW in the name is a historical artifact. This package contains the widely used growisofs program.

http://fy.chalmers.se/~appro/linux/DVD+RW/tools

Patch to dvd+rw-tools mkisofs->xorrisofs based on LFS instructions.
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/dvd-rw-tools.html

sed -i '/stdlib/a #include <limits.h>' transport.hxx && sed -i 's#mkisofs"#xorrisofs"#' growisofs.c &&
sed -i 's#mkisofs#xorrisofs#;s#MKISOFS#XORRISOFS#' growisofs.1 &&

Signed-off-by Stephen M. Kenton <[email protected]>
---
The xorriso dependency is only needed at run time, not build time so it is selected in Config.in but not a dependency in dvdrw-tools.mk

Is there a good way to select between two alternate patches at build time? I'd like to give people the option of both xorriso and cdrtools backends The only buildroot difference is which of two patches gets applied at build time.

V5 - with the patch for xorriso backend instead of cdrtools - oops

V4 - added mmu and thread dependencies and locally computed hash file

V3 - added xorriso dependency and followed LFS directions
for replacing cdrtools with GNU xorriso

V2 - added the licensing information

package/Config.in +1 -0
diff -pruN buildroot.ori/package/Config.in buildroot/package/Config.in
@@ -7,6 +7,7 @@ menu "Audio and video applications"
 	source "package/aumix/Config.in"
 	source "package/bellagio/Config.in"
 	source "package/dvdauthor/Config.in"
+	source "package/dvdrw-tools/Config.in"
 	source "package/espeak/Config.in"
 	source "package/faad2/Config.in"
 	source "package/ffmpeg/Config.in"
package/dvdrw-tools/0001-xorriso_and_limits.h.patch +159 -0

159 lines not on this page · raw message

package/dvdrw-tools/Config.in +18 -0
diff -pruN buildroot.ori/package/dvdrw-tools/Config.in buildroot/package/dvdrw-tools/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_DVDRW_TOOLS
+	bool "dvdrw-tools"
+	select BR2_PACKAGE_XORRISO
+	depends on BR2_USE_WCHAR
+	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU # fork()
+	help
+	  The dvd+rw-tools are used to master Blu-ray Disc
+	  and DVD Disc media, both +RW/+R and -RW/-R. The
+	  +RW in the name is a historical artifact. This
+	  package contains the widely used growisofs program.
+	
+	  http://fy.chalmers.se/~appro/linux/DVD+RW/tools
+
+comment "dvdrw-tools needs a toolchain w/ wchar, largefile"
+	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE \
+		|| !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_MMU
package/dvdrw-tools/dvdrw-tools.hash +4 -0
diff -pruN buildroot.ori/package/dvdrw-tools/dvdrw-tools.hash buildroot/package/dvdrw-tools/dvdrw-tools.hash
@@ -0,0 +1,4 @@
+# Locally computed using openssl dgst
+md5	8acb3c885c87f6838704a0025e435871	dvd+rw-tools-7.1.tar.gz
+sha1	6400e013934ff589b4b224eced03fd9f42ed719b	dvd+rw-tools-7.1.tar.gz
+
package/dvdrw-tools/dvdrw-tools.mk +24 -0
diff -pruN buildroot.ori/package/dvdrw-tools/dvdrw-tools.mk buildroot/package/dvdrw-tools/dvdrw-tools.mk
@@ -0,0 +1,24 @@
+#############################################################
+#
+# dvdrw-tools
+#
+#############################################################
+DVDRW_TOOLS_VERSION = 7.1
+DVDRW_TOOLS_SOURCE = dvd+rw-tools-$(DVDRW_TOOLS_VERSION).tar.gz
+DVDRW_TOOLS_SITE = http://fy.chalmers.se/~appro/linux/DVD+RW/tools
+DVDRW_TOOLS_LICENSE = GPLv2
+DVDRW_TOOLS_LICENSE_FILES = LICENSE
+
+define DVDRW_TOOLS_BUILD_CMDS
+	$(MAKE) -C $(@D)
+endef
+
+define DVDRW_TOOLS_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/dvd-ram-control $(TARGET_DIR)/usr/bin/dvd-ram-control
+	$(INSTALL) -m 0755 -D $(@D)/dvd+rw-booktype $(TARGET_DIR)/usr/bin/dvd+rw-booktype
+	$(INSTALL) -m 0755 -D $(@D)/dvd+rw-format $(TARGET_DIR)/usr/bin/dvd+rw-format
+	$(INSTALL) -m 0755 -D $(@D)/dvd+rw-mediainfo $(TARGET_DIR)/usr/bin/dvd+rw-mediainfo
+	$(INSTALL) -m 0755 -D $(@D)/growisofs $(TARGET_DIR)/usr/bin/growisofs
+endef
+
+$(eval $(generic-package))
#1 lore raw

PATCH v5 1/1 dvd+rw-tools: new package

Hi Steve,

Quoted 10 lines · Steve Kenton

The dvd+rw-tools are used to master Blu-ray Disc and DVD Disc media, both +RW/+R and -RW/-R. The +RW in the name is a historical artifact. This package contains the widely used growisofs program.

http://fy.chalmers.se/~appro/linux/DVD+RW/tools

Patch to dvd+rw-tools mkisofs->xorrisofs based on LFS instructions.
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/dvd-rw-tools.html

Quoted 8 lines

sed -i '/stdlib/a #include <limits.h>' transport.hxx && sed -i 's#mkisofs"#xorrisofs"#' growisofs.c &&
sed -i 's#mkisofs#xorrisofs#;s#MKISOFS#XORRISOFS#' growisofs.1 &&

Signed-off-by Stephen M. Kenton <[email protected]>
---
The xorriso dependency is only needed at run time, not build time so it is selected in Config.in but not a dependency in dvdrw-tools.mk

This could be in the commit log (i.e. above the sob-line).

Quoted 2 lines

Is there a good way to select between two alternate patches at build time?

We don't really this, and try hard to avoid this case.

package/dvdrw-tools/0001-xorriso_and_limits.h.patch 2015-01-19 15:38:09.905608957 -0600

Quoted 26 lines

I'd like to give people the option of both xorriso and cdrtools backends The only buildroot difference is which of two patches gets applied at build time.

V5 - with the patch for xorriso backend instead of cdrtools - oops

V4 - added mmu and thread dependencies and locally computed hash file

V3 - added xorriso dependency and followed LFS directions
for replacing cdrtools with GNU xorriso

V2 - added the licensing information

diff -pruN buildroot.ori/package/Config.in buildroot/package/Config.in

package/Config.in 2015-01-19 15:38:29.877609340 -0600 renamed from package/Config.in 2015-01-16 15:37:56.000000000 -0600 +1 -0
@@ -7,6 +7,7 @@ menu "Audio and video applications"
        source "package/aumix/Config.in"
        source "package/bellagio/Config.in"
        source "package/dvdauthor/Config.in"
+       source "package/dvdrw-tools/Config.in"
        source "package/espeak/Config.in"
        source "package/faad2/Config.in"
        source "package/ffmpeg/Config.in"

diff -pruN buildroot.ori/package/dvdrw-tools/0001-xorriso_and_limits.h.patch buildroot/package/dvdrw-tools/0001-xorriso_and_limits.h.patch

package/dvdrw-tools/0001-xorriso_and_limits.h.patch 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/0001-xorriso_and_limits.h.patch 1969-12-31 18:00:00.000000000 -0600 +0 -0

Packages's patches don't comply to the per-package patch policy (description, sob-line, etc), you'll find all details here [1].

Just do one thing per patch (one for the renaming, and another fixing the #include statements).

package/dvdrw-tools/0001-xorriso_and_limits.h.patch 2015-01-19 15:38:09.905608957 -0600 line 3

Quoted 4 lines
package/dvdrw-tools/0001-xorriso_and_limits.h.patch 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/0001-xorriso_and_limits.h.patch 1969-12-31 18:00:00.000000000 -0600 +3 -0
@@ -0,0 +1,159 @@
+diff -pruN dvd+rw-tools-7.1.ori/growisofs.1 dvd+rw-tools-7.1/growisofs.1
+--- dvd+rw-tools-7.1.ori/growisofs.1   2008-03-01 04:40:06.000000000 -0600
++++ dvd+rw-tools-7.1/growisofs.1       2015-01-17 23:33:49.442239589 -0600

[...]

We don't care about the manpages, so just remove this patch.

Quoted 48 lines
package/dvdrw-tools/0001-xorriso_and_limits.h.patch 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/0001-xorriso_and_limits.h.patch 1969-12-31 18:00:00.000000000 -0600 +40 -0
+diff -pruN dvd+rw-tools-7.1.ori/growisofs.c dvd+rw-tools-7.1/growisofs.c
+--- dvd+rw-tools-7.1.ori/growisofs.c   2008-03-04 03:15:03.000000000 -0600
++++ dvd+rw-tools-7.1/growisofs.c       2015-01-17 23:33:27.178239162 -0600
+@@ -2724,7 +2724,7 @@ void pipe_mkisofs_up (char *mkisofs_argv
+         perror (":-( unable to create pipe"), exit(FATAL_START(errno));
+
+     if ((mkisofs_pid=fork ()) == (pid_t)-1)
+-      perror (":-( unable to fork mkisofs"), exit(FATAL_START(errno));
++      perror (":-( unable to fork xorrisofs"), exit(FATAL_START(errno));
+     else if (mkisofs_pid == 0)
+     { dup2  (fildes[1],1);
+       close (fildes[0]);
+@@ -2964,7 +2964,7 @@ int main (int argc, char *argv[])
+
+ #if defined(__unix) || defined(__unix__)
+     env = getenv ("MKISOFS");
+-    mkisofs_argv[0] = (env?env:"mkisofs");
++    mkisofs_argv[0] = (env?env:"xorrisofs");
+ #elif defined(_WIN32)
+     /*
+      * On Windows I insist on mkisofs.exe to reside in very same
+diff -pruN dvd+rw-tools-7.1.ori/transport.hxx dvd+rw-tools-7.1/transport.hxx
+--- dvd+rw-tools-7.1.ori/transport.hxx 2008-03-01 04:34:43.000000000 -0600
++++ dvd+rw-tools-7.1/transport.hxx     2015-01-17 23:33:13.078238891 -0600
+@@ -9,6 +9,7 @@
+ #if defined(__unix) || defined(__unix__)
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <limits.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <sys/types.h>
+@@ -40,6 +41,7 @@ inline long getmsecs()
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <limits.h>
+ #define ssize_t               LONG_PTR
+ #define off64_t               __int64
+

diff -pruN buildroot.ori/package/dvdrw-tools/Config.in buildroot/package/dvdrw-tools/Config.in

package/dvdrw-tools/Config.in 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/Config.in 1969-12-31 18:00:00.000000000 -0600 +4 -0
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_DVDRW_TOOLS
+       bool "dvdrw-tools"
+       select BR2_PACKAGE_XORRISO
+       depends on BR2_USE_WCHAR

package/dvdrw-tools/Config.in 2015-01-19 15:38:09.905608957 -0600 line 14

Quoted 10 lines
package/dvdrw-tools/Config.in 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/Config.in 1969-12-31 18:00:00.000000000 -0600 +10 -0
+       depends on BR2_LARGEFILE
+       depends on BR2_TOOLCHAIN_HAS_THREADS
+       depends on BR2_USE_MMU # fork()
+       help
+         The dvd+rw-tools are used to master Blu-ray Disc
+         and DVD Disc media, both +RW/+R and -RW/-R. The
+         +RW in the name is a historical artifact. This
+         package contains the widely used growisofs program.
+
+         http://fy.chalmers.se/~appro/linux/DVD+RW/tools

Help text wrapping seems a bit wrong (should be 80 characters).

package/dvdrw-tools/Config.in 2015-01-19 15:38:09.905608957 -0600 line 18

Quoted 4 lines
package/dvdrw-tools/Config.in 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/Config.in 1969-12-31 18:00:00.000000000 -0600 +4 -0
+
+comment "dvdrw-tools needs a toolchain w/ wchar, largefile"
+       depends on !BR2_USE_WCHAR || !BR2_LARGEFILE \
+               || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_MMU

The comment is only about missing toolchain features, so it should be:

comment "dvdrw-tools needs a toolchain w/ wchar, largefile and threads"
depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_MMU

(MMU is an architecture feature, not a toolchain one)

Quoted 12 lines

diff -pruN buildroot.ori/package/dvdrw-tools/dvdrw-tools.hash buildroot/package/dvdrw-tools/dvdrw-tools.hash

package/dvdrw-tools/dvdrw-tools.hash 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/dvdrw-tools.hash 1969-12-31 18:00:00.000000000 -0600 +4 -0
@@ -0,0 +1,4 @@
+# Locally computed using openssl dgst
+md5    8acb3c885c87f6838704a0025e435871        dvd+rw-tools-7.1.tar.gz
+sha1   6400e013934ff589b4b224eced03fd9f42ed719b        dvd+rw-tools-7.1.tar.gz
+

diff -pruN buildroot.ori/package/dvdrw-tools/dvdrw-tools.mk buildroot/package/dvdrw-tools/dvdrw-tools.mk

package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 line 9

Quoted 9 lines
package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/dvdrw-tools.mk 1969-12-31 18:00:00.000000000 -0600 +9 -0
@@ -0,0 +1,24 @@
+#############################################################
+#
+# dvdrw-tools
+#
+#############################################################
+DVDRW_TOOLS_VERSION = 7.1
+DVDRW_TOOLS_SOURCE = dvd+rw-tools-$(DVDRW_TOOLS_VERSION).tar.gz
+DVDRW_TOOLS_SITE = http://fy.chalmers.se/~appro/linux/DVD+RW/tools
+DVDRW_TOOLS_LICENSE = GPLv2

Looks like it is GPLv2 or later, so GPLv2+.

package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 line 13

Quoted 4 lines
package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/dvdrw-tools.mk 1969-12-31 18:00:00.000000000 -0600 +4 -0
+DVDRW_TOOLS_LICENSE_FILES = LICENSE
+
+define DVDRW_TOOLS_BUILD_CMDS
+       $(MAKE) -C $(@D)

Should certainly be:
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)

package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 line 24

Quoted 11 lines
package/dvdrw-tools/dvdrw-tools.mk 2015-01-19 15:38:09.905608957 -0600 renamed from package/dvdrw-tools/dvdrw-tools.mk 1969-12-31 18:00:00.000000000 -0600 +11 -0
+endef
+
+define DVDRW_TOOLS_INSTALL_TARGET_CMDS
+       $(INSTALL) -m 0755 -D $(@D)/dvd-ram-control $(TARGET_DIR)/usr/bin/dvd-ram-control
+       $(INSTALL) -m 0755 -D $(@D)/dvd+rw-booktype $(TARGET_DIR)/usr/bin/dvd+rw-booktype
+       $(INSTALL) -m 0755 -D $(@D)/dvd+rw-format $(TARGET_DIR)/usr/bin/dvd+rw-format
+       $(INSTALL) -m 0755 -D $(@D)/dvd+rw-mediainfo $(TARGET_DIR)/usr/bin/dvd+rw-mediainfo
+       $(INSTALL) -m 0755 -D $(@D)/growisofs $(TARGET_DIR)/usr/bin/growisofs
+endef
+
+$(eval $(generic-package))

[1] http://nightly.buildroot.org/manual.html#patch-policy

Regards,

Signature · 1 line
Samuel