Hi,
a few questions regarding this patch. Please see below.
Also: Why is nobody else reviewing this and testing this? I know that there is many people out there who want to update Apache and have tried, but this is just not good enough to want something. We also need people who work on it to make it happen.
So thank you Wolfgang for working on this. But I want to see more people reviewing this!
On Tue, 2017-08-15 at 22:43 +0200, Wolfgang Apolinarski wrote:
- APR 1.6.2 is a requirement for building apache httpd 2.4
- APR-Util 1.6.0 is a requirement for building apache httpd 2.4
config/rootfiles/common/apache2 | 8 ++-- config/rootfiles/common/apr | 57 ++++++++++++++++++++++++++++ config/rootfiles/common/aprutil | 52 +++++++++++++++++++++++++ lfs/apr | 84 +++++++++++++++++++++++++++++++++++++++++ lfs/aprutil | 84 +++++++++++++++++++++++++++++++++++++++++ make.sh | 2 + 6 files changed, 283 insertions(+), 4 deletions(-) create mode 100644 config/rootfiles/common/apr create mode 100644 config/rootfiles/common/aprutil create mode 100644 lfs/apr create mode 100644 lfs/aprutil
diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 7e33a155e..360f5ae61 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1342,22 +1342,22 @@ usr/lib/apache/mod_usertrack.so usr/lib/apache/mod_version.so usr/lib/apache/mod_vhost_alias.so #usr/lib/apr-util-1 -usr/lib/apr-util-1/apr_dbd_sqlite3-1.so +#usr/lib/apr-util-1/apr_dbd_sqlite3-1.so #usr/lib/apr-util-1/apr_dbd_sqlite3.a #usr/lib/apr-util-1/apr_dbd_sqlite3.la -usr/lib/apr-util-1/apr_dbd_sqlite3.so +#usr/lib/apr-util-1/apr_dbd_sqlite3.so #usr/lib/apr.exp #usr/lib/aprutil.exp #usr/lib/libapr-1.a #usr/lib/libapr-1.la usr/lib/libapr-1.so usr/lib/libapr-1.so.0 -usr/lib/libapr-1.so.0.5.1 +#usr/lib/libapr-1.so.0.5.1 #usr/lib/libaprutil-1.a #usr/lib/libaprutil-1.la usr/lib/libaprutil-1.so usr/lib/libaprutil-1.so.0 -usr/lib/libaprutil-1.so.0.5.3 +#usr/lib/libaprutil-1.so.0.5.3 #usr/lib/pkgconfig/apr-1.pc #usr/lib/pkgconfig/apr-util-1.pc #usr/sbin/ab
You don't need to package the .so files. They are just needed for linking which we never do on the firewall system.
Just ship the .so.X and .so.X.Y files.
Here it seems taht you are not shipping libaprutil at all. Can we not disable it in the build since it is being compiled in an extra package?
diff --git a/config/rootfiles/common/apr b/config/rootfiles/common/apr new file mode 100644 index 000000000..abc825623 --- /dev/null +++ b/config/rootfiles/common/apr @@ -0,0 +1,57 @@ +usr/bin/apr-1-config +#usr/include/apr-1 +#usr/include/apr-1/apr.h +#usr/include/apr-1/apr_allocator.h +#usr/include/apr-1/apr_atomic.h +#usr/include/apr-1/apr_cstr.h +#usr/include/apr-1/apr_dso.h +#usr/include/apr-1/apr_env.h +#usr/include/apr-1/apr_errno.h +#usr/include/apr-1/apr_escape.h +#usr/include/apr-1/apr_file_info.h +#usr/include/apr-1/apr_file_io.h +#usr/include/apr-1/apr_fnmatch.h +#usr/include/apr-1/apr_general.h +#usr/include/apr-1/apr_getopt.h +#usr/include/apr-1/apr_global_mutex.h +#usr/include/apr-1/apr_hash.h +#usr/include/apr-1/apr_inherit.h +#usr/include/apr-1/apr_lib.h +#usr/include/apr-1/apr_mmap.h +#usr/include/apr-1/apr_network_io.h +#usr/include/apr-1/apr_perms_set.h +#usr/include/apr-1/apr_poll.h +#usr/include/apr-1/apr_pools.h +#usr/include/apr-1/apr_portable.h +#usr/include/apr-1/apr_proc_mutex.h +#usr/include/apr-1/apr_random.h +#usr/include/apr-1/apr_ring.h +#usr/include/apr-1/apr_shm.h +#usr/include/apr-1/apr_signal.h +#usr/include/apr-1/apr_skiplist.h +#usr/include/apr-1/apr_strings.h +#usr/include/apr-1/apr_support.h +#usr/include/apr-1/apr_tables.h +#usr/include/apr-1/apr_thread_cond.h +#usr/include/apr-1/apr_thread_mutex.h +#usr/include/apr-1/apr_thread_proc.h +#usr/include/apr-1/apr_thread_rwlock.h +#usr/include/apr-1/apr_time.h +#usr/include/apr-1/apr_user.h +#usr/include/apr-1/apr_version.h +#usr/include/apr-1/apr_want.h +usr/lib/libapr-1.so.0.6.2 +usr/lib/apr.exp +usr/lib/libapr-1.la +usr/lib/libapr-1.so +usr/lib/libapr-1.so.0 +#usr/lib/pkgconfig/apr-1.pc +#usr/share/apr-1 +#usr/share/apr-1/build +#usr/share/apr-1/build/apr_common.m4 +#usr/share/apr-1/build/apr_rules.mk +#usr/share/apr-1/build/find_apr.m4 +#usr/share/apr-1/build/libtool +#usr/share/apr-1/build/make_exports.awk +#usr/share/apr-1/build/make_var_export.awk +#usr/share/apr-1/build/mkdir.sh
Same as above. The static library .a isn't needed on the system either.
Also the alphabetical order of the rootfile is messed up. The build system should complain about that.
diff --git a/config/rootfiles/common/aprutil b/config/rootfiles/common/aprutil new file mode 100644 index 000000000..7b0bbb8d7 --- /dev/null +++ b/config/rootfiles/common/aprutil @@ -0,0 +1,52 @@ +usr/bin/apu-1-config +#usr/include/apr-1/apr_anylock.h +#usr/include/apr-1/apr_base64.h +#usr/include/apr-1/apr_buckets.h +#usr/include/apr-1/apr_crypto.h +#usr/include/apr-1/apr_date.h +#usr/include/apr-1/apr_dbd.h +#usr/include/apr-1/apr_dbm.h +#usr/include/apr-1/apr_hooks.h +#usr/include/apr-1/apr_ldap.h +#usr/include/apr-1/apr_ldap_init.h +#usr/include/apr-1/apr_ldap_option.h +#usr/include/apr-1/apr_ldap_rebind.h +#usr/include/apr-1/apr_ldap_url.h +#usr/include/apr-1/apr_md4.h +#usr/include/apr-1/apr_md5.h +#usr/include/apr-1/apr_memcache.h +#usr/include/apr-1/apr_optional.h +#usr/include/apr-1/apr_optional_hooks.h +#usr/include/apr-1/apr_queue.h +#usr/include/apr-1/apr_redis.h +#usr/include/apr-1/apr_reslist.h +#usr/include/apr-1/apr_rmm.h +#usr/include/apr-1/apr_sdbm.h +#usr/include/apr-1/apr_sha1.h +#usr/include/apr-1/apr_siphash.h +#usr/include/apr-1/apr_strmatch.h +#usr/include/apr-1/apr_thread_pool.h +#usr/include/apr-1/apr_uri.h +#usr/include/apr-1/apr_uuid.h +#usr/include/apr-1/apr_xlate.h +#usr/include/apr-1/apr_xml.h +#usr/include/apr-1/apu.h +#usr/include/apr-1/apu_errno.h +#usr/include/apr-1/apu_version.h +#usr/include/apr-1/apu_want.h +#usr/include/apr-1/expat.h +usr/lib/libaprutil-1.la +usr/lib/libaprutil-1.so +usr/lib/libaprutil-1.so.0 +usr/lib/libaprutil-1.so.0.6.0 +#usr/lib/libexpat.a +#usr/lib/libexpat.la +#usr/lib/libexpat.so +#usr/lib/libexpat.so.0 +#usr/lib/libexpat.so.0.5.0 +#usr/lib/pkgconfig/apr-util-1.pc +usr/lib/apr-util-1 +usr/lib/apr-util-1/apr_crypto_openssl-1.so +usr/lib/apr-util-1/apr_crypto_openssl.la +usr/lib/apr-util-1/apr_crypto_openssl.so +usr/lib/aprutil.exp
The package has a bundled version of libexpat. We have a package for that. Please disable this here. aprutil is compiled after expat, but it does not seem to find it or it is not happy with the version.
diff --git a/lfs/apr b/lfs/apr new file mode 100644 index 000000000..24ab1d79e --- /dev/null +++ b/lfs/apr @@ -0,0 +1,84 @@ +#################################################################### ########### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses /. # +# # +#################################################################### ###########
+#################################################################### ########### +# Definitions +#################################################################### ###########
+include Config
+VER = 1.6.2
+THISAPP = apr-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = http://archive.apache.org/dist/apr +DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+#################################################################### ########### +# Top-level Rules +#################################################################### ###########
+objects = $(DL_FILE)
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+$(DL_FILE)_MD5 = e81a851967c79b5ce9bfbc909e4bf735
+install : $(TARGET)
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+md5 : $(subst %,%_MD5,$(objects))
+#################################################################### ########### +# Downloading, checking, md5sum +#################################################################### ###########
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
+$(subst %,%_MD5,$(objects)) :
- @$(MD5)
+#################################################################### ########### +# Installation Details +#################################################################### ###########
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf
$(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && sed -i "/seems to be moved/s/^/#/"
build/ltmain.sh
What is this supposed to do? Please add a comment.
- cd $(DIR_APP) && ./configure --prefix=/usr \
--disable-static --with-
installbuilddir=/usr/share/apr-1/build
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
diff --git a/lfs/aprutil b/lfs/aprutil new file mode 100644 index 000000000..cf8f4a8a9 --- /dev/null +++ b/lfs/aprutil @@ -0,0 +1,84 @@ +#################################################################### ########### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2014 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses /. # +# # +#################################################################### ###########
+#################################################################### ########### +# Definitions +#################################################################### ###########
+include Config
+VER = 1.6.0
+THISAPP = apr-util-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = http://archive.apache.org/dist/apr +DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+DEPS = "apr"
+#################################################################### ########### +# Top-level Rules +#################################################################### ###########
+objects = $(DL_FILE)
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+$(DL_FILE)_MD5 = 069a9a980776acab05212c5f37ef8368
+install : $(TARGET)
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+md5 : $(subst %,%_MD5,$(objects))
+#################################################################### ########### +# Downloading, checking, md5sum +#################################################################### ###########
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
+$(subst %,%_MD5,$(objects)) :
- @$(MD5)
+#################################################################### ########### +# Installation Details +#################################################################### ###########
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf
$(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && ./configure --prefix=/usr \
--with-apr=/usr --with-gdbm=/usr --
with-openssl=/usr --with-crypto
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
diff --git a/make.sh b/make.sh index 663f23fbb..dd57c914e 100755 --- a/make.sh +++ b/make.sh @@ -358,6 +358,7 @@ buildbase() { lfsmake2 bzip2 lfsmake2 pcre lfsmake2 pcre-compat
- lfsmake2 apr lfsmake2 bash lfsmake2 diffutils lfsmake2 e2fsprogs
Does apr need to be built this early in the processs? Why can we not have it in the IPFire stage? Is anything suddenly depending on it?
@@ -497,6 +498,7 @@ buildipfire() { lfsmake2 libevent2 lfsmake2 libevent2-compat lfsmake2 expat
- lfsmake2 aprutil lfsmake2 unbound lfsmake2 gnutls lfsmake2 bind
Best, -Michael