apache: break-out CONFIGURE_ARGS, add layout
authorSebastian Kemper <sebastian_ml@gmx.net>
Wed, 1 Jan 2020 22:26:02 +0000 (23:26 +0100)
committerSebastian Kemper <sebastian_ml@gmx.net>
Wed, 1 Jan 2020 22:45:00 +0000 (23:45 +0100)
This gets rid of flags. For instance $(FPIC) shouldn't be forced onto
applications (see [1]).

And CONFIGURE_ARGS + CONFIGURE_VARS are broken out of Build/Configure.
This way more arguments can be added easily in the future.

The target is changed from apache to apache2 (which is used by upstream
by default). the CONFIGURE_ARGS are changed where need to enable
modules.

This also renames one patch that fixes scoreboard location (the name
004-pidfile_fix.patch didn't describe what it's doing).

Now with the OpenWrt layout in place 003-logdir_fix.patch can be
removed.

[1] https://wiki.gentoo.org/wiki/Project:Hardened/Position_Independent_Code_internals

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
net/apache/Makefile
net/apache/files/openwrt.layout [new file with mode: 0644]
net/apache/patches/003-logdir_fix.patch [deleted file]
net/apache/patches/004-fix-scoreboard-location.patch [new file with mode: 0644]
net/apache/patches/004-pidfile_fix.patch [deleted file]

index 234ffca299919c8f44eba6c1f541a6260d782660..0d7d35cac8a1132557431a34bf927b827bcd75ab 100644 (file)
@@ -83,20 +83,20 @@ $(call Package/apache/Default/description)
 endef
 
 define Package/apache/conffiles
-/etc/apache/httpd.conf
-/etc/apache/extra/httpd-autoindex.conf
-/etc/apache/extra/httpd-dav.conf
-/etc/apache/extra/httpd-default.conf
-/etc/apache/extra/httpd-info.conf
-/etc/apache/extra/httpd-languages.conf
-/etc/apache/extra/httpd-manual.conf
-/etc/apache/extra/httpd-mpm.conf
-/etc/apache/extra/httpd-multilang-errordoc.conf
-/etc/apache/extra/httpd-ssl.conf
-/etc/apache/extra/httpd-userdir.conf
-/etc/apache/extra/httpd-vhosts.conf
-/etc/apache/magic
-/etc/apache/mime.types
+/etc/apache2/httpd.conf
+/etc/apache2/extra/httpd-autoindex.conf
+/etc/apache2/extra/httpd-dav.conf
+/etc/apache2/extra/httpd-default.conf
+/etc/apache2/extra/httpd-info.conf
+/etc/apache2/extra/httpd-languages.conf
+/etc/apache2/extra/httpd-manual.conf
+/etc/apache2/extra/httpd-mpm.conf
+/etc/apache2/extra/httpd-multilang-errordoc.conf
+/etc/apache2/extra/httpd-ssl.conf
+/etc/apache2/extra/httpd-userdir.conf
+/etc/apache2/extra/httpd-vhosts.conf
+/etc/apache2/magic
+/etc/apache2/mime.types
 endef
 
 define Package/apache-icons
@@ -111,35 +111,40 @@ $(call Package/apache/Default/description)
  This package contains the icons from Apache.
 endef
 
-TARGET_CFLAGS += $(FPIC) -Wno-error
-TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
-TARGET_LDFLAGS += -lpthread
-
-define Build/Configure
-       $(call Build/Configure/Default, \
-               --with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
-               --with-apr-util="$(STAGING_DIR)/usr/bin/apu-1-config" \
-               --with-pcre="$(STAGING_DIR)/usr/bin/pcre-config" \
-               $(ADDITIONAL_MODULES) \
-               --enable-http \
-               --with-crypto \
-               --with-sqlit3="$(STAGING_DIR)/usr" \
-               --with-openssl="$(STAGING_DIR)/usr" \
-               --enable-ssl \
-               --enable-proxy \
-               --disable-md \
-               --disable-disk-cache \
-               --enable-maintainer-mode \
-               --with-mpm=prefork \
-               --with-mpm=worker \
-               --enable-mime-magic \
-               --without-suexec-bin \
-               --sysconfdir=/etc/apache \
-               ap_cv_void_ptr_lt_long=no \
-               logfiledir="/var/log" \
-               runtimedir="/var/run" \
-               EXTRA_LIBS="-ldl -lpthread -lcrypto -lrt -lssl" \
-       )
+CONFIGURE_ARGS+= \
+       --datadir=/usr/share/apache2 \
+       --disable-authnz-ldap \
+       --disable-imagemap \
+       --disable-ldap \
+       --disable-luajit \
+       --enable-authn-alias \
+       --enable-authn-anon \
+       --enable-cache \
+       --enable-cgi \
+       --enable-cgid \
+       --enable-dbd \
+       --enable-disk-cache \
+       --enable-exception-hook \
+       --enable-file-cache \
+       --enable-layout=OpenWrt \
+       --enable-mem-cache \
+       --enable-mods-shared=all \
+       --enable-mpms-shared=all \
+       --enable-so \
+       --libexecdir=/usr/lib/apache2 \
+       --sysconfdir=/etc/apache2 \
+       --with-apr-util="$(STAGING_DIR)/usr/bin/apu-1-config" \
+       --with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
+       --with-mpm=prefork \
+       --with-pcre="$(STAGING_DIR)/usr/bin/pcre-config" \
+       --with-ssl
+
+CONFIGURE_VARS += \
+       ap_cv_void_ptr_lt_long=no
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(INSTALL_DATA) ./files/openwrt.layout $(PKG_BUILD_DIR)/config.layout
 endef
 
 define Build/InstallDev
diff --git a/net/apache/files/openwrt.layout b/net/apache/files/openwrt.layout
new file mode 100644 (file)
index 0000000..844c4f6
--- /dev/null
@@ -0,0 +1,24 @@
+
+<Layout OpenWrt>
+    prefix:          /usr
+    exec_prefix:     ${prefix}
+    bindir:          ${prefix}/bin
+    sbindir:         ${prefix}/sbin
+    libdir:          ${prefix}/lib
+    libexecdir:      ${prefix}/lib+
+    mandir:          ${prefix}/share/man
+    sysconfdir:      /etc+
+    datadir:         ${prefix}/share+
+    installbuilddir: ${datadir}/build
+    errordir:        ${datadir}/error
+    iconsdir:        ${datadir}/icons
+    htdocsdir:       ${datadir}/htdocs
+    manualdir:       /usr/share/doc/apache2/manual
+    cgidir:          ${datadir}/cgi-bin
+    includedir:      ${prefix}/include+
+    localstatedir:   /var
+    runtimedir:      ${localstatedir}/run+
+    logfiledir:      ${localstatedir}/log+
+    proxycachedir:   ${localstatedir}/cache/apache2
+</Layout>
+
diff --git a/net/apache/patches/003-logdir_fix.patch b/net/apache/patches/003-logdir_fix.patch
deleted file mode 100644 (file)
index 19fcbf7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-Index: httpd-2.4.25/build/mkconfNW.awk
-===================================================================
---- httpd-2.4.25.orig/build/mkconfNW.awk
-+++ httpd-2.4.25/build/mkconfNW.awk
-@@ -23,7 +23,7 @@ BEGIN {
-     A["sysconfdir"] = "conf"
-     A["iconsdir"] = "icons"
-     A["manualdir"] = "manual"
--    A["runtimedir"] = "logs"
-+    A["runtimedir"] = "log"
-     A["errordir"] = "error"
-     A["proxycachedir"] = "proxy"
-Index: httpd-2.4.25/config.layout
-===================================================================
---- httpd-2.4.25.orig/config.layout
-+++ httpd-2.4.25/config.layout
-@@ -28,8 +28,8 @@
-     cgidir:        ${datadir}/cgi-bin
-     includedir:    ${prefix}/include
-     localstatedir: ${prefix}
--    runtimedir:    ${localstatedir}/logs
--    logfiledir:    ${localstatedir}/logs
-+    runtimedir:    ${localstatedir}/log
-+    logfiledir:    ${localstatedir}/log
-     proxycachedir: ${localstatedir}/proxy
- </Layout>
-@@ -174,7 +174,7 @@
-     includedir:    ${prefix}/include
-     localstatedir: /var${prefix}
-     runtimedir:    ${localstatedir}/run
--    logfiledir:    ${localstatedir}/logs
-+    logfiledir:    ${localstatedir}/log
-     proxycachedir: ${localstatedir}/proxy
- </Layout>
diff --git a/net/apache/patches/004-fix-scoreboard-location.patch b/net/apache/patches/004-fix-scoreboard-location.patch
new file mode 100644 (file)
index 0000000..09f2ff7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/include/scoreboard.h
++++ b/include/scoreboard.h
+@@ -40,7 +40,7 @@ extern "C" {
+ /* Scoreboard file, if there is one */
+ #ifndef DEFAULT_SCOREBOARD
+-#define DEFAULT_SCOREBOARD "logs/apache_runtime_status"
++#define DEFAULT_SCOREBOARD "log/apache2/apache_runtime_status"
+ #endif
+ /* Scoreboard info on a process is, for now, kept very brief ---
diff --git a/net/apache/patches/004-pidfile_fix.patch b/net/apache/patches/004-pidfile_fix.patch
deleted file mode 100644 (file)
index 647f821..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: httpd-2.4.25/include/scoreboard.h
-===================================================================
---- httpd-2.4.25.orig/include/scoreboard.h
-+++ httpd-2.4.25/include/scoreboard.h
-@@ -40,7 +40,7 @@ extern "C" {
- /* Scoreboard file, if there is one */
- #ifndef DEFAULT_SCOREBOARD
--#define DEFAULT_SCOREBOARD "logs/apache_runtime_status"
-+#define DEFAULT_SCOREBOARD "log/apache_runtime_status"
- #endif
- /* Scoreboard info on a process is, for now, kept very brief ---