Date: Thu, 27 Jun 2013 16:36:59 +0200 From: Tijl Coosemans <tijl@FreeBSD.org> To: olli hauer <ohauer@gmx.de> Cc: freebsd-apache@freebsd.org Subject: Re: Splitting up and simplifying devel/apr1 Message-ID: <51CC4E0B.7040101@FreeBSD.org> In-Reply-To: <51C742A4.1070709@FreeBSD.org> References: <51C1AFA7.9080700@FreeBSD.org> <51C58174.20209@gmx.de> <51C742A4.1070709@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2XBTTRKKVIQCQHQBBQBIU Content-Type: multipart/mixed; boundary="------------070506010007090505020704" This is a multi-part message in MIME format. --------------070506010007090505020704 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable On 2013-06-23 20:47, Tijl Coosemans wrote: > On 2013-06-22 12:50, olli hauer wrote: >>> In the discussion on src-committers about svnlite it was mentioned th= at >>> devel/subversion is too heavy to build, pulling in perl, python and >>> all the autotools. I've been going over its dependencies and it turns= >>> out these are all pulled in by devel/apr1, so I've been looking into >>> simplifying that port. >>> >>> It seems the port can easily be split up into two simple ports, one f= or >>> the APR library and one for the APR Utility library. There's no need >>> for autotools, libtool, python, etc. >>> >>> I've attached a patch that creates devel/apr and devel/apr-util. >>> Please take a look at them and let me know what you think. >>> Another patch can then remove devel/apr1 and update all ports that >>> depend on it, but before I spend more time on this, do you agree this= >> >> On upstream apr and apr-util are already merged but until now are >> delivered separate. >> >> In the past they had also sometimes update to apr2 snapshots where >> they delivered everything in one dist file. >> >> In case there is no planning on upstream to merge the two distfiles >> into one like the apr2 snapshots then I think we could spend some >> time and separate the ports. >> >> I will ask on the dev@apr.apache mailing list if there is a road map >> (I cannot find one on the apr public sites). >=20 > I've seen the mails on the apr mailing list. Since apr2 includes apr-ut= il > it's probably easier to keep apr1 and apr-util in one port too. Then > there's no need to update and rebuild dependent ports either. >=20 > I've attached a new patch for devel/apr1. It contains the following cha= nges: >=20 > - Move include <bsd.port.options.mk> down. > - Remove USE_AUTOTOOLS and USE_PYTHON_BUILD. > - Use pathfix to patch pkgconfig paths. (replaces a post-patch command)= > - Add CFLAGS, CPPFLAGS and LDFLAGS to CONFIGURE_ENV. They are set for > some options. > - Append include dirs to CPPFLAGS instead of CFLAGS. > - Remove files/patch-apr_hints.m4. Instead replace any evaluation of > $os_version with ${OSVERSION} directly in configure script. > - Remove patching of gen-build.py because we don't run it anymore. > - Remove patching of "void main" to "int main". According to the commit= log > it was added for Clang, but Clang no longer seems to complain about i= t. > - Patch -lpthread directly in the configure script. > - Remove the run-autotools target. Running of configure has been moved = to > the do-configure target. > - Replace "cd <dir>; <command>" with "(cd <dir> && <command>)" as > recommended by the make manpage in current. > - Add ${_MAKE_JOBS} in do-build. > - Rename the test target to regression-test because that's what pointyh= at > runs. > - Remove debug_autoconf target because we don't run autotools anymore. Any progress on this? I've attached a new patch with two additional changes: - Mark recursive targets with .MAKE to fix parallel builds with bmake. - Disable regression tests when PACKAGE_BUILDING is defined because the tests require networking which isn't available on redports (and pointyh= at as well probably). --------------070506010007090505020704 Content-Type: text/plain; charset=ISO-8859-15; name="apr1.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="apr1.patch" Index: devel/apr1/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- devel/apr1/Makefile (revision 321865) +++ devel/apr1/Makefile (working copy) @@ -29,18 +29,15 @@ NDBM_DESC=3D NDBM support SSL_DESC=3D OpenSSL crypto driver NSS_DESC=3D NSS crypto driver =20 -.include <bsd.port.options.mk> - APR_VERSION=3D 1.4.6 APU_VERSION=3D 1.4.1 =20 -USES=3D iconv -USE_AUTOTOOLS=3D automake autoconf libtool:env -USE_PYTHON_BUILD=3D -2.7 -USE_LDCONFIG=3D yes -GNU_CONFIGURE=3D yes +USES=3D iconv pathfix +USE_LDCONFIG=3D yes +GNU_CONFIGURE=3D yes =20 -CONFIGURE_ENV=3D CC=3D"${CC}" +CONFIGURE_ENV=3D CC=3D"${CC}" CFLAGS=3D"${CFLAGS}" CPPFLAGS=3D"${CPPFLAG= S}" \ + LDFLAGS=3D"${LDFLAGS}" =20 NO_WRKSUBDIR=3D yes APR_WRKDIR=3D ${WRKDIR}/apr-${APR_VERSION} @@ -55,6 +52,8 @@ APU_CONF_ARGS=3D --with-apr=3D${APR_WRKDIR}=20 --with-expat=3D${LOCALBASE} \ --with-iconv=3D${LOCALBASE} =20 +.include <bsd.port.options.mk> + ########## APR Options .if ${PORT_OPTIONS:MTHREADS} APR_CONF_ARGS+=3D --enable-threads @@ -131,7 +130,7 @@ PLIST_SUB+=3D MYSQL=3D"" USE_MYSQL=3D YES APU_CONF_ARGS+=3D --with-mysql=3D${LOCALBASE} CONFIGURE_ENV+=3D LIBS=3D"${LIBS}" -CFLAGS+=3D -I${LOCALBASE}/include -I${LOCALBASE}/include/mysql -DHAVE_MY= SQL_H +CPPFLAGS+=3D -I${LOCALBASE}/include -I${LOCALBASE}/include/mysql -DHAVE_= MYSQL_H LDFLAGS+=3D -L${LOCALBASE}/lib/mysql .else PLIST_SUB+=3D MYSQL=3D"@comment " @@ -168,7 +167,7 @@ APU_CONF_ARGS+=3D --with-crypto APU_EXTRAS=3D yes USE_OPENSSL=3D yes PLIST_SUB+=3D SSL=3D"" -CFLAGS+=3D -I${OPENSSLINC} +CPPFLAGS+=3D -I${OPENSSLINC} LDFLAGS+=3D -L${OPENSSLLIB} APU_CONF_ARGS+=3D --with-openssl=3D${OPENSSLBASE} .else @@ -182,7 +181,7 @@ APU_CONF_ARGS+=3D --without-openssl APU_EXTRAS=3D yes PLIST_SUB+=3D NSS=3D"" LIB_DEPENDS+=3D nss3:${PORTSDIR}/security/nss -CFLAGS+=3D -I${LOCALBASE}/include/nss +CPPFLAGS+=3D -I${LOCALBASE}/include/nss LDFLAGS+=3D -L${LOCALBASE}/lib/nss APU_CONF_ARGS+=3D --with-nss=3D${LOCALBASE} .else @@ -195,66 +194,35 @@ PLIST_SUB+=3D APU_EXTRAS=3D"" PLIST_SUB+=3D APU_EXTRAS=3D"@comment " .endif =20 -post-patch: .SILENT - ${REINPLACE_CMD} -e 's/OSVERSION/${OSVERSION}/g' \ - ${APR_WRKDIR}/build/apr_hints.m4 - ${FIND} ${APR_WRKDIR} ${APU_WRKDIR} -name "Makefile.in*" | ${XARGS} ${R= EINPLACE_CMD} -e \ - 's|[(]libdir[)]/pkgconfig|(prefix)/libdata/pkgconfig|g' - ${REINPLACE_CMD} -e '1 s/python/${PYTHON_VERSION}/' \ - ${APR_WRKDIR}/build/gen-build.py - ${REINPLACE_CMD} -e 's/void main/int main/' ${APR_WRKDIR}/build/apr_net= work.m4 +post-patch: + @${REINPLACE_CMD} -e 's/$$os_version/${OSVERSION}/g' \ + ${APR_WRKDIR}/configure + @${REINPLACE_CMD} -e '/recursive:/s/$$/ .MAKE/' \ + ${APR_WRKDIR}/build/apr_rules.mk.in # Fix pthread: Please do not remove, else apr-1-config returns wrong val= ues - ${REINPLACE_CMD} -e 's/-lpthread/-pthread/g' \ - ${APR_WRKDIR}/build/apr_threads.m4 ${APR_WRKDIR}/build/apr_hints.m4 \ - ${APU_WRKDIR}/build/apu-conf.m4 - -run-autotools:: - cd ${APR_WRKDIR} ; \ - ${SETENV} ${CONFIGURE_ENV} ${SH} ./buildconf - cd ${APU_WRKDIR} ; \ - ${RM} -fr xml/expat - cd ${APU_WRKDIR} ; \ - ${SETENV} ${CONFIGURE_ENV} ${SH} ./buildconf \ - --with-apr=3D${APR_WRKDIR} - ${REINPLACE_CMD} -e 's/ gsed//g' \ - ${APR_WRKDIR}/build/libtool.m4 \ + @${REINPLACE_CMD} -e 's/-lpthread/${PTHREAD_LIBS}/g' \ ${APR_WRKDIR}/configure - cd ${APR_WRKDIR}; \ - ${SETENV} ${CONFIGURE_ENV} ${SH} \ - ./configure ${CONFIGURE_ARGS} ${APR_CONF_ARGS} - cd ${APU_WRKDIR}; \ - ${SETENV} ${CONFIGURE_ENV} CFLAGS=3D"${CFLAGS}" ${SH} \ - ./configure ${CONFIGURE_ARGS} ${APU_CONF_ARGS} =20 do-configure: - ${DO_NADA} + @(cd ${APR_WRKDIR} && \ + ${SETENV} ${CONFIGURE_ENV} \ + ./configure ${CONFIGURE_ARGS} ${APR_CONF_ARGS}) + @(cd ${APU_WRKDIR} && \ + ${SETENV} ${CONFIGURE_ENV} \ + ./configure ${CONFIGURE_ARGS} ${APU_CONF_ARGS}) =20 do-build: - cd ${APR_WRKDIR}; ${SETENV} ${MAKE_ENV} ${MAKE} - cd ${APU_WRKDIR}; ${SETENV} ${MAKE_ENV} ${MAKE} + @(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS}) + @(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS}) =20 do-install: - cd ${APR_WRKDIR}; ${SETENV} ${MAKE_ENV} ${MAKE} ${INSTALL_TARGET} - cd ${APU_WRKDIR}; ${SETENV} ${MAKE_ENV} ${MAKE} ${INSTALL_TARGET} + @(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${INSTALL_TARGET}) + @(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} ${INSTALL_TARGET}) =20 -test: build - -@(cd ${APR_WRKDIR}; ${MAKE} test) - -@(cd ${APU_WRKDIR}; ${MAKE} test) - -#regression-test: test - -debug_autoconf: - @${ECHO} "LIBTOOL: ${LIBTOOL_VERSION}" - @${ECHO} "AUTOCONF: dev ${dev_acver} cur ${cur_acver} use ${use_acver}"= - @${ECHO} "AUTOMAKE: dev ${dev_amver} cur ${cur_amver} use ${use_amver}"= - @${ECHO} "AUTOCONF_DIR: ${AUTOCONF_DIR}" - @${ECHO} "BUILD_DEPENDS: ${BUILD_DEPENDS}" - @${ECHO} "ACLOCAL_DIR: ${ACLOCAL_DIR}" - @${ECHO} "LIBTOOLFILES: ${LIBTOOLFILES}" - @${ECHO} "LIBTOOL_SHAREDIR: ${LIBTOOL_SHAREDIR}" - @${ECHO} "LIBTOOL_LIBEXECDIR: ${LIBTOOL_LIBEXECDIR}" - @${ECHO} "LIBTOOL_M4: ${LIBTOOL_M4}" - @${ECHO} "${SETENV} ${CONFIGURE_ENV} ${SH} ./configure ${CONFIGURE_ARGS= } ${APR_CONF_ARGS}" - @${ECHO} "${SETENV} ${CONFIGURE_ENV} CFLAGS=3D"${CFLAGS}" ${SH} ./confi= gure ${CONFIGURE_ARGS} ${APR_UTIL_CONF_ARGS}" +.if !defined(PACKAGE_BUILDING) +regression-test: build + @(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} test) + @(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE} test) +.endif =20 .include <bsd.port.mk> Index: devel/apr1/files/patch-apr_hints.m4 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- devel/apr1/files/patch-apr_hints.m4 (revision 321865) +++ devel/apr1/files/patch-apr_hints.m4 (working copy) @@ -1,15 +0,0 @@ ---- apr-1.4.6/build/apr_hints.m4.orig Wed Oct 27 11:12:28 2004 -+++ apr-1.4.6/build/apr_hints.m4 Wed Oct 27 11:25:32 2004 -@@ -159,11 +159,7 @@ - ;; - *-freebsd*) - APR_SETIFNULL(apr_lock_method, [USE_FLOCK_SERIALIZE]) -- if test -x /sbin/sysctl; then -- os_version=3D`/sbin/sysctl -n kern.osreldate` -- else -- os_version=3D000000 -- fi -+ os_version=3D"OSVERSION" - # 502102 is when libc_r switched to libpthread (aka libkse). - if test $os_version -ge "502102"; then - apr_cv_pthreads_cflags=3D"none" --------------070506010007090505020704-- ------enig2XBTTRKKVIQCQHQBBQBIU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iF4EAREIAAYFAlHMThEACgkQfoCS2CCgtitrrAD/T4Z6jNWjT1vQugpG8TfzhGOm AQ6gVInuE2LK4DRruHwA/A6I511vLlpyGwPMnQuZvsfF5/iMdsxfstz0xhCNqW2K =AcKi -----END PGP SIGNATURE----- ------enig2XBTTRKKVIQCQHQBBQBIU--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51CC4E0B.7040101>