Skip to contentSkip to conversation

Pull request for branch fixes-20100729

GIT PULL New Thomas Petazzoni 3 participants 26 messages Jul 29, 2010 – Jul 30, 2010

lore
Share & tools
lore
#0 lore raw

The following changes since commit 7bfc9e464cf448f83b06953f1b26a150539b3960:
Gustavo Zacarias (1):
netsnmp: depend on openssl when the package is on to ensure build order

are available in the git repository at:

git://git.busybox.net/~tpetazzoni/git/buildroot fixes-20100729

Thomas Petazzoni (19):
dependencies: add svn as a mandatory tool
oprofile: disable with external toolchain
Fix computation of REAL_GNU_TARGET_NAME
gdb: disallow GDB_HOST on external toolchain builds
xerces: fix dependency on iconv
libiconv: add an error when both libiconv and locale are enabled
libeXosip: add dependency on host-pkg-config and remove useless flags
cdrkit: fix TARGET_CC/TARGET_CFLAGS for CMake
dmalloc: pass -fPIC when compiling
speech-tools: fix build failure by using Debian version and patches
avahi: pkg-config is needed
samba: remove swat documentation when not needed
u-boot: fix custom patch handling
linux: more mistake detection
cairo: PDF support is needed when SVG support is enabled
toolchain: mark uClibc 0.9.31 + locale + C++ as broken
libcurl: bump version to fix build issue
xerces: fix download location
xerces: only add -liconv when locale are disabled

 boot/u-boot/u-boot.mk                              |    2 +-
 linux/linux.mk                                     |   13 ++++
 package/Makefile.in                                |   11 +++-
 package/avahi/avahi.mk                             |    2 +-
 package/cairo/Config.in                            |    1 +
 package/cdrkit/cdrkit.mk                           |   14 ++++-
 package/dmalloc/dmalloc-5.4.3-add-fpic.patch       |   60 ++++++++++++++++++++
 .../libcurl-7.19.2-fix-ssl-no-verbose.patch        |   25 --------
 package/libcurl/libcurl.mk                         |    3 +-
 package/libeXosip2/libeXosip2.mk                   |    4 +-
 package/libiconv/libiconv.mk                       |    7 ++
 .../festival/speech-tools/speech-tools.mk          |   17 +++++-
 package/oprofile/Config.in                         |    4 +
 package/samba/samba.mk                             |   11 ++++
 package/xerces/Config.in                           |    2 +-
 package/xerces/xerces.mk                           |   10 ++-
 toolchain/dependencies/dependencies.sh             |    4 +-
 toolchain/gdb/Config.in                            |    3 +
 toolchain/toolchain-common.in                      |    4 +
 19 files changed, 154 insertions(+), 43 deletions(-)
 create mode 100644 package/dmalloc/dmalloc-5.4.3-add-fpic.patch
 delete mode 100644 package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch

Thanks,

Signature · 1 line
Thomas Petazzoni
#1 lore raw

PATCH 1/19 dependencies: add svn as a mandatory tool

Now that two packages (tremor and libsvgtiny) are being downloaded from svn, svn becomes a mandatory tool to run Buildroot.

---
 toolchain/dependencies/dependencies.sh |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
toolchain/dependencies/dependencies.sh +3 -1
index 96f843f..b3822ef 100755
@@ -137,13 +137,15 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then
 fi;
 
 # Check that a few mandatory programs are installed
-for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python ; do
+for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python svn ; do
     if ! which $prog > /dev/null ; then
 	/bin/echo -e "\nYou must install '$prog' on your build machine";
 	if test $prog = "makeinfo" ; then
 	    /bin/echo -e "makeinfo is usually part of the texinfo package in your distribution\n"
 	elif test $prog = "msgfmt" ; then
 	    /bin/echo -e "msgfmt is usually part of the gettext package in your distribution\n"
+	elif test $prog = "svn" ; then
+	    /bin/echo -e "svn is usually part of the subversion package in your distribution\n"
 	else
 	    /bin/echo -e "\n"
 	fi
Signature · 1 line
1.7.0.4
#2 lore raw

PATCH 1/19 dependencies: add svn as a mandatory tool

Quoted 2 lines · Thomas Petazzoni

Now that two packages (tremor and libsvgtiny) are being downloaded from svn, svn becomes a mandatory tool to run Buildroot.

Hi Thomas,

It seems like this might be a big dependency for people to install, particularly if they do not use these packages. Would it be better to make only those packages that require it depend on svn?

#3 lore raw

PATCH 1/19 dependencies: add svn as a mandatory tool

Quoted 3 lines · On Fri, 30 Jul 2010 10:37:43 +0100 Will Newton <[email protected]> wrote:

It seems like this might be a big dependency for people to install, particularly if they do not use these packages. Would it be better to make only those packages that require it depend on svn?

For the moment, we haven't entered the game in which we try to narrow host dependencies to the particular package(s) that require it, just because it was easier not to do so. Maybe it's time to change this, I don't know.

However, it's sure that entering this game means adding yet another level of configurability that is relatively hard to test (i.e checking that each individual package properly lists all its mandatory dependencies).

But I understand that having to install SVN (and later Git) is a bit overkill.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 1/19 dependencies: add svn as a mandatory tool

Quoted 12 lines · Thomas Petazzoni
Quoted 3 lines · On Fri, 30 Jul 2010 10:37:43 +0100 Will Newton <[email protected]> wrote:

It seems like this might be a big dependency for people to install, particularly if they do not use these packages. Would it be better to make only those packages that require it depend on svn?

For the moment, we haven't entered the game in which we try to narrow host dependencies to the particular package(s) that require it, just because it was easier not to do so. Maybe it's time to change this, I don't know.

Quoted 7 lines

However, it's sure that entering this game means adding yet another level of configurability that is relatively hard to test (i.e checking that each individual package properly lists all its mandatory dependencies).

But I understand that having to install SVN (and later Git) is a bit overkill.

I was thinking maybe we could make the svn download action print an error if svn wasn't installed (and likewise for git etc.).

In some ways that wouldn't be as neat because you wouldn't just be able to enable any package and have it build out of the box, but it would make the dependency management easier for people who are shipping buildroot as a development environment (aka me ;-).

#5 lore raw

PATCH 2/19 oprofile: disable with external toolchain

In reply to Thomas Petazzoni

oprofile depends on binutils_target, but binutils_target fails to build with external toolchains because the binutils version has not been choosen. As the fix is not trivial, let's just disable oprofile in external toolchain builds for the moment.

---
 package/oprofile/Config.in |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
package/oprofile/Config.in +4 -0
index 770b555..c877dae 100644
@@ -1,5 +1,9 @@
 config BR2_PACKAGE_OPROFILE
 	bool "oprofile"
+	# The dependency on binutils_target does not work with
+	# external toolchains since the binutils version was not
+	# choosen in the config. This will have to be fixed later.
+	depends on !BR2_TOOLCHAIN_EXTERNAL
 	select BR2_PACKAGE_POPT
 	depends on BR2_INSTALL_LIBSTDCPP
 	help
Signature · 1 line
1.7.0.4
#6 lore raw

PATCH 3/19 Fix computation of REAL_GNU_TARGET_NAME

In reply to Thomas Petazzoni

The current computation of REAL_GNU_TARGET_NAME is incorrect for non-ARM glibc platforms because it generates something such as mipsel-unknown-linux- as the REAL_GNU_TARGET_NAME.

So we correct this by :

* Adding "gnu" in the suffix when glibc is used, so that in the previous case we will have mipsel-unknown-linux-gnu

* Improving the ARM_EABI code to correctly append "eabi" when glibc is selected, so that we have arm-unknown-linux-gnueabi, and to append "gnueabi" when uclibc is selected, so that we have arm-unknown-linux-uclibcgnueabi. The little trick here is that LIBC and ABI aren't completely orthogonal on ARM.

This fixes problems such as :

checking host system type... Invalid configuration mipsel-unknown-linux-': machine mipsel-unknown-linux' not recognized

---
 package/Makefile.in |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
package/Makefile.in +10 -1
index 36f2f24..bb2aafa 100644
@@ -93,11 +93,20 @@ LIBC=uclibc
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
 LIBC=uclibc
 else
-LIBC=
+LIBC=gnu
 endif
 
+# The ABI suffix is a bit special on ARM, as it needs to be
+# -uclibcgnueabi for uClibc EABI, -uclibc for uClibc OABI, -gnueabi
+# for glibc EABI and -gnu for glibc OABI. This means that the LIBC and
+# ABI aren't strictly orthogonal, which explains why we need the test
+# on LIBC below.
 ifeq ($(BR2_ARM_EABI),y)
+ifeq ($(LIBC),uclibc)
 ABI=gnueabi
+else
+ABI=eabi
+endif
 endif
 
 REAL_GNU_TARGET_NAME=$(ARCH)-unknown-linux-$(LIBC)$(ABI)
Signature · 1 line
1.7.0.4
#7 lore raw

PATCH 4/19 gdb: disallow GDB_HOST on external toolchain builds

In reply to Thomas Petazzoni

The cross-gdb is supposed to be part of the external toolchain, so Buildroot does not need to build it. Moreover, GDB_HOST build currently fail with:

ln -snf ../../bin/arm-unknown-linux-gnueabi-gdb \
/home/test/outputs/test-48/staging/usr/arm-unknown-linux-gnueabi/bin/gdb
ln: creating symbolic link `/home/test/outputs/test-48/staging/usr/arm-unknown-linux-gnueabi/bin/gdb': No such file or directory

And even worse: they overwrite the cross-gdb of the external toolchain!

---
 toolchain/gdb/Config.in |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
toolchain/gdb/Config.in +3 -0
index 09701c7..edd8715 100644
@@ -18,6 +18,9 @@ config BR2_PACKAGE_GDB_SERVER
 
 config BR2_PACKAGE_GDB_HOST
 	bool "Build gdb for the Host"
+	# cross-gdb is supposed to be part of the external
+	# toolchain. And the build currently fails.
+	depends on !BR2_TOOLCHAIN_EXTERNAL
 	help
 	    Build gdb to run on the host to debug programs run on the target.
 
Signature · 1 line
1.7.0.4
#8 lore raw

PATCH 5/19 xerces: fix dependency on iconv

In reply to Thomas Petazzoni

All "select BR2_PACKAGE_LIBICONV" must use the "if !BR2_ENABLE_LOCALE" condition, otherwise we can end up with a toolchain suppoting locales *and* the libiconv package being compiled, which confuses other packages. Example with glib:

gconvert.c:52:2: error: #error GNU libiconv in use but included iconv.h not from libiconv

In addition to that, in xerces.mk, we add the dependency on libiconv when it is available, to make sure it gets compiled before xerces.

---
 package/xerces/Config.in |    2 +-
 package/xerces/xerces.mk |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/xerces/Config.in +1 -1
index 85bd96c..123f0c1 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XERCES
 	bool "xerces-c++"
 	depends on BR2_INSTALL_LIBSTDCPP
-	select BR2_PACKAGE_LIBICONV
+	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Xerces-C++ is a validating XML parser written in portable C++.
 
package/xerces/xerces.mk +1 -1
index 9f77be6..8a1f693 100644
@@ -87,7 +87,7 @@ $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY): $(STAGING_DIR)/usr/lib/$(LIBXERCES_BI
 	cp -a $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY)* $(TARGET_DIR)/usr/lib
 	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY)
 
-xerces: $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY)
+xerces: $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY)
 
 xerces-bin: $(XERCES_DIR)/usr/lib/$(LIBXERCES_BINARY)
 
Signature · 1 line
1.7.0.4
#9 lore raw

PATCH 6/19 libiconv: add an error when both libiconv and locale are enabled

In reply to Thomas Petazzoni

This error should never show up if all Buildroot dependencies are correct. However, rather than failing horribly later on, catch this particular case early on and error out.

---
 package/libiconv/libiconv.mk |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
package/libiconv/libiconv.mk +7 -0
index cc40cd4..a3f762a 100644
@@ -23,3 +23,10 @@ ifneq ($(BR2_ENABLE_DEBUG),y)
 	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libcharset.so.*
 endif
 	touch $@
+
+# Configurations where the toolchain supports locales and the libiconv
+# package is enabled are incorrect, because the toolchain already
+# provides libiconv functionality, and having both confuses packages.
+ifeq ($(BR2_PACKAGE_LIBICONV)$(BR2_ENABLE_LOCALE),yy)
+$(error Libiconv should never be enabled when the toolchain supports locales. Report this failure to Buildroot developers)
+endif
Signature · 1 line
1.7.0.4
#10 lore raw

PATCH 7/19 libeXosip: add dependency on host-pkg-config and remove useless flags

In reply to Thomas Petazzoni

When libeXosip fails to use pkg-config to find libosip, it defaults to thinking that libosip is installed in $(prefix)/lib and $(prefix)/include, which is of course wrong. There was an attempt to fix this by passing OSIP_CFLAGS and OSIP_LIBS variables to libeXosip ./configure script, but it still does not work:

checking pkg-config is at least version 0.9.0... ./configure: line 21035: /home/test/outputs/test-41/host/usr/bin/pkg-config: No such file or directory no
checking for OSIP... configure: WARNING: assuming osip can be found in -I${prefix}/include and -L${exec_prefix}/lib

Therefore, the correct fix is to depend on host-pkg-config.

---
 package/libeXosip2/libeXosip2.mk |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
package/libeXosip2/libeXosip2.mk +1 -3
index 7f282b7..30eac9f 100644
@@ -22,8 +22,6 @@ $(LIBEXOSIP2_DIR)/.configured: $(LIBEXOSIP2_DIR)/.unpacked
 	(cd $(LIBEXOSIP2_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(TARGET_CONFIGURE_ARGS) \
-		OSIP_CFLAGS="$(TARGET_CFLAGS)" \
-		OSIP_LIBS="-L$(STAGING_DIR)/usr/lib -losip2 -losipparser2" \
 		./configure $(QUIET) \
 		--target=$(GNU_TARGET_NAME) \
 		--host=$(GNU_TARGET_NAME) \
@@ -73,7 +71,7 @@ $(TARGET_DIR)/usr/bin/sip_reg: $(STAGING_DIR)/usr/bin/sip_reg
 
 
 
-libeXosip2: libosip2 $(TARGET_DIR)/usr/lib/libeXosip2.so
+libeXosip2: host-pkg-config libosip2 $(TARGET_DIR)/usr/lib/libeXosip2.so
 
 libeXosip2-source: $(DL_DIR)/$(LIBEXOSIP2_SOURCE)
 
Signature · 1 line
1.7.0.4
#11 lore raw

PATCH 8/19 cdrkit: fix TARGET_CC/TARGET_CFLAGS for CMake

In reply to Thomas Petazzoni

Since the reorganization of the variables in package/Makefile.in, TARGET_CC and TARGET_CXX now directly contain the --sysroot= option in addition to the compiler path. This is due to some ./configure scripts using just $(TARGET_CC) for some tests instead of $(TARGET_CC) $(TARGET_CFLAGS).

However, in the case of CMake, this fails as CMake really only wants the path of the compiler in its CMAKE_C_COMPILER and CMAKE_CXX_COMPILER variables. So here, we recompute proper values for CMake by removing the --sysroot option from the compiler variables and re-adding it to the flags variables.

---
 package/cdrkit/cdrkit.mk |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
package/cdrkit/cdrkit.mk +11 -3
index f7e21b0..a0ce9cb 100644
@@ -11,15 +11,23 @@ else
 CMAKE_ENDIAN_OPT=-DBITFIELDS_HTOL=0
 endif
 
+# CMake doesn't support having the --sysroot option directly in the
+# compiler path, so move this option to the CFLAGS/CXXFLAGS variables.
+CDRKIT_TARGET_CC = $(filter-out --sysroot=%,$(TARGET_CC))
+CDRKIT_TARGET_CXX = $(filter-out --sysroot=%,$(TARGET_CXX))
+CDRKIT_TARGET_CFLAGS = $(filter --sysroot=%,$(TARGET_CC)) $(TARGET_CFLAGS)
+CDRKIT_TARGET_CXXFLAGS = $(filter --sysroot=%,$(TARGET_CXX)) $(TARGET_CXXFLAGS)
+
 define CDRKIT_CONFIGURE_CMDS
  -mkdir $(@D)/build
  (cd $(@D)/build ; \
 	$(HOST_DIR)/usr/bin/cmake .. \
 		-Wno-dev \
 		-DCMAKE_SYSTEM_NAME:STRING="Linux" \
-		-DCMAKE_C_COMPILER:FILEPATH="$(TARGET_CC)" \
-		-DCMAKE_CXX_COMPILER:FILEPATH="$(TARGET_CXX)" \
-		-DCMAKE_C_FLAGS:STRING="$(TARGET_CFLAGS)" \
+		-DCMAKE_C_COMPILER:FILEPATH="$(CDRKIT_TARGET_CC)" \
+		-DCMAKE_CXX_COMPILER:FILEPATH="$(CDRKIT_TARGET_CXX)" \
+		-DCMAKE_C_FLAGS:STRING="$(CDRKIT_TARGET_CFLAGS)" \
+		-DCMAKE_CXX_FLAGS:STRING="$(CDRKIT_TARGET_CXXFLAGS)" \
 		-DCMAKE_EXE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
 		-DCMAKE_MODULE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
 		-DCMAKE_SHARED_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \
Signature · 1 line
1.7.0.4
#12 lore raw

PATCH 9/19 dmalloc: pass -fPIC when compiling

In reply to Thomas Petazzoni

This is needed to avoid:

/home/test/mips-4.4/bin/mips-linux-gnu-ld --sysroot=/home/test/outputs/test-35/staging -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a /home/test/mips-4.4/bin/mips-linux-gnu-ld: libdmalloc.a(arg_check.o): relocation R_MIPS_HI16 against `_dmalloc_flags' can not be used when making a shared object; recompile with -fPIC

It is fixed through a patch to Makefile.in instead of passing a CFLAGS variable to ./configure environment in order to avoid cluttering the configuration cache with incorrect values.

---
 package/dmalloc/dmalloc-5.4.3-add-fpic.patch |   60 ++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 package/dmalloc/dmalloc-5.4.3-add-fpic.patch
package/dmalloc/dmalloc-5.4.3-add-fpic.patch new file +60 -0
new file mode 100644
index 0000000..839d3ef
@@ -0,0 +1,60 @@
+Without -fPIC, dmalloc does not build with:
+
+/home/test/mips-4.4/bin/mips-linux-gnu-ld --sysroot=/home/test/outputs/test-35/staging -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a
+/home/test/mips-4.4/bin/mips-linux-gnu-ld: libdmalloc.a(arg_check.o): relocation R_MIPS_HI16 against `_dmalloc_flags' can not be used when making a shared object; recompile with -fPIC
+libdmalloc.a(arg_check.o): could not read symbols: Bad value
+
+This patch, taken from
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/dmalloc/files/dmalloc-5.2.4-fpic.patch?hideattic=0&view=markup,
+fixes the problem by passing the -fPIC flag. It isn't passed through
+the ./configure environment in order to not clutter the configuration
+cache with incorrect values.
+
+Signed-off-by: Thomas Petazzoni <[email protected]>
+---
+ Makefile.in |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: dmalloc-5.4.3/Makefile.in
+===================================================================
+--- dmalloc-5.4.3.orig/Makefile.in
++++ dmalloc-5.4.3/Makefile.in
+@@ -319,17 +319,17 @@
+ # special _th versions of objects with the LOCK_THREADS variable defined to 1
+ chunk_th.o : $(srcdir)/chunk.c
+ 	rm -f $@
+-	$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
++	$(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
+ 		-c $(srcdir)/chunk.c -o ./$@
+ 
+ error_th.o : $(srcdir)/error.c
+ 	rm -f $@
+-	$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
++	$(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
+ 		-c $(srcdir)/error.c -o ./$@
+ 
+ malloc_th.o : $(srcdir)/malloc.c
+ 	rm -f $@
+-	$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
++	$(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
+ 		-c $(srcdir)/malloc.c -o ./$@
+ 
+ tests : $(TEST)
+@@ -355,7 +355,7 @@
+ 
+ .c.o :
+ 	rm -f $@
+-	$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@
++	$(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@
+ 
+ #
+ # .cc.o auto-target doesn't work on some systems. 
+@@ -363,7 +363,7 @@
+ #
+ dmallocc.o : $(srcdir)/dmallocc.cc
+ 	rm -f $@
+-	$(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \
++	$(CXX) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \
+ 		-o ./$@
+ 
+ .texi.info :
Signature · 1 line
1.7.0.4
#13 lore raw

PATCH 10/19 speech-tools: fix build failure by using Debian version and patches

In reply to Thomas Petazzoni

The upstream version of speech-tools does not build with GCC >= 4.3, mainly due to changes in how C++ headers are included. This is fixed in Debian, so let's use the Debian version and patches.

---
 .../festival/speech-tools/speech-tools.mk          |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)
package/multimedia/festival/speech-tools/speech-tools.mk +14 -3
index 0aa44cc..66bd308 100644
@@ -3,9 +3,11 @@
 # speech-tools
 #
 #############################################################
-SPEECH_TOOLS_VERSION = 1.2.96-beta
-SPEECH_TOOLS_SOURCE = speech_tools-$(SPEECH_TOOLS_VERSION).tar.gz
-SPEECH_TOOLS_SITE = http://festvox.org/packed/festival/1.96
+
+SPEECH_TOOLS_VERSION = 1.2.96~beta
+SPEECH_TOOLS_SOURCE = speech-tools_$(SPEECH_TOOLS_VERSION).orig.tar.gz
+SPEECH_TOOLS_PATCH = speech-tools_$(SPEECH_TOOLS_VERSION)-6.diff.gz
+SPEECH_TOOLS_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/s/speech-tools/
 SPEECH_TOOLS_AUTORECONF = NO
 SPEECH_TOOLS_INSTALL_STAGING = NO
 SPEECH_TOOLS_INSTALL_TARGET = YES
@@ -14,6 +16,15 @@ SPEECH_TOOLS_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) STRIP=$(TARGET_STRIP) in
 SPEECH_TOOLS_CONF_OPT =
 SPEECH_TOOLS_MAKE_OPT = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)"
 
+define SPEECH_TOOLS_DEBIAN_PATCH_APPLY
+	# Use the order of the quilt patch series to apply the patches
+	for p in $$(cat $(@D)/debian/patches/series) ; do \
+                toolchain/patch-kernel.sh $(@D) $(@D)/debian/patches $$p; \
+        done
+endef
+
+SPEECH_TOOLS_POST_PATCH_HOOKS += SPEECH_TOOLS_DEBIAN_PATCH_APPLY
+
 SPEECH_TOOLS_DEPENDENCIES = ncurses
 
 $(eval $(call AUTOTARGETS,package/multimedia/festival,speech-tools))
Signature · 1 line
1.7.0.4
#14 lore raw

PATCH 11/19 avahi: pkg-config is needed

In reply to Thomas Petazzoni
---
 package/avahi/avahi.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/avahi/avahi.mk +1 -1
index fa05de3..8e2d14f 100644
@@ -84,7 +84,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \
 		--with-autoipd-user=default \
 		--with-autoipd-group=default
 
-AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-intltool
+AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-intltool host-pkg-config
 
 ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
 AVAHI_DEPENDENCIES += libdaemon
Signature · 1 line
1.7.0.4
#15 lore raw

PATCH 12/19 samba: remove swat documentation when not needed

In reply to Thomas Petazzoni

When SWAT (the Web administration tool of Samba) is enabled, which is the default when one enables samba in Buildroot, a lot of documentation gets installed in /usr/swat (~15 MB). This patch fixes this by removing the documentation when BR2_HAVE_DOCUMENTATION is not set.

---
 package/samba/samba.mk |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
package/samba/samba.mk +11 -0
index 1c59070..44f7fde 100644
@@ -161,6 +161,17 @@ $(SAMBA_HOOK_POST_INSTALL):
 	# remove unneeded
 	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_))
 	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_TXTTARGETS_))
+ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y)
+ifneq ($(BR2_HAVE_DOCUMENTATION),y)
+	# Remove the documentation
+	rm -rf $(TARGET_DIR)/usr/swat/help/manpages
+	rm -rf $(TARGET_DIR)/usr/swat/help/Samba3*
+	rm -rf $(TARGET_DIR)/usr/swat/using_samba/
+	# Removing the welcome.html file will make swat default to
+	# welcome-no-samba-doc.html
+	rm -rf $(TARGET_DIR)/usr/swat/help/welcome.html
+endif
+endif
 	# strip binaries
 	$(STRIPCMD) $(STRIP_STRIP_ALL) $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_y))
 	# install start/stop script
Signature · 1 line
1.7.0.4
#16 lore raw

PATCH 13/19 u-boot: fix custom patch handling

In reply to Thomas Petazzoni

When U-Boot is enabled and no custom patch directory has been set, then the current test:

  ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),"")

works. However, when U-Boot is not enabled, but still gets compiled because mkimage is needed to build the kernel, BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is completely empty. It does not even have quotes. So the test in fact needs to be:

ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),)

---
 boot/u-boot/u-boot.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
boot/u-boot/u-boot.mk +1 -1
index 9eeea1d..7b6b2ce 100644
@@ -77,7 +77,7 @@ $(U_BOOT_DIR)/.patched: $(U_BOOT_DIR)/.unpacked
 	toolchain/patch-kernel.sh $(U_BOOT_DIR) boot/u-boot \
 		u-boot-$(U_BOOT_VERSION)-\*.patch \
 		u-boot-$(U_BOOT_VERSION)-\*.patch.$(ARCH)
-ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),"")
+ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),)
 	toolchain/patch-kernel.sh $(U_BOOT_DIR) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) u-boot-$(U_BOOT_VERSION)-\*.patch
 endif
 	touch $@
Signature · 1 line
1.7.0.4
#17 lore raw

PATCH 14/19 linux: more mistake detection

In reply to Thomas Petazzoni

Just as we do for U-Boot, error out in the Linux kernel makefile when the defconfig name or the configuration file path are not correct. What prompted me to implement this was a report on IRC from an user using BR 2010.05 and not understand why the kernel build process was failing. It was because he just forgot to set the path of the configuration file.

Of course, it doesn't catch all mistakes (like pointing to a non-existing defconfig or to a non-existing configuration file), but it at least catches basic mistakes.

---
 linux/linux.mk |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
linux/linux.mk +13 -0
index a3e5a0c..3fc259c 100644
@@ -160,3 +160,16 @@ linux26-rebuild-with-initramfs: $(LINUX26_DIR)/.stamp_initramfs_rebuilt
 ifeq ($(BR2_LINUX_KERNEL),y)
 TARGETS+=linux26
 endif
+
+# Checks to give errors that the user can understand
+ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
+ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG)),)
+$(error No kernel defconfig name specified, check your BR2_LINUX_KERNEL_DEFCONFIG setting)
+endif
+endif
+
+ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
+ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)),)
+$(error No kernel configuration file specified, check your BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE setting)
+endif
+endif
\ No newline at end of file
Signature · 1 line
1.7.0.4
#18 lore raw

PATCH 15/19 cairo: PDF support is needed when SVG support is enabled

In reply to Thomas Petazzoni

As soon as PostScript, PNG or SVG support is enabled, PDF support is required for Cairo to build properly. Otherwise, you get build failures such as:

.libs/cairo-type3-glyph-surface.o: In function `_cairo_type3_glyph_surface_set_stream':
/home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to _cairo_pdf_operators_set_stream' /home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to _cairo_pdf_operators_set_stream'

---
 package/cairo/Config.in |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
package/cairo/Config.in +1 -0
index 752f615..19c4723 100644
@@ -30,5 +30,6 @@ config BR2_PACKAGE_CAIRO_PNG
 config BR2_PACKAGE_CAIRO_SVG
 	bool "svg support"
 	select BR2_PACKAGE_CAIRO_PNG
+	select BR2_PACKAGE_CAIRO_PDF
 
 endif
Signature · 1 line
1.7.0.4
#19 lore raw

PATCH 16/19 toolchain: mark uClibc 0.9.31 + locale + C++ as broken

In reply to Thomas Petazzoni

It fails to build with:

ctype_members.cc: In constructor 'std::ctype_byname<_CharT>::ctype_byname(const char*, size_t) [with _CharT = char]':
ctype_members.cc:59: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' ctype_members.cc:60: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' ctype_members.cc:61: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' make[5]: *** [ctype_members.lo] Error 1

---
 toolchain/toolchain-common.in |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
toolchain/toolchain-common.in +4 -0
index bea0c7c..3c70f9c 100644
@@ -157,6 +157,7 @@ config BR2_GCC_CROSS_CXX
 config BR2_INSTALL_LIBSTDCPP
 	bool "Build/install c++ compiler and libstdc++?"
 	select BR2_GCC_CROSS_CXX
+	depends on !(BR2_avr32 && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31)
 	help
 	  If you are building your own toolchain and want to build and install
 	  the C++ compiler and library then you need to enable this option.
@@ -164,6 +165,9 @@ config BR2_INSTALL_LIBSTDCPP
 	  support and you want to use the compiler / library then you need 
 	  to select this option.
 
+comment "C++ support broken in uClibc 0.9.31 with locale enabled"
+	depends on BR2_avr32 && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31
+
 config BR2_TARGET_OPTIMIZATION
 	string "Target Optimizations"
 	default "-pipe"
Signature · 1 line
1.7.0.4
#20 lore raw

PATCH 17/19 libcurl: bump version to fix build issue

In reply to Thomas Petazzoni

The ./configure script of libcurl includes <arpa_inet.h> instead of <arpa/inet.h> when testing for inet_pton(). The test fails, but it doesn't prevent libcurl to build as it can work without inet_pton().

However, it fills the configure cache with the fact that inet_pton() does not exist. And later, tcpreplay reads this from the configure cache and fails to build, because tcpreplay really need inet_pton().

Unfortunately, just fixing the .m4 file doesn't work because the autoreconfiguration of the package fails. Since the fix for this problem is already upstream, the easiest solution is therefore to bump libcurl.

The libcurl-7.19.2-fix-ssl-no-verbose.patch patch is no longer needed.

Since we're patching a m4 file, we must autoreconfigure the package.

---
 .../libcurl-7.19.2-fix-ssl-no-verbose.patch        |   25 --------------------
 package/libcurl/libcurl.mk                         |    3 +-
 2 files changed, 2 insertions(+), 26 deletions(-)
 delete mode 100644 package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch
package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch deleted +0 -25
deleted file mode 100644
index b15ed96..0000000
@@ -1,25 +0,0 @@
-ssluse.c: fix build breakage with --with-ssl --disable-verbose
-
-Revision 1.206 of ssluse.c removed the prefix argument to asn1_output,
-but it is still referenced in the CURL_DISABLE_VERBOSE_STRINGS case.
-
-Signed-off-by: Peter Korsgaard <[email protected]>
----
- lib/ssluse.c |    4 ----
- 1 file changed, 4 deletions(-)
-
-Index: curl-7.19.2/lib/ssluse.c
-===================================================================
---- curl-7.19.2.orig/lib/ssluse.c
-+++ curl-7.19.2/lib/ssluse.c
-@@ -923,10 +923,6 @@
-   int i;
-   int year=0,month=0,day=0,hour=0,minute=0,second=0;
- 
--#ifdef CURL_DISABLE_VERBOSE_STRINGS
--  (void)prefix;
--#endif
--
-   i=tm->length;
-   asn1_string=(const char *)tm->data;
- 
package/libcurl/libcurl.mk +2 -1
index 863c301..488df04 100644
@@ -3,11 +3,12 @@
 # libcurl
 #
 #############################################################
-LIBCURL_VERSION = 7.19.2
+LIBCURL_VERSION = 7.21.0
 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2
 LIBCURL_SITE = http://curl.haxx.se/download/
 LIBCURL_INSTALL_STAGING = YES
 LIBCURL_CONF_OPT = --disable-verbose --disable-manual --enable-hidden-symbols
+LIBCURL_LIBTOOL_PATCH = NO
 
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 LIBCURL_DEPENDENCIES += openssl
Signature · 1 line
1.7.0.4
#21 lore raw

PATCH 17/19 libcurl: bump version to fix build issue

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Thomas> The ./configure script of libcurl includes <arpa_inet.h> instead of Thomas> <arpa/inet.h> when testing for inet_pton(). The test fails, but it Thomas> doesn't prevent libcurl to build as it can work without inet_pton().

Thomas> However, it fills the configure cache with the fact that inet_pton() Thomas> does not exist. And later, tcpreplay reads this from the configure Thomas> cache and fails to build, because tcpreplay really need inet_pton().

Thomas> Unfortunately, just fixing the .m4 file doesn't work because the Thomas> autoreconfiguration of the package fails. Since the fix for this Thomas> problem is already upstream, the easiest solution is therefore to bump Thomas> libcurl.

Thomas> The libcurl-7.19.2-fix-ssl-no-verbose.patch patch is no longer needed.

Thomas> Since we're patching a m4 file, we must autoreconfigure the package.

This line is no longer valid.

Signature · 1 line
Bye, Peter Korsgaard
#22 lore raw

PATCH 17/19 libcurl: bump version to fix build issue

Quoted 7 lines · On Fri, 30 Jul 2010 10:21:06 +0200 Peter Korsgaard <[email protected]> wrote:

Thomas> The libcurl-7.19.2-fix-ssl-no-verbose.patch patch is no Thomas> longer needed.

Thomas> Since we're patching a m4 file, we must autoreconfigure the Thomas> package.

This line is no longer valid.

Oops, correct. I've rebased and re-pushed at the same location.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#23 lore raw

PATCH 18/19 xerces: fix download location

In reply to Thomas Petazzoni

apache.jumper.nu does not work anymore, so use archive.apache.org instead.

---
 package/xerces/xerces.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/xerces/xerces.mk +1 -1
index 8a1f693..fd0417d 100644
@@ -5,7 +5,7 @@
 #############################################################
 XERCES_VERSION:=3.0.1
 XERCES_SOURCE:=xerces-c-$(XERCES_VERSION).tar.gz
-XERCES_SITE:=http://apache.jumper.nu/xerces/c/3/sources/
+XERCES_SITE:=http://archive.apache.org/dist/xerces/c/3/sources/
 XERCES_CAT:=$(ZCAT)
 XERCES_DIR:=$(BUILD_DIR)/xerces-c-$(XERCES_VERSION)
 LIBXERCES_BINARY:=libxerces-c-3.0.so
Signature · 1 line
1.7.0.4
#24 lore raw

PATCH 19/19 xerces: only add -liconv when locale are disabled

In reply to Thomas Petazzoni

The iconv library can only be present when locale are disabled in the toolchain. When locale are enabled in the toolchain, iconv is directly implemented by the C library.

---
 package/xerces/xerces.mk |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
package/xerces/xerces.mk +5 -1
index fd0417d..1dcc10a 100644
@@ -39,6 +39,10 @@ XERCES_APPS:= \
 
 XERCES_INCLUDES:=/usr/include/xercesc
 
+ifneq ($(BR2_ENABLE_LOCALE),y)
+XERCES_MAKE_OPT=LIBS="-liconv"
+endif
+
 $(DL_DIR)/$(XERCES_SOURCE):
 	 $(call DOWNLOAD,$(XERCES_SITE),$(XERCES_SOURCE))
 
@@ -74,7 +78,7 @@ $(XERCES_DIR)/.configured: $(XERCES_DIR)/.unpacked
 	touch $@
 
 $(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY): $(XERCES_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) LIBS="-liconv" -C $(XERCES_DIR)
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) $(XERCES_MAKE_OPT) -C $(XERCES_DIR)
 
 $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY): $(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY)
 	$(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(STAGING_DIR) \
Signature · 1 line
1.7.0.4
#25 lore raw
In reply to Thomas Petazzoni
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Thomas> The following changes since commit 7bfc9e464cf448f83b06953f1b26a150539b3960:
Thomas> Gustavo Zacarias (1):
Thomas> netsnmp: depend on openssl when the package is on to ensure build order

Thomas> are available in the git repository at:

Thomas> git://git.busybox.net/~tpetazzoni/git/buildroot fixes-20100729

Pulled and pushed, thanks!

Signature · 1 line
Bye, Peter Korsgaard