From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: <openembedded-devel@lists.openembedded.org>
Subject: [PATCH 1/2] autotools-bootstrap: make bootstrap package specific.
Date: Sun, 8 May 2016 15:08:12 -0400 [thread overview]
Message-ID: <1462734493-3819-2-git-send-email-paul.gortmaker@windriver.com> (raw)
In-Reply-To: <1462734493-3819-1-git-send-email-paul.gortmaker@windriver.com>
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>
---
meta-networking/recipes-support/netcf/netcf_git.bb | 22 +++++++++++++++++++-
meta-oe/classes/autotools-bootstrap.bbclass | 24 ----------------------
.../fontforge/fontforge_20150824.bb | 18 +++++++++++++++-
3 files changed, 38 insertions(+), 26 deletions(-)
delete mode 100644 meta-oe/classes/autotools-bootstrap.bbclass
diff --git a/meta-networking/recipes-support/netcf/netcf_git.bb b/meta-networking/recipes-support/netcf/netcf_git.bb
index 1bc6baef0d34..f67f4ec6082e 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"
S = "${WORKDIR}/git"
-inherit gettext autotools-bootstrap pkgconfig systemd
+inherit gettext autotools pkgconfig systemd
EXTRA_OECONF_append_class-target = " --with-driver=redhat"
PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts,"
+do_configure_prepend() {
+ currdir=`pwd`
+ cd ${S}
+
+ # avoid bootstrap cloning gnulib on every configure
+ cat >.gitmodules <<EOF
+[submodule "gnulib"]
+ path = gnulib
+ url = git://git.sv.gnu.org/gnulib
+EOF
+ cp -rf ${STAGING_DATADIR}/gnulib ${S}
+
+ # --force to avoid errors on reconfigure e.g if recipes changed we depend on
+ # | bootstrap: running: libtoolize --quiet
+ # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
+ # | ...
+ ./bootstrap --force
+ cd $currdir
+}
+
do_install_append() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
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 8d7af1b47222..000000000000
--- a/meta-oe/classes/autotools-bootstrap.bbclass
+++ /dev/null
@@ -1,24 +0,0 @@
-# Class to inherit when you want to build with autotools after running bootstrap
-inherit autotools
-
-DEPENDS += "gnulib"
-
-do_configure_prepend() {
- currdir=`pwd`
- cd ${S}
-
- # avoid bootstrap cloning gnulib on every configure
- cat >.gitmodules <<EOF
-[submodule "gnulib"]
- path = gnulib
- url = git://git.sv.gnu.org/gnulib
-EOF
- cp -rf ${STAGING_DATADIR}/gnulib ${S}
-
- # --force to avoid errors on reconfigure e.g if recipes changed we depend on
- # | bootstrap: running: libtoolize --quiet
- # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
- # | ...
- ./bootstrap --force
- cd $currdir
-}
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
index b50202d0a660..53899f13cdc2 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 = " \
DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash"
DEPENDS_append_class-target = " libxi"
-inherit autotools-bootstrap pkgconfig pythonnative distro_features_check
+inherit autotools pkgconfig pythonnative distro_features_check
REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
@@ -24,8 +24,24 @@ do_configure_prepend() {
# uthash sources are expected in uthash/src
currdir=`pwd`
cd ${S}
+
mkdir -p uthash/src
cp ${STAGING_INCDIR}/ut*.h uthash/src
+
+ # avoid bootstrap cloning gnulib on every configure
+ cat >.gitmodules <<EOF
+[submodule "gnulib"]
+ path = gnulib
+ url = git://git.sv.gnu.org/gnulib
+EOF
+ cp -rf ${STAGING_DATADIR}/gnulib ${S}
+
+ # --force to avoid errors on reconfigure e.g if recipes changed we depend on
+ # | bootstrap: running: libtoolize --quiet
+ # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
+ # | ...
+ ./bootstrap --force
+
cd $currdir
}
--
2.7.4
next prev parent reply other threads:[~2016-05-08 19:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-08 19:08 [PATCH v2 0/2] netcf build fail / gnulib handling fix Paul Gortmaker
2016-05-08 19:08 ` Paul Gortmaker [this message]
2016-05-08 19:08 ` [PATCH 2/2] netcf: fix mishandling of gnulib submodule causing build fail Paul Gortmaker
2016-05-09 14:08 ` [PATCH v2 0/2] netcf build fail / gnulib handling fix Joe MacDonald
2016-05-09 14:26 ` Martin Jansa
2016-05-09 15:20 ` Paul Gortmaker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1462734493-3819-2-git-send-email-paul.gortmaker@windriver.com \
--to=paul.gortmaker@windriver.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox