Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
cookbook
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
redox-os
cookbook
Commits
aa5e6fe1
Commit
aa5e6fe1
authored
1 year ago
by
Chocimier
Browse files
Options
Downloads
Patches
Plain Diff
add apache-httpd
parent
c02abc83
No related branches found
Branches containing commit
No related tags found
1 merge request
!350
add apache-httpd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
recipes/wip/net/apache-httpd/recipe.toml
+50
-0
50 additions, 0 deletions
recipes/wip/net/apache-httpd/recipe.toml
recipes/wip/net/apache-httpd/redox.patch
+436
-0
436 additions, 0 deletions
recipes/wip/net/apache-httpd/redox.patch
with
486 additions
and
0 deletions
recipes/wip/net/apache-httpd/recipe.toml
0 → 100644
+
50
−
0
View file @
aa5e6fe1
#apache-httpd
[source]
tar
=
"https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.bz2"
patches
=
[
"redox.patch"
,
]
[build]
dependencies
=
[
"apr"
,
"apr-util"
,
"curl"
,
"expat"
,
"gdbm"
,
"libuuid"
,
"libxcrypt"
,
"libxml2"
,
"openssl1"
,
"pcre"
,
"zlib"
,
]
template
=
"custom"
script
=
"""
# cookbook_configure
export COOKBOOK_MAKE_JOBS=1
export CPPFLAGS="$CPPFLAGS -I${COOKBOOK_SYSROOT}/include/apr-1 -DDEBUG=1"
export LTFLAGS="$LTFLAGS -Wall"
COOKBOOK_CONFIGURE_FLAGS=(
--build=$(/usr/bin/cc -dumpmachine)
--host=${TARGET}
--with-apr=$COOKBOOK_SYSROOT
--with-apr-util=$COOKBOOK_SYSROOT
--enable-unixd=static
--enable-authz_core=static
--enable-authz_host=static
ac_cv_prog_PCRE_CONFIG=$COOKBOOK_SYSROOT/bin/pcre-config
ap_cv_void_ptr_lt_long=no
)
cd ${COOKBOOK_SOURCE}
sed -i build/rules.mk.in -e 's/--mode=compile/& --tag=CC/'
sed -i build/rules.mk.in -e 's/--mode=link/& --tag=CC/'
"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}"
"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}"
"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}"
sed -s 's/^LoadModule /# &/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf
sed -s 's/^User daemon/User user/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf
sed -s 's/^Group daemon/Group #1000/' -i ${COOKBOOK_STAGE}/usr/local/apache2/conf/httpd.conf
touch ${COOKBOOK_STAGE}/usr/local/apache2/logs/keep_dir
"""
This diff is collapsed.
Click to expand it.
recipes/wip/net/apache-httpd/redox.patch
0 → 100644
+
436
−
0
View file @
aa5e6fe1
diff --git a/Makefile.in b/Makefile.in
index ebf7a16..296e661 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,5 +1,5 @@
-SUBDIRS = srclib os server modules support
+SUBDIRS = srclib os server modules
CLEAN_SUBDIRS = test
PROGRAM_NAME = $(progname)
@@ -7,9 +7,10 @@
PROGRAM_SOURCES = modules.c
PROGRAM_LDADD = buildmark.o $(HTTPD_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(PCRE_LIBS) $(EXTRA_LIBS) $(AP_LIBS) $(LIBS)
PROGRAM_PRELINK = $(COMPILE) -c $(top_srcdir)/server/buildmark.c
PROGRAM_DEPENDENCIES = \
+ -lc \
+ $(MPM_LIB) \
server/libmain.la \
$(BUILTIN_LIBS) \
- $(MPM_LIB) \
os/$(OS_DIR)/libos.la
sbin_PROGRAMS = $(PROGRAM_NAME)
@@ -290,28 +291,7 @@
install-man:
cd $(DESTDIR)$(manualdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
fi
-install-suexec: install-suexec-$(INSTALL_SUEXEC)
-
-install-suexec-binary:
- @if test -f $(builddir)/support/suexec; then \
- test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \
- $(INSTALL_PROGRAM) $(top_builddir)/support/suexec $(DESTDIR)$(sbindir); \
- fi
-
-install-suexec-setuid: install-suexec-binary
- @if test -f $(builddir)/support/suexec; then \
- chmod 4755 $(DESTDIR)$(sbindir)/suexec; \
- fi
-
-install-suexec-caps: install-suexec-binary
- @if test -f $(builddir)/support/suexec; then \
- setcap 'cap_setuid,cap_setgid+pe' $(DESTDIR)$(sbindir)/suexec; \
- fi
-
-suexec:
- cd support && $(MAKE) suexec
-
-x-local-distclean:
+-local-distclean:
@rm -rf autom4te.cache
# XXX: This looks awfully platform-specific [read: bad form and style]
diff --git a/configure b/configure
index 6eb60fd..46b490e 100755
--- a/configure
+++ b/configure
@@ -4998,7 +4998,7 @@
else
done
if test $apr_addto_duplicate = "0"; then
test "x$silent" != "xyes" && echo " adding \"$i\" to LDFLAGS"
- LDFLAGS="$LDFLAGS $i"
+ # LDFLAGS="$LDFLAGS $i"
fi
done
fi
@@ -5006,6 +5006,7 @@
else
APU_BINDIR=`$apu_config --bindir`
APU_INCLUDEDIR=`$apu_config --includedir`
APU_INCLUDES=`$apu_config --includes`
+ echo "$apu_config --includes" = "$APU_INCLUDES"
APU_VERSION=`$apu_config --version`
APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
fi
@@ -6268,9 +6269,9 @@
$as_echo "$as_me: Using external PCRE library from $PCRE_CONFIG" >&6;}
if test "x$PCRE_LIBS" = "x"; then
test "x$silent" != "xyes" && echo " setting PCRE_LIBS to \"`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`\""
- PCRE_LIBS="`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`"
+ PCRE_LIBS="-lpcre"
else
- apr_addto_bugger="`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`"
+ apr_addto_bugger="-lpcre"
for i in $apr_addto_bugger; do
apr_addto_duplicate="0"
for j in $PCRE_LIBS; do
@@ -40691,9 +40692,11 @@
fi
if test x${apu_found} != xobsolete; then
- AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`"
+ # AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`" -ldb-5.3
+ AP_LIBS="$AP_LIBS -laprutil-1 -lgdbm -lexpat"
fi
-AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`"
+# AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`"
+AP_LIBS="$AP_LIBS -lapr-1 -luuid -lrt -lcrypt -lpthread -ldl"
APACHE_VAR_SUBST="$APACHE_VAR_SUBST AP_LIBS"
diff --git a/os/unix/unixd.c b/os/unix/unixd.c
index 0245720..cd241d2 100644
--- a/os/unix/unixd.c
+++ b/os/unix/unixd.c
@@ -231,31 +231,6 @@
AP_DECLARE(apr_status_t) ap_unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex)
apr_lockmech_e mech = proc_mutex_mech(pmutex);
switch(mech) {
-#if APR_HAS_SYSVSEM_SERIALIZE
- case APR_LOCK_SYSVSEM:
- {
- apr_os_proc_mutex_t ospmutex;
-#if !APR_HAVE_UNION_SEMUN
- union semun {
- long val;
- struct semid_ds *buf;
- unsigned short *array;
- };
-#endif
- union semun ick;
- struct semid_ds buf = { { 0 } };
-
- apr_os_proc_mutex_get(&ospmutex, pmutex);
- buf.sem_perm.uid = ap_unixd_config.user_id;
- buf.sem_perm.gid = ap_unixd_config.group_id;
- buf.sem_perm.mode = 0600;
- ick.buf = &buf;
- if (semctl(ospmutex.crossproc, 0, IPC_SET, ick) < 0) {
- return errno;
- }
- }
- break;
-#endif
#if APR_HAS_FLOCK_SERIALIZE
case APR_LOCK_FLOCK:
{
diff --git a/server/Makefile.in b/server/Makefile.in
index 8111877..0449553 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -1,5 +1,5 @@
-CLEAN_TARGETS = gen_test_char test_char.h \
+CLEAN_TARGETS = \
ApacheCoreOS2.def httpd.exp export_files \
exports.c export_vars.h
@@ -24,12 +24,6 @@
TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h htt
include $(top_builddir)/build/rules.mk
include $(top_srcdir)/build/library.mk
-gen_test_char_OBJECTS = gen_test_char.lo
-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
util.lo: test_char.h
diff --git a/server/gen_test_char.c b/server/gen_test_char.c
deleted file mode 100644
index 248216b..0000000
--- a/server/gen_test_char.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef CROSS_COMPILE
-
-#include <ctype.h>
-#define apr_isalnum(c) (isalnum(((unsigned char)(c))))
-#define apr_isalpha(c) (isalpha(((unsigned char)(c))))
-#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
-#define apr_isprint(c) (isprint(((unsigned char)(c))))
-#define APR_HAVE_STDIO_H 1
-#define APR_HAVE_STRING_H 1
-
-#else
-
-#include "apr.h"
-#include "apr_lib.h"
-
-#endif
-
-#if defined(WIN32) || defined(OS2)
-#define NEED_ENHANCED_ESCAPES
-#endif
-
-#if APR_HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if APR_HAVE_STRING_H
-#include <string.h>
-#endif
-
-/* A bunch of functions in util.c scan strings looking for certain characters.
- * To make that more efficient we encode a lookup table.
- */
-#define T_ESCAPE_SHELL_CMD (0x01)
-#define T_ESCAPE_PATH_SEGMENT (0x02)
-#define T_OS_ESCAPE_PATH (0x04)
-#define T_HTTP_TOKEN_STOP (0x08)
-#define T_ESCAPE_LOGITEM (0x10)
-#define T_ESCAPE_FORENSIC (0x20)
-#define T_ESCAPE_URLENCODED (0x40)
-#define T_HTTP_CTRLS (0x80)
-#define T_VCHAR_OBSTEXT (0x100)
-#define T_URI_UNRESERVED (0x200)
-
-int main(int argc, char *argv[])
-{
- unsigned c;
- unsigned short flags;
-
- printf("/* this file is automatically generated by gen_test_char, "
- "do not edit */\n"
- "#define T_ESCAPE_SHELL_CMD (%u)\n"
- "#define T_ESCAPE_PATH_SEGMENT (%u)\n"
- "#define T_OS_ESCAPE_PATH (%u)\n"
- "#define T_HTTP_TOKEN_STOP (%u)\n"
- "#define T_ESCAPE_LOGITEM (%u)\n"
- "#define T_ESCAPE_FORENSIC (%u)\n"
- "#define T_ESCAPE_URLENCODED (%u)\n"
- "#define T_HTTP_CTRLS (%u)\n"
- "#define T_VCHAR_OBSTEXT (%u)\n"
- "#define T_URI_UNRESERVED (%u)\n"
- "\n"
- "static const unsigned short test_char_table[256] = {",
- T_ESCAPE_SHELL_CMD,
- T_ESCAPE_PATH_SEGMENT,
- T_OS_ESCAPE_PATH,
- T_HTTP_TOKEN_STOP,
- T_ESCAPE_LOGITEM,
- T_ESCAPE_FORENSIC,
- T_ESCAPE_URLENCODED,
- T_HTTP_CTRLS,
- T_VCHAR_OBSTEXT,
- T_URI_UNRESERVED
- );
-
- for (c = 0; c < 256; ++c) {
- flags = 0;
- if (c % 8 == 0)
- printf("\n ");
-
- /* escape_shell_cmd */
-#ifdef NEED_ENHANCED_ESCAPES
- /* Win32/OS2 have many of the same vulnerable characters
- * as Unix sh, plus the carriage return and percent char.
- * The proper escaping of these characters varies from unix
- * since Win32/OS2 use carets or doubled-double quotes,
- * and neither lf nor cr can be escaped. We escape unix
- * specific as well, to assure that cross-compiled unix
- * applications behave similarly when invoked on win32/os2.
- *
- * Rem please keep in-sync with apr's list in win32/filesys.c
- */
- if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n\r%", c)) {
- flags |= T_ESCAPE_SHELL_CMD;
- }
-#else
- if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n", c)) {
- flags |= T_ESCAPE_SHELL_CMD;
- }
-#endif
-
- if (!apr_isalnum(c) && !strchr("$-_.+!*'(),:@&=~", c)) {
- flags |= T_ESCAPE_PATH_SEGMENT;
- }
-
- if (!apr_isalnum(c) && !strchr("$-_.+!*'(),:;@&=/~", c)) {
- flags |= T_OS_ESCAPE_PATH;
- }
-
- if (!apr_isalnum(c) && !strchr(".-*_ ", c)) {
- flags |= T_ESCAPE_URLENCODED;
- }
-
- /* Stop for any non-'token' character, including ctrls, obs-text,
- * and "tspecials" (RFC2068) a.k.a. "separators" (RFC2616), which
- * is easier to express as characters remaining in the ASCII token set
- */
- if (!c || !(apr_isalnum(c) || strchr("!#$%&'*+-.^_`|~", c))) {
- flags |= T_HTTP_TOKEN_STOP;
- }
-
- /* Catch CTRLs other than VCHAR, HT and SP, and obs-text (RFC7230 3.2)
- * This includes only the C0 plane, not C1 (which is obs-text itself.)
- * XXX: We should verify that all ASCII C0 ctrls/DEL corresponding to
- * the current EBCDIC translation are captured, and ASCII C1 ctrls
- * corresponding are all permitted (as they fall under obs-text rule)
- */
- if (!c || (apr_iscntrl(c) && c != '\t')) {
- flags |= T_HTTP_CTRLS;
- }
-
- /* From RFC3986, the specific sets of gen-delims, sub-delims (2.2),
- * and unreserved (2.3) that are possible somewhere within a URI.
- * Spec requires all others to be %XX encoded, including obs-text.
- */
- if (c && !apr_iscntrl(c) && c != ' ') {
- flags |= T_VCHAR_OBSTEXT;
- }
-
- /* For logging, escape all control characters,
- * double quotes (because they delimit the request in the log file)
- * backslashes (because we use backslash for escaping)
- * and 8-bit chars with the high bit set
- */
- if (c && (!apr_isprint(c) || c == '"' || c == '\\' || apr_iscntrl(c))) {
- flags |= T_ESCAPE_LOGITEM;
- }
-
- /* For forensic logging, escape all control characters, top bit set,
- * :, | (used as delimiters) and % (used for escaping).
- */
- if (!apr_isprint(c) || c == ':' || c == '|' || c == '%'
- || apr_iscntrl(c) || !c) {
- flags |= T_ESCAPE_FORENSIC;
- }
-
- /* Characters in the RFC 3986 "unreserved" set.
- * https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 */
- if (c && (apr_isalnum(c) || strchr("-._~", c))) {
- flags |= T_URI_UNRESERVED;
- }
-
- printf("0x%03x%c", flags, (c < 255) ? ',' : ' ');
- }
-
- printf("\n};\n\n");
-
- printf(
- "/* we assume the folks using this ensure 0 <= c < 256... which means\n"
- " * you need a cast to (unsigned char) first, you can't just plug a\n"
- " * char in here and get it to work, because if char is signed then it\n"
- " * will first be sign extended.\n"
- " */\n"
- "#define TEST_CHAR(c, f) (test_char_table[(unsigned char)(c)] & (f))\n"
- );
-
- return 0;
-}
diff --git a/server/mpm_fdqueue.c b/server/mpm_fdqueue.c
index 3697ca7..9f9d36e 100644
--- a/server/mpm_fdqueue.c
+++ b/server/mpm_fdqueue.c
@@ -17,6 +17,7 @@
#include "mpm_fdqueue.h"
#if APR_HAS_THREADS
+#warning "apr_has_threads"
#include <apr_atomic.h>
@@ -531,4 +532,6 @@
apr_status_t ap_queue_term(fd_queue_t *queue)
return queue_interrupt(queue, 1, 1);
}
+#else
+#warning "no apr_has_threads"
#endif /* APR_HAS_THREADS */
diff --git a/server/test_char.h b/server/test_char.h
new file mode 100644
index 0000000..ebd7395
--- /dev/null
+++ b/server/test_char.h
@@ -0,0 +1,53 @@
+/* this file is automatically generated by gen_test_char, do not edit */
+#define T_ESCAPE_SHELL_CMD (1)
+#define T_ESCAPE_PATH_SEGMENT (2)
+#define T_OS_ESCAPE_PATH (4)
+#define T_HTTP_TOKEN_STOP (8)
+#define T_ESCAPE_LOGITEM (16)
+#define T_ESCAPE_FORENSIC (32)
+#define T_ESCAPE_URLENCODED (64)
+#define T_HTTP_CTRLS (128)
+#define T_VCHAR_OBSTEXT (256)
+#define T_URI_UNRESERVED (512)
+
+static const unsigned short test_char_table[256] = {
+ 0x0a8,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,
+ 0x0fe,0x07e,0x0ff,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,
+ 0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,
+ 0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,0x0fe,
+ 0x00e,0x140,0x15f,0x146,0x141,0x166,0x141,0x141,
+ 0x149,0x149,0x101,0x140,0x148,0x300,0x300,0x14a,
+ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x168,0x14b,0x14f,0x148,0x14f,0x14f,
+ 0x148,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x14f,0x15f,0x14f,0x147,0x300,
+ 0x147,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x300,0x300,0x300,0x300,0x300,
+ 0x300,0x300,0x300,0x14f,0x167,0x14f,0x341,0x0fe,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,
+ 0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e,0x17e
+};
+
+/* we assume the folks using this ensure 0 <= c < 256... which means
+ * you need a cast to (unsigned char) first, you can't just plug a
+ * char in here and get it to work, because if char is signed then it
+ * will first be sign extended.
+ */
+#define TEST_CHAR(c, f) (test_char_table[(unsigned char)(c)] & (f))
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment