diff options
Diffstat (limited to 'meta-webserver/recipes-httpd')
53 files changed, 1155 insertions, 1076 deletions
diff --git a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb index 0beb3ed04a..4dbf595c19 100644 --- a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb +++ b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb @@ -1,33 +1,32 @@ SUMMARY = "Websocket module for Apache web server" DESCRIPTION = "Process requests using the WebSocket protocol (RFC 6455)" -HOMEPAGE = "https://github.com/jchampio/${PN}/" +HOMEPAGE = "https://github.com/jchampio/apache-websocket/" SECTION = "net" LICENSE = "Apache-2.0" inherit autotools-brokensep pkgconfig DEPENDS = "apache2 apache2-native pbzip2-native" -RDEPENDS_${PN} += "apache2" +RDEPENDS:${PN} += "apache2" # Original (github.com/disconnect/apache-websocket) is dead since 2012, the # fork contains patches from the modules ML and fixes CVE compliance issues -SRC_URI = "git://github.com/jchampio/apache-websocket.git" +SRC_URI = "git://github.com/jchampio/apache-websocket.git;branch=master;protocol=https" -SRCREV = "f5230d8c520dccf8631da94bf90c23f3c1100dcc" +SRCREV = "0ee34c77fc78ff08fd548706300b80a7bc7874e4" -PV = "0.1.1" +PV = "0.1.2+git" S = "${WORKDIR}/git" LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" -EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl \ - LIBTOOL=${STAGING_DIR_TARGET}${bindir_crossscripts}/${HOST_SYS}-libtool" +EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl" do_install() { - install -d ${D}${libdir}/apache2/modules/ - install ${B}/.libs/mod_websocket.so ${D}${libdir}/apache2/modules/ + install -d ${D}${libexecdir}/apache2/modules + install -m 755 ${B}/.libs/mod_websocket.so ${D}${libexecdir}/apache2/modules } -FILES_${PN} += " ${libdir}/apache2/modules/* " -FILES_${PN}-dbg += " ${libdir}/apache2/modules/.debug/* " +FILES:${PN} += " ${libexecdir}/apache2/modules/* " +FILES:${PN}-dbg += " ${libexecdir}/apache2/modules/.debug/* " diff --git a/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb b/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb new file mode 100644 index 0000000000..5fac0a6ed4 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Avahi Module for Apache2." +HOMEPAGE = "https://0pointer.de/lennart/projects/mod_dnssd/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS = "apache2 avahi" + +SRC_URI = "git://git.0pointer.de/mod_dnssd;protocol=git;branch=master" +SRCREV = "be2fb9f6158f800685de7a1bc01c39b6cf1fa12c" + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--disable-lynx" + +inherit autotools pkgconfig + +do_install() { + install -Dm755 ${S}/src/.libs/mod_dnssd.so ${D}${libexecdir}/apache2/modules/mod_dnssd.so +} + diff --git a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb deleted file mode 100644 index 36f073c85b..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb +++ /dev/null @@ -1,45 +0,0 @@ -DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ -extensible web server." -SUMMARY = "Apache HTTP Server" -HOMEPAGE = "http://httpd.apache.org/" -DEPENDS = "expat-native pcre-native apr-native apr-util-native" -SECTION = "net" -LICENSE = "Apache-2.0" - -inherit autotools pkgconfig native - -SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ - file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ - " - -S = "${WORKDIR}/httpd-${PV}" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8" -SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407" -SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00" - -EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ - --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ - --prefix=${prefix} --datadir=${datadir}/apache2 \ - " - -do_install () { - install -d ${D}${bindir} ${D}${libdir} - cp server/gen_test_char ${D}${bindir} - install -m 755 support/apxs ${D}${bindir}/ - install -m 755 httpd ${D}${bindir}/ - install -d ${D}${datadir}/apache2/build - cp ${S}/build/*.mk ${D}${datadir}/apache2/build - cp build/*.mk ${D}${datadir}/apache2/build - cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build - - install -d ${D}${includedir}/apache2 - cp ${S}/include/* ${D}${includedir}/apache2 - cp include/* ${D}${includedir}/apache2 - cp ${S}/os/unix/os.h ${D}${includedir}/apache2 - cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2 - - cp support/envvars-std ${D}${bindir}/envvars - chmod 755 ${D}${bindir}/envvars -} - diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch new file mode 100644 index 0000000000..50775be533 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch @@ -0,0 +1,52 @@ +From ba9015386cbc044e111d7c266f13e2be045e4bf1 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen.kooi@linaro.org> +Date: Tue, 17 Jun 2014 09:10:57 +0200 +Subject: [PATCH] configure: use pkg-config for PCRE detection + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Koen Kooi <koen.kooi@linaro.org> +--- + configure.in | 26 +++++--------------------- + 1 file changed, 5 insertions(+), 21 deletions(-) + +diff --git a/configure.in b/configure.in +index 38c1d0a..c799aec 100644 +--- a/configure.in ++++ b/configure.in +@@ -221,27 +221,11 @@ else if which $with_pcre 2>/dev/null; then :; else + fi + fi + +-AC_CHECK_TARGET_TOOLS(PCRE_CONFIG, [pcre2-config pcre-config], +- [`which $with_pcre 2>/dev/null`], $with_pcre) +- +-if test "x$PCRE_CONFIG" != "x"; then +- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else +- AC_MSG_ERROR([Did not find working script at $PCRE_CONFIG]) +- fi +- case `$PCRE_CONFIG --version` in +- [1[0-9].*]) +- AC_DEFINE(HAVE_PCRE2, 1, [Detected PCRE2]) +- ;; +- [[1-5].*]) +- AC_MSG_ERROR([Need at least pcre version 6.0]) +- ;; +- esac +- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG]) +- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`]) +- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`]) +-else +- AC_MSG_ERROR([pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/]) +-fi ++PKG_CHECK_MODULES([PCRE], [libpcre], [ ++ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) ++], [ ++ AC_MSG_ERROR([$PCRE_PKG_ERRORS]) ++]) + APACHE_SUBST(PCRE_LIBS) + + AC_MSG_NOTICE([]) +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch b/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch new file mode 100644 index 0000000000..78f23f0f2d --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch @@ -0,0 +1,32 @@ +From 5b5eae9cdf3bae91756c717349f2f33a31888f24 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Wed, 3 Aug 2022 12:35:16 +0800 +Subject: [PATCH] make_exports.awk: not expose the path + +Don't print the full path in the comment line. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + build/make_exports.awk | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/build/make_exports.awk b/build/make_exports.awk +index 1cf0568..44d93c5 100644 +--- a/build/make_exports.awk ++++ b/build/make_exports.awk +@@ -47,7 +47,9 @@ function push(line) { + + function do_output() { + printf("/*\n") +- printf(" * %s\n", FILENAME) ++ file = FILENAME ++ sub("([^/]*[/])*", "", file) ++ printf(" * %s\n", file) + printf(" */\n") + + for (i = 0; i < stackptr; i++) { +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch b/meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch index 18e4107ec7..bbe8b325b5 100644 --- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch @@ -1,15 +1,25 @@ +From 5074ab3425e5f1e01fd9cfa2d9b7300ea1b3f38f Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Tue, 17 Jul 2012 11:27:39 +0100 +Subject: [PATCH] apache2: bump up the core size limit if CoreDumpDirectory is + configured Bump up the core size limit if CoreDumpDirectory is configured. -Upstream-Status: Pending +Upstream-Status: Pending Note: upstreaming was discussed but there are competing desires; there are portability oddities here too. +--- + server/core.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) ---- httpd-2.4.1/server/core.c.corelimit -+++ httpd-2.4.1/server/core.c -@@ -4433,6 +4433,25 @@ static int core_post_config(apr_pool_t * +diff --git a/server/core.c b/server/core.c +index 090e397..3020090 100644 +--- a/server/core.c ++++ b/server/core.c +@@ -5107,6 +5107,25 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte } apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper, apr_pool_cleanup_null); @@ -35,3 +45,6 @@ Note: upstreaming was discussed but there are competing desires; return OK; } +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch b/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch new file mode 100644 index 0000000000..adb728ba31 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch @@ -0,0 +1,33 @@ +From 9c03ed909b8da0e1a288f53fda535a3f15bcf791 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Tue, 17 Jul 2012 11:27:39 +0100 +Subject: [PATCH] apache2: do not export apr/apr-util symbols when using shared + libapr + +There is no need to "suck in" the apr/apr-util symbols when using +a shared libapr{,util}, it just bloats the symbol table; so don't. + +Upstream-Status: Pending + +Note: EXPORT_DIRS change is conditional on using shared apr +--- + server/Makefile.in | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/server/Makefile.in b/server/Makefile.in +index 8111877..8c0c396 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -60,9 +60,6 @@ export_files: + ls $$dir/*.h ; \ + done; \ + echo "$(top_srcdir)/server/mpm_fdqueue.h"; \ +- for dir in $(EXPORT_DIRS_APR); do \ +- ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \ +- done; \ + ) | sed -e s,//,/,g | sort -u > $@ + + exports.c: export_files +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch b/meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch index 873328d9b5..1abbe0c41f 100644 --- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch @@ -1,13 +1,23 @@ +From e47cc405eadcbe37a579c375e824e20a5c53bfad Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Tue, 17 Jul 2012 11:27:39 +0100 +Subject: [PATCH] Log the SELinux context at startup. Log the SELinux context at startup. Upstream-Status: Inappropriate [other] Note: unlikely to be any interest in this upstream +--- + configure.in | 5 +++++ + server/core.c | 26 ++++++++++++++++++++++++++ + 2 files changed, 31 insertions(+) ---- httpd-2.4.1/configure.in.selinux -+++ httpd-2.4.1/configure.in -@@ -458,6 +458,11 @@ fopen64 +diff --git a/configure.in b/configure.in +index 352711a..f58620f 100644 +--- a/configure.in ++++ b/configure.in +@@ -514,6 +514,11 @@ gettid dnl confirm that a void pointer is large enough to store a long integer APACHE_CHECK_VOID_PTR_LEN @@ -16,12 +26,14 @@ Note: unlikely to be any interest in this upstream + APR_ADDTO(AP_LIBS, [-lselinux]) +]) + - AC_CACHE_CHECK([for gettid()], ac_cv_gettid, - [AC_TRY_RUN(#define _GNU_SOURCE - #include <unistd.h> ---- httpd-2.4.1/server/core.c.selinux -+++ httpd-2.4.1/server/core.c -@@ -58,6 +58,10 @@ + if test $ac_cv_func_gettid = no; then + # On Linux before glibc 2.30, gettid() is only usable via syscall() + AC_CACHE_CHECK([for gettid() via syscall], ap_cv_gettid, +diff --git a/server/core.c b/server/core.c +index 30b317e..81f145f 100644 +--- a/server/core.c ++++ b/server/core.c +@@ -65,6 +65,10 @@ #include <unistd.h> #endif @@ -31,8 +43,8 @@ Note: unlikely to be any interest in this upstream + /* LimitRequestBody handling */ #define AP_LIMIT_REQ_BODY_UNSET ((apr_off_t) -1) - #define AP_DEFAULT_LIMIT_REQ_BODY ((apr_off_t) 0) -@@ -4452,6 +4456,28 @@ static int core_post_config(apr_pool_t * + #define AP_DEFAULT_LIMIT_REQ_BODY ((apr_off_t) 1<<30) /* 1GB */ +@@ -5139,6 +5143,28 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte } #endif @@ -40,18 +52,18 @@ Note: unlikely to be any interest in this upstream + { + static int already_warned = 0; + int is_enabled = is_selinux_enabled() > 0; -+ ++ + if (is_enabled && !already_warned) { + security_context_t con; -+ ++ + if (getcon(&con) == 0) { -+ ++ + ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL, + "SELinux policy enabled; " + "httpd running as context %s", con); -+ ++ + already_warned = 1; -+ ++ + freecon(con); + } + } @@ -61,3 +73,5 @@ Note: unlikely to be any interest in this upstream return OK; } +-- +2.40.0 diff --git a/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch b/meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch index e4e01b2af6..7b4a1b932b 100644 --- a/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch @@ -1,4 +1,4 @@ -From 760ccbb2fb046621a2aeaecabb2b1ef9aa280cf1 Mon Sep 17 00:00:00 2001 +From e59aab44a28c654e518080693d573ca472ca5a08 Mon Sep 17 00:00:00 2001 From: Yulong Pei <Yulong.pei@windriver.com> Date: Thu, 1 Sep 2011 01:03:14 +0800 Subject: [PATCH] replace lynx to curl in apachectl script @@ -7,13 +7,13 @@ Upstream-Status: Inappropriate [configuration] Signed-off-by: Yulong Pei <Yulong.pei@windriver.com> --- - support/apachectl.in | 14 ++++++++++---- - 1 files changed, 10 insertions(+), 4 deletions(-) + support/apachectl.in | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) -Index: httpd-2.4.29/support/apachectl.in -=================================================================== ---- httpd-2.4.29.orig/support/apachectl.in -+++ httpd-2.4.29/support/apachectl.in +diff --git a/support/apachectl.in b/support/apachectl.in +index 3281c2e..6ab4ba5 100644 +--- a/support/apachectl.in ++++ b/support/apachectl.in @@ -52,11 +52,11 @@ fi # a command that outputs a formatted text version of the HTML at the # url given on the command line. Designed for lynx, however other @@ -47,3 +47,6 @@ Index: httpd-2.4.29/support/apachectl.in ;; *) $HTTPD "$@" +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch index b948753b48..dbaf01d2c5 100644 --- a/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch @@ -1,3 +1,8 @@ +From fb09f1fe4525058b16b3d4edb2e3ae693154026e Mon Sep 17 00:00:00 2001 +From: Zhenhua Luo <zhenhua.luo@freescale.com> +Date: Fri, 25 Jan 2013 18:10:50 +0800 +Subject: [PATCH] apache2: fix the race issue of parallel installation + Upstream-Status: Pending fix following race issue when do parallel install @@ -7,10 +12,16 @@ fix following race issue when do parallel install | make[1]: *** [install-man] Error 1 | make[1]: *** Waiting for unfinished jobs.... --Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com> ---- httpd-2.4.3/build/mkdir.sh.orig 2013-01-25 03:47:21.565255420 -0600 -+++ httpd-2.4.3/build/mkdir.sh 2013-01-25 03:46:17.833051230 -0600 -@@ -39,7 +39,7 @@ +Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com> +--- + build/mkdir.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/mkdir.sh b/build/mkdir.sh +index e2d5bb6..dde5ae0 100755 +--- a/build/mkdir.sh ++++ b/build/mkdir.sh +@@ -39,7 +39,7 @@ for file in ${1+"$@"} ; do esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 @@ -19,3 +30,6 @@ fix following race issue when do parallel install fi pathcomp="$pathcomp/" done +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch b/meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch index 5b5c297077..7163dc2b80 100644 --- a/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch @@ -1,4 +1,4 @@ -From d23dd33e373340f6fddf11904839d1a118824401 Mon Sep 17 00:00:00 2001 +From 0686564f64130f230870db8b4846973e3edbd646 Mon Sep 17 00:00:00 2001 From: Wenzong Fan <wenzong.fan@windriver.com> Date: Mon, 1 Dec 2014 02:08:27 -0500 Subject: [PATCH] apache2: allow to disable selinux support @@ -7,14 +7,14 @@ Upstream-Status: Pending Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> --- - configure.in | 14 ++++++++++---- + configure.in | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/configure.in b/configure.in -index df94ee5..8c3ab21 100644 +index f58620f..b5971b7 100644 --- a/configure.in +++ b/configure.in -@@ -466,10 +466,16 @@ getloadavg +@@ -514,10 +514,16 @@ gettid dnl confirm that a void pointer is large enough to store a long integer APACHE_CHECK_VOID_PTR_LEN @@ -33,8 +33,8 @@ index df94ee5..8c3ab21 100644 + ]) +fi - AC_CACHE_CHECK([for gettid()], ac_cv_gettid, - [AC_TRY_RUN(#define _GNU_SOURCE + if test $ac_cv_func_gettid = no; then + # On Linux before glibc 2.30, gettid() is only usable via syscall() -- -1.7.9.5 +2.40.0 diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch b/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch new file mode 100644 index 0000000000..dc5b5c88f2 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch @@ -0,0 +1,36 @@ +From 443d15b91d4e4979d92405610303797663f31102 Mon Sep 17 00:00:00 2001 +From: echo <fei.geng@windriver.com> +Date: Tue, 28 Apr 2009 03:11:06 +0000 +Subject: [PATCH] Fix perl install directory to /usr/bin + +Upstream-Status: Inappropriate [configuration] + +Add back this patch. Without this patch, apxs's shebang will use +perl under hosttools, which can be too long for shebang, and cause +error: +bad interpreter: No such file or directory + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + configure.in | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/configure.in b/configure.in +index 4df3ff3..4eeb609 100644 +--- a/configure.in ++++ b/configure.in +@@ -903,10 +903,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf", + AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types", + [Location of the MIME types config file, relative to the Apache root directory]) + +-perlbin=`$ac_aux_dir/PrintPath perl` +-if test "x$perlbin" = "x"; then +- perlbin="/replace/with/path/to/perl/interpreter" +-fi ++perlbin='/usr/bin/perl' + AC_SUBST(perlbin) + + dnl If we are running on BSD/OS, we need to use the BSD .include syntax. +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch b/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch new file mode 100644 index 0000000000..d1f9bb0f43 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch @@ -0,0 +1,49 @@ +From 43a4ad04e0d8771267a73f98b5918bcd10b167ec Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin <trevor.gamblin@windriver.com> +Date: Fri, 17 Apr 2020 06:31:35 -0700 +Subject: [PATCH] support/apxs.in: force destdir to be empty string + +If destdir is assigned to anything other than the empty string, the +search path for apache2 config files is appended to itself, and +related packages like apache-websocket will be unable to locate them: + +| cannot open +/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot//usr/share/apache2/build/config_vars.mk: +No such file or directory at +/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot/usr/bin/crossscripts/apxs +line 213. + +Ensure that it is always the empty string so that apache-websocket +is able to find the required config files. + +Upstream-Status: Inappropriate (embedded-specific) + +Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> +--- + support/apxs.in | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/support/apxs.in b/support/apxs.in +index b2705fa..781f2ab 100644 +--- a/support/apxs.in ++++ b/support/apxs.in +@@ -28,10 +28,12 @@ package apxs; + # is the empty string. + + my $destdir = ""; +-my $ddi = rindex($0, "@exp_bindir@"); +-if ($ddi >= 0) { +- $destdir = substr($0, 0, $ddi); +-} ++# Comment out assignment of destdir so that it doesn't affect bitbake ++# cross-compilation setup ++#my $ddi = rindex($0, "@exp_bindir@"); ++#if ($ddi >= 0) { ++# $destdir = substr($0, 0, $ddi); ++#} + + my %config_vars = (); + +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch b/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch new file mode 100644 index 0000000000..ced8469f3a --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch @@ -0,0 +1,26 @@ +From d9993cbc33565c0acd29b0127d651dafa2a16975 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Tue, 17 Jul 2012 11:27:39 +0100 +Subject: [PATCH] apache2: do not use relative path for gen_test_char + +Upstream-Status: Inappropriate [embedded specific] +--- + server/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/server/Makefile.in b/server/Makefile.in +index 8c0c396..3544f55 100644 +--- a/server/Makefile.in ++++ b/server/Makefile.in +@@ -29,7 +29,7 @@ gen_test_char: $(gen_test_char_OBJECTS) + $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) + + test_char.h: gen_test_char +- ./gen_test_char > test_char.h ++ gen_test_char > test_char.h + + util.lo: test_char.h + +-- +2.25.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch deleted file mode 100644 index 92c53f31d7..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Author: echo <fei.geng@windriver.com> -# Date: April 28 2009 -# Summary:Fix perl install directory to /usr/bin -# -# Upstream-Status: Inappropriate [configuration] - -Index: httpd-2.4.29/configure.in -=================================================================== ---- httpd-2.4.29.orig/configure.in -+++ httpd-2.4.29/configure.in -@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, " - AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types", - [Location of the MIME types config file, relative to the Apache root directory]) - --perlbin=`$ac_aux_dir/PrintPath perl` --if test "x$perlbin" = "x"; then -- perlbin="/replace/with/path/to/perl/interpreter" --fi -+perlbin='/usr/bin/perl' - AC_SUBST(perlbin) - - dnl If we are running on BSD/OS, we need to use the BSD .include syntax. diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch deleted file mode 100644 index f13da91f39..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch +++ /dev/null @@ -1,81 +0,0 @@ - build/ltmain.sh | 32 +++++++++++++++++++++++++++----- - 1 file changed, 27 insertions(+), 5 deletions(-) - -Index: httpd-2.4.29/build/ltmain.sh -=================================================================== ---- httpd-2.4.29.orig/build/ltmain.sh -+++ httpd-2.4.29/build/ltmain.sh -@@ -6969,7 +6969,7 @@ func_mode_link () - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -+ =* | [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ -@@ -8167,7 +8167,7 @@ func_mode_link () - $ECHO "*** $linklib is not portable!" - fi - if test lib = "$linkmode" && -- test yes = "$hardcode_into_libs"; then -+ test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. -@@ -8434,7 +8434,7 @@ func_mode_link () - - if test lib = "$linkmode"; then - if test -n "$dependency_libs" && -- { test yes != "$hardcode_into_libs" || -+ { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" || - test yes = "$build_old_libs" || - test yes = "$link_static"; }; then - # Extract -R from dependency_libs -@@ -9086,7 +9086,8 @@ func_mode_link () - *) func_append finalize_rpath " $libdir" ;; - esac - done -- if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then -+ if test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" || -+ test yes = "$build_old_libs"; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi -@@ -9534,7 +9535,7 @@ EOF - case $archive_cmds in - *\$LD\ *) wl= ;; - esac -- if test yes = "$hardcode_into_libs"; then -+ if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= -@@ -10272,6 +10273,27 @@ EOF - # Now hardcode the library paths - rpath= - hardcode_libdirs= -+ -+ # short circuit putting rpaths in executables -+ # -+ if test "x$wrs_use_rpaths" != "xyes" ; then -+ flag= -+ for libdir in $compile_rpath; do -+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in -+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;; -+ esac -+ done -+ compile_rpath="$flag" -+ -+ flag= -+ for libdir in $finalize_rpath; do -+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in -+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;; -+ esac -+ done -+ finalize_rpath="$flag" -+ fi -+ - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch b/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch deleted file mode 100644 index afbed8e550..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch +++ /dev/null @@ -1,22 +0,0 @@ - -There is no need to "suck in" the apr/apr-util symbols when using -a shared libapr{,util}, it just bloats the symbol table; so don't. - -Upstream-HEAD: needed -Upstream-2.0: omit -Upstream-Status: Pending - -Note: EXPORT_DIRS change is conditional on using shared apr - ---- httpd-2.4.4/server/Makefile.in.export -+++ httpd-2.4.4/server/Makefile.in -@@ -57,9 +57,6 @@ export_files: - ( for dir in $(EXPORT_DIRS); do \ - ls $$dir/*.h ; \ - done; \ -- for dir in $(EXPORT_DIRS_APR); do \ -- ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \ -- done; \ - ) | sed -e s,//,/,g | sort -u > $@ - - exports.c: export_files diff --git a/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch b/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch deleted file mode 100644 index f1349cb6a4..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- http-2.0.54/server/Makefile.in-old 2005-12-20 13:26:56.000000000 -0500 -+++ http-2.0.54/server/Makefile.in 2005-12-20 13:27:22.000000000 -0500 -@@ -27,7 +27,7 @@ - $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) - - test_char.h: gen_test_char -- ./gen_test_char > test_char.h -+ gen_test_char > test_char.h - - util.lo: test_char.h - diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb deleted file mode 100644 index f0298b91ab..0000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb +++ /dev/null @@ -1,194 +0,0 @@ -DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ -extensible web server." -SUMMARY = "Apache HTTP Server" -HOMEPAGE = "http://httpd.apache.org/" -DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util" -SECTION = "net" -LICENSE = "Apache-2.0" - -SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ - file://server-makefile.patch \ - file://httpd-2.4.1-corelimit.patch \ - file://httpd-2.4.4-export.patch \ - file://httpd-2.4.1-selinux.patch \ - file://apache-configure_perlbin.patch \ - file://replace-lynx-to-curl-in-apachectl-script.patch \ - file://apache-ssl-ltmain-rpath.patch \ - file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \ - file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ - file://configure-allow-to-disable-selinux-support.patch \ - file://init \ - file://apache2-volatile.conf \ - file://apache2.service \ - file://volatiles.04_apache2 \ - " - -LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8" -SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407" -SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00" - -S = "${WORKDIR}/httpd-${PV}" - -inherit autotools update-rc.d pkgconfig systemd - -SYSTEMD_SERVICE_${PN} = "apache2.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" - -CFLAGS_append = " -DPATH_MAX=4096" -CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl " -EXTRA_OECONF = "--enable-ssl \ - --with-ssl=${STAGING_LIBDIR}/.. \ - --with-expat=${STAGING_LIBDIR}/.. \ - --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ - --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ - --enable-info \ - --enable-rewrite \ - --with-dbm=sdbm \ - --with-berkeley-db=no \ - --localstatedir=/var/${BPN} \ - --with-gdbm=no \ - --with-ndbm=no \ - --includedir=${includedir}/${BPN} \ - --datadir=${datadir}/${BPN} \ - --sysconfdir=${sysconfdir}/${BPN} \ - --libexecdir=${libdir}/${BPN}/modules \ - ap_cv_void_ptr_lt_long=no \ - --enable-mpms-shared \ - ac_cv_have_threadsafe_pollset=no" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" -PACKAGECONFIG[selinux] = "--enable-selinux --enable-layout=Debian --prefix=${base_prefix}/,--disable-selinux,libselinux,libselinux" -PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap" - -do_configure_prepend() { - sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout -} - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - cat ${WORKDIR}/init | \ - sed -e 's,/usr/sbin/,${sbindir}/,g' \ - -e 's,/usr/bin/,${bindir}/,g' \ - -e 's,/usr/lib,${libdir}/,g' \ - -e 's,/etc/,${sysconfdir}/,g' \ - -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} - chmod 755 ${D}/${sysconfdir}/init.d/${BPN} - # remove the goofy original files... - rm -rf ${D}/${sysconfdir}/${BPN}/original - # Expat should be found in the staging area via DEPENDS... - rm -f ${D}/${libdir}/libexpat.* - - install -d ${D}${sysconfdir}/${BPN}/conf.d - install -d ${D}${sysconfdir}/${BPN}/modules.d - - # Ensure configuration file pulls in conf.d and modules.d - printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - # match with that is in init script - printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - # Set 'ServerName' to fix error messages when restart apache service - sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d/ - install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2 - fi - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service - - chown -R root:root ${D} -} - -do_install_append_class-target() { - sed -i -e 's,${STAGING_DIR_HOST},,g' \ - -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ - -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk - - sed -i -e 's,${STAGING_DIR_HOST},,g' \ - -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice - rm -rf ${D}${localstatedir}/run -} - -SYSROOT_PREPROCESS_FUNCS += "apache_sysroot_preprocess" - -apache_sysroot_preprocess () { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -d ${SYSROOT_DESTDIR}${sbindir}/ - install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}/ - sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - - sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk -} - -# -# implications - used by update-rc.d scripts -# -INITSCRIPT_NAME = "apache2" -INITSCRIPT_PARAMS = "defaults 91 20" -LEAD_SONAME = "libapr-1.so.0" - -PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" - -CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \ - ${sysconfdir}/${BPN}/magic \ - ${sysconfdir}/${BPN}/mime.types \ - ${sysconfdir}/init.d/${BPN} " - -# we override here rather than append so that .so links are -# included in the runtime package rather than here (-dev) -# and to get build, icons, error into the -dev package -FILES_${PN}-dev = "${datadir}/${BPN}/build \ - ${datadir}/${BPN}/icons \ - ${datadir}/${BPN}/error \ - ${bindir}/apr-config ${bindir}/apu-config \ - ${libdir}/apr*.exp \ - ${includedir}/${BPN} \ - ${libdir}/*.la \ - ${libdir}/*.a \ - ${bindir}/apxs \ - " - - -# manual to manual -FILES_${PN}-doc += " ${datadir}/${BPN}/manual" - -FILES_${PN}-scripts += "${bindir}/dbmmanage" - -# -# override this too - here is the default, less datadir -# -FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \ - ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \ - ${libdir}/${BPN}" - -# we want htdocs and cgi-bin to go with the binary -FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin" - -#make sure the lone .so links also get wrapped in the base package -FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*" - -FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug" - -RDEPENDS_${PN} += "openssl libgcc" -RDEPENDS_${PN}-scripts += "perl ${PN}" -RDEPENDS_${PN}-dev = "perl" - -FILES_${PN} += "${libdir}/cgi-bin" -FILES_${PN} += "${datadir}/${BPN}/" diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb new file mode 100644 index 0000000000..1632c6ccb1 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb @@ -0,0 +1,247 @@ +DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ +extensible web server." +SUMMARY = "Apache HTTP Server" +HOMEPAGE = "http://httpd.apache.org/" +SECTION = "net" +LICENSE = "Apache-2.0" + +SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ + file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ + file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \ + file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \ + file://0004-apache2-log-the-SELinux-context-at-startup.patch \ + file://0005-replace-lynx-to-curl-in-apachectl-script.patch \ + file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \ + file://0007-apache2-allow-to-disable-selinux-support.patch \ + file://0008-Fix-perl-install-directory-to-usr-bin.patch \ + file://0009-support-apxs.in-force-destdir-to-be-empty-string.patch \ + file://0001-make_exports.awk-not-expose-the-path.patch \ + " + +SRC_URI:append:class-target = " \ + file://0010-apache2-do-not-use-relative-path-for-gen_test_char.patch \ + file://init \ + file://apache2-volatile.conf \ + file://apache2.service \ + file://volatiles.04_apache2 \ + " + +LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3" +SRC_URI[sha256sum] = "ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323" + +S = "${WORKDIR}/httpd-${PV}" + +inherit autotools update-rc.d pkgconfig systemd multilib_script multilib_header + +DEPENDS = "openssl expat pcre apr apr-util apache2-native " + +CVE_PRODUCT = "apache:http_server" + +SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux" +PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap" +PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib" + +CFLAGS:append = " -DPATH_MAX=4096" + +EXTRA_OECONF:class-target = "\ + --enable-layout=Debian \ + --prefix=${base_prefix} \ + --exec_prefix=${exec_prefix} \ + --includedir=${includedir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ + --datadir=${datadir}/${BPN} \ + --libdir=${libdir} \ + --libexecdir=${libexecdir}/${BPN}/modules \ + --localstatedir=${localstatedir} \ + --enable-ssl \ + --with-dbm=sdbm \ + --with-gdbm=no \ + --with-ndbm=no \ + --with-berkeley-db=no \ + --enable-info \ + --enable-rewrite \ + --with-mpm=prefork \ + --enable-mpms-shared \ + ap_cv_void_ptr_lt_long=no \ + ac_cv_have_threadsafe_pollset=no \ + " + +EXTRA_OECONF:class-native = "\ + --prefix=${prefix} \ + --includedir=${includedir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ + --datadir=${datadir}/${BPN} \ + --libdir=${libdir} \ + --libexecdir=${libdir}/${BPN}/modules \ + --localstatedir=${localstatedir} \ + " + +do_configure:prepend() { + sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' \ + -e 's#\(installbuilddir:\s*\).*#\1${libexecdir}/${PN}/build#' \ + ${S}/config.layout +} + +do_install:append:class-target() { + install -d ${D}/${sysconfdir}/init.d + + cat ${UNPACKDIR}/init | \ + sed -e 's,/usr/sbin/,${sbindir}/,g' \ + -e 's,/usr/bin/,${bindir}/,g' \ + -e 's,/usr/lib/,${libdir}/,g' \ + -e 's,/etc/,${sysconfdir}/,g' \ + -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} + + chmod 755 ${D}/${sysconfdir}/init.d/${BPN} + + # Remove the goofy original files... + rm -rf ${D}/${sysconfdir}/${BPN}/original + + install -d ${D}${sysconfdir}/${BPN}/conf.d + install -d ${D}${sysconfdir}/${BPN}/modules.d + + # Ensure configuration file pulls in conf.d and modules.d + printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + + # Match with that is in init script + printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + + # Set 'ServerName' to fix error messages when restart apache service + sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf + + sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf + + sed -i -e 's,${STAGING_DIR_TARGET},,g' \ + -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \ + -e 's,${HOSTTOOLS_DIR}/,,g' \ + -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ + -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${libexecdir}/${PN}/build/config_vars.mk + + sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,${RECIPE_SYSROOT},,g' \ + -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ + -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ + -e 's,${WORKDIR}/recipe-sysroot/,,g' \ + -e 's,".*/configure","configure",g' ${D}${libexecdir}/${PN}/build/config.nice + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d/ + install -m 0644 ${UNPACKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${UNPACKDIR}/apache2.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service + elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${UNPACKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2 + fi + + rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars* + chown -R root:root ${D} + + oe_multilib_header apache2/ap_config_layout.h +} + +do_install:append:class-native() { + install -d ${D}${bindir} ${D}${libdir} + install -m 755 server/gen_test_char ${D}${bindir} +} + +SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess" + +SYSROOT_DIRS += "${libexecdir}/${PN}/build" + +apache_sysroot_preprocess() { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} + install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts} + install -d ${SYSROOT_DESTDIR}${sbindir} + install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir} + sed -i 's!\(my $installbuilddir = \)"\(.*\)"!\1"${STAGING_DIR_HOST}\2"!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs + + sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk + sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk +} + +# Implications - used by update-rc.d scripts +INITSCRIPT_NAME = "apache2" +INITSCRIPT_PARAMS = "defaults 91 20" + +SYSTEMD_SERVICE:${PN} = "apache2.service" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +ALTERNATIVE:${PN}-doc = "htpasswd.1" +ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" + +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apxs" + +PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" + +CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \ + ${sysconfdir}/${BPN}/magic \ + ${sysconfdir}/${BPN}/mime.types \ + ${sysconfdir}/${BPN}/extra/*" + +FILES:${PN}-utils = "${bindir}/ab \ + ${bindir}/htdbm \ + ${bindir}/htdigest \ + ${bindir}/htpasswd \ + ${bindir}/logresolve \ + ${bindir}/httxt2dbm \ + ${sbindir}/htcacheclean \ + ${sbindir}/fcgistarter \ + ${sbindir}/checkgid \ + ${sbindir}/rotatelogs \ + " + +# We override here rather than append so that .so links are +# included in the runtime package rather than here (-dev) +# and to get build, icons, error into the -dev package +FILES:${PN}-dev = "${libexecdir}/${PN}/build \ + ${datadir}/${BPN}/icons \ + ${datadir}/${BPN}/error \ + ${includedir}/${BPN} \ + ${bindir}/apxs \ + " + +# Add the manual to -doc +FILES:${PN}-doc += " ${datadir}/${BPN}/manual" + +FILES:${PN}-scripts += "${bindir}/dbmmanage" + +# Override this too - here is the default, less datadir +FILES:${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir} \ + ${sysconfdir} ${libdir}/${BPN}" + +# We want htdocs and cgi-bin to go with the binary +FILES:${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin" + +FILES:${PN}-dbg += "${libdir}/${BPN}/modules/.debug" + +RDEPENDS:${PN} += "openssl libgcc ${PN}-utils" +RDEPENDS:${PN}-scripts += "perl ${PN}" +RDEPENDS:${PN}-dev = "perl" + +BBCLASSEXTEND = "native" + +pkg_postinst:${PN}() { + if [ -z "$D" ]; then + if type systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} diff --git a/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch deleted file mode 100644 index 63096db0a3..0000000000 --- a/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch +++ /dev/null @@ -1,52 +0,0 @@ -From d8837756f2a48adcfe5d645c39cf163d96eac76c Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen.kooi@linaro.org> -Date: Tue, 17 Jun 2014 09:10:57 +0200 -Subject: [PATCH] configure: use pkg-config for PCRE detection - -Signed-off-by: Koen Kooi <koen.kooi@linaro.org> -Upstream-Status: pending ---- - configure.in | 27 +++++---------------------- - 1 file changed, 5 insertions(+), 22 deletions(-) - -diff --git a/configure.in b/configure.in -index 864d7c7..da4138e 100644 ---- a/configure.in -+++ b/configure.in -@@ -215,28 +215,11 @@ fi - AC_ARG_WITH(pcre, - APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library)) - --AC_PATH_PROG(PCRE_CONFIG, pcre-config, false) --if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then -- PCRE_CONFIG=$with_pcre/bin/pcre-config --elif test -x "$with_pcre"; then -- PCRE_CONFIG=$with_pcre --fi -- --if test "$PCRE_CONFIG" != "false"; then -- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else -- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG]) -- fi -- case `$PCRE_CONFIG --version` in -- [[1-5].*]) -- AC_MSG_ERROR([Need at least pcre version 6.0]) -- ;; -- esac -- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG]) -- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`]) -- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`]) --else -- AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/]) --fi -+PKG_CHECK_MODULES([PCRE], [libpcre], [ -+ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) -+], [ -+ AC_MSG_ERROR([$PCRE_PKG_ERRORS]) -+]) - APACHE_SUBST(PCRE_LIBS) - - AC_MSG_NOTICE([]) --- -1.9.3 - diff --git a/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf b/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf index ff2c587046..0852a8859a 100644 --- a/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf +++ b/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf @@ -1,2 +1,2 @@ -d /var/run/apache2 0755 root root - +d /run/apache2 0755 root root - d /var/log/apache2 0755 root root - diff --git a/meta-webserver/recipes-httpd/apache2/files/init b/meta-webserver/recipes-httpd/apache2/files/init index 758d133b9e..758d133b9e 100755..100644 --- a/meta-webserver/recipes-httpd/apache2/files/init +++ b/meta-webserver/recipes-httpd/apache2/files/init diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch new file mode 100644 index 0000000000..0f43842752 --- /dev/null +++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch @@ -0,0 +1,47 @@ +From c73415021f3f3b2b30062ab74b25fe49c51c2242 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 10 Nov 2019 15:59:44 -0800 +Subject: [PATCH] common-internal.h: Define LLONG_MAX if undefined + +time_t can also be long long type, therefore check for that as fallback +Fixes build on 32bit hosts where time_t is fixed for Y2K38 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + cherokee/common-internal.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/cherokee/common-internal.h b/cherokee/common-internal.h +index 5c28da97..5646ec0f 100644 +--- a/cherokee/common-internal.h ++++ b/cherokee/common-internal.h +@@ -222,6 +222,16 @@ char *strcasestr(char *s, char *find); + # endif + #endif + ++/* Long Long limit ++ */ ++#ifndef LLONG_MAX ++# if (__SIZEOF_LONG_LONG__ == 8) ++# define LLONG_MAX 0x7fffffffffffffffLL ++# else ++# error "Can't define LLONG_MAX" ++# endif ++#endif ++ + /* time_t limit + */ + #ifndef TIME_MAX +@@ -229,6 +239,8 @@ char *strcasestr(char *s, char *find); + # define TIME_MAX ((time_t)INT_MAX) + # elif (SIZEOF_TIME_T == SIZEOF_LONG) + # define TIME_MAX ((time_t)LONG_MAX) ++# elif (SIZEOF_TIME_T == __SIZEOF_LONG_LONG__) ++# define TIME_MAX ((time_t)LLONG_MAX) + # else + # error "Can't define TIME_MAX" + # endif +-- +2.24.0 + diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch index f3be7c6e52..b16060f2a1 100644 --- a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch +++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch @@ -7,6 +7,7 @@ Fixes errors like | Makefile.am: error: required file './README' not found | Makefile.am: error: required file './ChangeLog' not found +Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> --- configure.ac | 2 +- diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch index d4c0b6e8c6..1d6a2182bd 100644 --- a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch +++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch @@ -5,6 +5,7 @@ Subject: [PATCH] make: Do not build po files Target fails to build +Upstream-Status: Inappropriate [Cross-compile specific] Signed-off-by: Khem Raj <raj.khem@gmail.com> --- Makefile.am | 2 +- diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb index 3f7eae4c16..53d6a85ae7 100644 --- a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb +++ b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb @@ -1,25 +1,26 @@ SUMMARY = "Cherokee Web Server fast and secure" -SUMMARY_cget = "Small downloader based in the Cherokee client library" +SUMMARY:cget = "Small downloader based in the Cherokee client library" HOMEPAGE = "http://www.cherokee-project.com/" SECTION = "network" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -SRCREV = "75f041e2255e6dd0692db2f14611c2647dbe8425" -PV = "1.2.104+git${SRCPV}" -SRC_URI = "git://github.com/cherokee/webserver \ +SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59" +PV = "1.2.104+git" +SRC_URI = "git://github.com/cherokee/webserver;branch=master;protocol=https \ file://cherokee.init \ file://cherokee.service \ file://cherokee-install-configured.py-once.patch \ file://0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch \ file://0001-make-Do-not-build-po-files.patch \ + file://0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch \ " S = "${WORKDIR}/git" -inherit autotools-brokensep pkgconfig binconfig update-rc.d systemd pythonnative +inherit autotools-brokensep pkgconfig binconfig update-rc.d systemd ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)} PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ffmpeg] = "--with-ffmpeg,--without-ffmpeg,libav" @@ -33,15 +34,15 @@ EXTRA_OECONF = "--disable-static \ --with-wwwroot=${localstatedir}/www/cherokee \ " -do_install_append () { +do_install:append () { install -m 0755 -d ${D}${sysconfdir}/init.d - install -m 755 ${WORKDIR}/cherokee.init ${D}${sysconfdir}/init.d/cherokee + install -m 755 ${UNPACKDIR}/cherokee.init ${D}${sysconfdir}/init.d/cherokee # clean up .la files for plugins rm -f ${D}${libdir}/cherokee/*.la install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/cherokee.service ${D}${systemd_unitdir}/system + install -m 0644 ${UNPACKDIR}/cherokee.service ${D}${systemd_unitdir}/system rmdir "${D}${localstatedir}/run" rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" } @@ -49,15 +50,15 @@ do_install_append () { # Put -dev near the front so we can move the .la files into it with a wildcard PACKAGES =+ "libcherokee-server libcherokee-client libcherokee-base cget" -FILES_cget = "${bindir}/cget" -FILES_libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}" -FILES_libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}" -FILES_libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}" +FILES:cget = "${bindir}/cget" +FILES:libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}" +FILES:libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}" +FILES:libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}" # Pack the htdocs -FILES_${PN} += "${localstatedir}/www/cherokee" +FILES:${PN} += "${localstatedir}/www/cherokee" -CONFFILES_${PN} = " \ +CONFFILES:${PN} = " \ ${sysconfdir}/cherokee/cherokee.conf \ ${sysconfdir}/init.d/cherokee \ " @@ -65,7 +66,14 @@ CONFFILES_${PN} = " \ INITSCRIPT_NAME = "cherokee" INITSCRIPT_PARAMS = "defaults 91 91" -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "cherokee.service" +RPROVIDES:${PN} += "${PN}-systemd" +RREPLACES:${PN} += "${PN}-systemd" +RCONFLICTS:${PN} += "${PN}-systemd" +SYSTEMD_SERVICE:${PN} = "cherokee.service" + +python() { + if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-python2 to be present.') +} + +CVE_PRODUCT += "cherokee_web_server" diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb index 4c3ca556bd..1111ef6f56 100644 --- a/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb +++ b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb @@ -1,29 +1,29 @@ SUMMARY = "Lightweight secure web server" HOMEPAGE = "http://www.hiawatha-webserver.org" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "libxml2 libxslt" +DEPENDS = "libxml2 libxslt virtual/crypt" SECTION = "net" -SRC_URI = "http://hiawatha-webserver.org/files/${BP}.tar.gz \ +SRC_URI = "http://hiawatha-webserver.org/files/hiawatha-10/${BP}.tar.gz \ file://hiawatha-init \ file://hiawatha.service " -SRC_URI[md5sum] = "581aa71c831172ba06910deda717302f" -SRC_URI[sha256sum] = "363e99d84a85dafbb74bcc30b3e30286053ec2abbc7afe08cd87193611735f74" +SRC_URI[md5sum] = "d9e282be06ed456207726b7ac0df9d48" +SRC_URI[sha256sum] = "61bf41146c51244769984135529fcffd0f6cb92be18dc12d460effc42f19f50d" INITSCRIPT_NAME = "hiawatha" INITSCRIPT_PARAMS = "defaults 70" -SYSTEMD_SERVICE_${PN} = "hiawatha.service" +SYSTEMD_SERVICE:${PN} = "hiawatha.service" inherit cmake update-rc.d systemd EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \ -DENABLE_CACHE=OFF \ -DENABLE_DEBUG=OFF \ - -DENABLE_SSL=OFF \ + -DENABLE_TLS=OFF \ -DENABLE_TOOLKIT=OFF \ -DENABLE_CHROOT=OFF \ -DENABLE_XSLT=ON \ @@ -35,11 +35,11 @@ EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \ -DCMAKE_INSTALL_LIBDIR=${libdir} \ -DCMAKE_INSTALL_FULL_LOCALSTATEDIR=${localstatedir}" -do_install_append() { +do_install:append() { # Copy over init script and sed in the correct sbin path - sed -i 's,sed_sbin_path,${sbindir},' ${WORKDIR}/hiawatha-init + sed -i 's,sed_sbin_path,${sbindir},' ${UNPACKDIR}/hiawatha-init mkdir -p ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha + install -m 0755 ${UNPACKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha # configure php-fcgi to have a working configuration # by default if php is installed @@ -47,13 +47,29 @@ do_install_append() { if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system + install -m 644 ${UNPACKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system + fi + + # /var/log/hiawatha and /var/lib/hiawatha needs to be created in runtime. + # Use rmdir to catch if upstream stops creating these dirs, or adds + # something else in /var/log. + rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log + rmdir ${D}${localstatedir}/run + rmdir --ignore-fail-on-non-empty ${D}${localstatedir} + + # Create /var/log/hiawatha at runtime. + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then + install -d ${D}${nonarch_libdir}/tmpfiles.d + echo "d ${localstatedir}/log/${BPN} - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf + fi + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then + install -d ${D}${sysconfdir}/default/volatiles + echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN} fi - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" "${D}${localstatedir}/run" } -CONFFILES_${PN} = " \ +CONFFILES:${PN} = " \ ${sysconfdir}/hiawatha/cgi-wrapper.conf \ ${sysconfdir}/hiawatha/hiawatha.conf \ ${sysconfdir}/hiawatha/index.xslt \ @@ -61,4 +77,5 @@ CONFFILES_${PN} = " \ ${sysconfdir}/hiawatha/php-fcgi.conf \ " -FILES_${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}" +FILES:${PN} += "${nonarch_libdir}/tmpfiles.d" +FILES:${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}" diff --git a/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch b/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch deleted file mode 100644 index 7a229513b6..0000000000 --- a/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b0526a9b5325bd4758dad8d14efd85c98ef2ebff Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 14 Jul 2017 18:25:23 -0700 -Subject: [PATCH] configure: Respect LIBS variable from env - -For musl we need to pass -lexecinfo from env -this change accomodates that - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure b/configure -index 4286c34..f1c65db 100755 ---- a/configure -+++ b/configure -@@ -620,7 +620,7 @@ LIBDEFS = -DSHAREDLIB -fPIC \$(DEFS) - INCDIR = ./include - LDFLAGS = $LDFLAGS - DESTDIR = ../bin/monkey --LIBS = -ldl $libs -+LIBS = -ldl $libs ${LIBS} - OBJ = monkey.o mk_method.o mk_mimetype.o mk_vhost.o mk_request.o \\ - mk_header.o mk_config.o mk_signals.o \\ - mk_user.o mk_utils.o mk_epoll.o mk_scheduler.o \\ --- -2.13.3 - diff --git a/meta-webserver/recipes-httpd/monkey/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch b/meta-webserver/recipes-httpd/monkey/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch new file mode 100644 index 0000000000..f4bab49aa7 --- /dev/null +++ b/meta-webserver/recipes-httpd/monkey/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch @@ -0,0 +1,30 @@ +From 7f724bbafbb1e170401dd5de201273ab8c8bc75f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 28 Aug 2022 14:24:02 -0700 +Subject: [PATCH] fastcgi: Use value instead of address of sin6_port + +This seems to be wrongly assigned where ipv4 sin_port is +equated to address of sin6_port and not value of sin6_port + +Upstream-Status: Submitted [https://github.com/monkey/monkey/pull/375] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + plugins/fastcgi/fcgi_handler.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/fastcgi/fcgi_handler.c b/plugins/fastcgi/fcgi_handler.c +index 9e095e3c..e8e1eec1 100644 +--- a/plugins/fastcgi/fcgi_handler.c ++++ b/plugins/fastcgi/fcgi_handler.c +@@ -245,7 +245,7 @@ static inline int fcgi_add_param_net(struct fcgi_handler *handler) + struct sockaddr_in *s4 = (struct sockaddr_in *)&addr4; + memset(&addr4, 0, sizeof(addr4)); + addr4.sin_family = AF_INET; +- addr4.sin_port = &s->sin6_port; ++ addr4.sin_port = s->sin6_port; + memcpy(&addr4.sin_addr.s_addr, + s->sin6_addr.s6_addr + 12, + sizeof(addr4.sin_addr.s_addr)); +-- +2.37.2 + diff --git a/meta-webserver/recipes-httpd/monkey/files/monkey.init b/meta-webserver/recipes-httpd/monkey/files/monkey.init index 40b21182e1..55446f0e82 100644 --- a/meta-webserver/recipes-httpd/monkey/files/monkey.init +++ b/meta-webserver/recipes-httpd/monkey/files/monkey.init @@ -1,7 +1,7 @@ #!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=/usr/bin/monkey +DAEMON=/usr/sbin/monkey NAME=monkey DESC="Monkey HTTP Server" OPTS="--daemon" diff --git a/meta-webserver/recipes-httpd/monkey/files/monkey.service b/meta-webserver/recipes-httpd/monkey/files/monkey.service index f9aa57f91e..4f3b7be4e9 100644 --- a/meta-webserver/recipes-httpd/monkey/files/monkey.service +++ b/meta-webserver/recipes-httpd/monkey/files/monkey.service @@ -4,7 +4,7 @@ After=network.target remote-fs.target [Service] Type=forking -ExecStart=/usr/bin/monkey --daemon +ExecStart=/usr/sbin/monkey --daemon PIDFile=/var/run/monkey.pid.2001 TimeoutSec=10 diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb deleted file mode 100644 index 559d251bdf..0000000000 --- a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb +++ /dev/null @@ -1,77 +0,0 @@ -SUMMARY = "Fast and Lightweight HTTP Server for Linux" -HOMEPAGE = "http://monkey-project.com" -BUGTRACKER = "https://github.com/monkey/monkey/issues" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" - -SECTION = "net" - -DEPENDS_append_libc-musl = " libexecinfo" - -SRC_URI = "http://monkey-project.com/releases/1.5/monkey-${PV}.tar.gz \ - file://0001-configure-Respect-LIBS-variable-from-env.patch \ - file://monkey.service \ - file://monkey.init" - -SRC_URI[md5sum] = "9699e4c9ea6ce6b989907c252ae80254" -SRC_URI[sha256sum] = "7c3d845306aa74ee6effd7ab6169d16ac4e6450e564954d0d0baa2d1e9be1a22" - -UPSTREAM_CHECK_URI = "https://github.com/monkey/monkey/releases" -UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz" - -EXTRA_OECONF = "--plugdir=${libdir}/monkey/ \ - --logdir=${localstatedir}/log/monkey/ \ - --pidfile=${localstatedir}/run/monkey.pid \ - --default-user=www-data \ - --datadir=${localstatedir}/www/monkey/ \ - --sysconfdir=${sysconfdir}/monkey/ \ - --enable-plugins=* \ - --disable-plugins=mbedtls \ - --debug \ - --malloc-libc" - -do_configure_prepend_libc-musl() { - export LIBS="-lexecinfo" -} - -DISABLE_STATIC = "" -CLEANBROKEN = "1" - -inherit autotools-brokensep pkgconfig update-rc.d systemd - -INITSCRIPT_NAME = "monkey" -INITSCRIPT_PARAMS = "defaults 70" - -SYSTEMD_SERVICE_${PN} = "monkey.service" - -FILES_${PN} += "${localstatedir}/www/monkey/" - -CONFFILES_${PN} = "${sysconfdir}/monkey/monkey.conf \ - ${sysconfdir}/monkey/sites/default \ - ${sysconfdir}/monkey/monkey.mime \ - ${sysconfdir}/monkey/plugins.load \ - ${sysconfdir}/monkey/plugins/proxy_reverse/proxy_reverse.conf \ - ${sysconfdir}/monkey/plugins/mandril/mandril.conf \ - ${sysconfdir}/monkey/plugins/fastcgi/fastcgi.conf \ - ${sysconfdir}/monkey/plugins/logger/logger.conf \ - ${sysconfdir}/monkey/plugins/cgi/cgi.conf \ - ${sysconfdir}/monkey/plugins/cheetah/cheetah.conf \ - ${sysconfdir}/monkey/plugins/dirlisting/dirhtml.conf \ - ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/header.theme \ - ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/footer.theme \ - ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/entry.theme \ - ${sysconfdir}/monkey/plugins/auth/README \ - ${sysconfdir}/monkey/plugins/auth/monkey.users \ - " - -do_install_append() { - - mkdir -p ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/monkey.service ${D}/${systemd_unitdir}/system - fi -} diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb new file mode 100644 index 0000000000..5bf6373a81 --- /dev/null +++ b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb @@ -0,0 +1,92 @@ +SUMMARY = "Fast and Lightweight HTTP Server for Linux" +HOMEPAGE = "http://monkey-project.com" +BUGTRACKER = "https://github.com/monkey/monkey/issues" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" + +SECTION = "net" + +SRC_URI = "git://github.com/monkey/monkey;branch=1.6;protocol=https \ + file://0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch \ + file://monkey.service \ + file://monkey.init" + +SRCREV = "7999b487fded645381d387ec0e057e92407b0d2c" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_URI = "https://github.com/monkey/monkey/releases" +UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz" + +EXTRA_OECMAKE = "-DINSTALL_LOGDIR=${localstatedir}/log/monkey/ \ + -DPID_FILE=/run/monkey.pid \ + -DINSTALL_SYSCONFDIR=${sysconfdir}/monkey/ \ + -DWITH_PLUGINS=* \ + -DWITHOUT_PLUGINS=mbedtls \ + -DWITH_DEBUG=1 \ + -DDEFAULT_USER='www-data' \ + -DWITH_SYSTEM_MALLOC=1 \ + " + +EXTRA_OECMAKE:append:libc-musl = " -DWITH_MUSL=1 " + +# GCC-10+ defaults to -fno-common +CFLAGS += "-fcommon" + +DISABLE_STATIC = "" + +inherit cmake pkgconfig update-rc.d systemd + +OECMAKE_GENERATOR = "Unix Makefiles" + +do_configure:append() { + sed -i -e 's|${STAGING_BINDIR_TOOLCHAIN}/||g' ${S}/include/monkey/mk_env.h +} + +do_install:append() { + rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/run ${D}${localstatedir}/log + rmdir --ignore-fail-on-non-empty ${D}${localstatedir} + install -Dm 0755 ${UNPACKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey + # Create /var/log/monkey in runtime. + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then + install -d ${D}${nonarch_libdir}/tmpfiles.d + echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${BPN} -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf + fi + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then + install -d ${D}${sysconfdir}/default/volatiles + echo "d ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN} + fi + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -Dm 644 ${UNPACKDIR}/monkey.service ${D}/${systemd_unitdir}/system/monkey.service + fi +} + +INITSCRIPT_NAME = "monkey" +INITSCRIPT_PARAMS = "defaults 70" + +SYSTEMD_SERVICE:${PN} = "monkey.service" + +PACKAGES += "${PN}-plugins" + +FILES:${PN}-plugins = "${libdir}/monkey-*.so" + +FILES:${PN} += "${nonarch_libdir}/tmpfiles.d" + +CONFFILES:${PN} = "${sysconfdir}/monkey/monkey.conf \ + ${sysconfdir}/monkey/sites/default \ + ${sysconfdir}/monkey/monkey.mime \ + ${sysconfdir}/monkey/plugins.load \ + ${sysconfdir}/monkey/plugins/proxy_reverse/proxy_reverse.conf \ + ${sysconfdir}/monkey/plugins/mandril/mandril.conf \ + ${sysconfdir}/monkey/plugins/fastcgi/fastcgi.conf \ + ${sysconfdir}/monkey/plugins/logger/logger.conf \ + ${sysconfdir}/monkey/plugins/cgi/cgi.conf \ + ${sysconfdir}/monkey/plugins/cheetah/cheetah.conf \ + ${sysconfdir}/monkey/plugins/dirlisting/dirhtml.conf \ + ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/header.theme \ + ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/footer.theme \ + ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/entry.theme \ + ${sysconfdir}/monkey/plugins/auth/README \ + ${sysconfdir}/monkey/plugins/auth/monkey.users \ + " + diff --git a/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch b/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch new file mode 100644 index 0000000000..7ba2a1fb85 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch @@ -0,0 +1,39 @@ +From 0c3c669464a514cf8d0cac08282ecb2b486f440f Mon Sep 17 00:00:00 2001 +From: Joe Slater <joe.slater@windriver.com> +Date: Tue, 3 Oct 2023 19:21:17 +0000 +Subject: [PATCH] configure: libxslt conf + +Modify to find libxslt related include files under sysroot. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater <joe.slater@windriver.com> +--- + auto/lib/libxslt/conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf +index 3063ac7..eb77886 100644 +--- a/auto/lib/libxslt/conf ++++ b/auto/lib/libxslt/conf +@@ -12,7 +12,7 @@ + #include <libxslt/xsltInternals.h> + #include <libxslt/transform.h> + #include <libxslt/xsltutils.h>" +- ngx_feature_path="/usr/include/libxml2" ++ ngx_feature_path="=/usr/include/libxml2" + ngx_feature_libs="-lxml2 -lxslt" + ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; + xsltStylesheetPtr sheet = NULL; +@@ -100,7 +100,7 @@ fi + ngx_feature_name=NGX_HAVE_EXSLT + ngx_feature_run=no + ngx_feature_incs="#include <libexslt/exslt.h>" +- ngx_feature_path="/usr/include/libxml2" ++ ngx_feature_path="=/usr/include/libxml2" + ngx_feature_libs="-lexslt" + ngx_feature_test="exsltRegisterAll();" + . auto/feature +-- +2.35.5 + diff --git a/meta-webserver/recipes-httpd/nginx/files/default_server.site b/meta-webserver/recipes-httpd/nginx/files/default_server.site new file mode 100644 index 0000000000..7a8a215cfa --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/default_server.site @@ -0,0 +1,14 @@ +# Default server configuration +server { + listen 80 default_server; + listen [::]:80 default_server; + + root /var/www/localhost/html; + + index index.html index.htm; + + server_name _; + + # redirect server error pages to the static page /50x.html + error_page 500 502 503 504 /50x.html; +} diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch new file mode 100644 index 0000000000..90159a6677 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch @@ -0,0 +1,99 @@ +Description: Fix NGINX pidfile handling +Author: Tj <ubuntu@iam.tj> +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864 +Last-Update: 2019-06-04 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ + +Upstream-Status: Pending + +This patch is from ubuntu, https://github.com/aroth-arsoft/pkg-nginx/blob +/master/debian/patches/nginx-fix-pidfile.patch, for fix below +error info: +nginx.service: failed to parse pid from file /run/nginx/nginx.pid: +invalid argument + +Signed-off-by: Changqing Li <changqing.li@windriver.com> + +diff --git a/src/core/nginx.c b/src/core/nginx.c +index 9fcb0eb2..083eba1d 100644 +--- a/src/core/nginx.c ++++ b/src/core/nginx.c +@@ -338,14 +338,21 @@ main(int argc, char *const *argv) + ngx_process = NGX_PROCESS_MASTER; + } + ++ /* tell-tale to detect if this is parent or child process */ ++ ngx_int_t child_pid = NGX_BUSY; ++ + #if !(NGX_WIN32) + + if (ngx_init_signals(cycle->log) != NGX_OK) { + return 1; + } + ++ /* tell-tale that this code has been executed */ ++ child_pid--; ++ + if (!ngx_inherited && ccf->daemon) { +- if (ngx_daemon(cycle->log) != NGX_OK) { ++ child_pid = ngx_daemon(cycle->log); ++ if (child_pid == NGX_ERROR) { + return 1; + } + +@@ -358,8 +365,19 @@ main(int argc, char *const *argv) + + #endif + +- if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) { +- return 1; ++ /* If ngx_daemon() returned the child's PID in the parent process ++ * after the fork() set ngx_pid to the child_pid, which gets ++ * written to the PID file, then exit. ++ * For NGX_WIN32 always write the PID file ++ * For others, only write it from the parent process */ ++ if (child_pid < NGX_OK || child_pid > NGX_OK) { ++ ngx_pid = child_pid > NGX_OK ? child_pid : ngx_pid; ++ if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) { ++ return 1; ++ } ++ } ++ if (child_pid > NGX_OK) { ++ exit(0); + } + + if (ngx_log_redirect_stderr(cycle) != NGX_OK) { +diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c +index 385c49b6..3719854c 100644 +--- a/src/os/unix/ngx_daemon.c ++++ b/src/os/unix/ngx_daemon.c +@@ -7,14 +7,17 @@ + + #include <ngx_config.h> + #include <ngx_core.h> ++#include <unistd.h> + + + ngx_int_t + ngx_daemon(ngx_log_t *log) + { + int fd; ++ /* retain the return value for passing back to caller */ ++ pid_t pid_child = fork(); + +- switch (fork()) { ++ switch (pid_child) { + case -1: + ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed"); + return NGX_ERROR; +@@ -23,7 +26,8 @@ ngx_daemon(ngx_log_t *log) + break; + + default: +- exit(0); ++ /* let caller do the exit() */ ++ return pid_child; + } + + ngx_parent = ngx_pid; diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.conf b/meta-webserver/recipes-httpd/nginx/files/nginx.conf index 69d3a2adc9..6d219422b3 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx.conf +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.conf @@ -1,118 +1,47 @@ - user www; -worker_processes 1; - -error_log /var/log/nginx/error.log; -#error_log logs/error.log notice; -#error_log logs/error.log info; - -pid /run/nginx/nginx.pid; - +worker_processes 1; +pid /run/nginx/nginx.pid; +include /etc/nginx/modules-enabled/*.conf; events { - worker_connections 1024; + worker_connections 768; + # multi_accept on; } - http { - include mime.types; + # Basic Settings + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + # server_tokens off; + + # server_names_hash_bucket_size 64; + # server_name_in_redirect off; + + include /etc/nginx/mime.types; default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - #keepalive_timeout 0; - keepalive_timeout 65; - - #gzip on; - - server { - listen 80; - server_name localhost; - - #charset koi8-r; - - #access_log logs/host.access.log main; - - location / { - root /var/www/localhost/html; - index index.html index.htm; - } - - #error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /var/www/localhost/html; - } - - # proxy the PHP scripts to Apache listening on 127.0.0.1:80 - # - #location ~ \.php$ { - # proxy_pass http://127.0.0.1; - #} - - # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 - # - #location ~ \.php$ { - # root html; - # fastcgi_pass 127.0.0.1:9000; - # fastcgi_index index.php; - # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; - # include fastcgi_params; - #} - - # deny access to .htaccess files, if Apache's document root - # concurs with nginx's one - # - #location ~ /\.ht { - # deny all; - #} - } - - - # another virtual host using mix of IP-, name-, and port-based configuration - # - #server { - # listen 8000; - # listen somename:8080; - # server_name somename alias another.alias; - - # location / { - # root html; - # index index.html index.htm; - # } - #} - - - # HTTPS server - # - #server { - # listen 443; - # server_name localhost; - - # ssl on; - # ssl_certificate cert.pem; - # ssl_certificate_key cert.key; + # SSL Settings + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE + ssl_prefer_server_ciphers on; - # ssl_session_timeout 5m; + ## Logging + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; - # ssl_protocols SSLv2 SSLv3 TLSv1; - # ssl_ciphers HIGH:!aNULL:!MD5; - # ssl_prefer_server_ciphers on; + ## Gzip settings + gzip on; - # location / { - # root html; - # index index.html index.htm; - # } - #} + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_buffers 16 8k; + gzip_http_version 1.1; + gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + ## Virtual Host Configs + include /etc/nginx/conf.d/*.conf; + include /etc/nginx/sites-enabled/*; } diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service index ce99061717..9a6ca96517 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx.service +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service @@ -1,11 +1,15 @@ [Unit] -Description=Nginx Server -After=network.target +Description=The NGINX HTTP and reverse proxy server +After=syslog.target network.target remote-fs.target nss-lookup.target + [Service] Type=forking PIDFile=/run/nginx/nginx.pid +ExecStartPre=@SBINDIR@/nginx -t ExecStart=@SBINDIR@/nginx -ExecStop=@SBINDIR@/nginx -s stop ExecReload=@SBINDIR@/nginx -s reload +ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID +PrivateTmp=true + [Install] WantedBy=multi-user.target diff --git a/meta-webserver/recipes-httpd/nginx/files/proxy_params b/meta-webserver/recipes-httpd/nginx/files/proxy_params new file mode 100644 index 0000000000..df75bc5d74 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/proxy_params @@ -0,0 +1,4 @@ +proxy_set_header Host $http_host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Proto $scheme; diff --git a/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-webserver/recipes-httpd/nginx/nginx.inc index e6ae52a09f..2714c3d22f 100644 --- a/meta-webserver/recipes-httpd/nginx/nginx.inc +++ b/meta-webserver/recipes-httpd/nginx/nginx.inc @@ -9,24 +9,28 @@ LICENSE = "BSD-2-Clause" SECTION = "net" -DEPENDS = "libpcre zlib openssl" +DEPENDS = "libpcre zlib" SRC_URI = " \ http://nginx.org/download/nginx-${PV}.tar.gz \ file://nginx-cross.patch \ file://0001-Allow-the-overriding-of-the-endianness-via-the-confi.patch \ file://nginx.conf \ + file://default_server.site \ + file://proxy_params \ file://nginx.init \ file://nginx-volatile.conf \ file://nginx.service \ + file://nginx-fix-pidfile.patch \ + file://0001-configure-libxslt-conf.patch \ " inherit siteinfo update-rc.d useradd systemd -SYSTEMD_SERVICE_${PN} = "nginx.service" +SYSTEMD_SERVICE:${PN} = "nginx.service" -CFLAGS_append = " -fPIE -pie" -CXXFLAGS_append = " -fPIE -pie" +CFLAGS:append = " -fPIE -pie" +CXXFLAGS:append = " -fPIE -pie" NGINX_WWWDIR ?= "${localstatedir}/www/localhost" NGINX_USER ?= "www" @@ -34,7 +38,18 @@ NGINX_USER ?= "www" EXTRA_OECONF = "" DISABLE_STATIC = "" +PACKAGECONFIG ??= "ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[gunzip] = "--with-http_gunzip_module,," PACKAGECONFIG[http2] = "--with-http_v2_module,," +PACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl" +PACKAGECONFIG[http-auth-request] = "--with-http_auth_request_module,," +PACKAGECONFIG[ipv6] = "--with-ipv6,," +PACKAGECONFIG[webdav] = "--with-http_dav_module,," +PACKAGECONFIG[stream] = "--with-stream,," +PACKAGECONFIG[http-sub-module] = "--with-http_sub_module,," + +PACKAGECONFIG[xslt] = "--with-http_xslt_module,,libxslt" do_configure () { if [ "${SITEINFO_BITS}" = "64" ]; then @@ -58,7 +73,7 @@ do_configure () { --with-ptr-size=${PTRSIZE} \ --with-sig-atomic-t=${PTRSIZE} \ --with-size-t=${PTRSIZE} \ - --with-off-t=${PTRSIZE} \ + --with-off-t=8 \ --with-time-t=${PTRSIZE} \ --with-sys-nerr=132 \ --conf-path=${sysconfdir}/nginx/nginx.conf \ @@ -71,7 +86,7 @@ do_configure () { --http-scgi-temp-path=/run/nginx/scgi_temp \ --pid-path=/run/nginx/nginx.pid \ --prefix=${prefix} \ - --with-http_ssl_module \ + --with-threads \ --with-http_gzip_static_module \ ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} } @@ -83,44 +98,62 @@ do_install () { install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/${BPN} - - - -" \ > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf - echo "d /${localstatedir}/log/${BPN} 0755 root root -" \ + echo "d ${localstatedir}/log/${BPN} 0755 root root -" \ >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf fi install -d ${D}${sysconfdir}/${BPN} - ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run + ln -rs ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run install -d ${D}${NGINX_WWWDIR} - mv ${D}/usr/html ${D}${NGINX_WWWDIR}/ + mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/ chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR} install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx + install -m 0755 ${UNPACKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${sysconfdir}/init.d/nginx sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/init.d/nginx install -d ${D}${sysconfdir}/nginx - install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf + install -m 0644 ${UNPACKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf + sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/nginx/nginx.conf sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf sed -i 's/^user.*/user ${NGINX_USER};/g' ${D}${sysconfdir}/nginx/nginx.conf + install -Dm 0644 ${UNPACKDIR}/default_server.site ${D}${sysconfdir}/nginx/sites-available/default_server + sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/sites-available/default_server install -d ${D}${sysconfdir}/nginx/sites-enabled + ln -s ../sites-available/default_server ${D}${sysconfdir}/nginx/sites-enabled/ + + install -m 0644 ${UNPACKDIR}/proxy_params ${D}${sysconfdir}/nginx/proxy_params install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx + install -m 0644 ${UNPACKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx sed -i 's,@NGINX_USER@,${NGINX_USER},g' ${D}${sysconfdir}/default/volatiles/99_nginx + # cleanup configuration folder + rm ${D}${sysconfdir}/nginx/*.default + + # add additional configuration folders + install -d ${D}${sysconfdir}/nginx/modules-available + install -d ${D}${sysconfdir}/nginx/modules-enabled + install -d ${D}${sysconfdir}/nginx/server-conf.d + install -d ${D}${sysconfdir}/nginx/conf.d + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/nginx.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${UNPACKDIR}/nginx.service ${D}${systemd_unitdir}/system/ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BASE_BINDIR@,${base_bindir},g' \ ${D}${systemd_unitdir}/system/nginx.service fi + + rm -rf ${D}${localstatedir}/log/ } -pkg_postinst_${PN} () { +pkg_postinst:${PN} () { if [ -z "$D" ]; then - if type systemd-tmpfiles >/dev/null; then + if type systemd-tmpfiles >/dev/null 2>&1; then systemd-tmpfiles --create elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then ${sysconfdir}/init.d/populate-volatile.sh update @@ -128,12 +161,12 @@ pkg_postinst_${PN} () { fi } -FILES_${PN} += " \ +FILES:${PN} += " \ ${localstatedir}/ \ ${systemd_unitdir}/system/nginx.service \ " -CONFFILES_${PN} = " \ +CONFFILES:${PN} = " \ ${sysconfdir}/nginx/nginx.conf \ ${sysconfdir}/nginx/fastcgi.conf \ ${sysconfdir}/nginx/fastcgi_params \ @@ -149,8 +182,9 @@ INITSCRIPT_NAME = "nginx" INITSCRIPT_PARAMS = "defaults 92 20" USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = " \ +USERADD_PARAM:${PN} = " \ --system --no-create-home \ --home ${NGINX_WWWDIR} \ --groups www-data \ + --shell ${base_sbindir}/nologin \ --user-group ${NGINX_USER}" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb deleted file mode 100644 index 85ad29b081..0000000000 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb +++ /dev/null @@ -1,6 +0,0 @@ -require nginx.inc - -LIC_FILES_CHKSUM = "file://LICENSE;md5=903753de5f86a1ee0341fd2f9491b282" - -SRC_URI[md5sum] = "4d2fc76211435f029271f1cf6d7eeae3" -SRC_URI[sha256sum] = "305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb deleted file mode 100644 index 9234794472..0000000000 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.13.9.bb +++ /dev/null @@ -1,10 +0,0 @@ -require nginx.inc - -# 1.12.x branch is the current stable branch, the recommended default -# 1.13.x is the current mainline branches containing all new features -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe" - -SRC_URI[md5sum] = "dcd482dd98d2022659212f183e8fe81b" -SRC_URI[sha256sum] = "5faea18857516fe68d30be39c3032bd22ed9cf85e1a6fdf32e3721d96ff7fa42" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb new file mode 100644 index 0000000000..d0371dd3cc --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb @@ -0,0 +1,10 @@ +require nginx.inc + +# 1.24.x branch is the current stable branch, the recommended default +# 1.25.x is the current mainline branches containing all new features +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=79ad2eb837299421c4435dedc8897b3d" + +SRC_URI[sha256sum] = "64c5b975ca287939e828303fa857d22f142b251f17808dfe41733512d9cded86" + diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.26.0.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.26.0.bb new file mode 100644 index 0000000000..0ce940d429 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.26.0.bb @@ -0,0 +1,6 @@ +require nginx.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6547d7e5628787ee2a9c5a3480eb628" + +SRC_URI[sha256sum] = "d2e6c8439d6c6db5015d8eaab2470ab52aef85a7bf363182879977e084370497" + diff --git a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch b/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch deleted file mode 100644 index 8cd4682355..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 7fa0d31ec5c0be9dca84a03851b2d44f61527ec8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com> -Date: Sun, 4 Dec 2011 16:01:04 +0100 -Subject: [PATCH] GNUmakefile: add possibility to override variables -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -this is useful for cross compilation - -Signed-off-by: Eric BĂ©nard <eric@eukrea.com> ---- -Upstream-Status: Inappropriate [embedded specific] - src/libbsd/GNUmakefile | 10 +++++----- - src/libmy/GNUmakefile | 26 +++++++++++++------------- - src/nhttpd/GNUmakefile | 12 ++++++------ - src/tools/GNUmakefile | 8 ++++---- - 4 files changed, 28 insertions(+), 28 deletions(-) - -diff --git a/src/libbsd/GNUmakefile b/src/libbsd/GNUmakefile -index e2d01a3..b034bc6 100644 ---- a/src/libbsd/GNUmakefile -+++ b/src/libbsd/GNUmakefile -@@ -1,12 +1,12 @@ --CCFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes -c -+CFLAGS := -O2 -pipe -Wall -Werror -Wstrict-prototypes -c - - libbsd.a: strlcpy.o strlcat.o -- ar -r libbsd.a strlcpy.o strlcat.o -- ranlib libbsd.a -+ $(AR) -r libbsd.a strlcpy.o strlcat.o -+ $(RANLIB) libbsd.a - - strlcpy.o: strlcpy.c -- cc ${CCFLAGS} strlcpy.c -+ $(CC) $(CFLAGS) strlcpy.c - strlcat.o: strlcat.c -- cc ${CCFLAGS} strlcat.c -+ $(CC) $(CFLAGS) strlcat.c - clean: - rm -f libbsd.a *.o -diff --git a/src/libmy/GNUmakefile b/src/libmy/GNUmakefile -index ce90dd9..891ffea 100644 ---- a/src/libmy/GNUmakefile -+++ b/src/libmy/GNUmakefile -@@ -1,30 +1,30 @@ --CCFLAGS = -O2 -Wall -Werror -Wstrict-prototypes -c -+CFLAGS := -O2 -Wall -Werror -Wstrict-prototypes -c - - libmy.a: strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o -- ar -r libmy.a strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o -- ranlib libmy.a -+ $(AR) -r libmy.a strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o -+ $(RANLIB) libmy.a - - strcutl.o: strcutl.c -- cc ${CCFLAGS} strcutl.c -+ $(CC) $(CFLAGS) strcutl.c - strcutw.o: strcutw.c -- cc ${CCFLAGS} strcutw.c -+ $(CC) $(CFLAGS) strcutw.c - strcuts.o: strcuts.c -- cc ${CCFLAGS} strcuts.c -+ $(CC) $(CFLAGS) strcuts.c - strcuti.o: strcuti.c -- cc ${CCFLAGS} strcuti.c -+ $(CC) $(CFLAGS) strcuti.c - strcutf.o: strcutf.c -- cc ${CCFLAGS} strcutf.c -+ $(CC) $(CFLAGS) strcutf.c - strlower.o: strlower.c -- cc ${CCFLAGS} strlower.c -+ $(CC) $(CFLAGS) strlower.c - strb64d.o: strb64d.c -- cc ${CCFLAGS} strb64d.c -+ $(CC) $(CFLAGS) strb64d.c - - flog.o: flog.c -- cc ${CCFLAGS} flog.c -+ $(CC) $(CFLAGS) flog.c - flogd.o: flogd.c -- cc ${CCFLAGS} flogd.c -+ $(CC) $(CFLAGS) flogd.c - fparse.o: fparse.c -- cc ${CCFLAGS} fparse.c -+ $(CC) $(CFLAGS) fparse.c - - clean: - rm -f libmy.a *.o -diff --git a/src/nhttpd/GNUmakefile b/src/nhttpd/GNUmakefile -index f6d12de..9524911 100644 ---- a/src/nhttpd/GNUmakefile -+++ b/src/nhttpd/GNUmakefile -@@ -1,20 +1,20 @@ - # $nostromo: GNUmakefile,v 1.6 2016/04/12 19:02:06 hacki Exp $ - --CCFLAGS = -O2 -pipe -Wall -Wstrict-prototypes -c -+CFLAGS := -O2 -pipe -Wall -Wstrict-prototypes -c - - nhttpd: main.o http.o sys.o -- cc -L../libmy -L../libbsd -o nhttpd main.o http.o sys.o -lmy -lbsd -lssl -lcrypt -- strip nhttpd -+ $(CC) -L../libmy -L../libbsd -o nhttpd main.o http.o sys.o -lmy -lbsd -lssl -lcrypt -+# $(STRIP) nhttpd - nroff -Tascii -c -mandoc nhttpd.8 > nhttpd.cat8 - - main.o: main.c -- cc ${CCFLAGS} main.c -+ $(CC) $(CFLAGS) main.c - - http.o: http.c -- cc ${CCFLAGS} http.c -+ $(CC) $(CFLAGS) http.c - - sys.o: sys.c -- cc ${CCFLAGS} sys.c -+ $(CC) $(CFLAGS) sys.c - - clean: - rm -f nhttpd nhttpd.cat8 *.o -diff --git a/src/tools/GNUmakefile b/src/tools/GNUmakefile -index 15bea61..663ddb5 100644 ---- a/src/tools/GNUmakefile -+++ b/src/tools/GNUmakefile -@@ -1,13 +1,13 @@ - # $nostromo: GNUmakefile,v 1.3 2016/04/12 19:02:58 hacki Exp $ - --CCFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes -c -+CFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes - - crypt: crypt.o -- cc -L../libbsd -o crypt crypt.o -lcrypt -lbsd -- strip crypt -+ $(CC) $(CFLAGS) -L../libbsd -o crypt crypt.o -lcrypt -lbsd -+# $(STRIP) crypt - - crypt.o: crypt.c -- cc ${CCFLAGS} crypt.c -+ $(CC) $(CFLAGS) -c crypt.c - - clean: - rm -f crypt *.o --- -1.7.6.4 - diff --git a/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf b/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf deleted file mode 100644 index 6674bb696c..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf +++ /dev/null @@ -1,55 +0,0 @@ -# MAIN [MANDATORY] - -servername localhost -#servername www.nazgul.ch:8080 -serverlisten * -#serverlisten 81.221.21.250 127.0.0.1 ::1 -serveradmin webmaster@localhost -serverroot /var/nostromo -servermimes /var/nostromo/conf/mimes -docroot /var/nostromo/htdocs -docindex index.html - -# LOGS [OPTIONAL] - -logpid /var/run/nostromo/nhttpd.pid -#logaccess /var/log/nostromo/access_log - -# SETUID [RECOMMENDED] - -user www-data - -# BASIC AUTHENTICATION [OPTIONAL] - -#htaccess .htaccess -#htpasswd /var/nostromo/conf/.htpasswd -#htpasswd +bsdauth -#htpasswd +bsdauthnossl - -# SSL [OPTIONAL] - -#sslport 443 -#sslcert /etc/ssl/server.crt -#sslcertkey /etc/ssl/server.key - -# CUSTOM RESPONSES [OPTIONAL] -# -# The custom responses are searched in the corresponding document root. - -#custom_401 custom_401.html -#custom_403 custom_403.html -#custom_404 custom_404.html - -# ALIASES [OPTIONAL] - -/icons /var/nostromo/icons - -# VIRTUAL HOSTS [OPTIONAL] - -#www.rahel.ch /var/nostromo/htdocs/www.rahel.ch -#www.rahel.ch:8080 /var/nostromo/htdocs/www.rahel.ch - -# HOMEDIRS [OPTIONAL] - -#homedirs /home -#homedirs_public public_www diff --git a/meta-webserver/recipes-httpd/nostromo/files/nostromo b/meta-webserver/recipes-httpd/nostromo/files/nostromo deleted file mode 100644 index 8a28868829..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/files/nostromo +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -PATH=/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=nhttpd -NAME=nhttpd -DESC="Nostromo Web Server" -OPTS="-c /etc/nhttpd.conf" - -case "$1" in - start) - echo -n "Starting $DESC: " - start-stop-daemon --start -x "$DAEMON" -- $OPTS - echo "$NAME." - ;; - stop) - echo -n "Stopping $DESC: " - start-stop-daemon --stop -x "$DAEMON" - echo "$NAME." - ;; - restart|force-reload) - echo -n "Restarting $DESC: " - start-stop-daemon --stop -x "$DAEMON" - sleep 1 - start-stop-daemon --start -x "$DAEMON" -- $OPTS - echo "$NAME." - ;; - *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf b/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf deleted file mode 100644 index b7a9f4886e..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf +++ /dev/null @@ -1 +0,0 @@ -d /run/nostromo - www-data www-data - diff --git a/meta-webserver/recipes-httpd/nostromo/files/volatiles b/meta-webserver/recipes-httpd/nostromo/files/volatiles deleted file mode 100644 index 40924960c6..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/files/volatiles +++ /dev/null @@ -1,2 +0,0 @@ -d www-data www-data 0775 /var/run/nostromo none -d www-data www-data 0775 /var/log/nostromo none diff --git a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb b/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb deleted file mode 100644 index 16f45ce666..0000000000 --- a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "A simple, fast and secure HTTP server" -HOMEPAGE = "http://www.nazgul.ch/dev_nostromo.html" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://src/nhttpd/main.c;beginline=2;endline=14;md5=0bb3711a867b9704d3bfabcf5529b64e" - -SRC_URI = "http://www.nazgul.ch/dev/${BPN}-${PV}.tar.gz \ - file://0001-GNUmakefile-add-possibility-to-override-variables.patch \ - file://nhttpd.conf \ - file://volatiles \ - file://tmpfiles.conf \ - file://nostromo \ -" - -SRC_URI[md5sum] = "27aa241d78ff78920354c3e03a5026ea" -SRC_URI[sha256sum] = "541494ecfeafec58c0876ccc90cc23b06e0144f6f42029af44c7cdb1f411e8eb" - -TARGET_CC_ARCH += "${LDFLAGS}" - -DEPENDS = "openssl groff-native base-passwd" - -inherit update-rc.d - -INITSCRIPT_NAME = "nostromo" -INITSCRIPT_PARAMS = "defaults 70" - -do_compile() { - oe_runmake -} - -do_install() { - install -d ${D}/${sbindir} - install -m 0755 src/nhttpd/nhttpd ${D}/${sbindir}/nhttpd - install -m 0755 src/tools/crypt ${D}/${sbindir}/crypt - install -d ${D}/${mandir}/man8 - install -m 0444 src/nhttpd/nhttpd.8 ${D}/${mandir}/man8/nhttpd.8 - install -d ${D}${localstatedir}/nostromo/conf - install -d ${D}${localstatedir}/nostromo/htdocs/cgi-bin - install -d ${D}${localstatedir}/nostromo/icons - install -d ${D}${sysconfdir}/init.d - install -m 0644 conf/mimes ${D}${localstatedir}/nostromo/conf/mimes - install -m 0644 ${WORKDIR}/nhttpd.conf ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/nostromo ${D}${sysconfdir}/init.d - install -D -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/nostromo - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -D -m 0644 ${WORKDIR}/tmpfiles.conf ${D}${sysconfdir}/tmpfiles.d/nostromo.conf - fi - install -m 0644 htdocs/index.html ${D}${localstatedir}/nostromo/htdocs/index.html - install -m 0644 htdocs/nostromo.gif ${D}${localstatedir}/nostromo/htdocs/nostromo.gif - install -m 0644 icons/dir.gif ${D}${localstatedir}/nostromo/icons/dir.gif - install -m 0644 icons/file.gif ${D}${localstatedir}/nostromo/icons/file.gif - chown -R www-data:www-data ${D}/${localstatedir}/nostromo -} - -CONFFILES_${PN} += "/var/nostromo/conf/mimes ${sysconfdir}/nhttpd.conf" - -pkg_postinst_${PN} () { - if [ -z "$D" ]; then - if [ -e /sys/fs/cgroup/systemd ]; then - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/nostromo.conf - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch b/meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch new file mode 100644 index 0000000000..a1783a7adb --- /dev/null +++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch @@ -0,0 +1,51 @@ +From f3889e5870e9761ee6113fac7f38aa44cc43e46c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 7 Sep 2022 00:30:52 -0700 +Subject: [PATCH] Define _GNU_SOURCE if HAVE_SIGSET is set + +This enforces using sigset() API which needs _GNU_SOURCE macro to be +defined + +Upstream-Status: Submitted [https://github.com/blueness/sthttpd/pull/16] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libhttpd.c | 5 ++++- + src/thttpd.c | 4 ++++ + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/libhttpd.c b/src/libhttpd.c +index fa42c10..669be11 100644 +--- a/src/libhttpd.c ++++ b/src/libhttpd.c +@@ -25,9 +25,12 @@ + ** SUCH DAMAGE. + */ + +- + #include <config.h> + ++#ifdef HAVE_SIGSET ++#define _GNU_SOURCE ++#endif ++ + //system headers + #include <sys/types.h> + #include <sys/param.h> +diff --git a/src/thttpd.c b/src/thttpd.c +index ad97188..3c7a449 100644 +--- a/src/thttpd.c ++++ b/src/thttpd.c +@@ -28,6 +28,10 @@ + + #include <config.h> + ++#ifdef HAVE_SIGSET ++#define _GNU_SOURCE ++#endif ++ + //system headers + #include <sys/param.h> + #include <sys/types.h> +-- +2.37.3 + diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb index 37bd7537dd..ec188cc482 100644 --- a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb +++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb @@ -4,22 +4,25 @@ HOMEPAGE = "http://opensource.dyc.edu/sthttpd" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872" -DEPENDS += "base-passwd" +DEPENDS += "base-passwd virtual/crypt" -SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ +SRCREV = "2845bf5bff2b820d2336c8c8061cbfc5f271e720" +SRC_URI = "git://github.com/blueness/${BPN};branch=master;protocol=https \ + file://0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch \ file://thttpd.service \ file://thttpd.conf \ file://init" -SRC_URI[md5sum] = "3cda1b6c8c8542b1510eadb8e540d8b6" -SRC_URI[sha256sum] = "a1ee2806432eaf5b5dd267a0523701f9f1fa00fefd499d5bec42165a41e05846" - UPSTREAM_CHECK_URI = "https://github.com/blueness/sthttpd/releases/" UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz" -S = "${WORKDIR}/sthttpd-${PV}" +S = "${WORKDIR}/git" + +inherit autotools update-rc.d systemd update-alternatives -inherit autotools update-rc.d systemd +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE:${PN}-doc = "htpasswd.1" +ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" SRV_DIR ?= "${servicedir}/www" @@ -27,21 +30,21 @@ SRV_DIR ?= "${servicedir}/www" # but ${SRV_DIR} is not installed chgrp'd to the group by default. WEBGROUP ?= "www-data" -do_configure_prepend () { +do_configure:prepend () { export WEBDIR=${SRV_DIR} export WEBGROUP=${WEBGROUP} } -do_install_append () { +do_install:append () { install -d ${D}${sysconfdir}/init.d - install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/thttpd - install -c -m 755 ${WORKDIR}/thttpd.conf ${D}${sysconfdir} + install -c -m 755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/thttpd + install -c -m 755 ${UNPACKDIR}/thttpd.conf ${D}${sysconfdir} sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${sysconfdir}/init.d/thttpd sed -i -e 's,@@SRVDIR,${SRV_DIR},g' ${D}${sysconfdir}/thttpd.conf sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/thttpd install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/thttpd.service ${D}${systemd_unitdir}/system + install -m 0644 ${UNPACKDIR}/thttpd.service ${D}${systemd_unitdir}/system sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_unitdir}/system/thttpd.service sed -i 's!/var/!${localstatedir}/!g' ${D}${systemd_unitdir}/system/thttpd.service sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${systemd_unitdir}/system/thttpd.service @@ -50,7 +53,9 @@ do_install_append () { INITSCRIPT_NAME = "thttpd" INITSCRIPT_PARAMS = "defaults" -SYSTEMD_SERVICE_${PN} = "thttpd.service" +SYSTEMD_SERVICE:${PN} = "thttpd.service" + +FILES:${PN} += "${SRV_DIR}" +FILES:${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug" -FILES_${PN} += "${SRV_DIR}" -FILES_${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug" +CVE_STATUS[CVE-2017-10671] = "fixed-version: No action required. The current version (2.27.1) is not affected by the CVE." |