xorriso: new package
RFC 1/1 xorriso: new package
xorriso cd/dvd/bd iso 9660 manipulation and disc burner.
libburnia is a project for reading, mastering and writing optical discs. Currently it is comprised of libraries named libisofs, libburn, libisoburn, a cdrecord emulator named cdrskin, and an integrated multi-session tool named xorriso.
The software runs on GNU/Linux, FreeBSD, Solaris, NetBSD. It is base of the GNU xorriso package and is actively maintained.
The source code for the libburnia project is distributed under the terms of the GNU General Public License version 2 or later (GPLv2+). Be aware that linking libisoburn with GPLv3+ library libreadline-6 will automatically change the license of the resulting libisoburn.so and xorriso binary to GPLv3+.
Signed-off-by Stephen M. Kenton <[email protected]>
---
I added xorriso to "Target packages > Hardware handling" since that is where cdrkit resides
Test builds run with both uClibc and glibc
config BR2_PACKAGE_XORRISO
bool "xorriso" select BR2_LIBICONV depends on BR2_USE_WCHAR && BR2_LARGEFILE
I don't understand why "select BR2_LIBICONV" is needed because I thought that libiconv was implied by "depends on BR2_USE_WCHAR && BR2_LARGEFILE" but without it the uClibc build ends with the error below
.
.
.
checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no checking for _LARGEFILE_SOURCE value needed for large files... no checking for fseeko... yes
checking for fseeko... (cached) yes
checking for iconv() in separate -liconv ... no
checking for libiconv in -liconv... no
checking for const qualifier with iconv() ... const
checking for iconv() to be accessible now ... no
Cannot get function iconv() to work. Configuration aborted. Check whether your system needs a separate libiconv installed. If it is installed but not found, try something like
export LDFLAGS="$LDFLAGS -L/usr/local/lib"
export CPPFLAGS="$CPPFLAGS -I/usr/local/include" export LIBS="$LIBS -liconv"
You may override this test by exporting variable
XORRISO_ASSUME_ICONV=yes
make: *** [/home/steve/test/buildroot.uClibc/output/build/xorriso-1.3.8/.stamp_configured] Error 1
package/Config.in +1 -0
@@ -391,6 +391,7 @@ endif source "package/usbutils/Config.in" source "package/w_scan/Config.in" source "package/wipe/Config.in" + source "package/xorriso/Config.in" endmenu menu "Interpreter languages and scripting"
package/xorriso/Config.in +22 -0
@@ -0,0 +1,22 @@ +config BR2_PACKAGE_XORRISO + bool "xorriso" + select BR2_LIBICONV + depends on BR2_USE_WCHAR && BR2_LARGEFILE + help + xorriso cd/dvd/bd iso 9660 manipulation and disc burner. + + libburnia is a project for reading, mastering and writing + optical discs. Currently it is comprised of libraries named + libisofs, libburn, libisoburn, a cdrecord emulator named cdrskin, + and an integrated multi-session tool named xorriso. + The software runs on GNU/Linux, FreeBSD, Solaris, NetBSD. + It is base of the GNU xorriso package and is actively maintained. + + The source code for the libburnia project is distributed under + the terms of the GNU General Public License version 2 or later + (GPLv2+). Be aware that linking libisoburn with GPLv3+ library + libreadline-6 will automatically change the license of the resulting + libisoburn.so and xorriso binary to GPLv3+. + + http://libburnia-project.org/ + http://www.gnu.org/software/xorriso
package/xorriso/xorriso.mk +13 -0
@@ -0,0 +1,13 @@ +############################################################# +# +# XORRISO +# +############################################################# +XORRISO_VERSION = 1.3.8 +XORRISO_SOURCE = xorriso-$(XORRISO_VERSION).tar.gz +XORRISO_SITE = http://www.gnu.org/software/xorriso +XORRISO_INSTALL_STAGING = NO +XORRISO_INSTALL_TARGET = YES +XORRISO_LICENSE = GPLv3+ + +$(eval $(autotools-package))
Dear Steve Kenton,
Thanks for this contribution! See some comments below.
Quoted 2 lines · Steve Kenton
I added xorriso to "Target packages > Hardware handling" since that is where cdrkit resides
Seems good.
Quoted 8 lines
config
BR2_PACKAGE_XORRISObool "xorriso" select BR2_LIBICONV depends on BR2_USE_WCHAR && BR2_LARGEFILEI don't understand why "select
BR2_LIBICONV" is needed because I thought that libiconv was implied by "depends onBR2_USE_WCHAR&&BR2_LARGEFILE" but without it the uClibc build ends with the error below
So, you have several possibilities:
* With glibc, iconv support is always available in the C library, since locale support is always built into glibc.
* With uClibc, iconv support is built into the library if locale support is enabled, and iconv support is not available is locale support is disabled. In this last case, we can use the separate libiconv package.
So, what you should do is:
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
in Config.in, and:
<foo>_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
in the .mk file.
package/Config.in
Quoted 3 lines
diff -pruN buildroot.ori/package/Config.in buildroot/package/Config.in
package/Config.in +0
-0
Can you use Git instead to create the patch?
Quoted 12 lines
package/Config.in +1
-0@@ -391,6 +391,7 @@ endif source "package/usbutils/Config.in" source "package/w_scan/Config.in" source "package/wipe/Config.in" + source "package/xorriso/Config.in" endmenu menu "Interpreter languages and scripting"diff -pruN buildroot.ori/package/xorriso/Config.in buildroot/package/xorriso/Config.in
package/xorriso/Config.in line 3
Quoted 3 lines
package/xorriso/Config.in +3
-0@@ -0,0 +1,22 @@ +config BR2_PACKAGE_XORRISO + bool "xorriso" + select BR2_LIBICONV
See above on how to improve this.
Quoted 6 lines
package/xorriso/Config.in +6
-0+ depends on BR2_USE_WCHAR && BR2_LARGEFILE + help + xorriso cd/dvd/bd iso 9660 manipulation and disc burner. + + libburnia is a project for reading, mastering and writing + optical discs. Currently it is comprised of libraries named
package/xorriso/Config.in line 19
Quoted 10 lines
package/xorriso/Config.in +10
-0+ libisofs, libburn, libisoburn, a cdrecord emulator named cdrskin, + and an integrated multi-session tool named xorriso. + The software runs on GNU/Linux, FreeBSD, Solaris, NetBSD. + It is base of the GNU xorriso package and is actively maintained. + + The source code for the libburnia project is distributed under + the terms of the GNU General Public License version 2 or later + (GPLv2+). Be aware that linking libisoburn with GPLv3+ library + libreadline-6 will automatically change the license of the resulting + libisoburn.so and xorriso binary to GPLv3+.
I don't think this last paragraph is really needed.
package/xorriso/Config.in line 22
Quoted 3 lines
package/xorriso/Config.in +3
-0+ + http://libburnia-project.org/ + http://www.gnu.org/software/xorriso
You must add a comment here about the wchar and largefile dependencies:
comment "xorriso needs a toolchain w/ wchar, largefile"
depends on !BR2_USE_WCHAR || !BR2_LARGEFILE
see
http://buildroot.org/downloads/manual/manual.html#_literal_config_in_literal_file,
section "17.2.2. Dependencies on target and toolchain options".
package/xorriso/xorriso.mk line 5
Quoted 9 lines
diff -pruN
buildroot.ori/package/xorriso/xorriso.mkbuildroot/package/xorriso/xorriso.mkpackage/xorriso/xorriso.mk +5
-0@@ -0,0 +1,13 @@ +############################################################# +# +# XORRISO +# +#############################################################
We have settled on 80 # signs for the comment header. The name of the package should be in lower case. And there should be an empty new line between this header and the first variable. Yes, those are silly rules, but they allow us to have some consistent across Buildroot.
package/xorriso/xorriso.mk line 7
Quoted 2 lines
package/xorriso/xorriso.mk +2
-0+XORRISO_VERSION = 1.3.8 +XORRISO_SOURCE = xorriso-$(XORRISO_VERSION).tar.gz
This line is not needed, since it's the default.
package/xorriso/xorriso.mk line 8
Quoted 1 line
package/xorriso/xorriso.mk +1
-0+XORRISO_SITE = http://www.gnu.org/software/xorriso
Please use $(BR2_GNU_MIRROR). You can grep in the Buildroot source code to see how it's used.
package/xorriso/xorriso.mk line 10
Quoted 2 lines
package/xorriso/xorriso.mk +2
-0+XORRISO_INSTALL_STAGING = NO +XORRISO_INSTALL_TARGET = YES
Those two lines are not needed, since it's the default.
package/xorriso/xorriso.mk line 11
Quoted 1 line
package/xorriso/xorriso.mk +1
-0+XORRISO_LICENSE = GPLv3+
Can you also add XORRISO_LICENSE_FILES ?
Other than that, it looks good. Could you take into account those comments, and send an updated version?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com