summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-05-08 15:08:12 -0400
committerArmin Kuster <akuster808@gmail.com>2016-05-13 23:05:54 -0700
commit3cec94aef8220b5a1651ef15b7b25fd1f3201d78 (patch)
treed271bb7b029b001c39e21f165cef1364a12de41b
parent761a6866c7b1ac8eeabb54c8869f46d344dc742e (diff)
downloadmeta-openembedded-3cec94aef8220b5a1651ef15b7b25fd1f3201d78.tar.gz
autotools-bootstrap: make bootstrap package specific.
The theory behind this bbclass was reasonable, with the primary goal being to avoid multiple downloads of gnulib, but it neglected the fact that packages would be shipping a specific version of the ./bootstrap which will support some flags but maybe not all the latest ones from the latest gnulib/build-aux/bootstrap file. I attempted to simply update the two pkgs to use the latest copy of bootstrap from gnulib but this of course triggers the descent into autoconf hell that we all know and love. Rather than futzing with the packages configure.ac and deviating from what the pkg maintainers intended and tested, we can just let the packages have independent calls to ./bootstrap with whatever flags are needed. The goal of this commit is to move the prepend out to the packages and then delete the class without any real functional change ; i.e. a purely mechanical change. Then we can adjust each package to ensure it will still build with a modern host, in an independent fashion, while keeping the main advantage of not fetching gnulib two extra times for netcf and fontforge. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-networking/recipes-support/netcf/netcf_git.bb22
-rw-r--r--meta-oe/classes/autotools-bootstrap.bbclass24
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb18
3 files changed, 38 insertions, 26 deletions
diff --git a/meta-networking/recipes-support/netcf/netcf_git.bb b/meta-networking/recipes-support/netcf/netcf_git.bb
index 26c738b2c..08082ffb4 100644
--- a/meta-networking/recipes-support/netcf/netcf_git.bb
+++ b/meta-networking/recipes-support/netcf/netcf_git.bb
@@ -16,13 +16,33 @@ DEPENDS += "augeas libnl libxslt libxml2 gnulib"
16 16
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
18 18
19inherit gettext autotools-bootstrap pkgconfig systemd 19inherit gettext autotools pkgconfig systemd
20 20
21EXTRA_OECONF_append_class-target = " --with-driver=redhat" 21EXTRA_OECONF_append_class-target = " --with-driver=redhat"
22 22
23PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}" 23PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
24PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts," 24PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts,"
25 25
26do_configure_prepend() {
27 currdir=`pwd`
28 cd ${S}
29
30 # avoid bootstrap cloning gnulib on every configure
31 cat >.gitmodules <<EOF
32[submodule "gnulib"]
33 path = gnulib
34 url = git://git.sv.gnu.org/gnulib
35EOF
36 cp -rf ${STAGING_DATADIR}/gnulib ${S}
37
38 # --force to avoid errors on reconfigure e.g if recipes changed we depend on
39 # | bootstrap: running: libtoolize --quiet
40 # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
41 # | ...
42 ./bootstrap --force
43 cd $currdir
44}
45
26do_install_append() { 46do_install_append() {
27 if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 47 if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
28 install -d ${D}${systemd_unitdir}/system 48 install -d ${D}${systemd_unitdir}/system
diff --git a/meta-oe/classes/autotools-bootstrap.bbclass b/meta-oe/classes/autotools-bootstrap.bbclass
deleted file mode 100644
index 8d7af1b47..000000000
--- a/meta-oe/classes/autotools-bootstrap.bbclass
+++ /dev/null
@@ -1,24 +0,0 @@
1# Class to inherit when you want to build with autotools after running bootstrap
2inherit autotools
3
4DEPENDS += "gnulib"
5
6do_configure_prepend() {
7 currdir=`pwd`
8 cd ${S}
9
10 # avoid bootstrap cloning gnulib on every configure
11 cat >.gitmodules <<EOF
12[submodule "gnulib"]
13 path = gnulib
14 url = git://git.sv.gnu.org/gnulib
15EOF
16 cp -rf ${STAGING_DATADIR}/gnulib ${S}
17
18 # --force to avoid errors on reconfigure e.g if recipes changed we depend on
19 # | bootstrap: running: libtoolize --quiet
20 # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
21 # | ...
22 ./bootstrap --force
23 cd $currdir
24}
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
index b50202d0a..53899f13c 100644
--- a/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
+++ b/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = " \
9DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash" 9DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash"
10DEPENDS_append_class-target = " libxi" 10DEPENDS_append_class-target = " libxi"
11 11
12inherit autotools-bootstrap pkgconfig pythonnative distro_features_check 12inherit autotools pkgconfig pythonnative distro_features_check
13 13
14REQUIRED_DISTRO_FEATURES_append_class-target = " x11" 14REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
15 15
@@ -24,8 +24,24 @@ do_configure_prepend() {
24 # uthash sources are expected in uthash/src 24 # uthash sources are expected in uthash/src
25 currdir=`pwd` 25 currdir=`pwd`
26 cd ${S} 26 cd ${S}
27
27 mkdir -p uthash/src 28 mkdir -p uthash/src
28 cp ${STAGING_INCDIR}/ut*.h uthash/src 29 cp ${STAGING_INCDIR}/ut*.h uthash/src
30
31 # avoid bootstrap cloning gnulib on every configure
32 cat >.gitmodules <<EOF
33[submodule "gnulib"]
34 path = gnulib
35 url = git://git.sv.gnu.org/gnulib
36EOF
37 cp -rf ${STAGING_DATADIR}/gnulib ${S}
38
39 # --force to avoid errors on reconfigure e.g if recipes changed we depend on
40 # | bootstrap: running: libtoolize --quiet
41 # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
42 # | ...
43 ./bootstrap --force
44
29 cd $currdir 45 cd $currdir
30} 46}
31 47