diff mbox

[1/2] host-autoconf-archive: install to a non-standard location

Message ID 1431637036-8089-1-git-send-email-thomas.petazzoni@free-electrons.com
State Accepted
Commit 2c490f00c8d8a7d34ed6da9130cef8a5e97cef56
Headers show

Commit Message

Thomas Petazzoni May 14, 2015, 8:57 p.m. UTC
The host-autoconf-archive package was added to provide the necessary
autoconf macros for the libsigrok package, and later also used for the
thrift package.

However, it installs its autoconf macro in
$(HOST_DIR)/usr/share/aclocal, which is part of the include directory
of autoconf macros used for all autoreconf invocations. Unfortunately,
using those macros for all packages is causing a number of
regressions: one on host-ola fixed in commit
884af65fd5ddc548f19a26162f905a32ef0b53b3, and one in snmpp. Those
packages are autoreconf'ed, but if they are autoreconf'ed with the
autoconf-archive macros installed, they no longer work.

To solve this problem, this commit implements a simple solution that
makes using host-autoconf-archive macros an opt-in mechanism. To
achieve this, the autoconf-archive package is modified to install its
macros in a special directory, and only the packages that really want
to use those macros will have to pass a -I flag pointing to this
directory in their <pkg>_AUTORECONF_OPTS variable.

Fixes:

  http://autobuild.buildroot.org/results/712/712c8083b9eeafa41b60790961028c40b28f59ad/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/autoconf-archive/autoconf-archive.mk | 1 +
 package/libsigrok/libsigrok.mk               | 1 +
 package/thrift/thrift.mk                     | 1 +
 3 files changed, 3 insertions(+)

Comments

Romain Naour May 14, 2015, 10:59 p.m. UTC | #1
Hi Thomas, All,

Le 14/05/2015 22:57, Thomas Petazzoni a écrit :
> The host-autoconf-archive package was added to provide the necessary
> autoconf macros for the libsigrok package, and later also used for the
> thrift package.
> 
> However, it installs its autoconf macro in
> $(HOST_DIR)/usr/share/aclocal, which is part of the include directory
> of autoconf macros used for all autoreconf invocations. Unfortunately,
> using those macros for all packages is causing a number of
> regressions: one on host-ola fixed in commit
> 884af65fd5ddc548f19a26162f905a32ef0b53b3, and one in snmpp. Those
> packages are autoreconf'ed, but if they are autoreconf'ed with the
> autoconf-archive macros installed, they no longer work.
> 
> To solve this problem, this commit implements a simple solution that
> makes using host-autoconf-archive macros an opt-in mechanism. To
> achieve this, the autoconf-archive package is modified to install its
> macros in a special directory, and only the packages that really want
> to use those macros will have to pass a -I flag pointing to this
> directory in their <pkg>_AUTORECONF_OPTS variable.
> 
> Fixes:
> 
>   http://autobuild.buildroot.org/results/712/712c8083b9eeafa41b60790961028c40b28f59ad/
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Reviewed-by: Romain Naour <romain.naour@openwide.fr>

[thrift]
Build tested with a thrift config
http://autobuild.buildroot.net/results/21e/21e3fff1e0d714f94ac7e621289d1a59bc02a05f/config
(the toolchain doesn't have C++11 support)

[snmppp]
Build tested with the snmppp config.
Tested-by: Romain Naour <romain.naour@openwide.fr>

Best regards,
Romain

> ---
>  package/autoconf-archive/autoconf-archive.mk | 1 +
>  package/libsigrok/libsigrok.mk               | 1 +
>  package/thrift/thrift.mk                     | 1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/package/autoconf-archive/autoconf-archive.mk b/package/autoconf-archive/autoconf-archive.mk
> index bd3b0c8..673a57f 100644
> --- a/package/autoconf-archive/autoconf-archive.mk
> +++ b/package/autoconf-archive/autoconf-archive.mk
> @@ -9,5 +9,6 @@ AUTOCONF_ARCHIVE_SOURCE = autoconf-archive-$(AUTOCONF_ARCHIVE_VERSION).tar.xz
>  AUTOCONF_ARCHIVE_SITE = $(BR2_GNU_MIRROR)/autoconf-archive
>  AUTOCONF_ARCHIVE_LICENSE = GPLv3+ with exception
>  AUTOCONF_ARCHIVE_LICENSE_FILES = COPYING COPYING.EXCEPTION
> +HOST_AUTOCONF_ARCHIVE_INSTALL_OPTS = aclocaldir=$(HOST_DIR)/usr/share/autoconf-archive install
>  
>  $(eval $(host-autotools-package))
> diff --git a/package/libsigrok/libsigrok.mk b/package/libsigrok/libsigrok.mk
> index 7394f64..21d8259 100644
> --- a/package/libsigrok/libsigrok.mk
> +++ b/package/libsigrok/libsigrok.mk
> @@ -48,6 +48,7 @@ endif
>  
>  ifeq ($(BR2_PACKAGE_LIBSIGROKCXX),y)
>  LIBSIGROK_CONF_OPTS += --enable-cxx
> +LIBSIGROK_AUTORECONF_OPTS += -I $(HOST_DIR)/usr/share/autoconf-archive
>  LIBSIGROK_DEPENDENCIES += \
>  	host-autoconf-archive \
>  	glibmm \
> diff --git a/package/thrift/thrift.mk b/package/thrift/thrift.mk
> index b4b3a2c..a40ddad 100644
> --- a/package/thrift/thrift.mk
> +++ b/package/thrift/thrift.mk
> @@ -21,6 +21,7 @@ HOST_THRIFT_CONF_OPTS = --with-sysroot=$(HOST_DIR) \
>  	--disable-tests \
>  	--disable-tutorial
>  THRIFT_AUTORECONF = YES
> +THRIFT_AUTORECONF_OPTS = -I $(HOST_DIR)/usr/share/autoconf-archive
>  THRIFT_LICENSE = Apache-2.0
>  THRIFT_LICENSE_FILES = LICENSE
>  
>
Peter Korsgaard May 14, 2015, 10:59 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > The host-autoconf-archive package was added to provide the necessary
 > autoconf macros for the libsigrok package, and later also used for the
 > thrift package.

 > However, it installs its autoconf macro in
 > $(HOST_DIR)/usr/share/aclocal, which is part of the include directory
 > of autoconf macros used for all autoreconf invocations. Unfortunately,
 > using those macros for all packages is causing a number of
 > regressions: one on host-ola fixed in commit
 > 884af65fd5ddc548f19a26162f905a32ef0b53b3, and one in snmpp. Those
 > packages are autoreconf'ed, but if they are autoreconf'ed with the
 > autoconf-archive macros installed, they no longer work.

 > To solve this problem, this commit implements a simple solution that
 > makes using host-autoconf-archive macros an opt-in mechanism. To
 > achieve this, the autoconf-archive package is modified to install its
 > macros in a special directory, and only the packages that really want
 > to use those macros will have to pass a -I flag pointing to this
 > directory in their <pkg>_AUTORECONF_OPTS variable.

 > Fixes:

 >   http://autobuild.buildroot.org/results/712/712c8083b9eeafa41b60790961028c40b28f59ad/

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.
diff mbox

Patch

diff --git a/package/autoconf-archive/autoconf-archive.mk b/package/autoconf-archive/autoconf-archive.mk
index bd3b0c8..673a57f 100644
--- a/package/autoconf-archive/autoconf-archive.mk
+++ b/package/autoconf-archive/autoconf-archive.mk
@@ -9,5 +9,6 @@  AUTOCONF_ARCHIVE_SOURCE = autoconf-archive-$(AUTOCONF_ARCHIVE_VERSION).tar.xz
 AUTOCONF_ARCHIVE_SITE = $(BR2_GNU_MIRROR)/autoconf-archive
 AUTOCONF_ARCHIVE_LICENSE = GPLv3+ with exception
 AUTOCONF_ARCHIVE_LICENSE_FILES = COPYING COPYING.EXCEPTION
+HOST_AUTOCONF_ARCHIVE_INSTALL_OPTS = aclocaldir=$(HOST_DIR)/usr/share/autoconf-archive install
 
 $(eval $(host-autotools-package))
diff --git a/package/libsigrok/libsigrok.mk b/package/libsigrok/libsigrok.mk
index 7394f64..21d8259 100644
--- a/package/libsigrok/libsigrok.mk
+++ b/package/libsigrok/libsigrok.mk
@@ -48,6 +48,7 @@  endif
 
 ifeq ($(BR2_PACKAGE_LIBSIGROKCXX),y)
 LIBSIGROK_CONF_OPTS += --enable-cxx
+LIBSIGROK_AUTORECONF_OPTS += -I $(HOST_DIR)/usr/share/autoconf-archive
 LIBSIGROK_DEPENDENCIES += \
 	host-autoconf-archive \
 	glibmm \
diff --git a/package/thrift/thrift.mk b/package/thrift/thrift.mk
index b4b3a2c..a40ddad 100644
--- a/package/thrift/thrift.mk
+++ b/package/thrift/thrift.mk
@@ -21,6 +21,7 @@  HOST_THRIFT_CONF_OPTS = --with-sysroot=$(HOST_DIR) \
 	--disable-tests \
 	--disable-tutorial
 THRIFT_AUTORECONF = YES
+THRIFT_AUTORECONF_OPTS = -I $(HOST_DIR)/usr/share/autoconf-archive
 THRIFT_LICENSE = Apache-2.0
 THRIFT_LICENSE_FILES = LICENSE