apr: bump to 1.7.0 & sync with master

This is a squash of the following cherry-picked commits:

40a29bf055
40c7e95210
893a804c95
12037b3f29
193c3913b6
430ab5f9b3
0c6d461cc9
86396c6a49

Short summary:

- version is bumped to 1.7.0
- Makefile and patches are updated and cleaned
- adds myself as maintainer
- improves the cross-compile setup (via configure variables, patches &
  sed scripts)

For more details please check the individual commits provided above.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit is contained in:
Sebastian Kemper 2020-02-08 21:39:01 +01:00
parent 3cf0c61f2e
commit 391f5f087e
9 changed files with 210 additions and 140 deletions

View file

@ -8,18 +8,24 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=apr
PKG_VERSION:=1.6.5
PKG_RELEASE:=3
PKG_VERSION:=1.7.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@APACHE/apr/
PKG_HASH:=a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105
PKG_HASH:=e2e148f0b2e99b8e5c6caa09f6d4fb4dd3e83f744aa72a952f94f5a14436f7ea
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>, \
Sebastian Kemper <sebastian_ml@gmx.net>
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:apache:apr
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=aclocal.m4 build/ltmain.sh
PKG_INSTALL:=1
@ -33,53 +39,64 @@ define Package/libapr
URL:=https://apr.apache.org/
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--without-pic \
--with-devrandom=/dev/urandom \
$(call autoconf_bool,CONFIG_IPV6,ipv6)
# XXX: ac_cv_sizeof_struct_iovec=1 is just to trick configure
# XXX: don't set apr_cv_use_lfs64=yes, see
# https://www.openwall.com/lists/musl/2020/02/03/18
# XXX: the atomic builtins used require 8-byte intrinsics, which are available
# on all 64-bit architectures and some arm as well as x86 32-bit platforms
CONFIGURE_VARS += \
ap_cv_atomic_builtins=$(if $(CONFIG_ARCH_64BIT),yes,no) \
ac_cv_file__dev_zero=yes \
ac_cv_func_pthread_mutexattr_setpshared=yes \
ac_cv_func_sem_open=yes \
ac_cv_func_setpgrp_void=yes \
ac_cv_mmap__dev_zero=yes \
ac_cv_negative_eai=yes \
ac_cv_o_nonblock_inherited=no \
ac_cv_sizeof_struct_iovec=1 \
ac_cv_struct_rlimit=yes \
ac_cv_func_sem_open=yes \
ac_cv_func_pthread_mutexattr_setpshared=yes \
apr_cv_mutex_robust_shared=yes \
apr_cv_tcp_nodelay_with_cork=yes \
apr_cv_sock_cloexec=yes \
apr_cv_process_shared_works=yes \
apr_cv_mutex_recursive=yes \
apr_cv_epoll_create1=yes \
apr_cv_epoll=yes \
apr_cv_accept4=yes \
apr_cv_dup3=yes \
apr_cv_accept4=yes
apr_cv_epoll=yes \
apr_cv_epoll_create1=yes \
apr_cv_gai_addrconfig=yes \
apr_cv_mutex_recursive=yes \
apr_cv_mutex_robust_shared=yes \
apr_cv_process_shared_works=yes \
apr_cv_pthreads_lib=-lpthread \
apr_cv_sock_cloexec=yes \
apr_cv_tcp_nodelay_with_cork=yes
ifeq ($(call qstrip,$(CONFIG_LIBC)),musl)
CONFIGURE_VARS += \
ac_cv_strerror_r_rc_int=yes
endif
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/include/apr-1 $(1)/usr/lib $(1)/usr/lib/pkgconfig $(1)/usr/share/build-1
$(CP) $(PKG_INSTALL_DIR)/usr/bin/apr-1-config \
$(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/include/apr-1/* \
$(1)/usr/include/apr-1/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapr-1.{la,a,so*} \
$(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/apr-1.pc \
$(1)/usr/lib/pkgconfig/
$(CP) $(PKG_INSTALL_DIR)/usr/share/build-1/* \
$(1)/usr/share/build-1/
$(SED) 's,^datadir=\"/usr/share\",datadir=\"$(STAGING_DIR)/usr/share\",g' $(1)/usr/bin/apr-1-config
$(SED) 's,^installbuilddir=\"/usr/share/build-1\",installbuilddir=\"$(STAGING_DIR)/usr/share/build-1\",g' $(1)/usr/bin/apr-1-config
$(SED) 's,^libdir=\"$$$${exec_prefix}/lib,libdir=\"$(STAGING_DIR)/usr/lib,g' $(1)/usr/bin/apr-1-config
$(SED) 's,^includedir=\"$$$${prefix}/include/,includedir=\"$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/apr-1-config
$(SED) 's,-L$$$$libdir,,g' $(1)/usr/bin/apr-1-config
$(SED) 's,-R$$$$libdir,,g' $(1)/usr/bin/apr-1-config
$(SED) 's,/usr/share/build-1,$(STAGING_DIR)/usr/share/build-1,g' $(1)/usr/share/build-1/apr_rules.mk
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/include/apr-1 \
$(1)/usr/lib/pkgconfig $(1)/usr/share/build-1
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/apr-1-config \
$(1)/usr/bin
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/apr-1/* \
$(1)/usr/include/apr-1
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapr-1.{a,so*} $(1)/usr/lib
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/apr-1.pc \
$(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/share/build-1/* $(1)/usr/share/build-1
$(SED) '/^prefix=\|^exec_prefix=/s|/usr|$(STAGING_DIR)/usr|' \
$(1)/usr/bin/apr-1-config
$(SED) '/^datadir=/s|/usr|$$$${prefix}|' $(1)/usr/bin/apr-1-config
$(SED) 's,/usr/share/build-1,$(STAGING_DIR)/usr/share/build-1,g' \
$(1)/usr/share/build-1/apr_rules.mk
endef
define Package/libapr/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapr-1.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapr-1.so.* $(1)/usr/lib
endef
$(eval $(call BuildPackage,libapr))

View file

@ -1,26 +0,0 @@
Index: apr-1.5.2/Makefile.in
===================================================================
--- apr-1.5.2.orig/Makefile.in
+++ apr-1.5.2/Makefile.in
@@ -3,6 +3,7 @@ srcdir=@srcdir@
VPATH=@srcdir@
top_srcdir=@apr_srcdir@
top_blddir=@apr_builddir@
+top_builddir=@top_builddir@
#
# APR (Apache Portable Runtime) library Makefile.
Index: apr-1.5.2/configure.in
===================================================================
--- apr-1.5.2.orig/configure.in
+++ apr-1.5.2/configure.in
@@ -245,9 +245,6 @@ case $host in
gcc $CFLAGS $CPPFLAGS -o $LIBTOOL.exe $LIBTOOL.c
;;
*)
- if test "x$LTFLAGS" = "x"; then
- LTFLAGS='--silent'
- fi
if test "$experimental_libtool" = "yes"; then
# Use a custom-made libtool replacement
echo "using jlibtool"

View file

@ -0,0 +1,56 @@
Fix cross-compilation
Patch was backported from Apache httpd:
http://svn.apache.org/viewvc?view=revision&revision=1327907
http://svn.apache.org/viewvc?view=revision&revision=1328390
http://svn.apache.org/viewvc?view=revision&revision=1328714
Patch submitted upstream:
https://issues.apache.org/bugzilla/show_bug.cgi?id=57058
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
--- a/configure.in
+++ b/configure.in
@@ -118,6 +118,16 @@ AC_CANONICAL_SYSTEM
echo "Configuring APR library"
echo "Platform: $host"
+dnl In case of cross compilation we set CC_FOR_BUILD to cc unless
+dnl we got already CC_FOR_BUILD from environment.
+if test "x${build_alias}" != "x${host_alias}"; then
+ if test "x${CC_FOR_BUILD}" = "x"; then
+ CC_FOR_BUILD=cc
+ fi
+fi
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+
dnl Some initial steps for configuration. We setup the default directory
dnl and which files are to be configured.
--- a/Makefile.in
+++ b/Makefile.in
@@ -8,6 +8,8 @@ top_blddir=@apr_builddir@
# APR (Apache Portable Runtime) library Makefile.
#
CPP = @CPP@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
# get substituted into some targets
APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
@@ -136,8 +138,13 @@ tools/gen_test_char.lo: tools/gen_test_c
$(APR_MKDIR) tools
$(LT_COMPILE)
+ifdef CC_FOR_BUILD
+tools/gen_test_char@EXEEXT@: tools/gen_test_char.c $(LOCAL_LIBS)
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
+else
tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char)
$(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)
+endif
include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@
$(APR_MKDIR) include/private

View file

@ -0,0 +1,37 @@
Fix PATH_MAX detection by including sys/param.h if available
Patch sent upstream:
https://bz.apache.org/bugzilla/show_bug.cgi?id=63782
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
--- a/configure.in
+++ b/configure.in
@@ -1596,6 +1596,7 @@ AC_SUBST(stdlibh)
AC_SUBST(stringh)
AC_SUBST(stringsh)
AC_SUBST(sys_ioctlh)
+AC_SUBST(sys_paramh)
AC_SUBST(sys_sendfileh)
AC_SUBST(sys_signalh)
AC_SUBST(sys_socketh)
--- a/include/apr.h.in
+++ b/include/apr.h.in
@@ -95,6 +95,7 @@
#define APR_HAVE_STRINGS_H @stringsh@
#define APR_HAVE_INTTYPES_H @inttypesh@
#define APR_HAVE_SYS_IOCTL_H @sys_ioctlh@
+#define APR_HAVE_SYS_PARAM_H @sys_paramh@
#define APR_HAVE_SYS_SENDFILE_H @sys_sendfileh@
#define APR_HAVE_SYS_SIGNAL_H @sys_signalh@
#define APR_HAVE_SYS_SOCKET_H @sys_socketh@
@@ -218,6 +219,9 @@
#ifdef __cplusplus
extern "C" {
#endif
+#if APR_HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
/**
* @addtogroup apr_platform

View file

@ -1,13 +0,0 @@
https://dev.openwrt.org/ticket/9287
--- a/time/unix/time.c
+++ b/time/unix/time.c
@@ -75,7 +75,7 @@ APR_DECLARE(apr_time_t) apr_time_now(voi
{
struct timeval tv;
gettimeofday(&tv, NULL);
- return tv.tv_sec * APR_USEC_PER_SEC + tv.tv_usec;
+ return tv.tv_sec * (apr_time_t)APR_USEC_PER_SEC + (apr_time_t)tv.tv_usec;
}
static void explode_time(apr_time_exp_t *xt, apr_time_t t,

View file

@ -1,51 +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 $BUILDCC.
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(-)
Index: apr-1.5.2/Makefile.in
===================================================================
--- apr-1.5.2.orig/Makefile.in
+++ apr-1.5.2/Makefile.in
@@ -20,7 +20,7 @@ INCDIR=./include
OSDIR=$(top_srcdir)/include/arch/@OSDIR@
DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@
INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) -I$(top_srcdir)/include/arch/@DEFAULT_OSDIR@ -I$(top_srcdir)/include -I$(top_srcdir)/include/private -I$(top_blddir)/include/private
-
+BUILDCC=gcc
#
# Macros for target determination
#
@@ -47,7 +47,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 \
@@ -138,9 +137,9 @@ tools/gen_test_char.lo: tools/gen_test_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
+ $(BUILDCC) $(CFLAGS_FOR_BUILD) $< -o $@
+
include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@
$(APR_MKDIR) include/private
tools/gen_test_char@EXEEXT@ > $@

View file

@ -33,11 +33,9 @@ Upstream-Status: Pending
configure.in | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/configure.in b/configure.in
index 3b10422..a227e72 100644
--- a/configure.in
+++ b/configure.in
@@ -1771,7 +1771,7 @@ else
@@ -1809,7 +1809,7 @@ else
socklen_t_value="int"
fi
@ -46,25 +44,25 @@ index 3b10422..a227e72 100644
if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then
pid_t_fmt='#define APR_PID_T_FMT "hd"'
@@ -1840,7 +1840,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"])
@@ -1881,7 +1881,7 @@ APR_CHECK_TYPES_FMT_COMPATIBLE(size_t, u
APR_CHECK_TYPES_FMT_COMPATIBLE(size_t, unsigned int, u, [size_t_fmt="u"])
])
-APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
+AC_CHECK_SIZEOF(ssize_t)
dnl the else cases below should no longer occur;
AC_MSG_CHECKING([which format to use for apr_ssize_t])
if test -n "$ssize_t_fmt"; then
@@ -1857,7 +1857,7 @@ fi
@@ -1899,7 +1899,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)
# else cases below should no longer occur;
AC_MSG_CHECKING([which format to use for apr_size_t])
if test -n "$size_t_fmt"; then
@@ -1874,7 +1874,7 @@ fi
@@ -1917,7 +1917,7 @@ fi
size_t_fmt="#define APR_SIZE_T_FMT \"$size_t_fmt\""
@ -73,6 +71,3 @@ index 3b10422..a227e72 100644
if test "${ac_cv_sizeof_off_t}${apr_cv_use_lfs64}" = "4yes"; then
# Enable LFS
--
1.8.3.1

View file

@ -0,0 +1,30 @@
--- a/build/apr_common.m4
+++ b/build/apr_common.m4
@@ -526,8 +526,9 @@ dnl string.
dnl
dnl
AC_DEFUN([APR_CHECK_STRERROR_R_RC], [
-AC_MSG_CHECKING(for type of return code from strerror_r)
-AC_TRY_RUN([
+AC_CACHE_CHECK([whether return code from strerror_r has type int],
+[ac_cv_strerror_r_rc_int],
+[AC_TRY_RUN([
#include <errno.h>
#include <string.h>
#include <stdio.h>
@@ -543,14 +544,10 @@ main()
}], [
ac_cv_strerror_r_rc_int=yes ], [
ac_cv_strerror_r_rc_int=no ], [
- ac_cv_strerror_r_rc_int=no ] )
+ ac_cv_strerror_r_rc_int=no ] ) ] )
if test "x$ac_cv_strerror_r_rc_int" = xyes; then
AC_DEFINE(STRERROR_R_RC_INT, 1, [Define if strerror returns int])
- msg="int"
-else
- msg="pointer"
fi
-AC_MSG_RESULT([$msg])
] )
dnl

View file

@ -0,0 +1,25 @@
--- a/configure.in
+++ b/configure.in
@@ -1191,8 +1191,9 @@ 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([
+ 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>
@@ -1215,9 +1216,7 @@ if test "$ac_cv_func_mmap" = "yes" &&
return 3;
}
return 0;
- }], [], [ac_cv_file__dev_zero=no], [ac_cv_file__dev_zero=no])
-
- AC_MSG_RESULT($ac_cv_file__dev_zero)
+ }], [], [ac_cv_file__dev_zero=no], [ac_cv_file__dev_zero=no])])
fi
# Now we determine which one is our anonymous shmem preference.