[OE-core] [PATCH] db: use S/B more idiomatically
Instead of setting S to a directory inside the tarball and B to another directory inside the tarball, use the default value of S and set AUTOTOOLS_SCRIPT_PATH to the right path to find configure. Rebase two patches to reflect the change of patch root, and add patchdir to the db_5.3.28 recipe so the patches still apply. Because something is not quite right regarding quilt and patching, add a PR bump to the recipes to ensure that a clean work directory is used: for some reason rebuilds will rarely fail to patch correctly. Signed-off-by: Ross Burton--- ...akefile-let-libso_target-depend-on-bt_rec.patch | 4 +- .../recipes-support/db/db/fix-parallel-build.patch | 4 +- meta/recipes-support/db/db_5.3.28.bb | 28 +--- meta/recipes-support/db/db_6.0.30.bb | 53 ++ 4 files changed, 40 insertions(+), 49 deletions(-) diff --git a/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch b/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch index 329bff5..9ec117a 100644 --- a/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch +++ b/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch @@ -17,8 +17,8 @@ Signed-off-by: Robert Yang diff --git a/Makefile.in b/Makefile.in index e451f70..0a42375 100644 a/Makefile.in -+++ b/Makefile.in +--- db/dist/Makefile.in db/dist/Makefile.in @@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS) $(LN) -s $(libdb_version) $(libdb) diff --git a/meta/recipes-support/db/db/fix-parallel-build.patch b/meta/recipes-support/db/db/fix-parallel-build.patch index 2c7f1e1..88bc6b3 100644 --- a/meta/recipes-support/db/db/fix-parallel-build.patch +++ b/meta/recipes-support/db/db/fix-parallel-build.patch @@ -6,8 +6,8 @@ Upstream-Status: Pending Signed-off-by: Martin Jansa dist.orig/Makefile.in 2012-05-11 19:57:48.0 +0200 -+++ dist/Makefile.in 2013-10-31 18:17:11.875532522 +0100 +--- db/dist.orig/Makefile.in 2012-05-11 19:57:48.0 +0200 db/dist/Makefile.in2013-10-31 18:17:11.875532522 +0100 @@ -1034,7 +1034,7 @@ db_recover@o@ util_sig@o@ $(DEF_LIB) $(LIBS) $(POSTLINK) $@ diff --git a/meta/recipes-support/db/db_5.3.28.bb b/meta/recipes-support/db/db_5.3.28.bb index c724f04..6b0e76b 100644 --- a/meta/recipes-support/db/db_5.3.28.bb +++ b/meta/recipes-support/db/db_5.3.28.bb @@ -15,15 +15,17 @@ LICENSE = "Sleepycat" VIRTUAL_NAME ?= "virtual/db" RCONFLICTS_${PN} = "db3" +PR = "r1" + SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz; -SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \ +SRC_URI += "file://arm-thumb-mutex_db5.patch \ file://fix-parallel-build.patch \ " SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24" SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" -LIC_FILES_CHKSUM = "file://../LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" inherit autotools @@ -36,14 +38,6 @@ inherit autotools # to select the correct db in the build (distro) .conf PROVIDES += "${VIRTUAL_NAME}" -# bitbake isn't quite clever enough to deal with sleepycat, -# the distribution sits in the expected directory, but all -# the builds must occur from a sub-directory. The following -# persuades bitbake to go to the right place -S = "${WORKDIR}/db-${PV}/dist" -B = "${WORKDIR}/db-${PV}/build_unix" -SPDX_S = "${WORKDIR}/db-${PV}" - # The executables go in a separate package - typically there # is no need to install these unless doing real database # management on the system. @@ -75,21 +69,22 @@ ARM_MUTEX = "--with-mutex=ARM/gcc-assembly" MUTEX = "" MUTEX_arm = "${ARM_MUTEX}" MUTEX_armeb = "${ARM_MUTEX}" -EXTRA_OECONF += "${MUTEX}" -EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" +EXTRA_OECONF += "${MUTEX} STRIP=true" + +AUTOTOOLS_SCRIPT_PATH = "${S}/dist" # Cancel the site stuff - it's set for db3 and destroys the # configure. CONFIG_SITE = "" do_configure() { - gnu-configize --force ${S} - export STRIP="true" +cd ${B} + gnu-configize --force ${AUTOTOOLS_SCRIPT_PATH} oe_runconf } do_compile_prepend() { - sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' \ - ${B}/libtool +# Stop libtool adding RPATHs +sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/libtool } do_install_append() { @@ -114,4 +109,3 @@ INSANE_SKIP_${PN} = "dev-so" INSANE_SKIP_${PN}-cxx = "dev-so" BBCLASSEXTEND = "native nativesdk" - diff --git a/meta/recipes-support/db/db_6.0.30.bb b/meta/recipes-support/db/db_6.0.30.bb index 018dd58..0852820 100644 --- a/meta/recipes-support/db/db_6.0.30.bb +++
[OE-core] [PATCH] db: use S/B more idiomatically
Instead of setting S to a directory inside the tarball and B to another directory inside the tarball, use the default value of S and set AUTOTOOLS_SCRIPT_PATH to the right path to find configure. Rebase two patches to reflect the change of patch root. For some reason doing this results in the libtool binary appearing at the wrong place, so always point LIBTOOL at the one in the sysroot and remove the sed which doesn't seem to have a reason (added in a484b3 without explanation in 2013). Signed-off-by: Ross Burton--- ...akefile-let-libso_target-depend-on-bt_rec.patch | 4 +- .../recipes-support/db/db/fix-parallel-build.patch | 4 +- meta/recipes-support/db/db_6.0.30.bb | 52 +- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch b/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch index 329bff5..9ec117a 100644 --- a/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch +++ b/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch @@ -17,8 +17,8 @@ Signed-off-by: Robert Yang diff --git a/Makefile.in b/Makefile.in index e451f70..0a42375 100644 a/Makefile.in -+++ b/Makefile.in +--- db/dist/Makefile.in db/dist/Makefile.in @@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS) $(LN) -s $(libdb_version) $(libdb) diff --git a/meta/recipes-support/db/db/fix-parallel-build.patch b/meta/recipes-support/db/db/fix-parallel-build.patch index 2c7f1e1..88bc6b3 100644 --- a/meta/recipes-support/db/db/fix-parallel-build.patch +++ b/meta/recipes-support/db/db/fix-parallel-build.patch @@ -6,8 +6,8 @@ Upstream-Status: Pending Signed-off-by: Martin Jansa dist.orig/Makefile.in 2012-05-11 19:57:48.0 +0200 -+++ dist/Makefile.in 2013-10-31 18:17:11.875532522 +0100 +--- db/dist.orig/Makefile.in 2012-05-11 19:57:48.0 +0200 db/dist/Makefile.in2013-10-31 18:17:11.875532522 +0100 @@ -1034,7 +1034,7 @@ db_recover@o@ util_sig@o@ $(DEF_LIB) $(LIBS) $(POSTLINK) $@ diff --git a/meta/recipes-support/db/db_6.0.30.bb b/meta/recipes-support/db/db_6.0.30.bb index 9505def..9475e82 100644 --- a/meta/recipes-support/db/db_6.0.30.bb +++ b/meta/recipes-support/db/db_6.0.30.bb @@ -17,11 +17,11 @@ RCONFLICTS_${PN} = "db3" RECIPE_NO_UPDATE_REASON = "Updating to 6.1.x requires also updating rpm to 5.4.15" -SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz; -SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \ -file://fix-parallel-build.patch \ -file://Makefile-let-libso_target-depend-on-bt_rec.patch \ -file://Makefile-let-libdb-6.0.la-depend-os_map.l.patch;patchdir=.. \ +SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz \ + file://arm-thumb-mutex_db5.patch \ + file://fix-parallel-build.patch \ + file://Makefile-let-libso_target-depend-on-bt_rec.patch \ + file://Makefile-let-libdb-6.0.la-depend-os_map.l.patch \ " SRC_URI[md5sum] = "ad28eb86ad3203b5422844db179c585b" @@ -31,9 +31,7 @@ SRC_URI[sha256sum] = "608e4b1cf390e9bf54c0ef00c5bd9ca76d36e2261b9f4d33d54516f3f6 UPSTREAM_CHECK_REGEX = "db-(?P\d+\.\d+(\.\d+)?).tar" UPSTREAM_CHECK_URI = "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html; -LIC_FILES_CHKSUM = "file://../LICENSE;md5=1ec8b0b17cc31513fe35ab10716f8490" - -inherit autotools +LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec8b0b17cc31513fe35ab10716f8490" # Put virtual/db in any appropriate provider of a # relational database, use it as a dependency in @@ -44,13 +42,7 @@ inherit autotools # to select the correct db in the build (distro) .conf PROVIDES += "${VIRTUAL_NAME}" -# bitbake isn't quite clever enough to deal with sleepycat, -# the distribution sits in the expected directory, but all -# the builds must occur from a sub-directory. The following -# persuades bitbake to go to the right place -S = "${WORKDIR}/db-${PV}/dist" -B = "${WORKDIR}/db-${PV}/build_unix" -SPDX_S = "${WORKDIR}/db-${PV}" +inherit autotools # The executables go in a separate package - typically there # is no need to install these unless doing real database @@ -60,7 +52,6 @@ inherit lib_package PACKAGES =+ "${PN}-cxx" FILES_${PN}-cxx = "${libdir}/*cxx*so" - # The dev package has the .so link (as in db3) and the .a's - # it is therefore incompatible (cannot be installed at the # same time) as the db3 package @@ -74,6 +65,17 @@ DB6_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disabl EXTRA_OECONF = "${DB6_CONFIG} --enable-shared --enable-cxx --with-sysroot" +# Cancel the site stuff - it's set for db3 and destroys the configure. +CONFIG_SITE = "" + +AUTOTOOLS_SCRIPT_PATH = "${S}/dist" + +do_configure() { +