From 54d64798e1e14b526c3cc1142961972cff9f1e8a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 13 May 2010 22:21:08 +0200 Subject: Add a BR2_NEEDS_GETTEXT option When using an external toolchain that uses the glibc or eglibc C libraries, compiling a separate gettext and libintl is not needed and is even a source of confusion, causing build failures. These build failures are due to the fact that when libintl is compiled, it replaces the C library libintl.h by its own, which does #define gettext libintl_gettext. Then, when packages want to use gettext, autoconf realize that gettext is available in the C library and therefore do not add -lintl to the LDFLAGS, causing the build failure because the program has been compiled to use libintl_gettext but this function is not available. Therefore, we should only use gettext if a uClibc internal toolchain or a uClibc external toolchain. If an external glibc toolchain is used, gettext shouldn't be used. In order to implement that, we introduce the BR2_NEEDS_GETTEXT option, which is hidden to the user, and whose value is computed automatically from the rest of the configuration. Signed-off-by: Thomas Petazzoni --- toolchain/Config.in.2 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/toolchain/Config.in.2 b/toolchain/Config.in.2 index f04f18a21..fc6759dd6 100644 --- a/toolchain/Config.in.2 +++ b/toolchain/Config.in.2 @@ -56,6 +56,14 @@ config BR2_ENABLE_LOCALE_WHITELIST will be available on the target - That purely depends on the support for that locale in the selected packages. +# uClibc toolchains require a separatly-compiled gettext/libintl when +# locale support is enabled. This isn't necessary with glibc +# toolchains as glibc includes gettext/libintl. +config BR2_NEEDS_GETTEXT + bool + default y if (BR2_TOOLCHAIN_BUILDROOT && BR2_ENABLE_LOCALE) + default y if (BR2_TOOLCHAIN_EXTERNAL_UCLIBC && BR2_ENABLE_LOCALE) + config BR2_USE_WCHAR bool "Enable WCHAR support" help -- cgit v1.2.3 From 542fbe8520c981f9c96705a57e4263f34f2ab2e6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 14 May 2010 09:44:03 +0200 Subject: Make all package using gettext rely on BR2_NEEDS_GETTEXT Signed-off-by: Thomas Petazzoni --- package/avahi/Config.in | 4 ++-- package/avahi/avahi.mk | 2 +- package/gmpc/Config.in | 4 ++-- package/gmpc/gmpc.mk | 3 ++- package/grep/Config.in | 4 ++-- package/grep/grep.mk | 2 +- package/hal/Config.in | 4 ++-- package/hal/hal.mk | 2 +- package/libglib2/Config.in | 4 ++-- package/libglib2/libglib2.mk | 2 +- package/libidn/libidn.mk | 2 +- package/libsoup/libsoup.mk | 2 +- package/make/Config.in | 4 ++-- package/make/make.mk | 2 +- package/multimedia/libmpd/Config.in | 2 -- package/pango/pango.mk | 2 +- package/php/Config.ext | 2 +- package/php/php.mk | 2 +- package/psmisc/Config.in | 4 ++-- package/psmisc/psmisc.mk | 8 +------- package/sshfs/Config.in | 4 ++-- package/sshfs/sshfs.mk | 2 +- package/util-linux/Config.in | 4 ++-- package/util-linux/util-linux.mk | 4 ++-- 24 files changed, 34 insertions(+), 41 deletions(-) diff --git a/package/avahi/Config.in b/package/avahi/Config.in index 35b7c2785..338600515 100644 --- a/package/avahi/Config.in +++ b/package/avahi/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_AVAHI bool "avahi" - select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT help Avahi is a system which facilitates service discovery on a local network. diff --git a/package/avahi/avahi.mk b/package/avahi/avahi.mk index 9940d280d..5e64047b4 100644 --- a/package/avahi/avahi.mk +++ b/package/avahi/avahi.mk @@ -82,7 +82,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \ --with-autoipd-user=default \ --with-autoipd-group=default -AVAHI_DEPENDENCIES = $(if $(BR2_PACKAGE_GETTEXT),gettext) host-intltool +AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) host-intltool ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),) AVAHI_DEPENDENCIES += libdaemon diff --git a/package/gmpc/Config.in b/package/gmpc/Config.in index a8343617e..056f5a077 100644 --- a/package/gmpc/Config.in +++ b/package/gmpc/Config.in @@ -2,8 +2,8 @@ config BR2_PACKAGE_GMPC bool "gmpc" depends on BR2_PACKAGE_LIBGTK2 select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_GETTEXT - select BR2_PACKAGE_LIBINTL + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBMPD select BR2_PACKAGE_LIBCURL diff --git a/package/gmpc/gmpc.mk b/package/gmpc/gmpc.mk index 0db89b902..aa74a2e2f 100644 --- a/package/gmpc/gmpc.mk +++ b/package/gmpc/gmpc.mk @@ -11,7 +11,8 @@ GMPC_CONF_ENV = ac_cv_lib_curl_curl_global_init=yes \ ac_cv_path_GOB2=$(GOB2_HOST_BINARY) GMPC_CONF_OPT = --disable-mmkeys -GMPC_DEPENDENCIES = libglib2 libgtk2 libglade libcurl libmpd host-gob2 host-intltool +GMPC_DEPENDENCIES = libglib2 libgtk2 libglade libcurl libmpd host-gob2 host-intltool \ + $(if $(BR2_NEEDS_GETTEXT),gettext libintl) ifeq ($(BR2_PACKAGE_XLIB_LIBSM),y) GMPC_DEPENENCIES += xlib_libSM diff --git a/package/grep/Config.in b/package/grep/Config.in index 3795330ce..f898fdf4a 100644 --- a/package/grep/Config.in +++ b/package/grep/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_GREP bool "grep" - select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT help The GNU regular expression matcher. diff --git a/package/grep/grep.mk b/package/grep/grep.mk index acef6e9d2..93c6cafdd 100644 --- a/package/grep/grep.mk +++ b/package/grep/grep.mk @@ -8,6 +8,6 @@ GREP_SOURCE:=grep-$(GREP_VERSION).tar.bz2 GREP_SITE:=$(BR2_GNU_MIRROR)/grep GREP_CONF_OPT = --disable-perl-regexp --without-included-regex -GREP_DEPENDENCIES = $(if $(BR2_ENABLE_LOCALE),gettext libintl) +GREP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) $(eval $(call AUTOTARGETS,package,grep)) diff --git a/package/hal/Config.in b/package/hal/Config.in index 250e00509..9518f1355 100644 --- a/package/hal/Config.in +++ b/package/hal/Config.in @@ -2,8 +2,8 @@ config BR2_PACKAGE_HAL bool "hal" select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_GETTEXT - select BR2_PACKAGE_LIBINTL + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS_EXPAT diff --git a/package/hal/hal.mk b/package/hal/hal.mk index 262fc41bc..62eca704a 100644 --- a/package/hal/hal.mk +++ b/package/hal/hal.mk @@ -79,7 +79,7 @@ $(TARGET_DIR)/$(HAL_TARGET_BINARY): $(HAL_DIR)/hald/hald rm -f $(TARGET_DIR)/usr/libexec/$$file; \ done -hal: host-pkg-config host-libxml-parser-perl dbus-glib hwdata udev $(TARGET_DIR)/$(HAL_TARGET_BINARY) +hal: host-pkg-config host-libxml-parser-perl dbus-glib hwdata udev $(if $(BR2_NEEDS_GETTEXT),gettext libintl) $(TARGET_DIR)/$(HAL_TARGET_BINARY) hal-clean: rm -f $(TARGET_DIR)/etc/dbus-1/system.d/hal.conf diff --git a/package/libglib2/Config.in b/package/libglib2/Config.in index d947eb67f..cc1d6e27b 100644 --- a/package/libglib2/Config.in +++ b/package/libglib2/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_LIBGLIB2 bool "libglib2" - select BR2_PACKAGE_GETTEXT - select BR2_PACKAGE_LIBINTL + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Low-level core library that forms the basis of GTK+ and GNOME. diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk index 72a139645..43b1a8900 100644 --- a/package/libglib2/libglib2.mk +++ b/package/libglib2/libglib2.mk @@ -55,7 +55,7 @@ HOST_LIBGLIB2_CONF_OPT = \ --disable-gtk-doc \ --enable-debug=no \ -LIBGLIB2_DEPENDENCIES = gettext libintl host-pkg-config host-libglib2 +LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 $(if $(BR2_NEEDS_GETTEXT),gettext libintl) HOST_LIBGLIB2_DEPENDENCIES = host-pkg-config diff --git a/package/libidn/libidn.mk b/package/libidn/libidn.mk index 6ee1a9698..bc8e00140 100644 --- a/package/libidn/libidn.mk +++ b/package/libidn/libidn.mk @@ -10,7 +10,7 @@ LIBIDN_INSTALL_STAGING = YES LIBIDN_INSTALL_TARGET = YES LIBIDN_CONF_OPT = --enable-shared --disable-java --enable-csharp=no LIBIDN_LIBTOOL_PATCH = NO -LIBIDN_DEPENDENCIES = host-pkg-config gettext $(if $(BR2_PACKAGE_LIBICONV),libiconv) +LIBIDN_DEPENDENCIES = host-pkg-config $(if $(BR2_NEEDS_GETTEXT),gettext) $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(eval $(call AUTOTARGETS,package,libidn)) diff --git a/package/libsoup/libsoup.mk b/package/libsoup/libsoup.mk index 3829a81a2..45f62e8e4 100644 --- a/package/libsoup/libsoup.mk +++ b/package/libsoup/libsoup.mk @@ -26,6 +26,6 @@ LIBSOUP_CONF_OPT = \ --without-gnome \ --disable-gtk-doc -LIBSOUP_DEPENDENCIES = gettext libintl host-pkg-config host-libglib2 libglib2 libxml2 +LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) host-pkg-config host-libglib2 libglib2 libxml2 $(eval $(call AUTOTARGETS,package,libsoup)) diff --git a/package/make/Config.in b/package/make/Config.in index 52640058e..674e245e9 100644 --- a/package/make/Config.in +++ b/package/make/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_MAKE bool "make" - select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT help A tool which controls the generation of executables and other non-source files of a program from the program's source files. diff --git a/package/make/make.mk b/package/make/make.mk index 29c7af45e..5dd06379f 100644 --- a/package/make/make.mk +++ b/package/make/make.mk @@ -56,7 +56,7 @@ $(TARGET_DIR)/$(GNUMAKE_TARGET_BINARY): $(GNUMAKE_DIR)/$(GNUMAKE_BINARY) rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc -make: $(if $(BR2_PACKAGE_GETTEXT),gettext) $(TARGET_DIR)/$(GNUMAKE_TARGET_BINARY) +make: $(if $(BR2_NEEDS_GETTEXT),gettext) $(TARGET_DIR)/$(GNUMAKE_TARGET_BINARY) make-clean: $(MAKE) DESTDIR=$(TARGET_DIR) -C $(GNUMAKE_DIR) uninstall diff --git a/package/multimedia/libmpd/Config.in b/package/multimedia/libmpd/Config.in index c79203c99..4f3a7144f 100644 --- a/package/multimedia/libmpd/Config.in +++ b/package/multimedia/libmpd/Config.in @@ -1,8 +1,6 @@ config BR2_PACKAGE_LIBMPD bool "libmpd" select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_GETTEXT - select BR2_PACKAGE_LIBINTL select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help High-level client library for accessing Music Player Daemon. diff --git a/package/pango/pango.mk b/package/pango/pango.mk index 38e163e04..812a4c872 100644 --- a/package/pango/pango.mk +++ b/package/pango/pango.mk @@ -45,7 +45,7 @@ HOST_PANGO_CONF_OPT = \ $(if $(BR2_PACKAGE_XORG7),--with-x,--without-x) \ --disable-debug \ -PANGO_DEPENDENCIES = gettext libintl host-pkg-config host-pango libglib2 cairo +PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) host-pkg-config host-pango libglib2 cairo HOST_PANGO_DEPENDENCIES = host-pkg-config host-cairo host-libglib2 host-autoconf host-automake diff --git a/package/php/Config.ext b/package/php/Config.ext index 9b53e872b..2fbd05e8a 100644 --- a/package/php/Config.ext +++ b/package/php/Config.ext @@ -67,7 +67,7 @@ config BR2_PACKAGE_PHP_EXT_FTP config BR2_PACKAGE_PHP_EXT_GETTEXT bool "gettext" - select BR2_PACKAGE_GETTEXT + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT help gettext support diff --git a/package/php/php.mk b/package/php/php.mk index cd5ed9e9e..c5f9c140e 100644 --- a/package/php/php.mk +++ b/package/php/php.mk @@ -84,7 +84,7 @@ endif ifeq ($(BR2_PACKAGE_PHP_EXT_GETTEXT),y) PHP_CONF_OPT += --with-gettext=$(STAGING_DIR)/usr - PHP_DEPENDENCIES += gettext + PHP_DEPENDENCIES += $(if $(BR2_NEEDS_GETTEXT),gettext) endif ifeq ($(BR2_PACKAGE_PHP_EXT_GMP),y) diff --git a/package/psmisc/Config.in b/package/psmisc/Config.in index e7ce70461..31e982c64 100644 --- a/package/psmisc/Config.in +++ b/package/psmisc/Config.in @@ -1,8 +1,8 @@ config BR2_PACKAGE_PSMISC bool "psmisc" select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT help Helpful /proc related utilities such as pstree, fuser, and killall diff --git a/package/psmisc/psmisc.mk b/package/psmisc/psmisc.mk index e04923d75..b82883fa9 100644 --- a/package/psmisc/psmisc.mk +++ b/package/psmisc/psmisc.mk @@ -7,12 +7,6 @@ PSMISC_VERSION:=22.8 PSMISC_SOURCE:=psmisc-$(PSMISC_VERSION).tar.gz PSMISC_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/psmisc PSMISC_AUTORECONF:=NO -PSMISC_DEPENDENCIES:=ncurses - -ifeq ($(BR2_ENABLE_LOCALE),y) -# psmisc gets confused and forgets to link with libintl -PSMISC_MAKE_OPT:=LIBS=-lintl -PSMISC_DEPENDENCIES+= gettext libintl -endif +PSMISC_DEPENDENCIES:=ncurses $(if $(BR2_NEEDS_GETTEXT),gettext libintl) $(eval $(call AUTOTARGETS,package,psmisc)) diff --git a/package/sshfs/Config.in b/package/sshfs/Config.in index 12d98f6bc..7ddd0c13a 100644 --- a/package/sshfs/Config.in +++ b/package/sshfs/Config.in @@ -2,8 +2,8 @@ config BR2_PACKAGE_SSHFS bool "sshfs (FUSE)" select BR2_PACKAGE_LIBFUSE select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_GETTEXT - select BR2_PACKAGE_LIBINTL + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE depends on BR2_PACKAGE_OPENSSH help diff --git a/package/sshfs/sshfs.mk b/package/sshfs/sshfs.mk index 4acc2931e..d15aa00c2 100644 --- a/package/sshfs/sshfs.mk +++ b/package/sshfs/sshfs.mk @@ -11,6 +11,6 @@ SSHFS_AUTORECONF:=NO SSHFS_INSTALL_STAGING:=NO SSHFS_INSTALL_TARGET:=YES -SSHFS_DEPENDENCIES = libglib2 libfuse +SSHFS_DEPENDENCIES = libglib2 libfuse $(if $(BR2_NEEDS_GETTEXT),gettext libintl) $(eval $(call AUTOTARGETS,package,sshfs)) diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in index e21daf6cd..533ef698b 100644 --- a/package/util-linux/Config.in +++ b/package/util-linux/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_UTIL-LINUX bool "util-linux" - select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT + select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT depends on BR2_INET_RPC help Various useful/essential Linux utilities. diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk index e2135e7d4..6446d37b0 100644 --- a/package/util-linux/util-linux.mk +++ b/package/util-linux/util-linux.mk @@ -18,8 +18,8 @@ else UTIL-LINUX_SCHED_UTILS:=--disable-schedutils endif -ifeq ($(BR2_PACKAGE_LIBINTL),y) -UTIL-LINUX_DEPENDENCIES += libintl +ifeq ($(BR2_NEEDS_GETTEXT),y) +UTIL-LINUX_DEPENDENCIES += gettext libintl UTIL-LINUX_MAKE_OPT = LIBS=-lintl endif -- cgit v1.2.3 From 485ba350324ddf2b457375817110a50e8880818b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 13 May 2010 22:30:52 +0200 Subject: libcap: fix build failure On a x86-64 host, libcap tried to install things in $(STAGING_DIR)/lib64 and $(TARGET_DIR)/lib64. Therefore, pass lib= and prefix=, as required by the strange build system used by libcap. Signed-off-by: Thomas Petazzoni --- package/libcap/libcap.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libcap/libcap.mk b/package/libcap/libcap.mk index 3ea5e51aa..301d1b1fa 100644 --- a/package/libcap/libcap.mk +++ b/package/libcap/libcap.mk @@ -8,7 +8,7 @@ define LIBCAP_BUILD_CMDS endef define LIBCAP_INSTALL_STAGING_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(STAGING_DIR) install + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(STAGING_DIR) prefix=/usr lib=lib install endef define LIBCAP_INSTALL_TARGET_CMDS @@ -20,7 +20,7 @@ define HOST_LIBCAP_BUILD_CMDS endef define HOST_LIBCAP_INSTALL_CMDS - $(HOST_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(HOST_DIR) install + $(HOST_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(HOST_DIR) prefix=/usr lib=lib install endef $(eval $(call GENTARGETS,package,libcap)) -- cgit v1.2.3 From bdc9c05f4450b0ca1e4bfd8edc52c4f9537e576a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 13 May 2010 22:40:31 +0200 Subject: libcgicc: fix package after autotools infrastructure conversion The patch had an incorrect name, and the libtool patch was applied while it shouldn't, and the package wasn't autoreconfed while the patch changes some Makefile.am files. Signed-off-by: Thomas Petazzoni --- .../cgicc-3.2.9-disable-documentation-option.patch | 50 ---------------------- ...bcgicc-3.2.9-disable-documentation-option.patch | 50 ++++++++++++++++++++++ package/libcgicc/libcgicc.mk | 2 + 3 files changed, 52 insertions(+), 50 deletions(-) delete mode 100644 package/libcgicc/cgicc-3.2.9-disable-documentation-option.patch create mode 100644 package/libcgicc/libcgicc-3.2.9-disable-documentation-option.patch diff --git a/package/libcgicc/cgicc-3.2.9-disable-documentation-option.patch b/package/libcgicc/cgicc-3.2.9-disable-documentation-option.patch deleted file mode 100644 index a7b04a83a..000000000 --- a/package/libcgicc/cgicc-3.2.9-disable-documentation-option.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: cgicc-3.2.9/Makefile.am -=================================================================== ---- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100 -+++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100 -@@ -8,9 +8,15 @@ - DEMO = - endif - -+if DOC -+DOCDIR = doc -+else -+DOC = -+endif -+ - ACLOCAL_AMFLAGS= - --SUBDIRS = cgicc doc support $(DEMO) -+SUBDIRS = cgicc $(DOCDIR) support $(DEMO) - - CLEANFILES = *~ - -Index: cgicc-3.2.9/configure.ac -=================================================================== ---- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100 -+++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100 -@@ -17,9 +17,23 @@ - AC_PROG_CXX - AC_PROG_INSTALL - AC_PROG_LIBTOOL --AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo) - - -+AC_ARG_ENABLE(doc, -+ [ --enable-doc build doc [[default=yes]]], -+ [case "${enableval}" in -+ yes) cgicc_doc=yes ;; -+ no) cgicc_doc=no ;; -+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;; -+ esac], cgicc_doc=yes) -+ -+if test "$cgicc_doc" = yes; then -+ AC_CHECK_PROG(DOXYGEN, doxygen, doxygen) -+ if test -z "$DOXYGEN" ; then -+ AC_MSG_ERROR([Doxygen is required to build the documentation]) -+ fi -+fi -+AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes) - - dnl Determine host system type - diff --git a/package/libcgicc/libcgicc-3.2.9-disable-documentation-option.patch b/package/libcgicc/libcgicc-3.2.9-disable-documentation-option.patch new file mode 100644 index 000000000..a7b04a83a --- /dev/null +++ b/package/libcgicc/libcgicc-3.2.9-disable-documentation-option.patch @@ -0,0 +1,50 @@ +Index: cgicc-3.2.9/Makefile.am +=================================================================== +--- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100 ++++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100 +@@ -8,9 +8,15 @@ + DEMO = + endif + ++if DOC ++DOCDIR = doc ++else ++DOC = ++endif ++ + ACLOCAL_AMFLAGS= + +-SUBDIRS = cgicc doc support $(DEMO) ++SUBDIRS = cgicc $(DOCDIR) support $(DEMO) + + CLEANFILES = *~ + +Index: cgicc-3.2.9/configure.ac +=================================================================== +--- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100 ++++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100 +@@ -17,9 +17,23 @@ + AC_PROG_CXX + AC_PROG_INSTALL + AC_PROG_LIBTOOL +-AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo) + + ++AC_ARG_ENABLE(doc, ++ [ --enable-doc build doc [[default=yes]]], ++ [case "${enableval}" in ++ yes) cgicc_doc=yes ;; ++ no) cgicc_doc=no ;; ++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;; ++ esac], cgicc_doc=yes) ++ ++if test "$cgicc_doc" = yes; then ++ AC_CHECK_PROG(DOXYGEN, doxygen, doxygen) ++ if test -z "$DOXYGEN" ; then ++ AC_MSG_ERROR([Doxygen is required to build the documentation]) ++ fi ++fi ++AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes) + + dnl Determine host system type + diff --git a/package/libcgicc/libcgicc.mk b/package/libcgicc/libcgicc.mk index c2f80b6c7..b281eed16 100644 --- a/package/libcgicc/libcgicc.mk +++ b/package/libcgicc/libcgicc.mk @@ -7,6 +7,8 @@ LIBCGICC_VERSION=3.2.9 LIBCGICC_SITE=$(BR2_GNU_MIRROR)/cgicc LIBCGICC_SOURCE=cgicc-$(LIBCGICC_VERSION).tar.gz LIBCGICC_INSTALL_STAGING=YES +LIBCGICC_LIBTOOL_PATCH=NO +LIBCGICC_AUTORECONF=YES LIBCGICC_CONF_OPT = \ --disable-demos \ -- cgit v1.2.3 From 728e43534d6c9fc50336ed1c7c95e855ecd2b438 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 13 May 2010 22:41:30 +0200 Subject: ltrace: fix build failure ltrace failed to build because of missing arguments to gcc to find the header files. This is due to the fact that the existing ltrace.mk was setting CC and LD at build time to incorrect values. Keeping the values set at configure time is just the right thing to do. Signed-off-by: Thomas Petazzoni --- package/ltrace/ltrace.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package/ltrace/ltrace.mk b/package/ltrace/ltrace.mk index c99f223ac..4a6811d86 100644 --- a/package/ltrace/ltrace.mk +++ b/package/ltrace/ltrace.mk @@ -54,8 +54,7 @@ $(LTRACE_DIR)/.configured: $(LTRACE_DIR)/.patched touch $@ $(LTRACE_DIR)/$(LTRACE_BINARY): $(LTRACE_DIR)/.configured - $(MAKE) CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld ARCH=$(LTRACE_ARCH) \ - -C $(LTRACE_DIR) + $(MAKE) ARCH=$(LTRACE_ARCH) -C $(LTRACE_DIR) $(TARGET_DIR)/$(LTRACE_TARGET_BINARY): $(LTRACE_DIR)/$(LTRACE_BINARY) #$(MAKE) DESTDIR=$(TARGET_DIR) ARCH=$(LTRACE_ARCH) -C $(LTRACE_DIR) install -- cgit v1.2.3 From 407616f690a46f50f10d797a8bbc58052f515bba Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 14 May 2010 09:46:21 +0200 Subject: gettext: make only available if BR2_NEEDS_GETTEXT is set This allows to make sure that an user, or a randpackageconfig, will not select the gettext or libintl package when using an external toolchain based on glibc/eglibc. Signed-off-by: Thomas Petazzoni --- package/gettext/Config.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/gettext/Config.in b/package/gettext/Config.in index bd5950c12..c6792acd7 100644 --- a/package/gettext/Config.in +++ b/package/gettext/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_GETTEXT bool "gettext" + depends on BR2_NEEDS_GETTEXT help The GNU `gettext' utilities are a set of tools that provide a framework to help other GNU packages produce multi-lingual @@ -21,6 +22,7 @@ config BR2_PACKAGE_GETTEXT_STATIC config BR2_PACKAGE_LIBINTL bool "libintl" + depends on BR2_NEEDS_GETTEXT help Selecting this package installs all of gettext in the staging directory and the shared library for it's use in the target. -- cgit v1.2.3 From fad3b5a7bee8ce6dd1cf17f230de693d8ed9230f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 14 May 2010 13:24:43 +0200 Subject: external toolchain: check BR2_INSTALL_LIBSTDCPP Verify that the value of BR2_INSTALL_LIBSTDCPP set by the user in the Buildroot configuration really matches the external toolchain capabilities by checking that a C++ cross-compiler is available. Signed-off-by: Thomas Petazzoni --- toolchain/external-toolchain/ext-tool.mk | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk index 2c2562cde..bb4809ccd 100644 --- a/toolchain/external-toolchain/ext-tool.mk +++ b/toolchain/external-toolchain/ext-tool.mk @@ -231,6 +231,15 @@ check_arm_abi = \ exit 1 ; \ fi ; \ +# +# Check that the external toolchain supports C++ +# +check_cplusplus = \ + if ! test -x $(TARGET_CXX) ; then \ + echo "BR2_INSTALL_LIBSTDCPP is selected but C++ support not available in external toolchain" ; \ + exit 1 ; \ + fi ; \ + # # Check that the cross-compiler given in the configuration exists # @@ -288,6 +297,9 @@ endif ifeq ($(BR2_arm),y) $(Q)$(call check_arm_abi) endif +ifeq ($(BR2_INSTALL_LIBSTDCPP),y) + $(Q)$(call check_cplusplus) +endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y) $(Q)$(call check_uclibc,$(SYSROOT_DIR)) else -- cgit v1.2.3 From 2fae26486f86e9ed2b466ebc61a3521b60897a12 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 09:19:24 +0200 Subject: iconv: disallow selection when BR2_ENABLE_LOCALE is enabled A C library compiled with locale support already has an iconv() implementation. In that case, libiconv is useless. Therefore, disallow the selection of libiconv when the configuration says that the toolchain has locale support. This fixes build issues similar to the one we had with gettext: libiconv headers are installed, but -liconv is not added because the ./configure script detects that the C library supports iconv. Signed-off-by: Thomas Petazzoni --- package/libiconv/Config.in | 1 + 1 file changed, 1 insertion(+) diff --git a/package/libiconv/Config.in b/package/libiconv/Config.in index b6009444f..ee4fd6201 100644 --- a/package/libiconv/Config.in +++ b/package/libiconv/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LIBICONV bool "libiconv" + depends on !BR2_ENABLE_LOCALE help unicode conversion library -- cgit v1.2.3 From 9923439841ffb0dc9fcf70b2ccc67a2998cd3713 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 09:21:50 +0200 Subject: lmbench: needs BR2_INET_RPC This package uses several pmap_*() functions in the C library, that are only available if the C library has RPC support. Signed-off-by: Thomas Petazzoni --- package/lmbench/Config.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/lmbench/Config.in b/package/lmbench/Config.in index 704b3ff7f..d09a333c9 100644 --- a/package/lmbench/Config.in +++ b/package/lmbench/Config.in @@ -1,7 +1,12 @@ config BR2_PACKAGE_LMBENCH bool "lmbench" + # Uses pmap_set, pmap__unset, pmap_getport, etc. + depends on BR2_INET_RPC help LMbench is a suite of simple, portable, ANSI/C microbenchmarks for UNIX/POSIX. http://sourceforge.net/projects/lmbench/ + +comment "lmbench requires a toolchain with RPC support" + depends on !BR2_INET_RPC -- cgit v1.2.3 From 362791a7c18bf2c2528334543cb7baf36c4a89fe Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 09:34:49 +0200 Subject: startup-notification: add dependency on xlib_libX11 Signed-off-by: Thomas Petazzoni --- package/startup-notification/Config.in | 2 ++ package/startup-notification/startup-notification.mk | 1 + 2 files changed, 3 insertions(+) diff --git a/package/startup-notification/Config.in b/package/startup-notification/Config.in index 23fdf74f3..277d30024 100644 --- a/package/startup-notification/Config.in +++ b/package/startup-notification/Config.in @@ -1,5 +1,7 @@ config BR2_PACKAGE_STARTUP_NOTIFICATION bool "startup-notification" + select BR2_PACKAGE_XLIB_LIBX11 + depends on BR2_PACKAGE_XORG7 help Startup-notification is a library used to monitor application startup. diff --git a/package/startup-notification/startup-notification.mk b/package/startup-notification/startup-notification.mk index 62f067ac6..f70fcc1c7 100644 --- a/package/startup-notification/startup-notification.mk +++ b/package/startup-notification/startup-notification.mk @@ -9,6 +9,7 @@ STARTUP_NOTIFICATION_SITE = http://freedesktop.org/software/startup-notification STARTUP_NOTIFICATION_AUTORECONF = NO STARTUP_NOTIFICATION_INSTALL_STAGING = YES STARTUP_NOTIFICATION_INSTALL_TARGET = YES +STARTUP_NOTIFICATION = xlib_libX11 STARTUP_NOTIFICATION_CONF_ENV = lf_cv_sane_realloc=yes -- cgit v1.2.3 From a4051d9db88d5cf789d64d973efd0f91fc741f6e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 16:40:07 +0200 Subject: ntp: fix build failure This patch adds a patch to NTP to fix the following build failure, using a workaround patch found on the Fedora bugzilla: ntp_loopfilter.c: In function 'local_clock': ntp_loopfilter.c:571: error: 'MOD_NANO' undeclared (first use in this function) ntp_loopfilter.c:571: error: (Each undeclared identifier is reported only once ntp_loopfilter.c:571: error: for each function it appears in.) ntp_loopfilter.c: In function 'loop_config': ntp_loopfilter.c:896: error: 'MOD_NANO' undeclared (first use in this function) Signed-off-by: Thomas Petazzoni --- package/ntp/ntp-4.2.4_p5-nano.patch | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 package/ntp/ntp-4.2.4_p5-nano.patch diff --git a/package/ntp/ntp-4.2.4_p5-nano.patch b/package/ntp/ntp-4.2.4_p5-nano.patch new file mode 100644 index 000000000..f4097ee56 --- /dev/null +++ b/package/ntp/ntp-4.2.4_p5-nano.patch @@ -0,0 +1,36 @@ +Fixes the MOD_NANO build failure + +ntp_loopfilter.c: In function 'local_clock': +ntp_loopfilter.c:571: error: 'MOD_NANO' undeclared (first use in this function) +ntp_loopfilter.c:571: error: (Each undeclared identifier is reported only once +ntp_loopfilter.c:571: error: for each function it appears in.) +ntp_loopfilter.c: In function 'loop_config': +ntp_loopfilter.c:896: error: 'MOD_NANO' undeclared (first use in this function) + +Taken from +http://cvs.fedoraproject.org/viewvc/devel/ntp/ntp-4.2.4p7-nano.patch?revision=1.1&content-type=text/plain&view=co + +See the discussion at +https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/412242 for more +details and links. The below fix is not a correct fix, but only a +workaround. The real fix required changes to kernel/libc headers. + +Index: ntp-4.2.4p5/include/ntp_syscall.h +=================================================================== +--- ntp-4.2.4p5.orig/include/ntp_syscall.h 2010-05-14 17:34:48.000000000 +0200 ++++ ntp-4.2.4p5/include/ntp_syscall.h 2010-05-14 17:35:13.000000000 +0200 +@@ -14,6 +14,14 @@ + # include + #endif + ++#if defined(ADJ_NANO) && !defined(MOD_NANO) ++#define MOD_NANO ADJ_NANO ++#endif ++ ++#if defined(ADJ_TAI) && !defined(MOD_TAI) ++#define MOD_TAI ADJ_TAI ++#endif ++ + #ifndef NTP_SYSCALLS_LIBC + #ifdef NTP_SYSCALLS_STD + # define ntp_adjtime(t) syscall(SYS_ntp_adjtime, (t)) -- cgit v1.2.3 From 0317b30912eb73bc512b137b1581ff520b14c40a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 16:42:02 +0200 Subject: samba: only require libiconv if !BR2_ENABLE_LOCALE Signed-off-by: Thomas Petazzoni --- package/samba/Config.in | 2 +- package/samba/samba.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/samba/Config.in b/package/samba/Config.in index 720ecd795..a7a0b34df 100644 --- a/package/samba/Config.in +++ b/package/samba/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_SAMBA bool "samba" - select BR2_PACKAGE_LIBICONV + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Provides print services to all manner of SMB/CIFS clients, including the numerous versions of Microsoft Windows diff --git a/package/samba/samba.mk b/package/samba/samba.mk index 411536302..39968a9cb 100644 --- a/package/samba/samba.mk +++ b/package/samba/samba.mk @@ -16,7 +16,7 @@ SAMBA_INSTALL_TARGET = YES SAMBA_DEPENDENCIES = \ - libiconv \ + $(if $(BR2_ENABLE_LOCALE),,libiconv) \ $(if $(BR2_PACKAGE_SAMBA_RPCCLIENT),readline) \ $(if $(BR2_PACKAGE_SAMBA_SMBCLIENT),readline) \ $(if $(BR2_PACKAGE_SAMBA_AVAHI),avahi) \ -- cgit v1.2.3 From 832ce382c6fbd416ac562da10ba3946e3fc7b935 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 16:42:23 +0200 Subject: pango: run pango-querymodules on the target instead of on the host We needed to build pango for the host in order to compile pango-querymodules for the host, which was used to produce /etc/pango/pango.modules. Unfortunately: * This produces an incorrect /etc/pango/pango.modules (no modules detected in my case), probably because the host pango-querymodules was looking at host pango modules * This requires to build pango for the host, which requires to build cairo for the host, which requires to build X11 for the host. To make things work and remove the dependency between pango and host-pango, we introduce a S25pango script that creates /etc/pango/pango.modules on startup if it doesn't exist, just as we do with libgtk2 for /etc/gtk-2.0/gdk-pixbuf.loaders. Since host-pango is no longer needed, we remove all definitions related to it. Signed-off-by: Thomas Petazzoni --- package/pango/S25pango | 20 ++++++++++++++++++++ package/pango/pango.mk | 18 ++---------------- 2 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 package/pango/S25pango diff --git a/package/pango/S25pango b/package/pango/S25pango new file mode 100644 index 000000000..9af9307c4 --- /dev/null +++ b/package/pango/S25pango @@ -0,0 +1,20 @@ +#!/bin/sh +# +# run pango-querymodules if needed + +FILE=/etc/pango/pango.modules + +case "$1" in + start|"") + if [ ! -f $FILE ] ; then + mkdir -p /etc/pango + /usr/bin/pango-querymodules > "$FILE" + fi + ;; + stop) + ;; + *) + echo "Usage: $0 {start|stop}" >&2 + exit 1 + ;; +esac \ No newline at end of file diff --git a/package/pango/pango.mk b/package/pango/pango.mk index 812a4c872..c64004584 100644 --- a/package/pango/pango.mk +++ b/package/pango/pango.mk @@ -40,16 +40,7 @@ PANGO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \ PANGO_CONF_OPT = --enable-shared --enable-static \ --enable-explicit-deps=no --disable-debug -HOST_PANGO_CONF_OPT = \ - --disable-static \ - $(if $(BR2_PACKAGE_XORG7),--with-x,--without-x) \ - --disable-debug \ - -PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) host-pkg-config host-pango libglib2 cairo - -HOST_PANGO_DEPENDENCIES = host-pkg-config host-cairo host-libglib2 host-autoconf host-automake - -HOST_PANGO_AUTORECONF = YES +PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext libintl) host-pkg-config libglib2 cairo ifeq ($(BR2_PACKAGE_XORG7),y) PANGO_CONF_OPT += --with-x \ @@ -61,12 +52,7 @@ else endif $(eval $(call AUTOTARGETS,package,pango)) -$(eval $(call AUTOTARGETS,package,pango,host)) $(PANGO_HOOK_POST_INSTALL): - mkdir -p $(TARGET_DIR)/etc/pango - $(PANGO_HOST_BINARY) > $(TARGET_DIR)/etc/pango/pango.modules - $(SED) 's~$(HOST_DIR)~~g' $(TARGET_DIR)/etc/pango/pango.modules + $(INSTALL) -m 755 package/pango/S25pango $(TARGET_DIR)/etc/init.d/ touch $@ - -PANGO_HOST_BINARY:=$(HOST_DIR)/usr/bin/pango-querymodules -- cgit v1.2.3 From 7b38fc20baa4762e5081246d8f2547336e883534 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 16:45:54 +0200 Subject: cairo: remove host variant Since we no longer need to build pango on the host, cairo on the host is no longer needed. Signed-off-by: Thomas Petazzoni --- package/cairo/cairo.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk index 0ca99aa61..9b72ffa3f 100644 --- a/package/cairo/cairo.mk +++ b/package/cairo/cairo.mk @@ -79,8 +79,6 @@ else CAIRO_CONF_OPT += --disable-svg endif -HOST_CAIRO_DEPENDENCIES = host-pkg-config host-pixman host-fontconfig - HOST_CAIRO_CONF_OPT = \ --enable-ps \ --enable-pdf \ @@ -90,4 +88,3 @@ HOST_CAIRO_CONF_OPT = \ --disable-svg $(eval $(call AUTOTARGETS,package,cairo)) -$(eval $(call AUTOTARGETS,package,cairo,host)) -- cgit v1.2.3 From 47a7c75bfbb304c1afa48f4d1dced372652c0c16 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 20:02:28 +0200 Subject: mutt: fix build and convert to autotools mutt has been upgraded, but the mutt-1.5.16-makedoc-hostcc.patch wasn't upgraded accordingly, causing build failures in the documentation. Therefore, we add a new patch mutt-1.5.17+20080114-nodoc.patch that disables the construction of the documentation. As this patch modifies Makefile.am, we need to autoreconf the package. The simplest and cleanest way to do this is to convert the package to the autotools infrastructure. Signed-off-by: Thomas Petazzoni --- package/mutt/mutt-1.5.16-makedoc-hostcc.patch | 32 ------------ package/mutt/mutt-1.5.17+20080114-nodoc.patch | 21 ++++++++ package/mutt/mutt.mk | 73 ++++----------------------- 3 files changed, 32 insertions(+), 94 deletions(-) delete mode 100644 package/mutt/mutt-1.5.16-makedoc-hostcc.patch create mode 100644 package/mutt/mutt-1.5.17+20080114-nodoc.patch diff --git a/package/mutt/mutt-1.5.16-makedoc-hostcc.patch b/package/mutt/mutt-1.5.16-makedoc-hostcc.patch deleted file mode 100644 index de5cc2db3..000000000 --- a/package/mutt/mutt-1.5.16-makedoc-hostcc.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- mutt-1.5.16.oorig/Makefile.in 2007-09-02 22:16:23.000000000 +0200 -+++ mutt-1.5.16/Makefile.in 2007-09-02 22:19:49.000000000 +0200 -@@ -164,12 +164,6 @@ - DBX = @DBX@ - DEBUGGER = @DEBUGGER@ - --# $(makedoc_OBJECTS): $(makedoc_SOURCES) --# $(HOST_CC) $(DEFS) $(AM_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) -c $< -- --# makedoc: $(makedoc_OBJECTS) $(makedoc_DEPENDENCIES) --# @rm -rf makedoc --# $(HOST_CC) $(AM_CFLAGS) $(LDFLAGS) $(makedoc_LDFLAGS) $(makedoc_OBJECTS) $(makedoc_LDADD) -o makedoc - DEFS = -DPKGDATADIR=\"$(pkgdatadir)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ - -DBINDIR=\"$(bindir)\" -DMUTTLOCALEDIR=\"$(datadir)/locale\" \ - -DHAVE_CONFIG_H=1 -@@ -447,9 +441,15 @@ - - clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -+ -+$(makedoc_OBJECTS): $(makedoc_SOURCES) -+ $(CC_FOR_BUILD) -DHAVE_UNISTD_H -DHAVE_GETOPT_H -DHAVE_STRERROR -c $< ;#$(DEFS) $(AM_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) -c $< -+#makedoc: $(makedoc_OBJECTS) $(makedoc_DEPENDENCIES) -+# @rm -rf makedoc -+# $(CC_FOR_BUILD) $(AM_CFLAGS) $(LDFLAGS) $(makedoc_LDFLAGS) $(makedoc_OBJECTS) $(makedoc_LDADD) -o makedoc - makedoc$(EXEEXT): $(makedoc_OBJECTS) $(makedoc_DEPENDENCIES) - @rm -f makedoc$(EXEEXT) -- $(LINK) $(makedoc_LDFLAGS) $(makedoc_OBJECTS) $(makedoc_LDADD) $(LIBS) -+ $(CC_FOR_BUILD) $(makedoc_LDFLAGS) $(makedoc_OBJECTS) $(makedoc_LDADD) $(LIBS) -o $@ - mutt$(EXEEXT): $(mutt_OBJECTS) $(mutt_DEPENDENCIES) - @rm -f mutt$(EXEEXT) - $(LINK) $(mutt_LDFLAGS) $(mutt_OBJECTS) $(mutt_LDADD) $(LIBS) diff --git a/package/mutt/mutt-1.5.17+20080114-nodoc.patch b/package/mutt/mutt-1.5.17+20080114-nodoc.patch new file mode 100644 index 000000000..6fd556dcb --- /dev/null +++ b/package/mutt/mutt-1.5.17+20080114-nodoc.patch @@ -0,0 +1,21 @@ +Disable the documentation build + +The documentation tool is compiled for the target, but executed on the +host. We don't bother fixing this, as we don't care of the +documentation in Buildroot. + +Signed-off-by: Thomas Petazzoni + +Index: mutt-1.5.17+20080114/Makefile.am +=================================================================== +--- mutt-1.5.17+20080114.orig/Makefile.am 2010-05-15 18:15:08.000000000 +0200 ++++ mutt-1.5.17+20080114/Makefile.am 2010-05-15 18:15:17.000000000 +0200 +@@ -9,7 +9,7 @@ + IMAP_INCLUDES = -I$(top_srcdir)/imap + endif + +-SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR) ++SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR) + + bin_SCRIPTS = muttbug flea @SMIMEAUX_TARGET@ + diff --git a/package/mutt/mutt.mk b/package/mutt/mutt.mk index 3ad0f2f43..d021aef82 100644 --- a/package/mutt/mutt.mk +++ b/package/mutt/mutt.mk @@ -7,70 +7,19 @@ MUTT_VERSION:=1.5.17+20080114 MUTT_SOURCE:=mutt_$(MUTT_VERSION).orig.tar.gz MUTT_PATCH:=mutt_$(MUTT_VERSION)-1.diff.gz MUTT_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/m/mutt/ -MUTT_DIR:=$(BUILD_DIR)/mutt-$(MUTT_VERSION) -MUTT_CAT:=$(ZCAT) -MUTT_BINARY:=mutt -MUTT_TARGET_BINARY:=usr/bin/mutt - -$(DL_DIR)/$(MUTT_SOURCE): - $(call DOWNLOAD,$(MUTT_SITE),$(MUTT_SOURCE)) - -$(DL_DIR)/$(MUTT_PATCH): - $(call DOWNLOAD,$(MUTT_SITE),$(MUTT_PATCH)) - -$(MUTT_DIR)/.unpacked: $(DL_DIR)/$(MUTT_SOURCE) $(DL_DIR)/$(MUTT_PATCH) - $(MUTT_CAT) $(DL_DIR)/$(MUTT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - toolchain/patch-kernel.sh $(MUTT_DIR) package/mutt/ mutt-$(MUTT_VERSION)\*.patch -ifneq ($(MUTT_PATCH),) - (cd $(MUTT_DIR) && $(MUTT_CAT) $(DL_DIR)/$(MUTT_PATCH) | patch -p1) - if [ -d $(MUTT_DIR)/debian/patches ]; then \ - toolchain/patch-kernel.sh $(MUTT_DIR) $(MUTT_DIR)/debian/patches \*.patch; \ - fi -endif - touch $@ - -$(MUTT_DIR)/.configured: $(MUTT_DIR)/.unpacked - (cd $(MUTT_DIR); rm -rf config.cache; \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/usr \ - $(DISABLE_LARGEFILE) \ - $(DISABLE_IPV6) \ - $(DISABLE_NLS) \ +MUTT_DEPENDENCIES=ncurses +MUTT_CONF_OPT = \ --disable-smtp \ --disable-iconv \ - --without-wc-funcs \ - ) - touch $@ - -$(MUTT_DIR)/$(MUTT_BINARY): $(MUTT_DIR)/.configured - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(MUTT_DIR) - -$(TARGET_DIR)/$(MUTT_TARGET_BINARY): $(MUTT_DIR)/$(MUTT_BINARY) - cp -dpf $(MUTT_DIR)/$(MUTT_BINARY) $@ - $(STRIPCMD) $(STRIP_STRIP_ALL) $@ + --without-wc-funcs +MUTT_AUTORECONF=YES -mutt-source: $(DL_DIR)/$(MUTT_SOURCE) $(DL_DIR)/$(MUTT_PATCH) +define MUTT_APPLY_DEBIAN_PATCHES + if [ -d $(@D)/debian/patches ]; then \ + toolchain/patch-kernel.sh $(@D) $(@D)/debian/patches \*.patch; \ + fi +endef -mutt-unpacked: $(MUTT_DIR)/.unpacked +MUTT_POST_PATCH_HOOKS += MUTT_APPLY_DEBIAN_PATCHES -mutt: ncurses $(TARGET_DIR)/$(MUTT_TARGET_BINARY) - -mutt-clean: - -$(MAKE) -C $(MUTT_DIR) clean - rm -f $(TARGET_DIR)/$(MUTT_TARGET_BINARY) - -mutt-dirclean: - rm -rf $(MUTT_DIR) -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_PACKAGE_MUTT),y) -TARGETS+=mutt -endif +$(eval $(call AUTOTARGETS,package,mutt)) \ No newline at end of file -- cgit v1.2.3 From 0c44617e7f16f2e925fb2672d84bbc9dfccec0f8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 20:04:02 +0200 Subject: lvm2: do not override CC and similar variables Since lvm2 uses autoconf, there's no point in overriding CC and other variables at build time. This causes build breakage as CFLAGS aren't used at link time, therefore --sysroot lacks, which breaks the build with external toolchains. Signed-off-by: Thomas Petazzoni --- package/lvm2/lvm2.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk index bc6f45872..2bd6b8bcf 100644 --- a/package/lvm2/lvm2.mk +++ b/package/lvm2/lvm2.mk @@ -74,7 +74,7 @@ $(LVM2_DIR)/.configured: $(LVM2_DIR)/.unpacked $(LVM2_DIR)/.built: $(LVM2_DIR)/.configured - $(MAKE1) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR) + $(MAKE1) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR) $(MAKE1) -C $(LVM2_DIR) DESTDIR=$(STAGING_DIR) install # Fixup write permissions so that the files can be overwritten # several times in the $(TARGET_DIR) -- cgit v1.2.3 From d30649ada0e27b0c9f0fdff8f5d9ece18b077a87 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 20:05:26 +0200 Subject: uemacs: don't forget CFLAGS at link time Without CFLAGS, the build breaks because --sysroot is missing at link time, and this option is absolutely mandatory for external toolchain builds. Signed-off-by: Thomas Petazzoni --- package/uemacs/uemacs.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/uemacs/uemacs.mk b/package/uemacs/uemacs.mk index 6e2f4c497..539ad51f0 100644 --- a/package/uemacs/uemacs.mk +++ b/package/uemacs/uemacs.mk @@ -23,7 +23,7 @@ $(UEMACS_DIR)/.unpacked: $(DL_DIR)/$(UEMACS_SOURCE) $(UEMACS_DIR)/$(UEMACS_BINARY): $(UEMACS_DIR)/.unpacked $(MAKE) -C $(UEMACS_DIR) \ - CC="$(TARGET_CC)" DEFINES="-DAUTOCONF -DPOSIX -DUSG" CFLAGS+="$(TARGET_CFLAGS) " LIBS=-lncurses + CC="$(TARGET_CC)" DEFINES="-DAUTOCONF -DPOSIX -DUSG" CFLAGS+="$(TARGET_CFLAGS) " LIBS="$(TARGET_CFLAGS) -lncurses" $(STRIPCMD) $(UEMACS_DIR)/$(UEMACS_BINARY) $(TARGET_DIR)/$(UEMACS_TARGET_BINARY): $(UEMACS_DIR)/$(UEMACS_BINARY) -- cgit v1.2.3 From 56407a4efa4f0da90462e4eb71180b3c2c8bb874 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 20:06:27 +0200 Subject: vpnc: pass CFLAGS at link time External toolchain builds absolutely require the --sysroot option to be passed at link time. Signed-off-by: Thomas Petazzoni --- package/vpnc/vpnc.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/vpnc/vpnc.mk b/package/vpnc/vpnc.mk index 5d0f87abd..c4f23fa2a 100644 --- a/package/vpnc/vpnc.mk +++ b/package/vpnc/vpnc.mk @@ -26,7 +26,7 @@ $(VPNC_BINARY): $(VPNC_DIR)/.unpacked rm -f $@ $(MAKE) $(TARGET_CONFIGURE_OPTS) INCLUDE=$(STAGING_DIR)/usr/include \ CFLAGS="$(TARGET_CFLAGS)" \ - LDFLAGS+=-lgcrypt LDFLAGS+=-lgpg-error \ + LDFLAGS+=-lgcrypt LDFLAGS+=-lgpg-error LDFLAGS+="$(TARGET_CFLAGS)" \ CC="$(TARGET_CC)" -C $(VPNC_DIR) $(VPNC_TARGET_BINARY): $(VPNC_BINARY) @@ -38,7 +38,7 @@ $(VPNC_TARGET_BINARY): $(VPNC_BINARY) MANDIR=/usr/share/man \ VERSION=$(VPNC_VERSION) \ INCLUDE=$(STAGING_DIR)/usr/include \ - LDFLAGS="-lgcrypt -lgpg-error" \ + LDFLAGS="-lgcrypt -lgpg-error $(TARGET_CFLAGS)" \ -C $(VPNC_DIR) install $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(VPNC_TARGET_BINARY) -- cgit v1.2.3 From 52e600ebec9cb571edee8f791da851035ae6b969 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 15 May 2010 20:09:46 +0200 Subject: netsnmp: disable build with external toolchain There is a build problem with netsnmp on external toolchain that isn't easy to fix: libtool strips the --sysroot that we are passing it, which make the link step fail. In preparation for the release, just make sure this package isn't visible to external toolchain users. Of course, on the long run, we should fix this. We also disable the build of the Quagga SNMP support because it selects netsnmp. Signed-off-by: Thomas Petazzoni --- package/netsnmp/Config.in | 6 ++++++ package/quagga/Config.in | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/package/netsnmp/Config.in b/package/netsnmp/Config.in index fd54eb40d..810b654bf 100644 --- a/package/netsnmp/Config.in +++ b/package/netsnmp/Config.in @@ -1,7 +1,13 @@ config BR2_PACKAGE_NETSNMP bool "netsnmp" + # Build with external toolchains is broken, libtool strips + # --sysroot at link time + depends on !BR2_TOOLCHAIN_EXTERNAL help Suite of applications used to implement SNMP v1, SNMP v2c, and SNMP v3 using both IPv4 and IPv6. http://net-snmp.sourceforge.net/ + +comment "lmbench is broken with external toolchains" + depends on BR2_TOOLCHAIN_EXTERNAL diff --git a/package/quagga/Config.in b/package/quagga/Config.in index e540cc608..fb0d590b6 100644 --- a/package/quagga/Config.in +++ b/package/quagga/Config.in @@ -59,8 +59,12 @@ config BR2_PACKAGE_QUAGGA_NETLINK config BR2_PACKAGE_QUAGGA_SNMP bool "SNMP support" + depends on !BR2_TOOLCHAIN_EXTERNAL select BR2_PACKAGE_NETSNMP +comment "quagga snmp support broken with external toolchains" + depends on BR2_TOOLCHAIN_EXTERNAL + config BR2_PACKAGE_QUAGGA_TCP_ZEBRA bool "TCP/IP socket connection between zebra and proto daemon" -- cgit v1.2.3