diff options
Diffstat (limited to 'meta/recipes-support/apr')
17 files changed, 473 insertions, 436 deletions
diff --git a/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch b/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch new file mode 100644 index 0000000000..261b78736f --- /dev/null +++ b/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch @@ -0,0 +1,37 @@ +From 3a97f58cfb40fc1911bbfd067e8457a472613d75 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 18 Apr 2023 22:58:00 -0700 +Subject: [PATCH] test_transformation: Check if transform is supported before + using it + +This helps in excluding these tests on systems where these are not +available e.g. musl + +Upstream-Status: Submitted [https://bz.apache.org/bugzilla/show_bug.cgi?id=66570] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + test/testxlate.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/test/testxlate.c b/test/testxlate.c +index 6981eff..de00fa4 100644 +--- a/test/testxlate.c ++++ b/test/testxlate.c +@@ -116,8 +116,12 @@ static void test_transformation(abts_case *tc, void *data) + } + + /* 4. Transformation using charset aliases */ +- one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p); +- one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p); ++ if (is_transform_supported(tc, "UTF-8", "UTF-7", p)) { ++ one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p); ++ } ++ if (is_transform_supported(tc, "UTF-7", "UTF-8", p)) { ++ one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p); ++ } + } + + #endif /* APR_HAS_XLATE */ +-- +2.40.0 + diff --git a/meta/recipes-support/apr/apr-util_1.6.0.bb b/meta/recipes-support/apr/apr-util_1.6.3.bb index 748d196988..1371e262dd 100644 --- a/meta/recipes-support/apr/apr-util_1.6.0.bb +++ b/meta/recipes-support/apr/apr-util_1.6.3.bb @@ -1,85 +1,87 @@ SUMMARY = "Apache Portable Runtime (APR) companion library" HOMEPAGE = "http://apr.apache.org/" SECTION = "libs" -DEPENDS = "apr expat gdbm" +DEPENDS = "apr expat" BBCLASSEXTEND = "native nativesdk" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=158aa0b1efe0c12f23d4b007ddb9a5db \ - file://include/apu_version.h;endline=17;md5=806685a84e71f10c80144c48eb35df42" + file://include/apu_version.h;endline=15;md5=823b3d1a7225df8f7b68a69c3c2b4c71" SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \ file://configfix.patch \ file://configure_fixes.patch \ + file://0001-test_transformation-Check-if-transform-is-supported-.patch \ file://run-ptest \ -" + " -SRC_URI[md5sum] = "3b03dbff60728a4f4c33f5d929e8b35a" -SRC_URI[sha256sum] = "483ef4d59e6ac9a36c7d3fd87ad7b9db7ad8ae29c06b9dd8ff22dda1cc416389" +SRC_URI[sha256sum] = "2b74d8932703826862ca305b094eef2983c27b39d5c9414442e9976a9acf1983" -EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ +EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ --without-odbc \ --without-pgsql \ - --with-dbm=gdbm \ - --with-gdbm=${STAGING_DIR_HOST}${prefix} \ --without-sqlite2 \ --with-expat=${STAGING_DIR_HOST}${prefix}" -inherit autotools lib_package binconfig +inherit autotools lib_package binconfig multilib_script -PR = "r1" +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config" OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'" -do_configure_append() { +do_configure:append() { if [ "${CLASSOVERRIDE}" = "class-target" ]; then cp ${STAGING_DATADIR}/apr/apr_rules.mk ${B}/build/rules.mk + sed -i -e 's#^CFLAGS=.*#CFLAGS=${TARGET_CFLAGS}#g' ${B}/build/rules.mk fi } -do_configure_prepend_class-native() { +do_configure:prepend:class-native() { mkdir ${B}/build cp ${STAGING_DATADIR_NATIVE}/apr/apr_rules.mk ${B}/build/rules.mk } -do_configure_append_class-native() { +do_configure:append:class-native() { sed -i "s#LIBTOOL=\$(SHELL) \$(apr_builddir)#LIBTOOL=\$(SHELL) ${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk # sometimes there isn't SHELL sed -i "s#LIBTOOL=\$(apr_builddir)#LIBTOOL=${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk } -do_configure_prepend_class-nativesdk() { +do_configure:prepend:class-nativesdk() { cp ${STAGING_DATADIR}/apr/apr_rules.mk ${S}/build/rules.mk + sed -i -e 's#^CFLAGS=.*#CFLAGS=${TARGET_CFLAGS}#g' ${S}/build/rules.mk } -do_configure_append_class-nativesdk() { +do_configure:append:class-nativesdk() { sed -i "s#\(apr_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk sed -i "s#\(apr_builders\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk sed -i "s#\(top_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk sed -i "s#\(LIBTOOL=\$(apr_builddir)\).*#\1/libtool#" ${B}/build/rules.mk } -do_install_append_class-target() { +do_install:append:class-target() { sed -i -e 's,${STAGING_DIR_HOST},,g' \ -e 's,APU_SOURCE_DIR=.*,APR_SOURCE_DIR=,g' \ -e 's,APU_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apu-1-config } -PACKAGECONFIG ??= "crypto" +PACKAGECONFIG ??= "crypto gdbm" PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" PACKAGECONFIG[crypto] = "--with-openssl=${STAGING_DIR_HOST}${prefix} --with-crypto,--without-crypto,openssl" PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_DIR_HOST}${prefix},--without-sqlite3,sqlite3" +PACKAGECONFIG[gdbm] = "--with-dbm=gdbm --with-gdbm=${STAGING_DIR_HOST}${prefix},--without-gdbm,gdbm" #files ${libdir}/apr-util-1/*.so are not symlinks but loadable modules thus they are packaged in ${PN} -FILES_${PN} += "${libdir}/apr-util-1/apr*${SOLIBS} ${libdir}/apr-util-1/apr*${SOLIBSDEV}" -FILES_${PN}-dev += "${libdir}/aprutil.exp ${libdir}/apr-util-1/*.la" -FILES_${PN}-staticdev += "${libdir}/apr-util-1/*.a" +FILES:${PN} += "${libdir}/apr-util-1/apr*${SOLIBS} ${libdir}/apr-util-1/apr*${SOLIBSDEV}" +FILES:${PN}-dev += "${libdir}/aprutil.exp ${libdir}/apr-util-1/*.la" +FILES:${PN}-staticdev += "${libdir}/apr-util-1/*.a" -INSANE_SKIP_${PN} += "dev-so" +INSANE_SKIP:${PN} += "dev-so" inherit ptest -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-iso8859-1 glibc-gconv-iso8859-2 glibc-gconv-utf-7" +RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-1 glibc-gconv-iso8859-2 glibc-gconv-utf-7" +RDEPENDS:${PN}-ptest += "libgcc" do_compile_ptest() { cd ${B}/test diff --git a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch new file mode 100644 index 0000000000..b46dc76a86 --- /dev/null +++ b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch @@ -0,0 +1,69 @@ +From 225abf37cd0b49960664b59f08e515a4c4ea5ad0 Mon Sep 17 00:00:00 2001 +From: Jeremy Puhlman <jpuhlman@mvista.com> +Date: Thu, 26 Mar 2020 18:30:36 +0000 +Subject: [PATCH] Add option to disable timed dependant tests + +The disabled tests rely on timing to pass correctly. On a virtualized +system under heavy load, these tests randomly fail because they miss +a timer or other timing related issues. + +Upstream-Status: Submitted [https://github.com/apache/apr/pull/54] +Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> + +--- + configure.in | 6 ++++++ + include/apr.h.in | 1 + + test/testlock.c | 4 ++-- + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/configure.in b/configure.in +index bfd488b..3663220 100644 +--- a/configure.in ++++ b/configure.in +@@ -3023,6 +3023,12 @@ AC_ARG_ENABLE(timedlocks, + ) + AC_SUBST(apr_has_timedlocks) + ++AC_ARG_ENABLE(timed-tests, ++ [ --disable-timed-tests Disable timed tests ], ++ [apr_has_timedtests="0"], [apr_has_timedtests="1"] ++) ++AC_SUBST(apr_has_timedtests) ++ + # hstrerror is only needed if IPv6 is not enabled, + # so getaddrinfo/gai_strerror are not used. + if test $have_ipv6 = 0; then +diff --git a/include/apr.h.in b/include/apr.h.in +index ee99def..c46a5f4 100644 +--- a/include/apr.h.in ++++ b/include/apr.h.in +@@ -298,6 +298,7 @@ extern "C" { + #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@ + #define APR_HAS_OS_UUID @osuuid@ + #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@ ++#define APR_HAVE_TIME_DEPENDANT_TESTS @apr_has_timedtests@ + + #define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD @apr_procattr_user_set_requires_password@ + +diff --git a/test/testlock.c b/test/testlock.c +index e3437c1..04e01b9 100644 +--- a/test/testlock.c ++++ b/test/testlock.c +@@ -535,7 +535,7 @@ abts_suite *testlock(abts_suite *suite) + abts_run_test(suite, threads_not_impl, NULL); + #else + abts_run_test(suite, test_thread_mutex, NULL); +-#if APR_HAS_TIMEDLOCKS ++#if APR_HAS_TIMEDLOCKS && APR_HAVE_TIME_DEPENDANT_TESTS + abts_run_test(suite, test_thread_timedmutex, NULL); + #endif + abts_run_test(suite, test_thread_nestedmutex, NULL); +@@ -543,7 +543,7 @@ abts_suite *testlock(abts_suite *suite) + abts_run_test(suite, test_thread_rwlock, NULL); + abts_run_test(suite, test_cond, NULL); + abts_run_test(suite, test_timeoutcond, NULL); +-#if APR_HAS_TIMEDLOCKS ++#if APR_HAS_TIMEDLOCKS && APR_HAVE_TIME_DEPENDANT_TESTS + abts_run_test(suite, test_timeoutmutex, NULL); + #endif + #ifdef WIN32 diff --git a/meta/recipes-support/apr/apr/0001-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch b/meta/recipes-support/apr/apr/0001-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch deleted file mode 100644 index c5e92aceef..0000000000 --- a/meta/recipes-support/apr/apr/0001-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch +++ /dev/null @@ -1,78 +0,0 @@ -From f26e8b88d2c90ed7eb9d4e276412b0923c23d10f Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke.du@windriver.com> -Date: Wed, 14 Dec 2016 18:13:08 +0800 -Subject: [PATCH] apr: fix off_t size doesn't match in glibc when cross - compiling - -In configure.in, it contains the following: - - APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], off_t, 8) - -the macro "APR_CHECK_SIZEOF_EXTENDED" was defined in build/apr_common.m4, -it use the "AC_TRY_RUN" macro, this macro let the off_t to 8, when cross -compiling enable. - -So it was hardcoded for cross compiling, we should detect it dynamic based on -the sysroot's glibc. We change it to the following: - - AC_CHECK_SIZEOF(off_t) - -The same for the following hardcoded types for cross compiling: - - pid_t 8 - ssize_t 8 - size_t 8 - off_t 8 - -Change the above correspondingly. - -Signed-off-by: Dengke Du <dengke.du@windriver.com> - -Upstream-Status: Pending ---- - configure.in | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/configure.in b/configure.in -index 9d57ae6..5b19940 100644 ---- a/configure.in -+++ b/configure.in -@@ -1681,7 +1681,7 @@ else - socklen_t_value="int" - fi - --APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], pid_t, 8) -+AC_CHECK_SIZEOF(pid_t) - - if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then - pid_t_fmt='#define APR_PID_T_FMT "hd"' -@@ -1750,7 +1750,7 @@ APR_CHECK_TYPES_COMPATIBLE(ssize_t, long, [ssize_t_fmt="ld"]) - APR_CHECK_TYPES_COMPATIBLE(size_t, unsigned int, [size_t_fmt="u"]) - APR_CHECK_TYPES_COMPATIBLE(size_t, unsigned long, [size_t_fmt="lu"]) - --APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8) -+AC_CHECK_SIZEOF(ssize_t) - - AC_MSG_CHECKING([which format to use for apr_ssize_t]) - if test -n "$ssize_t_fmt"; then -@@ -1767,7 +1767,7 @@ fi - - ssize_t_fmt="#define APR_SSIZE_T_FMT \"$ssize_t_fmt\"" - --APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8) -+AC_CHECK_SIZEOF(size_t) - - AC_MSG_CHECKING([which format to use for apr_size_t]) - if test -n "$size_t_fmt"; then -@@ -1784,7 +1784,7 @@ fi - - size_t_fmt="#define APR_SIZE_T_FMT \"$size_t_fmt\"" - --APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], off_t, 8) -+AC_CHECK_SIZEOF(off_t) - - if test "${ac_cv_sizeof_off_t}${apr_cv_use_lfs64}" = "4yes"; then - # Enable LFS --- -2.7.4 - diff --git a/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch new file mode 100644 index 0000000000..a78b16284f --- /dev/null +++ b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch @@ -0,0 +1,58 @@ +From 316b81c462f065927d7fec56aadd5c8cb94d1cf0 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 26 Aug 2022 00:28:08 -0700 +Subject: [PATCH] configure: Remove runtime test for mmap that can map + /dev/zero + +This never works for cross-compile moreover it ends up disabling +ac_cv_file__dev_zero which then results in compiler errors in shared +mutexes + +Upstream-Status: Inappropriate [Cross-compile specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + configure.in | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/configure.in b/configure.in +index 3663220..dce9789 100644 +--- a/configure.in ++++ b/configure.in +@@ -1303,36 +1303,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \ + APR_CHECK_DEFINE(MAP_ANON, sys/mman.h) + AC_CHECK_FILE(/dev/zero) + +-# Not all systems can mmap /dev/zero (such as HP-UX). Check for that. +-if test "$ac_cv_func_mmap" = "yes" && +- test "$ac_cv_file__dev_zero" = "yes"; then +- AC_CACHE_CHECK([for mmap that can map /dev/zero], +- [ac_cv_mmap__dev_zero], +- [AC_TRY_RUN([#include <sys/types.h> +-#include <sys/stat.h> +-#include <fcntl.h> +-#ifdef HAVE_SYS_MMAN_H +-#include <sys/mman.h> +-#endif +- int main() +- { +- int fd; +- void *m; +- fd = open("/dev/zero", O_RDWR); +- if (fd < 0) { +- return 1; +- } +- m = mmap(0, sizeof(void*), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); +- if (m == (void *)-1) { /* aka MAP_FAILED */ +- return 2; +- } +- if (munmap(m, sizeof(void*)) < 0) { +- return 3; +- } +- return 0; +- }], [], [ac_cv_file__dev_zero=no], [ac_cv_file__dev_zero=no])]) +-fi +- + # Now we determine which one is our anonymous shmem preference. + haveshmgetanon="0" + havemmapzero="0" diff --git a/meta/recipes-support/apr/apr/0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch b/meta/recipes-support/apr/apr/0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch new file mode 100644 index 0000000000..8ba181b887 --- /dev/null +++ b/meta/recipes-support/apr/apr/0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch @@ -0,0 +1,37 @@ +From a25be1aaa92a6d2e7f4cc3fdfbb92e5a10b63035 Mon Sep 17 00:00:00 2001 +From: Greg Beard <gmbeard@googlemail.com> +Date: Sat, 25 Mar 2023 08:31:36 +0000 +Subject: [PATCH] dso: Check for NULL handle in apr_dso_sym + +Upstream-Status: Backport [https://github.com/apache/apr/pull/40/commits/0efce00093b1ba405d91c7f0eab9755c8527eead] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + dso/unix/dso.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/dso/unix/dso.c b/dso/unix/dso.c +index fdd56f1..583d5de 100644 +--- a/dso/unix/dso.c ++++ b/dso/unix/dso.c +@@ -173,6 +173,18 @@ APR_DECLARE(apr_status_t) apr_dso_sym(apr_dso_handle_sym_t *ressym, + apr_dso_handle_t *handle, + const char *symname) + { ++ /* This is necessary for `testdso.c`. For some reason, musl ++ * builds fail the `test_unload_library` test if the below ++ * check isn't in place. `test_unload_library` unloads the ++ * library and then immediately calls this function. Maybe ++ * musl's `dlsym()` assumes the handle is never NULL and ++ * some UB is being invoked here... ++ */ ++ if (handle->handle == NULL) { ++ handle->errormsg = "library not loaded"; ++ return APR_ESYMNOTFOUND; ++ } ++ + #if defined(DSO_USE_SHL) + void *symaddr = NULL; + int status; +-- +2.42.0 + diff --git a/meta/recipes-support/apr/apr/configfix.patch b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch index 605c4f632c..d63423f3a1 100644 --- a/meta/recipes-support/apr/apr/configfix.patch +++ b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch @@ -1,15 +1,35 @@ +From 689a8db96a6d1e1cae9cbfb35d05ac82140a6555 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 30 Jan 2018 09:39:06 +0800 +Subject: [PATCH] apr: Remove workdir path references from installed apr files + Upstream-Status: Inappropriate [configuration] -Index: apr-1.3.3/apr-config.in -=================================================================== ---- apr-1.3.3.orig/apr-config.in 2009-01-12 15:16:31.000000000 +0000 -+++ apr-1.3.3/apr-config.in 2009-01-12 15:19:25.000000000 +0000 -@@ -152,14 +152,7 @@ +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +The generated `apr-1-config' is used by other recipes at build time or +packages at target run time, the workdir path caused confusion. + +Rebase to 1.6.3 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + apr-config.in | 32 ++------------------------------ + 1 file changed, 2 insertions(+), 30 deletions(-) + +diff --git a/apr-config.in b/apr-config.in +index bed47ca..47874e5 100644 +--- a/apr-config.in ++++ b/apr-config.in +@@ -164,16 +164,7 @@ while test $# -gt 0; do flags="$flags $LDFLAGS" ;; --includes) - if test "$location" = "installed"; then flags="$flags -I$includedir $EXTRA_INCLUDES" +- elif test "$location" = "crosscompile"; then +- flags="$flags -I$APR_TARGET_DIR/$includedir $EXTRA_INCLUDES" - elif test "$location" = "source"; then - flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" - else @@ -19,13 +39,15 @@ Index: apr-1.3.3/apr-config.in ;; --srcdir) echo $APR_SOURCE_DIR -@@ -181,29 +167,14 @@ +@@ -197,33 +188,14 @@ while test $# -gt 0; do exit 0 ;; --link-ld) - if test "$location" = "installed"; then - ### avoid using -L if libdir is a "standard" location like /usr/lib - flags="$flags -L$libdir -l${APR_LIBNAME}" +- elif test "$location" = "crosscompile"; then +- flags="$flags -L$APR_TARGET_DIR/$libdir -l${APR_LIBNAME}" - else - ### this surely can't work since the library is in .libs? - flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}" @@ -44,6 +66,8 @@ Index: apr-1.3.3/apr-config.in - # Since the user is specifying they are linking with libtool, we - # *know* that -R will be recognized by libtool. - flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}" +- elif test "$location" = "crosscompile"; then +- flags="$flags -L${APR_TARGET_DIR}/$libdir -l${APR_LIBNAME}" - else - flags="$flags $LA_FILE" - fi diff --git a/meta/recipes-support/apr/apr/0002-explicitly-link-libapr-against-phtread-to-make-gold-.patch b/meta/recipes-support/apr/apr/0002-explicitly-link-libapr-against-phtread-to-make-gold-.patch deleted file mode 100644 index 7d0dddc530..0000000000 --- a/meta/recipes-support/apr/apr/0002-explicitly-link-libapr-against-phtread-to-make-gold-.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 94d1ca0266a0f9c0446f1299b54f752e87b8a695 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> -Date: Fri, 3 Mar 2017 22:24:17 +0100 -Subject: [PATCH] explicitly link libapr against phtread to make gold happy on - test -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_init' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_settype' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_destroy' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutex_trylock' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_attr_setstacksize' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_create' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_join' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_detach' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_sigmask' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_once' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_create' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_getspecific' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_delete' -| ../.libs/libapr-1.so: error: undefined reference to 'pthread_setspecific' -| collect2: error: ld returned 1 exit status -| Makefile:114: recipe for target 'globalmutexchild' failed -| make[1]: *** [globalmutexchild] Error 1 -| make[1]: Leaving directory '/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/apr/1.5.2-r0/apr-1.5.2/test' - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - configure.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configure.in b/configure.in -index 5b19940..cdf4d58 100644 ---- a/configure.in -+++ b/configure.in -@@ -766,6 +766,7 @@ else - APR_PTHREADS_CHECK_RESTORE ] ) - fi - if test "$pthreadh" = "1"; then -+ APR_ADDTO(LIBS,[-lpthread]) - APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS - APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG - APR_CHECK_PTHREAD_RECURSIVE_MUTEX --- -2.9.3 - diff --git a/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch b/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch index 6805b8b6e2..30fc07d4a0 100644 --- a/meta/recipes-support/apr/apr/Fix-packet-discards-HTTP-redirect.patch +++ b/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch @@ -1,4 +1,7 @@ -Fix packet discards HTTP redirect. +From 7925eb1766a00ccee05c6e80b1d34f163a04b7b1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 30 Jan 2018 09:43:34 +0800 +Subject: [PATCH 4/7] Fix packet discards HTTP redirect. Disconnect the connection by poll() timeout. If timeout=0 and apr_wait_for_io_or_timeout()=APR_TIMEUP then @@ -8,12 +11,16 @@ Upstream-Status: Pending Signed-off-by: Noriaki Yoshitane <yoshitane.nrs@cnt.ncos.nec.co.jp> Signed-off-by: Li Wang <li.wang@windriver.com> + +Rebase to 1.6.3 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- - network_io/unix/sendrecv.c | 4 ++++ + network_io/unix/sendrecv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/network_io/unix/sendrecv.c b/network_io/unix/sendrecv.c -index c133a26..e8faf15 100644 +index 4c0e0a6..1bdafba 100644 --- a/network_io/unix/sendrecv.c +++ b/network_io/unix/sendrecv.c @@ -85,6 +85,10 @@ apr_status_t apr_socket_recv(apr_socket_t *sock, char *buf, apr_size_t *len) @@ -28,5 +35,5 @@ index c133a26..e8faf15 100644 *len = 0; return arv; -- -1.7.9.5 +1.8.3.1 diff --git a/meta/recipes-support/apr/apr/configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch index 7521eeb469..02634e6fde 100644 --- a/meta/recipes-support/apr/apr/configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch +++ b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch @@ -1,7 +1,7 @@ -From d439093aa07a486f559206ac9e5808a6a18218cd Mon Sep 17 00:00:00 2001 +From 2e66cece0c3adff92733332111204ddc1d730a07 Mon Sep 17 00:00:00 2001 From: Robert Yang <liezhi.yang@windriver.com> Date: Thu, 19 Nov 2015 18:25:38 -0800 -Subject: [PATCH] configure.in: fix LTFLAGS to make it work with ccache +Subject: [PATCH 5/7] configure.in: fix LTFLAGS to make it work with ccache When ccache is enabled, libtool requires --tag=CC when use ccache, otherwise when building apr-util with ccache enabled: @@ -15,14 +15,14 @@ Upstream-Status: Pending Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - configure.in | 2 +- + configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in -index 5a4a988..9d57ae6 100644 +index 361120f..3b10422 100644 --- a/configure.in +++ b/configure.in -@@ -246,7 +246,7 @@ case $host in +@@ -249,7 +249,7 @@ case $host in ;; *) if test "x$LTFLAGS" = "x"; then @@ -32,5 +32,5 @@ index 5a4a988..9d57ae6 100644 if test "$experimental_libtool" = "yes"; then # Use a custom-made libtool replacement -- -1.7.9.5 +1.8.3.1 diff --git a/meta/recipes-support/apr/apr/autoconf-2.73.patch b/meta/recipes-support/apr/apr/autoconf-2.73.patch new file mode 100644 index 0000000000..a8b7a77566 --- /dev/null +++ b/meta/recipes-support/apr/apr/autoconf-2.73.patch @@ -0,0 +1,26 @@ +To work with autoconf 2.73, tweak the macro ordering in configure.in. + +Upstream-Status: Pending +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Index: apr-1.7.2/configure.in +=================================================================== +--- apr-1.7.2.orig/configure.in ++++ apr-1.7.2/configure.in +@@ -430,6 +430,8 @@ if test "$host" = "i586-pc-beos"; then + ) dnl + fi + ++APR_CHECK_DEFINE(LOCK_EX, sys/file.h) ++ + # this is the place to put specific options for platform/compiler + # combinations + case "$host:$CC" in +@@ -2384,7 +2386,6 @@ AC_MSG_RESULT([$msg]) + AC_SUBST(have_union_semun) + + dnl Checks for libraries. +-APR_CHECK_DEFINE(LOCK_EX, sys/file.h) + APR_CHECK_DEFINE(F_SETLK, fcntl.h) + APR_CHECK_DEFINE(SEM_UNDO, sys/sem.h) + diff --git a/meta/recipes-support/apr/apr/cleanup.patch b/meta/recipes-support/apr/apr/cleanup.patch deleted file mode 100644 index b6784e015d..0000000000 --- a/meta/recipes-support/apr/apr/cleanup.patch +++ /dev/null @@ -1,43 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: apr-1.4.2/build/buildcheck.sh -=================================================================== ---- apr-1.4.2.orig/build/buildcheck.sh 2009-11-13 08:27:16.000000000 +0800 -+++ apr-1.4.2/build/buildcheck.sh 2010-11-26 15:44:00.000000000 +0800 -@@ -32,35 +32,4 @@ - echo "buildconf: autoconf version $ac_version (ok)" - fi - --# Sample libtool --version outputs: --# ltmain.sh (GNU libtool) 1.3.3 (1.385.2.181 1999/07/02 15:49:11) --# ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a --# output is multiline from 1.5 onwards -- --# Require libtool 1.4 or newer --libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` --lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` --if test -z "$lt_pversion"; then --echo "buildconf: libtool not found." --echo " You need libtool version 1.4 or newer installed" --echo " to build APR from SVN." --exit 1 --fi --lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'` --IFS=.; set $lt_version; IFS=' ' --lt_status="good" --if test "$1" = "1"; then -- if test "$2" -lt "4"; then -- lt_status="bad" -- fi --fi --if test $lt_status = "good"; then -- echo "buildconf: libtool version $lt_pversion (ok)" -- exit 0 --fi -- --echo "buildconf: libtool version $lt_pversion found." --echo " You need libtool version 1.4 or newer installed" --echo " to build APR from SVN." -- --exit 1 -+exit 0 diff --git a/meta/recipes-support/apr/apr/configure_fixes.patch b/meta/recipes-support/apr/apr/configure_fixes.patch deleted file mode 100644 index 0514000599..0000000000 --- a/meta/recipes-support/apr/apr/configure_fixes.patch +++ /dev/null @@ -1,68 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: apr-1.3.3/configure.in -=================================================================== ---- apr-1.3.3.orig/configure.in -+++ apr-1.3.3/configure.in -@@ -794,39 +794,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm - create_area]) - - APR_CHECK_DEFINE(MAP_ANON, sys/mman.h) --AC_CHECK_FILE(/dev/zero) -- --# Not all systems can mmap /dev/zero (such as HP-UX). Check for that. --if test "$ac_cv_func_mmap" = "yes" && -- test "$ac_cv_file__dev_zero" = "yes"; then -- AC_MSG_CHECKING(for mmap that can map /dev/zero) -- AC_TRY_RUN([ --#include <sys/types.h> --#include <sys/stat.h> --#include <fcntl.h> --#ifdef HAVE_SYS_MMAN_H --#include <sys/mman.h> --#endif -- int main() -- { -- int fd; -- void *m; -- fd = open("/dev/zero", O_RDWR); -- if (fd < 0) { -- return 1; -- } -- m = mmap(0, sizeof(void*), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -- if (m == (void *)-1) { /* aka MAP_FAILED */ -- return 2; -- } -- if (munmap(m, sizeof(void*)) < 0) { -- return 3; -- } -- return 0; -- }], [], [ac_cv_file__dev_zero=no], [ac_cv_file__dev_zero=no]) -- -- AC_MSG_RESULT($ac_cv_file__dev_zero) --fi - - # Now we determine which one is our anonymous shmem preference. - haveshmgetanon="0" -@@ -1518,13 +1485,14 @@ else - bigendian=0 - fi - --APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h> --#include <sys/uio.h>],struct iovec,0) --if test "$ac_cv_sizeof_struct_iovec" = "0"; then -- have_iovec=0 --else -- have_iovec=1 --fi -+#APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h> -+##include <sys/uio.h>],struct iovec,0) -+#if test "$ac_cv_sizeof_struct_iovec" = "0"; then -+# have_iovec=0 -+#else -+# have_iovec=1 -+#fi -+have_iovec=1 - - AC_SUBST(voidp_size) - AC_SUBST(short_value) diff --git a/meta/recipes-support/apr/apr/libtoolize_check.patch b/meta/recipes-support/apr/apr/libtoolize_check.patch new file mode 100644 index 0000000000..80ce43caa4 --- /dev/null +++ b/meta/recipes-support/apr/apr/libtoolize_check.patch @@ -0,0 +1,37 @@ +From 17835709bc55657b7af1f7c99b3f572b819cf97e Mon Sep 17 00:00:00 2001 +From: Helmut Grohne <helmut@subdivi.de> +Date: Tue, 7 Feb 2023 07:04:00 +0000 +Subject: [PATCH] check for libtoolize rather than libtool + +libtool is now in package libtool-bin, but apr only needs libtoolize. + +Upstream-Status: Pending [ from debian: https://sources.debian.org/data/main/a/apr/1.6.5-1/debian/patches/libtoolize_check.patch ] + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + +--- + build/buildcheck.sh | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/build/buildcheck.sh b/build/buildcheck.sh +index 44921b5..08bc8a8 100755 +--- a/build/buildcheck.sh ++++ b/build/buildcheck.sh +@@ -39,13 +39,11 @@ fi + # ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a + # output is multiline from 1.5 onwards + +-# Require libtool 1.4 or newer +-if test -z "$libtool"; then +- libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` +-fi +-lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` ++# Require libtoolize 1.4 or newer ++libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize libtoolize15 libtoolize14` ++lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` + if test -z "$lt_pversion"; then +- echo "buildconf: libtool not found." ++ echo "buildconf: libtoolize not found." + echo " You need libtool version 1.4 or newer installed" + echo " to build APR from SVN." + res=1 diff --git a/meta/recipes-support/apr/apr/upgrade-and-fix-1.5.1.patch b/meta/recipes-support/apr/apr/upgrade-and-fix-1.5.1.patch deleted file mode 100644 index 16499f5ac9..0000000000 --- a/meta/recipes-support/apr/apr/upgrade-and-fix-1.5.1.patch +++ /dev/null @@ -1,45 +0,0 @@ -Makefile.in: fix cross compiling failed - -The tools/gen_test_char was invoked at build time, -and it didn't work for the cross compiling, so we -compile it with $BUILD_CC. - -Remove the 'tools' dir creation, it always existed. -And it caused gen_test_char unexpected rebuilt at -do_install time. - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - Makefile.in | 10 ++-------- - 1 file changed, 2 insertions(+), 8 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index a2a5194..5fe028f 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -46,7 +46,6 @@ LT_VERSION = @LT_VERSION@ - - CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs \ - build/apr_rules.out tools/gen_test_char@EXEEXT@ \ -- tools/gen_test_char.o tools/gen_test_char.lo \ - include/private/apr_escape_test_char.h - DISTCLEAN_TARGETS = config.cache config.log config.status \ - include/apr.h include/arch/unix/apr_private.h \ -@@ -129,13 +128,8 @@ check: $(TARGET_LIB) - etags: - etags `find . -name '*.[ch]'` - --OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS) --tools/gen_test_char.lo: tools/gen_test_char.c -- $(APR_MKDIR) tools -- $(LT_COMPILE) -- --tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char) -- $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS) -+tools/gen_test_char@EXEEXT@: tools/gen_test_char.c -+ $(BUILD_CC) $(CFLAGS_FOR_BUILD) $< -o $@ - - include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@ - $(APR_MKDIR) include/private diff --git a/meta/recipes-support/apr/apr_1.6.2.bb b/meta/recipes-support/apr/apr_1.6.2.bb deleted file mode 100644 index e2eed53c9e..0000000000 --- a/meta/recipes-support/apr/apr_1.6.2.bb +++ /dev/null @@ -1,114 +0,0 @@ -SUMMARY = "Apache Portable Runtime (APR) library" -HOMEPAGE = "http://apr.apache.org/" -SECTION = "libs" -DEPENDS = "util-linux" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4dfd4cd216828c8cae5de5a12f3844c8 \ - file://include/apr_lib.h;endline=17;md5=ee42fa7575dc40580a9e01c1b75fae96" - -BBCLASSEXTEND = "native nativesdk" - -SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ - file://configure_fixes.patch \ - file://cleanup.patch \ - file://configfix.patch \ - file://run-ptest \ - file://upgrade-and-fix-1.5.1.patch \ - file://Fix-packet-discards-HTTP-redirect.patch \ - file://configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ - file://0001-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch \ - file://0002-explicitly-link-libapr-against-phtread-to-make-gold-.patch \ -" - -SRC_URI[md5sum] = "e81a851967c79b5ce9bfbc909e4bf735" -SRC_URI[sha256sum] = "09109cea377bab0028bba19a92b5b0e89603df9eab05c0f7dbd4dd83d48dcebd" - -inherit autotools-brokensep lib_package binconfig multilib_header ptest - -OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'" - -# Added to fix some issues with cmake. Refer to https://github.com/bmwcarit/meta-ros/issues/68#issuecomment-19896928 -CACHED_CONFIGUREVARS += "apr_cv_mutex_recursive=yes" - -# Also suppress trying to use sctp. -# -CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sctp_uio_h=no" - -# Otherwise libtool fails to compile apr-utils -# x86_64-linux-libtool: compile: unable to infer tagged configuration -# x86_64-linux-libtool: error: specify a tag with '--tag' -CCACHE = "" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -do_configure_prepend() { - # Avoid absolute paths for grep since it causes failures - # when using sstate between different hosts with different - # install paths for grep. - export GREP="grep" - - cd ${S} - ./buildconf -} - -FILES_${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*" -RDEPENDS_${PN}-dev += "bash" - -#for some reason, build/libtool.m4 handled by buildconf still be overwritten -#when autoconf, so handle it again. -do_configure_append() { - sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/libtool.m4 - sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/apr_rules.mk -} - -do_install_append() { - oe_multilib_header apr.h - install -d ${D}${datadir}/apr -} - -do_install_append_class-target() { - sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${datadir}/build-1/apr_rules.mk - sed -i -e 's,${STAGING_DIR_HOST},,g' \ - -e 's,APR_SOURCE_DIR=.*,APR_SOURCE_DIR=,g' \ - -e 's,APR_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apr-1-config -} - -SSTATE_SCAN_FILES += "apr_rules.mk libtool" - -SYSROOT_PREPROCESS_FUNCS += "apr_sysroot_preprocess" - -apr_sysroot_preprocess () { - d=${SYSROOT_DESTDIR}${datadir}/apr - install -d $d/ - cp ${S}/build/apr_rules.mk $d/ - sed -i s,apr_builddir=.*,apr_builddir=,g $d/apr_rules.mk - sed -i s,apr_builders=.*,apr_builders=,g $d/apr_rules.mk - sed -i s,LIBTOOL=.*,LIBTOOL=${HOST_SYS}-libtool,g $d/apr_rules.mk - sed -i s,\$\(apr_builders\),${STAGING_DATADIR}/apr/,g $d/apr_rules.mk - cp ${S}/build/mkdir.sh $d/ - cp ${S}/build/make_exports.awk $d/ - cp ${S}/build/make_var_export.awk $d/ - cp ${S}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${datadir}/build-1/libtool -} - -do_compile_ptest() { - cd ${S}/test - oe_runmake -} - -do_install_ptest() { - t=${D}${PTEST_PATH}/test - mkdir -p $t/.libs - cp -r ${S}/test/data $t/ - cp -r ${S}/test/.libs/*.so $t/.libs/ - cp ${S}/test/proc_child $t/ - cp ${S}/test/readchild $t/ - cp ${S}/test/sockchild $t/ - cp ${S}/test/sockperf $t/ - cp ${S}/test/testall $t/ - cp ${S}/test/tryread $t/ -} - -export CONFIG_SHELL="/bin/bash" diff --git a/meta/recipes-support/apr/apr_1.7.4.bb b/meta/recipes-support/apr/apr_1.7.4.bb new file mode 100644 index 0000000000..4df741c766 --- /dev/null +++ b/meta/recipes-support/apr/apr_1.7.4.bb @@ -0,0 +1,138 @@ +SUMMARY = "Apache Portable Runtime (APR) library" + +DESCRIPTION = "Create and maintain software libraries that provide a predictable \ +and consistent interface to underlying platform-specific implementations." + +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" +DEPENDS = "util-linux" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4dfd4cd216828c8cae5de5a12f3844c8 \ + file://include/apr_lib.h;endline=15;md5=823b3d1a7225df8f7b68a69c3c2b4c71" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ + file://run-ptest \ + file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ + file://0004-Fix-packet-discards-HTTP-redirect.patch \ + file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ + file://libtoolize_check.patch \ + file://0001-Add-option-to-disable-timed-dependant-tests.patch \ + file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \ + file://autoconf-2.73.patch \ + file://0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch \ + " + +SRC_URI[sha256sum] = "fc648de983f3a2a6c9e78dea1f180639bd2fad6c06d556d4367a701fe5c35577" + +inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script + +OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'" + +# Added to fix some issues with cmake. Refer to https://github.com/bmwcarit/meta-ros/issues/68#issuecomment-19896928 +CACHED_CONFIGUREVARS += "apr_cv_mutex_recursive=yes" +# Enable largefile +CACHED_CONFIGUREVARS += "apr_cv_use_lfs64=yes" +# Additional AC_TRY_RUN tests which will need to be cached for cross compile +CACHED_CONFIGUREVARS += "apr_cv_epoll=yes epoll_create1=yes apr_cv_sock_cloexec=yes \ + ac_cv_struct_rlimit=yes \ + ac_cv_func_sem_open=yes \ + apr_cv_process_shared_works=yes \ + apr_cv_mutex_robust_shared=yes \ + " +# Also suppress trying to use sctp. +# +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sctp_uio_h=no" + +# ac_cv_sizeof_struct_iovec is deduced using runtime check which will fail during cross-compile +CACHED_CONFIGUREVARS += "${@['ac_cv_sizeof_struct_iovec=16','ac_cv_sizeof_struct_iovec=8'][d.getVar('SITEINFO_BITS') != '32']}" + +CACHED_CONFIGUREVARS += "ac_cv_file__dev_zero=yes" + +CACHED_CONFIGUREVARS:append:libc-musl = " ac_cv_strerror_r_rc_int=yes" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG:append:libc-musl = " xsi-strerror" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[timed-tests] = "--enable-timed-tests,--disable-timed-tests," +PACKAGECONFIG[xsi-strerror] = "ac_cv_strerror_r_rc_int=yes,ac_cv_strerror_r_rc_int=no," + +do_configure:prepend() { + # Avoid absolute paths for grep since it causes failures + # when using sstate between different hosts with different + # install paths for grep. + export GREP="grep" + + cd ${S} + # The "2" means libtool version 2. + ./buildconf 2 +} + +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apr-1-config \ + ${PN}-dev:${datadir}/build-1/apr_rules.mk" + +FILES:${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*" +RDEPENDS:${PN}-dev += "bash libtool" + +RDEPENDS:${PN}-ptest += "libgcc" + +#for some reason, build/libtool.m4 handled by buildconf still be overwritten +#when autoconf, so handle it again. +do_configure:append() { + sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/libtool.m4 + sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/apr_rules.mk +} + +do_install:append() { + oe_multilib_header apr.h + install -d ${D}${datadir}/apr +} + +do_install:append:class-target() { + rm -f ${D}${datadir}/build-1/libtool + sed -i s,LIBTOOL=.*,LIBTOOL=libtool,g ${D}${datadir}/build-1/apr_rules.mk + sed -i -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,${STAGING_DIR_HOST},,g' ${D}${datadir}/build-1/apr_rules.mk + sed -i -e 's,${STAGING_DIR_HOST},,g' \ + -e 's,APR_SOURCE_DIR=.*,APR_SOURCE_DIR=,g' \ + -e 's,APR_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apr-1-config +} + +SSTATE_SCAN_FILES += "apr_rules.mk libtool" + +SYSROOT_PREPROCESS_FUNCS += "apr_sysroot_preprocess" + +apr_sysroot_preprocess () { + d=${SYSROOT_DESTDIR}${datadir}/apr + install -d $d/ + cp ${S}/build/apr_rules.mk $d/ + sed -i s,apr_builddir=.*,apr_builddir=,g $d/apr_rules.mk + sed -i s,apr_builders=.*,apr_builders=,g $d/apr_rules.mk + sed -i s,LIBTOOL=.*,LIBTOOL=libtool,g $d/apr_rules.mk + sed -i s,\$\(apr_builders\),${STAGING_DATADIR}/apr/,g $d/apr_rules.mk + cp ${S}/build/mkdir.sh $d/ + cp ${S}/build/make_exports.awk $d/ + cp ${S}/build/make_var_export.awk $d/ + cp ${S}/libtool ${SYSROOT_DESTDIR}${datadir}/build-1/libtool +} + +do_compile_ptest() { + cd ${S}/test + oe_runmake +} + +do_install_ptest() { + t=${D}${PTEST_PATH}/test + mkdir -p $t/.libs + cp -r ${S}/test/data $t/ + cp -r ${S}/test/.libs/*.so $t/.libs/ + cp ${S}/test/proc_child $t/ + cp ${S}/test/readchild $t/ + cp ${S}/test/sockchild $t/ + cp ${S}/test/sockperf $t/ + cp ${S}/test/testall $t/ + cp ${S}/test/tryread $t/ +} + +export CONFIG_SHELL="/bin/bash" |