- update apr to 1.5.1

- use OPTIONS_SUB instead PLIST_SUB
- remove back ported patch
- use POSIX instead SysV SHM
- remove LDFLAGS from CONFIGURE_ENV (unbreak auto. testing)

Changes for APR 1.5.1
  *) apr_os_proc_mutex_get() on Unix:  Avoid segfault for cross-
     process pthread mutexes.  [Yann Ylavic <ylavic.dev gmail.com>]

  *) When using shmget-based shared memory, the ID used for ftok is
     now an APR hash of the filename instead of the constant '1'.
     We do this to help avoid collisions. PR 53996 [Jim Jagielski]

  *) apr_socket_atreadeof(): Fix breakage on OS X. [Jim Jagielski]

  *) Fix POSIX shared memory (shm_open) use for named shared memory.
     Includes adding '--enable-posix-shm' to force POSIX shm if
     available, and OS X compatibility. PR 55928.
     [Jozef Hatala <jh-asf skrt org>, Jim Jagielski]

  *) Fix race condition when calling apr_dir_make_recursive from
     multiple threads on Windows.
     [Bert Huijben]

  *) Fix apr_escape.c compilation errors on EBCDIC platforms.
     [Eric Covener]

  *) FreeBSD 10: Correct a regression in 1.5.0 which affected non-
     blocking sockets in some applications, including httpd.  [Jeff
     Trawick]

  *) apr_skiplist: Add compatibility with C++ applications.
     [Jeff Trawick]

  *) Correct a regression in 1.5.0 which affected out-of-tree
     builds on Unix.  [Rainer Jung]

  *) Improve platform detection for bundled expat by updating
     config.guess and config.sub. [Rainer Jung]

with hat apache@
This commit is contained in:
Olli Hauer 2014-04-21 17:43:45 +00:00
parent d89fbee9e3
commit d94172244d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=351698
5 changed files with 16 additions and 81 deletions

View file

@ -13,7 +13,7 @@ COMMENT= Apache Portability Library
LIB_DEPENDS= libexpat.so:${PORTSDIR}/textproc/expat2
OPTIONS_SUB= yes
OPTIONS_GROUP= APR APU
OPTIONS_GROUP_APR= THREADS IPV6 DEVRANDOM
OPTIONS_GROUP_APU= BDB GDBM LDAP MYSQL NDBM PGSQL SQLITE FREETDS
@ -26,7 +26,7 @@ NDBM_DESC= NDBM support
SSL_DESC= OpenSSL crypto driver
NSS_DESC= NSS crypto driver
APR_VERSION= 1.5.0
APR_VERSION= 1.5.1
APU_VERSION= 1.5.3
USES= iconv pathfix
@ -41,7 +41,8 @@ PLIST_SUB+= SHLIB_APR_MAJOR="${SHLIB_APR_MAJOR}" SHLIB_APU_MAJOR="${SHLIB_APU_MA
SHLIB_APR_MAJOR= 5
SHLIB_APU_MAJOR= 5
APR_CONF_ARGS= --with-installbuilddir=${DATADIR}/build-1
APR_CONF_ARGS= --with-installbuilddir=${DATADIR}/build-1 \
--enable-posix-shm
APU_CONF_ARGS= --with-apr=${APR_WRKDIR} \
--with-expat=${LOCALBASE} \
--with-iconv=${ICONV_PREFIX}
@ -69,87 +70,71 @@ APR_CONF_ARGS+= --without-devrandom
######### APR-Util Options
.if ${PORT_OPTIONS:MGDBM}
PLIST_SUB+= GDBM=""
APU_EXTRAS= yes
LIB_DEPENDS+= libgdbm.so:${PORTSDIR}/databases/gdbm
APU_CONF_ARGS+= --with-gdbm=${LOCALBASE}
.else
PLIST_SUB+= GDBM="@comment "
APU_CONF_ARGS+= --without-gdbm
.endif
.if ${PORT_OPTIONS:MBDB}
APU_EXTRAS= yes
PLIST_SUB+= BDB=""
USE_BDB= 48+
APU_CONF_ARGS+= --with-berkeley-db=${BDB_INCLUDE_DIR}:${BDB_LIB_DIR}
.else
PLIST_SUB+= BDB="@comment "
APU_CONF_ARGS+= --without-berkeley-db
.endif
.if ${PORT_OPTIONS:MNDBM}
APU_EXTRAS= yes
PLIST_SUB+= NDBM=""
APU_CONF_ARGS+= --with-ndbm=/usr
.else
PLIST_SUB+= NDBM="@comment "
APU_CONF_ARGS+= --without-ndbm
.endif
.if ${PORT_OPTIONS:MLDAP}
APU_EXTRAS= yes
PLIST_SUB+= LDAP=""
USE_OPENLDAP= yes
APU_CONF_ARGS+= --with-ldap-include=${LOCALBASE}/include \
--with-ldap-lib=${LOCALBASE}/lib --with-ldap=ldap
.else
PLIST_SUB+= LDAP="@comment "
APU_CONF_ARGS+= --without-ldap
.endif
.if ${PORT_OPTIONS:MFREETDS}
APU_EXTRAS= yes
PLIST_SUB+= FREETDS=""
APU_CONF_ARGS+= --with-freetds=${LOCALBASE}
LIB_DEPENDS+= libsybdb.so:${PORTSDIR}/databases/freetds
.else
PLIST_SUB+= FREETDS="@comment "
APU_CONF_ARGS+= --without-freetds
.endif
.if ${PORT_OPTIONS:MMYSQL}
APU_EXTRAS= yes
PLIST_SUB+= MYSQL=""
USE_MYSQL= YES
USE_MYSQL= yes
APU_CONF_ARGS+= --with-mysql=${LOCALBASE}
CONFIGURE_ENV+= LIBS="${LIBS}"
CPPFLAGS+= -I${LOCALBASE}/include -I${LOCALBASE}/include/mysql -DHAVE_MYSQL_H
LDFLAGS+= -L${LOCALBASE}/lib/mysql
.else
PLIST_SUB+= MYSQL="@comment "
APU_CONF_ARGS+= --without-mysql
.endif
.if ${PORT_OPTIONS:MPGSQL}
APU_EXTRAS= yes
PLIST_SUB+= PGSQL=""
USE_PGSQL= YES
USE_PGSQL= yes
APU_CONF_ARGS+= --with-pgsql=${LOCALBASE}
CONFIGURE_ENV+= ac_cv_path_PGSQL_CONFIG=""
.else
PLIST_SUB+= PGSQL="@comment "
APU_CONF_ARGS+= --without-pgsql
.endif
.if ${PORT_OPTIONS:MSQLITE}
APU_EXTRAS= yes
PLIST_SUB+= SQLITE3=""
USE_SQLITE= YES
USE_SQLITE= yes
APU_CONF_ARGS+= --with-sqlite3=${LOCALBASE}
.else
APU_CONF_ARGS+= --without-sqlite3
PLIST_SUB+= SQLITE3="@comment "
.endif
# crypto (apache24)
@ -160,28 +145,22 @@ APU_CONF_ARGS+= --with-crypto
.if ${PORT_OPTIONS:MSSL}
APU_EXTRAS= yes
USE_OPENSSL= yes
PLIST_SUB+= SSL=""
CPPFLAGS+= -I${OPENSSLINC}
LDFLAGS+= -L${OPENSSLLIB}
APU_CONF_ARGS+= --with-openssl=${OPENSSLBASE}
.else
PLIST_SUB+= SSL="@comment "
APU_CONF_ARGS+= --without-openssl
.endif
.if ${PORT_OPTIONS:MNSS}
APU_EXTRAS= yes
PLIST_SUB+= NSS=""
LIB_DEPENDS+= libnss3.so:${PORTSDIR}/security/nss
CPPFLAGS+= -I${LOCALBASE}/include/nss
LDFLAGS+= -L${LOCALBASE}/lib/nss
APU_CONF_ARGS+= --with-nss=${LOCALBASE}
.else
PLIST_SUB+= NSS="@comment "
.endif
CONFIGURE_ENV+= CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" \
LDFLAGS="${LDFLAGS}"
CONFIGURE_ENV+= CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}"
.if defined(APU_EXTRAS)
PLIST_SUB+= APU_EXTRAS=""

View file

@ -1,4 +1,4 @@
SHA256 (apr-1.5.0.tar.gz) = 9879f02054cb22e99f605f6fdbf47f4c028af4cd4f351cf64186a7ee447f35d7
SIZE (apr-1.5.0.tar.gz) = 1016391
SHA256 (apr-1.5.1.tar.gz) = 94b1c9d9835cc9e902838b95d62ecc9a39b698f23e3e706812ec65a78ba41af7
SIZE (apr-1.5.1.tar.gz) = 1020833
SHA256 (apr-util-1.5.3.tar.gz) = 76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743
SIZE (apr-util-1.5.3.tar.gz) = 874462

View file

@ -1,44 +0,0 @@
Fix the inheritance of the non-blocking option across apr_socket_accept()
on FreeBSD 10 which was introduced with APR 1.5.0 through an unlikely
mechanism:
* FreeBSD 10 introduced accept4(). APR uses accept4() where it can find it.
accept4() on Linux and FreeBSD 10 both have a SOCK_NONBLOCK flag, but on
FreeBSD 10 the SOCK_NONBLOCK is the sole determiner of whether or not the
connected socket is non-blocking.
* clang is normally used on FreeBSD 10.
* APR's configure-time check for inherited O_NONBLOCK didn't work with clang,
so initially the lack of inheritance across accept4() wasn't a problem.
* APR 1.5.0 allowed the configure-time check to work with clang, exposing
the bad expectation about accept4() matching the accept() behavior.
With FreeBSD accept4() (avail in 10+), O_NONBLOCK is not inherited
(unlike Linux). Mimic the accept() behavior here in a way that
may help other platforms as well.
http://svn.apache.org/viewvc?view=revision&revision=1551672
===================================================================================
--- ./apr-1.5.0/network_io/unix/sockets.c.orig 2011-03-23 19:50:21.000000000 +0100
+++ ./apr-1.5.0/network_io/unix/sockets.c 2014-03-22 18:52:57.000000000 +0100
@@ -207,7 +207,20 @@
sa.salen = sizeof(sa.sa);
#ifdef HAVE_ACCEPT4
- s = accept4(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen, SOCK_CLOEXEC);
+ {
+ int flags = SOCK_CLOEXEC;
+
+#if defined(SOCK_NONBLOCK) && APR_O_NONBLOCK_INHERITED
+ /* With FreeBSD accept4() (avail in 10+), O_NONBLOCK is not inherited
+ * (unlike Linux). Mimic the accept() behavior here in a way that
+ * may help other platforms.
+ */
+ if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) {
+ flags |= SOCK_NONBLOCK;
+ }
+#endif
+ s = accept4(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen, flags);
+ }
#else
s = accept(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen);
#endif

View file

@ -1,5 +1,5 @@
--- ./apr-1.5.0/configure.orig 2014-03-22 18:52:57.000000000 +0100
+++ ./apr-1.5.0/configure 2014-03-22 18:52:57.000000000 +0100
--- ./apr-1.5.1/configure.orig 2014-03-22 18:52:57.000000000 +0100
+++ ./apr-1.5.1/configure 2014-03-22 18:52:57.000000000 +0100
@@ -6622,11 +6622,7 @@
apr_lock_method="USE_FLOCK_SERIALIZE"
fi

View file

@ -91,10 +91,10 @@ include/apr-1/apu_want.h
%%PGSQL%%lib/apr-util-1/apr_dbd_pgsql.a
%%PGSQL%%lib/apr-util-1/apr_dbd_pgsql.la
%%PGSQL%%lib/apr-util-1/apr_dbd_pgsql.so
%%SQLITE3%%lib/apr-util-1/apr_dbd_sqlite3-1.so
%%SQLITE3%%lib/apr-util-1/apr_dbd_sqlite3.a
%%SQLITE3%%lib/apr-util-1/apr_dbd_sqlite3.la
%%SQLITE3%%lib/apr-util-1/apr_dbd_sqlite3.so
%%SQLITE%%lib/apr-util-1/apr_dbd_sqlite3-1.so
%%SQLITE%%lib/apr-util-1/apr_dbd_sqlite3.a
%%SQLITE%%lib/apr-util-1/apr_dbd_sqlite3.la
%%SQLITE%%lib/apr-util-1/apr_dbd_sqlite3.so
%%BDB%%lib/apr-util-1/apr_dbm_db-1.so
%%BDB%%lib/apr-util-1/apr_dbm_db.a
%%BDB%%lib/apr-util-1/apr_dbm_db.la