diff mbox

dvdauthor : new package

Message ID 54B317DE.9090105@ou.edu
State Superseded
Headers show

Commit Message

Kenton, Stephen M. Jan. 12, 2015, 12:39 a.m. UTC
DVDAuthor is a set of tools to help you author the file and directory
structure of a DVD-Video disc, including programmatic commands for
implementing interactive behaviour. It is driven by command lines and
XML control files, though there are other programs that provide
GUI-based front ends if you prefer
	
http://dvdauthor.sourceforge.net

Signed-off-by Stephen M. Kenton <skenton@ou.edu>
---
Build tested with both uClibc and glibc.
There may be a missing dependency in libxml2. If I comment out these lines:

#	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE # libxml2 may be missing a dependency
#DVDAUTHOR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) # libxml2 may be missing a dependency

then building with uClibc gets the error below:

/data/bcdist/test/buildroot-2014.11/output/host/usr/include/libxml2/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory
 #include <iconv.h>
                   ^
compilation terminated.
make[3]: *** [readxml.o] Error 1

Comments

Thomas Petazzoni Jan. 12, 2015, 8:28 a.m. UTC | #1
Dear Steve Kenton,

On Sun, 11 Jan 2015 18:39:58 -0600, Steve Kenton wrote:

> /data/bcdist/test/buildroot-2014.11/output/host/usr/include/libxml2/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory
>  #include <iconv.h>

This is a *host* header, so it shouldn't be included when building a
target package.

>                    ^
> compilation terminated.
> make[3]: *** [readxml.o] Error 1
> 
> 
> diff -pruN buildroot-2014.11.ori/package/Config.in buildroot-2014.11/package/Config.in
> --- buildroot-2014.11.ori/package/Config.in	2014-12-01 03:19:00.000000000 -0600
> +++ buildroot-2014.11/package/Config.in	2015-01-11 17:44:27.920155192 -0600
> @@ -6,6 +6,7 @@ menu "Audio and video applications"
>  	source "package/alsa-utils/Config.in"
>  	source "package/aumix/Config.in"
>  	source "package/bellagio/Config.in"
> +	source "package/dvdauthor/Config.in"
>  	source "package/espeak/Config.in"
>  	source "package/faad2/Config.in"
>  	source "package/ffmpeg/Config.in"
> diff -pruN buildroot-2014.11.ori/package/dvdauthor/Config.in buildroot-2014.11/package/dvdauthor/Config.in
> --- buildroot-2014.11.ori/package/dvdauthor/Config.in	1969-12-31 18:00:00.000000000 -0600
> +++ buildroot-2014.11/package/dvdauthor/Config.in	2015-01-11 18:07:40.892181913 -0600
> @@ -0,0 +1,27 @@
> +config BR2_PACKAGE_DVDAUTHOR
> +	bool "dvdauthor"
> +	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE # libxml2 may be missing a dependency
> +	select BR2_PACKAGE_LIBXML2
> +	select BR2_PACKAGE_FREETYPE
> +	select BR2_PACKAGE_LIBPNG
> +	select BR2_PACKAGE_LIBDVDREAD
> +	depends on BR2_LARGEFILE && !BR2_PREFER_STATIC_LIB # libdvdread

BR2_PREFER_STATIC_LIB has been renamed to BR2_STATIC_LIBS. Please make
sure to test your patches against the latest master, since this is
where they will be applied.

> +# Note - Despite lack of a version bump the two line gentoo
> +# patch to src/spuunmux.c against "stock" dvdauthor-0.7.1
> +# -    if (setjmp(png_ptr->jmpbuf))
> +# +    if (setjmp(png_jmpbuf(png_ptr)))
> +# to allow use of libpng15/16 is already applied to downloadable
> +# dvdauthor-0.7.1.tar.gz

This should go to the commit log.

Also, does this means that your libpng12 patch is now unnecessary?

> +
> diff -pruN buildroot-2014.11.ori/package/dvdauthor/dvdauthor.mk buildroot-2014.11/package/dvdauthor/dvdauthor.mk
> --- buildroot-2014.11.ori/package/dvdauthor/dvdauthor.mk	1969-12-31 18:00:00.000000000 -0600
> +++ buildroot-2014.11/package/dvdauthor/dvdauthor.mk	2015-01-11 18:07:40.892181913 -0600
> @@ -0,0 +1,14 @@
> +###############################################################################
> +#
> +# dvdauthor
> +#
> +###############################################################################
> +
> +DVDAUTHOR_VERSION = 0.7.1
> +DVDAUTHOR_SITE = http://sourceforge.net/projects/dvdauthor/files/dvdauthor/$(DVDAUTHOR_VERSION)
> +DVDAUTHOR_DEPENDENCIES = host-pkgconf host-libxml2 host-freetype libxml2 freetype libpng libdvdread

I'm a little bit surprised by the need for host-libxml2 and
host-freetype, but I admittedly haven't looked in detail.

Thomas
Kenton, Stephen M. Jan. 12, 2015, 3:33 p.m. UTC | #2
On 01/12/2015 02:28 AM, Thomas Petazzoni wrote:
>> /data/bcdist/test/buildroot-2014.11/output/host/usr/include/libxml2/libxml/encoding.h:28:19: fatal error: iconv.h: No such file or directory
>>  #include <iconv.h>
> 
> This is a *host* header, so it shouldn't be included when building a
> target package.
> 
>>                    ^
>> compilation terminated.
>> make[3]: *** [readxml.o] Error 1
The build triggers lots of automatic reconfiguration, I guess it must be something on
the host side getting rebuilt then. I'll double check while I'm updating the patch.

>> +	depends on BR2_LARGEFILE && !BR2_PREFER_STATIC_LIB # libdvdread
> 
> BR2_PREFER_STATIC_LIB has been renamed to BR2_STATIC_LIBS. Please make
> sure to test your patches against the latest master, since this is
> where they will be applied.
OK

>> +# Note - Despite lack of a version bump the two line gentoo
>> +# patch to src/spuunmux.c against "stock" dvdauthor-0.7.1
>> +# -    if (setjmp(png_ptr->jmpbuf))
>> +# +    if (setjmp(png_jmpbuf(png_ptr)))
>> +# to allow use of libpng15/16 is already applied to downloadable
>> +# dvdauthor-0.7.1.tar.gz
> 
> This should go to the commit log.
Moved

> Also, does this means that your libpng12 patch is now unnecessary?
Yes, Gustavo Zacarias pointed that patch out to me and it indeed makes libpng12 unnecessary

>> +DVDAUTHOR_DEPENDENCIES = host-pkgconf host-libxml2 host-freetype libxml2 freetype libpng libdvdread
> 
> I'm a little bit surprised by the need for host-libxml2 and
> host-freetype, but I admittedly haven't looked in detail.
I added them because of host side configure problems:

checking for libxml - version >= 2.6.0... no
*** The xml2-config script installed by LIBXML could not be found

configure:5176: checking for freetype-config
configure:5192: found /usr/bin/freetype-config

This last one sent me on the wild goose chase for pnglib12 because
it let the Ubuntu environment leak into the buildroot configuration
Thomas Petazzoni Jan. 12, 2015, 3:37 p.m. UTC | #3
Dear Steve Kenton,

> >> compilation terminated.
> >> make[3]: *** [readxml.o] Error 1
> The build triggers lots of automatic reconfiguration, I guess it must be something on
> the host side getting rebuilt then. I'll double check while I'm updating the patch.

Not sure to understand exactly what you mean here.


> > I'm a little bit surprised by the need for host-libxml2 and
> > host-freetype, but I admittedly haven't looked in detail.
> I added them because of host side configure problems:
> 
> checking for libxml - version >= 2.6.0... no
> *** The xml2-config script installed by LIBXML could not be found
> 
> configure:5176: checking for freetype-config
> configure:5192: found /usr/bin/freetype-config

Hu? This does not indicate a host dependency: it indicates that it's
incorrectly using the host freetype-config, while it should be using
the one in $(STAGING_DIR). Generally, this is solved by passing some
ac_cv_path_<foo> variable.

Thomas
Kenton, Stephen M. Jan. 12, 2015, 4:14 p.m. UTC | #4
On 01/12/2015 09:37 AM, Thomas Petazzoni wrote:
> Dear Steve Kenton,
> 
>>>> compilation terminated.
>>>> make[3]: *** [readxml.o] Error 1
>> The build triggers lots of automatic reconfiguration, I guess it must be something on
>> the host side getting rebuilt then. I'll double check while I'm updating the patch.
> 
> Not sure to understand exactly what you mean here.
Messages on a white background of the form >>> package_name Autoreconfiguring

I'm still trying to get my head around the cross build environment with
separate host and target - so I'm not sure *I* understand what I mean :-(

I appreciate the gentle feedback by the way.
> 
> 
>>
>> configure:5176: checking for freetype-config
>> configure:5192: found /usr/bin/freetype-config
> 
> Hu? This does not indicate a host dependency: it indicates that it's
> incorrectly using the host freetype-config, while it should be using
> the one in $(STAGING_DIR). Generally, this is solved by passing some
> ac_cv_path_<foo> variable.
OK, will investigate more

Thanks - Steve
Kenton, Stephen M. Jan. 12, 2015, 5:26 p.m. UTC | #5
On 01/12/2015 09:37 AM, Thomas Petazzoni wrote:

>> configure:5176: checking for freetype-config
>> configure:5192: found /usr/bin/freetype-config
> 
> Hu? This does not indicate a host dependency: it indicates that it's
> incorrectly using the host freetype-config, while it should be using
> the one in $(STAGING_DIR). Generally, this is solved by passing some
> ac_cv_path_<foo> variable.
OK, digging into this freetype-config does in fact exist at:

$ find . -type f -name freetype-config
./output/host/usr/i586-buildroot-linux-gnu/sysroot/usr/bin/freetype-config

But $PATH and arguments $* on entry to configure for dvdauthor are:

/data/bcdist/test/buildroot/output/host/bin:/data/bcdist/test/buildroot/output/host/sbin:/data/bcdist/test/buildroot/output/host/usr/bin:/data/bcdist/test/buildroot/output/host/usr/sbin:/bcdist/bin:/home/steve/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

--target=i586-buildroot-linux-gnu --host=i586-buildroot-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-doc --disable-docs
--disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-debug --disable-static --enable-shared

So for some reason 'usr/i586-buildroot-linux-gnu/sysroot/' is missing in the middle of the search paths inside of buildroot

How is $(STAGING_DIR) normally set/passed to configure? I could probably just force the correct freetype-config
but it looks like there is something deeper wrong and I'd rather get to the bottom and fix it "properly".

Thanks - Steve
Thomas Petazzoni Jan. 12, 2015, 6:32 p.m. UTC | #6
Dear Steve Kenton,

On Mon, 12 Jan 2015 11:26:33 -0600, Steve Kenton wrote:

> OK, digging into this freetype-config does in fact exist at:
> 
> $ find . -type f -name freetype-config
> ./output/host/usr/i586-buildroot-linux-gnu/sysroot/usr/bin/freetype-config
> 
> But $PATH and arguments $* on entry to configure for dvdauthor are:
> 
> /data/bcdist/test/buildroot/output/host/bin:/data/bcdist/test/buildroot/output/host/sbin:/data/bcdist/test/buildroot/output/host/usr/bin:/data/bcdist/test/buildroot/output/host/usr/sbin:/bcdist/bin:/home/steve/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
> 
> --target=i586-buildroot-linux-gnu --host=i586-buildroot-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-doc --disable-docs
> --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-debug --disable-static --enable-shared
> 
> So for some reason 'usr/i586-buildroot-linux-gnu/sysroot/' is missing in the middle of the search paths inside of buildroot
> 
> How is $(STAGING_DIR) normally set/passed to configure? I could probably just force the correct freetype-config
> but it looks like there is something deeper wrong and I'd rather get to the bottom and fix it "properly".

No, there is nothing deeper wrong. The PATH is correct. It's just that
we need to explicitly pass the path to freetype-config to dvdauthor's
configure script.

You have to do something like:

DVDAUTHOR_CONF_ENV = \
	ac_cv_prog_FREETYPECONFIG=$(STAGING_DIR)/usr/bin/freetype-config

Best regards,

Thomas Petazzoni
Kenton, Stephen M. Jan. 12, 2015, 6:53 p.m. UTC | #7
On 01/12/2015 12:32 PM, Thomas Petazzoni wrote:

> You have to do something like:
> 
> DVDAUTHOR_CONF_ENV = \
> 	ac_cv_prog_FREETYPECONFIG=$(STAGING_DIR)/usr/bin/freetype-config

Ah! The light brightens slightly and the darkness disperses a bit.
I had somehow completely overlooked the *_CONF_ENV

Thanks - Steve
diff mbox

Patch

diff -pruN buildroot-2014.11.ori/package/Config.in buildroot-2014.11/package/Config.in
--- buildroot-2014.11.ori/package/Config.in	2014-12-01 03:19:00.000000000 -0600
+++ buildroot-2014.11/package/Config.in	2015-01-11 17:44:27.920155192 -0600
@@ -6,6 +6,7 @@  menu "Audio and video applications"
 	source "package/alsa-utils/Config.in"
 	source "package/aumix/Config.in"
 	source "package/bellagio/Config.in"
+	source "package/dvdauthor/Config.in"
 	source "package/espeak/Config.in"
 	source "package/faad2/Config.in"
 	source "package/ffmpeg/Config.in"
diff -pruN buildroot-2014.11.ori/package/dvdauthor/Config.in buildroot-2014.11/package/dvdauthor/Config.in
--- buildroot-2014.11.ori/package/dvdauthor/Config.in	1969-12-31 18:00:00.000000000 -0600
+++ buildroot-2014.11/package/dvdauthor/Config.in	2015-01-11 18:07:40.892181913 -0600
@@ -0,0 +1,27 @@ 
+config BR2_PACKAGE_DVDAUTHOR
+	bool "dvdauthor"
+	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE # libxml2 may be missing a dependency
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_LIBDVDREAD
+	depends on BR2_LARGEFILE && !BR2_PREFER_STATIC_LIB # libdvdread
+	help
+	  DVDAuthor is a set of tools to help you author the file and directory
+	  structure of a DVD-Video disc, including programmatic commands for
+	  implementing interactive behaviour. It is driven by command lines and
+	  XML control files, though there are other programs that provide
+	  GUI-based front ends if you prefer
+	
+	  http://dvdauthor.sourceforge.net
+
+comment "dvdauthor needs a toolchain w/ dynamic library, largefile"
+	depends on !BR2_LARGEFILE || BR2_PREFER_STATIC_LIB
+
+# Note - Despite lack of a version bump the two line gentoo
+# patch to src/spuunmux.c against "stock" dvdauthor-0.7.1
+# -    if (setjmp(png_ptr->jmpbuf))
+# +    if (setjmp(png_jmpbuf(png_ptr)))
+# to allow use of libpng15/16 is already applied to downloadable
+# dvdauthor-0.7.1.tar.gz
+
diff -pruN buildroot-2014.11.ori/package/dvdauthor/dvdauthor.mk buildroot-2014.11/package/dvdauthor/dvdauthor.mk
--- buildroot-2014.11.ori/package/dvdauthor/dvdauthor.mk	1969-12-31 18:00:00.000000000 -0600
+++ buildroot-2014.11/package/dvdauthor/dvdauthor.mk	2015-01-11 18:07:40.892181913 -0600
@@ -0,0 +1,14 @@ 
+###############################################################################
+#
+# dvdauthor
+#
+###############################################################################
+
+DVDAUTHOR_VERSION = 0.7.1
+DVDAUTHOR_SITE = http://sourceforge.net/projects/dvdauthor/files/dvdauthor/$(DVDAUTHOR_VERSION)
+DVDAUTHOR_DEPENDENCIES = host-pkgconf host-libxml2 host-freetype libxml2 freetype libpng libdvdread
+DVDAUTHOR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) # libxml2 may be missing a dependency
+DVDAUTHOR_LICENSE = GPLv2
+DVDAUTHOR_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))