diff --git a/network/library/serf/actions.py b/network/library/serf/actions.py
new file mode 100644
index 0000000000..3190576e9c
--- /dev/null
+++ b/network/library/serf/actions.py
@@ -0,0 +1,18 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import scons
+
+def build():
+ scons.make("PREFIX=/usr/ LIBDIR=/usr/lib")
+
+def install():
+ pisitools.insinto("/usr/include/serf-1/", "serf*.h")
+ pisitools.insinto("/usr/lib/", "libserf-1*")
+ pisitools.insinto("/usr/lib/pkgconfig/", "serf-1.pc")
+
+ pisitools.dodoc("CHANGES", "LICENSE", "NOTICE", "README")
\ No newline at end of file
diff --git a/network/library/serf/pspec.xml b/network/library/serf/pspec.xml
new file mode 100644
index 0000000000..15dada197d
--- /dev/null
+++ b/network/library/serf/pspec.xml
@@ -0,0 +1,79 @@
+
+
+
+
+ serf
+ https://code.google.com/p/serf/
+
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+ Apachev2
+ library
+ High-performance asynchronous HTTP client library.
+ The serf library is a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library.
+ http://serf.googlecode.com/svn/src_releases/serf-1.3.8.tar.bz2
+
+ db-devel
+ zlib-devel
+ expat-devel
+ openssl-devel
+ apr-devel
+ apr-util-devel
+ scons
+
+
+
+
+ serf
+
+ db
+ zlib
+ expat
+ openssl
+ apr
+ apr-util
+ openldap-client
+
+
+ /usr/lib
+ /usr/share/doc
+
+
+
+
+ serf-devel
+ Development files for serf
+
+ serf
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+
+
+
+
+
+ 2015-09-02
+ 1.3.8
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2014-05-30
+ 1.3.3
+ Rebuild.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2013-12-24
+ 1.3.3
+ First release
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+
diff --git a/network/library/serf/translations.xml b/network/library/serf/translations.xml
new file mode 100644
index 0000000000..d1ec00cb1d
--- /dev/null
+++ b/network/library/serf/translations.xml
@@ -0,0 +1,13 @@
+
+
+
+ serf
+ High-performance asynchronous HTTP client library.
+ The serf library is a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library.
+
+
+
+ serf-devel
+ serf için geliştirme dosyaları
+
+
\ No newline at end of file
diff --git a/programming/scm/subversion/actions.py b/programming/scm/subversion/actions.py
new file mode 100644
index 0000000000..6aa504cf0b
--- /dev/null
+++ b/programming/scm/subversion/actions.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import get
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import perlmodules
+
+def setup():
+ # Respect the user LDFLAGS
+ shelltools.system("./autogen.sh")
+
+ shelltools.export("EXTRA_LDFLAGS", get.LDFLAGS())
+
+ autotools.configure("--disable-static \
+ --with-jdk=/usr/lib/jvm/java-7-openjdk \
+ --enable-javahl \
+ --with-apr=/usr \
+ --with-apr-util=/usr \
+ --with-apache=/usr/lib/apache2/ \
+ --with-apxs \
+ --with-serf=/usr \
+ --with-sqlite=/usr \
+ --with-zlib=/usr \
+ --with-jikes=no \
+ --without-berkeley-db \
+ --disable-mod-activation")
+
+ pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ")
+
+def build():
+ # svn
+ autotools.make()
+
+ # python bindings
+ autotools.make("swig-py")
+
+ # perl bindings (needed by git-svn*)
+ # Sometimes parallel build breaks perl bindings
+ autotools.make("-j1 swig-pl")
+
+ # java bindings
+ autotools.make("-j1 javahl")
+
+def install():
+ # install svn
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ # install swig-py
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR(), "install-swig-py")
+
+ # install swig-pl
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR(), "install-swig-pl")
+
+ # install javahl
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR(), "install-javahl")
+
+ # Move py/c'into proper dir
+ pisitools.domove("/usr/lib/svn-python/svn", "/usr/lib/%s/site-packages" % get.curPYTHON())
+ pisitools.domove("/usr/lib/svn-python/libsvn", "/usr/lib/%s/site-packages" % get.curPYTHON())
+ pisitools.removeDir("/usr/lib/svn-python")
+
+ # some helper tools
+ pisitools.insinto("/usr/bin", "tools/backup/hot-backup.py", "svn-hot-backup")
+ # FIXME: these tools are replaced by new ones
+ # pisitools.insinto("/usr/bin", "contrib/client-side/svn_load_dirs.pl", "svn-load-dirs")
+ # pisitools.insinto("/usr/bin", "contrib/client-side/svnmerge.py", "svnmerge")
+ # shelltools.chmod("%s/usr/bin/svnmerge" % get.installDIR(), 0755)
+
+ # Install upstream bash completion script
+ pisitools.insinto("/etc/bash_completion.d", "tools/client-side/bash_completion", "subversion")
+
+ # Documentation and etc.
+ #pisitools.insinto("/usr/share/doc/%s" % get.srcNAME(), "contrib")
+ pisitools.insinto("/usr/share/doc/%s" % get.srcNAME(), "tools/xslt")
+ pisitools.insinto("/var/www/localhost/htdocs", "tools/xslt/*")
+
+ # Create virtual repository root
+ pisitools.dodir("/var/svn")
+
+ pisitools.dodoc("README")
+
+ # remove unnecessary files i.e. perllocal.pod, .packlist
+ perlmodules.removePacklist()
+ perlmodules.removePodfiles()
diff --git a/programming/scm/subversion/comar/package.py b/programming/scm/subversion/comar/package.py
new file mode 100644
index 0000000000..5e999a254c
--- /dev/null
+++ b/programming/scm/subversion/comar/package.py
@@ -0,0 +1,12 @@
+#!/usr/bin/python
+
+import os
+
+def postInstall(fromVersion, fromRelease, toVersion, toRelease):
+ os.system("/bin/mkdir -p /var/svn/conf")
+ os.system("/usr/bin/svnadmin create /var/svn/repos")
+
+ os.system("/bin/chmod -R 774 /var/svn/repos")
+ os.system("/bin/chmod 775 /var/svn/repos")
+
+ os.system("/bin/chown -R svn:svn /var/svn")
diff --git a/programming/scm/subversion/comar/service.py b/programming/scm/subversion/comar/service.py
new file mode 100644
index 0000000000..605a5474e8
--- /dev/null
+++ b/programming/scm/subversion/comar/service.py
@@ -0,0 +1,25 @@
+from comar.service import *
+
+serviceType = "server"
+serviceDesc = _({"en": "SVN Server",
+ "tr": "SVN Sunucusu"})
+serviceConf = "svnserve"
+
+PIDFILE = "/var/svn/svnserve.pid"
+
+# Note that "/etc/conf.d/svnserve" passes --root=/var/svn by default
+
+@synchronized
+def start():
+ startService(command="/usr/bin/svnserve",
+ args="--pid-file=%s %s" % (PIDFILE, config.get("SVNSERVE_OPTS")),
+ chuid="%s:%s" % (config.get("SVNSERVE_USER"), config.get("SVNSERVE_GROUP")),
+ donotify=True)
+
+@synchronized
+def stop():
+ stopService(pidfile=PIDFILE,
+ donotify=True)
+
+def status():
+ return isServiceRunning(pidfile=PIDFILE)
diff --git a/programming/scm/subversion/files/47_mod_dav_svn.conf b/programming/scm/subversion/files/47_mod_dav_svn.conf
new file mode 100644
index 0000000000..66b6c1457a
--- /dev/null
+++ b/programming/scm/subversion/files/47_mod_dav_svn.conf
@@ -0,0 +1,51 @@
+LoadModule dav_module modules/mod_dav.so
+LoadModule dav_svn_module modules/mod_dav_svn.so
+LoadModule authz_svn_module modules/mod_authz_svn.so
+
+# To serve all repositories under SVNParentPath with same configuration
+
+DAV svn
+SVNParentPath /var/svn/repos
+SVNIndexXSLT "/svnindex.xsl"
+#AuthType Basic
+#AuthName "Subversion repository"
+#AuthUserFile /var/svn/conf/svnusers_default
+#Require valid-user
+
+
+#
+# Example configuration to enable HTTP access for a directory
+# containing Subversion repositories, "/var/www/svn". Each repository
+# must be both:
+#
+# a) readable and writable by the 'apache' user, and
+#
+# b) labelled with the 'httpd_sys_content_t' context if using
+# SELinux
+#
+
+#
+# To create a new repository "http://localhost/repos/stuff" using
+# this configuration, run as root:
+#
+# # cd /var/www/svn
+# # svnadmin create stuff
+# # chown -R apache.apache stuff
+# # chcon -R -t httpd_sys_content_t stuff
+#
+
+#
+# DAV svn
+# SVNParentPath /var/www/svn
+#
+# # Limit write permission to list of valid users.
+#
+# # Require SSL connection for password protection.
+# # SSLRequireSSL
+#
+# AuthType Basic
+# AuthName "Authorization Realm"
+# AuthUserFile /path/to/passwdfile
+# Require valid-user
+#
+#
diff --git a/programming/scm/subversion/files/dont_compile_pyc.patch b/programming/scm/subversion/files/dont_compile_pyc.patch
new file mode 100644
index 0000000000..aac7322652
--- /dev/null
+++ b/programming/scm/subversion/files/dont_compile_pyc.patch
@@ -0,0 +1,14 @@
+diff -ur subversion-1.4.0.orig/Makefile.in subversion-1.4.0/Makefile.in
+--- subversion-1.4.0.orig/Makefile.in 2006-11-06 16:36:17.000000000 +0200
++++ subversion-1.4.0/Makefile.in 2006-11-06 16:50:14.000000000 +0200
+@@ -209,10 +209,6 @@
+ $(INSTALL_DATA) "$$i" $(DESTDIR)$(swig_pydir); \
+ done; \
+ fi; \
+- $(PYTHON) -c 'import compileall; \
+- compileall.compile_dir("$(DESTDIR)$(swig_pydir)", 1, "$(swig_pydir)"); \
+- compileall.compile_dir("$(DESTDIR)$(swig_pydir_extra)", 1, \
+- "$(swig_pydir_extra)");'
+
+ # The path to generated and complementary source files for the SWIG
+ # bindings.
diff --git a/programming/scm/subversion/files/subversion-1.8.0-kwallet.patch b/programming/scm/subversion/files/subversion-1.8.0-kwallet.patch
new file mode 100644
index 0000000000..1a95da30f6
--- /dev/null
+++ b/programming/scm/subversion/files/subversion-1.8.0-kwallet.patch
@@ -0,0 +1,27 @@
+
+The first half of this is certainly upstream-worthy, but the second half is presumably
+some Fedora-specific KDE packaging thing. It's not obvious how to get
+kde4-config to report the directory which contains the .so files.
+
+--- subversion-1.8.0/build/ac-macros/kwallet.m4.kwallet
++++ subversion-1.8.0/build/ac-macros/kwallet.m4
+@@ -63,15 +63,15 @@ AC_DEFUN(SVN_LIB_KWALLET,
+ fi
+ done
+ qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
+- kde_dir="`$KDE4_CONFIG --prefix`"
+- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
++ kde_include_dirs="-I`$KDE4_CONFIG --path include`"
++ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs $kde_include_dirs"
+ qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
+ SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
+ CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
+ LIBS="$LIBS $SVN_KWALLET_LIBS"
+ qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
+ kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
+- LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix)`"
++ LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs)` -L$libdir/kde4/devel"
+ AC_LANG(C++)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
+ #include
+
diff --git a/programming/scm/subversion/files/subversion-1.8.0-pie.patch b/programming/scm/subversion/files/subversion-1.8.0-pie.patch
new file mode 100644
index 0000000000..411ec30701
--- /dev/null
+++ b/programming/scm/subversion/files/subversion-1.8.0-pie.patch
@@ -0,0 +1,56 @@
+diff -uap subversion-1.7.0/build/generator/gen_base.py.pie subversion-1.7.0/build/generator/gen_base.py
+--- subversion-1.8.0/build/generator/gen_base.py.pie
++++ subversion-1.8.0/build/generator/gen_base.py
+@@ -409,7 +409,7 @@ class TargetLinked(Target):
+ self.install = options.get('install')
+ self.compile_cmd = options.get('compile-cmd')
+ self.sources = options.get('sources', '*.c *.cpp')
+- self.link_cmd = options.get('link-cmd', '$(LINK)')
++ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
+
+ self.external_lib = options.get('external-lib')
+ self.external_project = options.get('external-project')
+@@ -465,6 +465,11 @@ class TargetExe(TargetLinked):
+ self.manpages = options.get('manpages', '')
+ self.testing = options.get('testing')
+
++ if self.install == 'test' or self.install == 'bdb-test':
++ self.link_cmd = '$(LINK_TEST)'
++ else:
++ self.link_cmd = '$(LINK_EXE)'
++
+ def add_dependencies(self):
+ TargetLinked.add_dependencies(self)
+
+@@ -515,8 +520,8 @@ class TargetLib(TargetLinked):
+ self.msvc_export = options.get('msvc-export', '').split()
+
+ ### hmm. this is Makefile-specific
+- if self.link_cmd == '$(LINK)':
+- self.link_cmd = '$(LINK_LIB)'
++ if self.install == 'test':
++ self.link_cmd = '$(LINK_TEST_LIB)'
+
+ class TargetApacheMod(TargetLib):
+
+--- subversion-1.8.0/Makefile.in.pie
++++ subversion-1.8.0/Makefile.in
+@@ -203,6 +203,9 @@ COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFL
+
+ LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
+ LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
++LINK_TEST = $(LINK) -no-install
++LINK_TEST_LIB = $(LINK) -avoid-version
++LINK_EXE = $(LINK) -pie
+ LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
+ LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
+
+@@ -676,7 +679,7 @@ schema-clean:
+ $(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
+
+ .c.o:
+- $(COMPILE) -o $@ -c $<
++ $(COMPILE) -fpie -o $@ -c $<
+
+ .cpp.o:
+ $(COMPILE_CXX) -o $@ -c $<
\ No newline at end of file
diff --git a/programming/scm/subversion/files/subversion-1.8.0-rpath.patch b/programming/scm/subversion/files/subversion-1.8.0-rpath.patch
new file mode 100644
index 0000000000..adf12c05a1
--- /dev/null
+++ b/programming/scm/subversion/files/subversion-1.8.0-rpath.patch
@@ -0,0 +1,46 @@
+diff -uap subversion-1.7.0/build.conf.rpath subversion-1.7.0/build.conf
+--- subversion-1.8.0/build.conf.rpath
++++ subversion-1.8.0/build.conf
+@@ -501,7 +501,7 @@ type = swig_lib
+ lang = python
+ path = subversion/bindings/swig/python/libsvn_swig_py
+ libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr
+-link-cmd = $(LINK)
++link-cmd = $(LINK_LIB)
+ install = swig-py-lib
+ # need special build rule to include -DSWIGPYTHON
+ compile-cmd = $(COMPILE_SWIG_PY)
+@@ -524,7 +524,7 @@ type = swig_lib
+ lang = ruby
+ path = subversion/bindings/swig/ruby/libsvn_swig_ruby
+ libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr
+-link-cmd = $(LINK) $(SWIG_RB_LIBS)
++link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS)
+ install = swig-rb-lib
+ # need special build rule to include
+ compile-cmd = $(COMPILE_SWIG_RB)
+--- subversion-1.8.0/build/generator/gen_base.py.rpath
++++ subversion-1.8.0/build/generator/gen_base.py
+@@ -514,6 +514,10 @@ class TargetLib(TargetLinked):
+ self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
+ self.msvc_export = options.get('msvc-export', '').split()
+
++ ### hmm. this is Makefile-specific
++ if self.link_cmd == '$(LINK)':
++ self.link_cmd = '$(LINK_LIB)'
++
+ class TargetApacheMod(TargetLib):
+
+ def __init__(self, name, options, gen_obj):
+--- subversion-1.8.0/Makefile.in.rpath
++++ subversion-1.8.0/Makefile.in
+@@ -201,8 +201,8 @@ COMPILE_JAVAHL_JAVAH = $(JAVAH)
+ # special compilation for files destined for cxxhl
+ COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(CXXHL_INCLUDES) -o $@ -c
+
+-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
+-LINK_LIB = $(LINK) $(LT_SO_VERSION)
++LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
++LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
+ LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
+ LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
\ No newline at end of file
diff --git a/programming/scm/subversion/files/subversion-swig-perl-install_vendor.patch b/programming/scm/subversion/files/subversion-swig-perl-install_vendor.patch
new file mode 100644
index 0000000000..b8c1937f70
--- /dev/null
+++ b/programming/scm/subversion/files/subversion-swig-perl-install_vendor.patch
@@ -0,0 +1,14 @@
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -652,7 +652,7 @@ check-swig-pl: swig-pl swig-pl-lib
+ cd $(SWIG_PL_DIR)/native; $(MAKE) test
+
+ install-swig-pl: swig-pl install-swig-pl-lib
+- cd $(SWIG_PL_DIR)/native; $(MAKE) install
++ cd $(SWIG_PL_DIR)/native; $(MAKE) install_vendor
+
+ EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
+ $(SWIG_PL_SRC_DIR)/native/core.c
diff --git a/programming/scm/subversion/files/subversion.config b/programming/scm/subversion/files/subversion.config
new file mode 100644
index 0000000000..1f29533f92
--- /dev/null
+++ b/programming/scm/subversion/files/subversion.config
@@ -0,0 +1,13 @@
+[miscellany]
+enable-auto-props = yes
+
+[auto-props]
+*.png = svn:mime-type=image/png
+*.jpg = svn:mime-type=image/jpeg
+*.jpe = svn:mime-type=image/jpeg
+*.jpeg = svn:mime-type=image/jpeg
+*.bmp = svn:mime-type=image/x-ms-bmp
+*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation
+*.odt = svn:mime-type=application/vnd.oasis.opendocument.text
+*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet
+*.ogg = svn:mime-type=audio/ogg
diff --git a/programming/scm/subversion/files/subversion.perl.LD_RUN_PATH.patch b/programming/scm/subversion/files/subversion.perl.LD_RUN_PATH.patch
new file mode 100644
index 0000000000..3b21e6577f
--- /dev/null
+++ b/programming/scm/subversion/files/subversion.perl.LD_RUN_PATH.patch
@@ -0,0 +1,19 @@
+clear LD_RUN_PATH, it will end up as RPATH in ELF binaries
+
+ERROR: RPATH "/usr/src/packages/BUILD/subversion-1.5.x/subversion/libsvn_subr/.libs" on /var/tmp/subversion-1.5.0-build/usr/lib/perl5/vendor_perl/5.10.0/ppc-linux-thread-multi-64int/auto/SVN/_Wc/_Wc.so is not allowed
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -641,7 +641,7 @@ $(SWIG_PL_DIR)/native/Makefile.PL: $(SWI
+ ./config.status subversion/bindings/swig/perl/native/Makefile.PL
+
+ $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
+- cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
++ cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL ; for i in `grep -wl ^LD_RUN_PATH Makefile Makefile.[^P]*` ; do sed -i 's@^LD_RUN_PATH.*@LD_RUN_PATH=@' $$i ; done
+
+ swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
+ $(SWIG_PL_DIR)/native/Makefile
diff --git a/programming/scm/subversion/files/subversion.rpath.fix.patch b/programming/scm/subversion/files/subversion.rpath.fix.patch
new file mode 100644
index 0000000000..aaec8fdb71
--- /dev/null
+++ b/programming/scm/subversion/files/subversion.rpath.fix.patch
@@ -0,0 +1,11 @@
+--- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
++++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
+@@ -678,6 +678,7 @@
+
+ $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
+ cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL PREFIX=$(prefix)
++ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
+
+ # There is a "readlink -f" command on some systems for the same purpose,
+ # but it's not as portable (e.g. Mac OS X doesn't have it). These should
+ # only be used where Python/Perl are known to be available.
diff --git a/programming/scm/subversion/files/svn-clean b/programming/scm/subversion/files/svn-clean
new file mode 100644
index 0000000000..3cd094499f
--- /dev/null
+++ b/programming/scm/subversion/files/svn-clean
@@ -0,0 +1,113 @@
+#! /usr/bin/perl
+
+#
+# This script recursively (beginning with the current directory)
+# wipes out everything not registered in SVN.
+#
+# rewritten in perl by Oswald Buddenhagen
+# based on bash version by Thiago Macieira
+# inspired by cvs-clean, written by Oswald Buddenhagen
+# inspired by the "old" cvs-clean target from Makefile.common
+#
+# This file is free software in terms of the BSD licence. That means
+# that you can do anything with it except removing this license or
+# the above copyright notice. There is NO WARRANTY of any kind.
+#
+
+# Warning:
+# This script processes the output from the SVN executable
+# Do not run it along with colorsvn
+
+use File::Path;
+
+my $version = "svn-clean v1.0";
+my $heading = $version.": cleans up the Subversion working directory\n";
+my $usage = $heading.
+ "svn-clean [-h] [-n] [-q] [-i|-f] [dirname]\n\n".
+ "Where:\n".
+ " -h shows this help screen\n".
+ " -n dry-run: doesn't actually erase the files, just show their names\n".
+ " -i interactive: ask for confirmation before erasing the files\n".
+ " -f force: doesn't ask for confirmation before erasing\n".
+ " -q quiet: doesn't show output\n";
+
+
+my $dry_run = 0;
+my $force = 0;
+my $quiet = 0;
+
+sub check_confirm()
+{
+ return if ($force);
+
+ open(TTY, "+< /dev/tty") or die "cannot open /dev/tty";
+
+ print TTY "This will erase files and directories that aren't in Subversion\n".
+ "Are you sure you want to continue? (y/n) ";
+
+ if ( =~ /^[Yy]/) {
+ $force = 1;
+ close TTY;
+ return;
+ }
+
+ # user cancelled
+ exit 0;
+}
+
+# Parse arguments
+my $rest = 0;
+my @files = ();
+foreach my $arg (@ARGV) {
+ if ($rest) {
+ push @files, $arg;
+ } else {
+ if ($arg eq '-h' || $arg eq '--help') {
+ print $usage;
+ exit (0);
+ } elsif ($arg eq '-n' || $arg eq '--dry-run') {
+ $dry_run = 1;
+ $force = 1;
+ } elsif ($arg eq '-f' || $arg eq '--force') {
+ $force = 1;
+ } elsif ($arg eq '-i' || $arg eq '--interactive') {
+ $force = 0;
+ } elsif ($arg eq '-q' || $arg eq '--quiet') {
+ $quiet = 1;
+ } elsif ($arg eq '--') {
+ $rest = 1;
+ } elsif ($arg =~ /^-/) {
+ print STDERR "svn-clean: unknown argument '".$arg."'\n\n".$usage;
+ exit (1);
+ } else {
+ push @files, $arg;
+ }
+ }
+}
+if (!@files) {
+ push @files, '.';
+}
+
+# Unset TERM just so that no colours are output
+# in case $SVN points to colorsvn
+delete $ENV{'TERM'};
+
+#print($heading."\n") unless $quiet;
+
+foreach my $dir (@files) {
+ open SVN, "svn status --no-ignore \"".$dir."\"|";
+ while () {
+ /^[I?] +(.*)$/ or next;
+ my $file = $1;
+ check_confirm();
+ lstat $file;
+ if (-d _) {
+ print("D ".$file."\n") unless $quiet;
+ rmtree($file, 0, 0) unless $dry_run;
+ } else {
+ print("F ".$file."\n") unless $quiet;
+ unlink($file) unless $dry_run;
+ }
+ }
+ close SVN;
+}
diff --git a/programming/scm/subversion/files/svnlastchange b/programming/scm/subversion/files/svnlastchange
new file mode 100644
index 0000000000..2c5556890c
--- /dev/null
+++ b/programming/scm/subversion/files/svnlastchange
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+if [ $# -eq 0 ]; then
+ cat < [ ...]
+
+EOF
+ exit 1
+fi
+
+if [ "$1" == "-q" ]; then
+ shift
+else
+ echo >/dev/tty "Hint: Use svn log -r COMMITTED and svn diff -r PREV:COMMITTED"
+fi
+
+svn log -r COMMITTED "$*"
+svn diff -r PREV:COMMITTED "$*" || \
+ echo >&2 "Error retrieving diff: the file was probably added in the last revision"
\ No newline at end of file
diff --git a/programming/scm/subversion/files/svnlastlog b/programming/scm/subversion/files/svnlastlog
new file mode 100644
index 0000000000..615da7f6ab
--- /dev/null
+++ b/programming/scm/subversion/files/svnlastlog
@@ -0,0 +1,15 @@
+#!/bin/sh
+# This is a stripped down version of svnlastchange
+
+if [ $# -eq 0 ]; then
+ cat < [ ...]
+
+EOF
+ exit 1
+fi
+echo >&2 "Warning: svnlastlog is superfluous"
+echo >&2 "Use svn log -r COMMITTED"
+
+svn log -r COMMITTED "$*"
diff --git a/programming/scm/subversion/files/svnrevertlast b/programming/scm/subversion/files/svnrevertlast
new file mode 100644
index 0000000000..14348f294f
--- /dev/null
+++ b/programming/scm/subversion/files/svnrevertlast
@@ -0,0 +1,6 @@
+#!/bin/sh
+echo >&2 "Warning: this script is superfluous"
+echo >&2 "Instead, use: svn merge -rBASE:PREV "
+echo >&2
+
+svn merge -r BASE:PREV "$@"
diff --git a/programming/scm/subversion/files/svnserve.confd b/programming/scm/subversion/files/svnserve.confd
new file mode 100644
index 0000000000..2855a40b5e
--- /dev/null
+++ b/programming/scm/subversion/files/svnserve.confd
@@ -0,0 +1,8 @@
+# Default svnserve configuration for Pisi Linux
+
+# Options for svnserve
+SVNSERVE_OPTS = "--daemon --root=/var/svn"
+
+# User and group as which to run svnserve
+SVNSERVE_USER="svn"
+SVNSERVE_GROUP="svn"
diff --git a/programming/scm/subversion/pspec.xml b/programming/scm/subversion/pspec.xml
new file mode 100644
index 0000000000..86117008f7
--- /dev/null
+++ b/programming/scm/subversion/pspec.xml
@@ -0,0 +1,225 @@
+
+
+
+
+ subversion
+ http://subversion.apache.org/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ Subversion
+ app:console
+ service
+ A compelling replacement for CVS
+ SVN is a version controlling system to store files and control their change history in a repository.
+ http://archive.apache.org/dist/subversion/subversion-1.9.1.tar.bz2
+
+ apache
+ expat-devel
+ zlib-devel
+ ruby-devel
+ serf-devel
+ sqlite-devel
+ jdk7-openjdk
+ apr-util-devel
+ cyrus-sasl-devel
+ python-devel
+ dbus-devel
+ glib2-devel
+ openssl-devel
+ swig
+
+
+
+ subversion-swig-perl-install_vendor.patch
+ subversion.rpath.fix.patch
+ dont_compile_pyc.patch
+
+
+
+
+ subversion
+
+ file
+ zlib
+ expat
+ libgcc
+ sqlite
+ apr
+ serf
+ apr-util
+ cyrus-sasl
+
+
+
+ /etc/conf.d
+ /etc/subversion
+ /etc/bash_completion.d
+ /usr/share/build
+ /usr/bin
+ /usr/lib
+ /usr/share/doc
+ /usr/share/info
+ /usr/share/locale
+ /usr/share/man
+ /var/svn
+
+
+ svnserve.confd
+
+
+
+
+ subversion.config
+
+
+ System.Service
+ System.Package
+
+
+
+
+ subversion-devel
+ Development files for subversion
+
+ openssl-devel
+ apr-devel
+ serf-devel
+ sqlite-devel
+ apr-util-devel
+ subversion
+
+
+ /usr/include
+ /usr/share/pkgconfig
+
+
+
+
+ mod_dav_svn
+ server.web
+
+ apr
+ apache
+ apr-util
+ subversion
+
+
+ /usr/lib/apache2
+ /usr/libexec/mod_dav_svn.so
+ /usr/libexec/mod_authz_svn.so
+ /etc/apache2/modules.d
+ /var/www/localhost/htdocs
+
+
+ 47_mod_dav_svn.conf
+
+
+ System.Package
+
+
+
+
+
+ 2015-09-04
+ 1.9.1
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-04-04
+ 1.8.13
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2014-09-14
+ 1.8.10
+ Version bump.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-06-21
+ 1.8.9
+ Version bump.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2014-04-03
+ 1.8.8
+ Version bump.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-03-03
+ 1.8.5
+ rebuild for openjdk
+ Kamil Atlı
+ suvarice@gmail.com
+
+
+ 2014-01-11
+ 1.8.5
+ rebuild for cyrus-sasl
+ Kamil Atlı
+ suvarice@gmail.com
+
+
+ 2013-12-28
+ 1.8.5
+ Fix Deps
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+ 2013-12-24
+ 1.8.5
+ Version bump, fix deps, add mandatory serf dependency.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-11-30
+ 1.8.1
+ rebuild for perl-svn-simple
+ Kamil Atlı
+ suvarice@gmail.com
+
+
+ 2013-08-17
+ 1.8.1
+ Dep Fixed
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+ 2013-08-03
+ 1.8.1
+
+ *Version bump to 1.8.1
+ *Disable neon as suggested in http://subversion.apache.org/docs/release-notes/1.8.html#neon-deleted
+
+ Fatih Turgel
+ hitaf@pisilinux.org
+
+
+ 2012-10-24
+ 1.7.7
+ First release
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+
diff --git a/programming/scm/subversion/translations.xml b/programming/scm/subversion/translations.xml
new file mode 100644
index 0000000000..81197debbf
--- /dev/null
+++ b/programming/scm/subversion/translations.xml
@@ -0,0 +1,14 @@
+
+
+
+ subversion
+ Bir sürüm kontrol sistemi
+ Daha gelişmiş özellikleri olan ve önceki CVS yerine kullanılan, bir sürüm yönetim sistemidir.
+ SVN est un gestionnaire de configuration permettant de stocker des fichiers et de contrôler leur historique de changement dans un dépôt.
+
+
+
+ subversion-devel
+ Subversion için geliştirme dosyaları
+
+
diff --git a/server/web/apache/actions.py b/server/web/apache/actions.py
new file mode 100644
index 0000000000..89eb5e677f
--- /dev/null
+++ b/server/web/apache/actions.py
@@ -0,0 +1,148 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import get
+
+WorkDir = "httpd-%s" % get.srcVERSION()
+
+def config_layout():
+ return """
+
+ prefix: /usr
+ exec_prefix: /usr
+ bindir: /usr/bin
+ sbindir: /usr/sbin
+ libdir: /usr/lib
+ libexecdir: /usr/lib/apache2/modules
+ mandir: /usr/share/man
+ infodir: /usr/share/info
+ includedir: /usr/include/apache2
+ installbuilddir: /usr/lib/apache2/build
+ datadir: /var/www/localhost
+ errordir: /var/www/localhost/error
+ iconsdir: /var/www/localhost/icons
+ htdocsdir: /var/www/localhost/htdocs
+ cgidir: /var/www/localhost/cgi-bin
+ manualdir: /usr/share/doc/version/manual
+ sysconfdir: /etc/apache2
+ localstatedir: /var
+ runtimedir: /run
+ logfiledir: /var/log/apache2
+ proxycachedir: /var/cache/apache2
+"""
+
+def modules_config():
+ disabled = ['bucketeer', 'example', 'optional-fn-export', 'optional-fn-import',
+ 'optional-hook-export','optional-hook-import']
+
+ static = ['so']
+
+ # auth_ldap, ldap needed
+ shared = ['actions', 'alias', 'asis', 'auth_basic', 'authn_dbm', 'authn_file',
+ 'auth_digest', 'authz_host', 'autoindex', 'cache', 'case_filter',
+ 'case-filter-in', 'cern-meta', 'cgi', 'cgid', 'charset-lite', 'dav',
+ 'dav-fs', 'deflate', 'dir', 'disk-cache', 'echo', 'env', 'expires',
+ 'ext-filter', 'file-cache', 'headers', 'imagemap', 'include', 'info',
+ 'log_config', 'logio', 'mem-cache', 'mime', 'mime-magic', 'negotiation',
+ 'proxy', 'proxy-connect','proxy-ftp', 'proxy-http', 'rewrite', 'setenvif',
+ 'speling', 'status', 'unique-id', 'userdir', 'usertrack', 'vhost-alias']
+
+ conf = ""
+
+ for i in disabled:
+ conf += "--disable-%s " % i
+ for i in static:
+ conf += "--enable-%s=yes " % i
+ for i in shared:
+ conf += "--enable-%s=shared " % i
+
+ return conf
+
+def setup():
+ shelltools.echo("config.layout", config_layout())
+ pisitools.dosed("config.layout", "version", get.srcNAME())
+
+ #for d in ["apr","apr-util","pcre"]:
+ #shelltools.unlinkDir("srclib/%s" % d)
+
+ # this fixes segfaults, remember omit-frame-pointer will be default soon
+ if get.ARCH() == "i686":
+ shelltools.export("CFLAGS", "%s -fno-omit-frame-pointer" % get.CFLAGS())
+ shelltools.export("LDFLAGS", "-Wl,-z,relro,-z,now")
+
+ autotools.rawConfigure('--with-mpm=prefork \
+ --enable-layout=PisiLinux \
+ --enable-mods-shared=all \
+ --with-ssl=/usr \
+ --enable-ssl=shared \
+ %s \
+ --with-z=/usr \
+ --with-port=80 \
+ --with-program-name=apache2 \
+ --with-apr=/usr/bin/apr-1-config \
+ --with-apr-util=/usr/bin/apu-1-config \
+ --with-suexec-safepath="/usr/bin:/bin" \
+ --with-suexec-logfile=/var/log/apache2/suexec_log \
+ --with-suexec-bin=/usr/sbin/suexec \
+ --with-suexec-userdir="public_html" \
+ --with-suexec-caller=apache \
+ --with-suexec-docroot=/var/www \
+ --with-suexec-uidmin=1000 \
+ --with-suexec-gidmin=100 \
+ --with-suexec-umask=077 \
+ --enable-suexec=shared \
+ --enable-pie \
+ --with-pcre=/usr/bin/pcre-config' % modules_config())
+
+ pisitools.dosed("include/ap_config_auto.h", "apache2\.conf", "httpd.conf")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s INSTALL_SUEXEC='setuid'" % get.installDIR())
+
+ pisitools.dosym("/usr/lib", "/usr/lib/apache2/lib")
+ pisitools.dosym("/var/log/apache2", "/usr/lib/apache2/logs")
+ pisitools.dosym("/etc/apache2", "/usr/lib/apache2/conf")
+
+ pisitools.dosbin("support/split-logfile")
+ pisitools.dosbin("support/list_hooks.pl")
+ pisitools.dosbin("support/logresolve.pl")
+ pisitools.dosbin("support/log_server_status")
+
+ pisitools.dosbin("apache2")
+
+ pisitools.domove("/usr/sbin/envvars*", "/usr/lib/apache2/build")
+ pisitools.dosed("%s/usr/bin/apxs" % get.installDIR(), \
+ "my \$envvars = get_vars\(\"bindir\"\) \. \"/envvars\";", \
+ "my $envvars = \"$installbuilddir/envvars\";")
+
+ # Clean-up
+ pisitools.remove("/etc/apache2/*")
+ pisitools.remove("/var/www/localhost/htdocs/*")
+
+ # Add conf.d for 3rd party configuration files
+ pisitools.dodir("/etc/apache2/conf.d")
+
+ # ssl enabled apache needs that one
+ pisitools.dodir("/var/cache/apache2")
+
+ # Fix wrong libtool path
+ pisitools.dosed("%s/usr/lib/apache2/build/config_vars.mk" % get.installDIR(), \
+ "/usr/lib/apache2/build/libtool", \
+ "/usr/bin/libtool")
+
+ # Remove cgi scripts which are vulnerable, see CVE-2007-4049
+ pisitools.remove("/var/www/localhost/cgi-bin/*")
+
+
+ pisitools.dodoc("ABOUT_APACHE", "CHANGES", "LAYOUT", "LICENSE", "README*")
+
+ pisitools.removeDir("/run")
diff --git a/server/web/apache/comar/package.py b/server/web/apache/comar/package.py
new file mode 100644
index 0000000000..e51c393e95
--- /dev/null
+++ b/server/web/apache/comar/package.py
@@ -0,0 +1,8 @@
+#!/usr/bin/python
+
+import os
+
+def postInstall(fromVersion, fromRelease, toVersion, toRelease):
+ os.system("/bin/chown root:apache /usr/sbin/suexec")
+ os.system("/bin/chmod 04710 /usr/sbin/suexec")
+ os.system("/bin/chown apache:apache /var/cache/apache2")
diff --git a/server/web/apache/comar/service.py b/server/web/apache/comar/service.py
new file mode 100644
index 0000000000..b58161d483
--- /dev/null
+++ b/server/web/apache/comar/service.py
@@ -0,0 +1,35 @@
+from comar.service import *
+
+serviceType = "server"
+serviceDesc = _({"en": "Apache Web Server",
+ "tr": "Apache Web Sunucusu"})
+
+serviceConf = "apache2"
+
+PIDFILE = "/run/apache2.pid"
+
+@synchronized
+def start():
+ import os
+ os.environ["LC_ALL"] = "C"
+ os.environ["LANG"] = "C"
+
+ startService(command="/usr/sbin/apache2",
+ args="-d /usr/lib/apache2/ -f /etc/apache2/httpd.conf %s -k start" % config.get("APACHE2_OPTS", ""),
+ pidfile=PIDFILE,
+ donotify=True)
+
+@synchronized
+def stop():
+ stopService(command="/usr/sbin/apache2",
+ args="-d /usr/lib/apache2/ -f /etc/apache2/httpd.conf %s -k stop" % config.get("APACHE2_OPTS", ""),
+ donotify=True)
+ import time
+ time.sleep(3)
+
+def reload():
+ stopService(command="/usr/sbin/apache2",
+ args="-d /usr/lib/apache2/ -f /etc/apache2/httpd.conf %s -k graceful" % config.get("APACHE2_OPTS", ""))
+
+def status():
+ return isServiceRunning(PIDFILE)
diff --git a/server/web/apache/files/00_apache_manual.conf b/server/web/apache/files/00_apache_manual.conf
new file mode 100644
index 0000000000..98137d5fa2
--- /dev/null
+++ b/server/web/apache/files/00_apache_manual.conf
@@ -0,0 +1,10 @@
+#
+# This configuration file allows the manual to be accessed at
+# http://localhost/manual/
+#
+AliasMatch ^/manual(?:/(?:de|en|fr|ja|ko|ru))?(/.*)?$ "/usr/share/doc/apache/manual$1"
+
+ Options Indexes
+ AllowOverride None
+ Require all granted
+
\ No newline at end of file
diff --git a/server/web/apache/files/00_default_vhost.conf b/server/web/apache/files/00_default_vhost.conf
new file mode 100644
index 0000000000..3e03d1a120
--- /dev/null
+++ b/server/web/apache/files/00_default_vhost.conf
@@ -0,0 +1,92 @@
+### Section 3: Virtual Hosts
+#
+# VirtualHost: If you want to maintain multiple domains/hostnames on your
+# machine you can setup VirtualHost containers for them. Most configurations
+# use only name-based virtual hosts so the server doesn't need to worry about
+# IP addresses. This is indicated by the asterisks in the directives below.
+#
+# Please see the documentation at
+#
+# for further details before you try to setup virtual hosts.
+#
+# You may use the command line option '-S' to verify your virtual host
+# configuration.
+
+#
+# Use name-based virtual hosting.
+#
+NameVirtualHost *:80
+
+#
+# VirtualHost example:
+# Almost any Apache directive may go into a VirtualHost container.
+# The first VirtualHost section is used for requests without a known
+# server name.
+#
+#
+# ServerAdmin webmaster@dummy-host.example.com
+# DocumentRoot /www/docs/dummy-host.example.com
+# ServerName dummy-host.example.com
+# ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log
+# CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common
+#
+
+
+#
+# The First Virtual Host is also your DEFAULT Virtual Host.
+# This means any requests that do not match any other vhosts will
+# goto this virtual host.
+#
+
+
+
+ #
+ # DocumentRoot: The directory out of which you will serve your
+ # documents. By default, all requests are taken from this directory, but
+ # symbolic links and aliases may be used to point to other locations.
+ #
+ DocumentRoot "/var/www/localhost/htdocs"
+
+ #
+ # This should be changed to whatever you set DocumentRoot to.
+ #
+
+
+ #
+ # Possible values for the Options directive are "None", "All",
+ # or any combination of:
+ # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+ #
+ # Note that "MultiViews" must be named *explicitly* --- "Options All"
+ # doesn't give it to you.
+ #
+ # The Options directive is both complicated and important. Please see
+ # http://httpd.apache.org/docs-2.0/mod/core.html#options
+ # for more information.
+ #
+ Options Indexes FollowSymLinks
+
+ #
+ # AllowOverride controls what directives may be placed in .htaccess files.
+ # It can be "All", "None", or any combination of the keywords:
+ # Options FileInfo AuthConfig Limit
+ #
+ AllowOverride None
+
+ #
+ # Controls who can get stuff from this server.
+ #
+ Order allow,deny
+ Allow from all
+
+
+
+ # this must match a Processor
+ ServerEnvironment apache apache
+
+ # these are optional - defaults to the values specified in httpd.conf
+ MinSpareProcessors 4
+ MaxProcessors 20
+
+
+
\ No newline at end of file
diff --git a/server/web/apache/files/40_mod_ssl.conf b/server/web/apache/files/40_mod_ssl.conf
new file mode 100644
index 0000000000..375cf926fd
--- /dev/null
+++ b/server/web/apache/files/40_mod_ssl.conf
@@ -0,0 +1,87 @@
+
+
+ LoadModule ssl_module modules/mod_ssl.so
+
+
+
+
+#
+# This is the Apache server configuration file providing SSL support.
+# It contains the configuration directives to instruct the server how to
+# serve pages over an https connection. For detailing information about these
+# directives see
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+
+#
+# Pseudo Random Number Generator (PRNG):
+# Configure one or more sources to seed the PRNG of the SSL library.
+# The seed data should be of good random quality.
+# WARNING! On some platforms /dev/random blocks if not enough entropy
+# is available. This means you then cannot use the /dev/random device
+# because it would lead to very long connection times (as long as
+# it requires to make more entropy available). But usually those
+# platforms additionally provide a /dev/urandom device which doesn't
+# block. So, if available, use this one instead. Read the mod_ssl User
+# Manual for more details.
+#
+# Note: This must come before the container to support
+# starting without SSL on platforms with no /dev/random equivalent
+# but a statically compiled-in mod_ssl.
+#
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
+#SSLRandomSeed startup file:/dev/random 512
+#SSLRandomSeed startup file:/dev/urandom 512
+#SSLRandomSeed connect file:/dev/random 512
+#SSLRandomSeed connect file:/dev/urandom 512
+
+#
+# When we also provide SSL we have to listen to the
+# standard HTTP port (see above) and to the HTTPS port
+#
+
+Listen 443
+
+##
+## SSL Global Context
+##
+## All SSL configuration in this context applies both to
+## the main server and all SSL-enabled virtual hosts.
+##
+
+#
+# Some MIME-types for downloading Certificates and CRLs
+#
+
+
+AddType application/x-x509-ca-cert .crt
+AddType application/x-pkcs7-crl .crl
+
+
+# Pass Phrase Dialog:
+# Configure the pass phrase gathering process.
+# The filtering dialog program (`builtin' is a internal
+# terminal dialog) has to provide the pass phrase on stdout.
+
+SSLPassPhraseDialog builtin
+
+# Inter-Process Session Cache:
+# Configure the SSL Session Cache: First the mechanism
+# to use and second the expiring timeout (in seconds).
+#SSLSessionCache none
+#SSLSessionCache shmht:logs/ssl_scache(512000)
+#SSLSessionCache shmcb:logs/ssl_scache(512000)
+#SSLSessionCache dbm:/var/cache/apache2/ssl_scache
+SSLSessionCache shm:/var/cache/apache2/ssl_scache(512000)
+SSLSessionCacheTimeout 300
+
+# Semaphore:
+# Configure the path to the mutual exclusion semaphore the
+# SSL engine uses internally for inter-process synchronization.
+
+SSLMutex file:/var/cache/apache2/ssl_mutex
+
diff --git a/server/web/apache/files/41_mod_ssl.default-vhost.conf b/server/web/apache/files/41_mod_ssl.default-vhost.conf
new file mode 100644
index 0000000000..3e95944db7
--- /dev/null
+++ b/server/web/apache/files/41_mod_ssl.default-vhost.conf
@@ -0,0 +1,190 @@
+
+
+ # We now wrap the entire default vhost in a seperate IfDefine to fix bug
+ # 100624. If you are using this default vhost, add it to /etc/conf.d/apache2
+
+
+
+##
+## SSL Virtual Host Context
+##
+
+
+
+# General setup for the virtual host
+DocumentRoot "/var/www/localhost/htdocs"
+ServerName localhost:443
+ServerAdmin root@localhost
+ErrorLog logs/ssl_error_log
+
+ TransferLog logs/ssl_access_log
+
+
+# SSL Engine Switch:
+# Enable/Disable SSL for this virtual host.
+SSLEngine on
+
+# SSL Cipher Suite:
+# List the ciphers that the client is permitted to negotiate.
+# See the mod_ssl documentation for a complete list.
+SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+
+# Server Certificate:
+# Point SSLCertificateFile at a PEM encoded certificate. If
+# the certificate is encrypted, then you will be prompted for a
+# pass phrase. Note that a kill -HUP will prompt again. A test
+# certificate can be generated with `make certificate' under
+# built time. Keep in mind that if you've both a RSA and a DSA
+# certificate you can configure both in parallel (to also allow
+# the use of DSA ciphers, etc.)
+SSLCertificateFile conf/ssl/server.crt
+
+# Server Private Key:
+# If the key is not combined with the certificate, use this
+# directive to point at the key file. Keep in mind that if
+# you've both a RSA and a DSA private key you can configure
+# both in parallel (to also allow the use of DSA ciphers, etc.)
+
+SSLCertificateKeyFile conf/ssl/server.key
+
+# Server Certificate Chain:
+# Point SSLCertificateChainFile at a file containing the
+# concatenation of PEM encoded CA certificates which form the
+# certificate chain for the server certificate. Alternatively
+# the referenced file can be the same as SSLCertificateFile
+# when the CA certificates are directly appended to the server
+# certificate for convinience.
+#SSLCertificateChainFile conf/ssl/ca.crt
+
+# Certificate Authority (CA):
+# Set the CA certificate verification path where to find CA
+# certificates for client authentication or alternatively one
+# huge file containing all of them (file must be PEM encoded)
+# Note: Inside SSLCACertificatePath you need hash symlinks
+# to point to the certificate files. Use the provided
+# Makefile to update the hash symlinks after changes.
+#SSLCACertificatePath conf/ssl/ssl.crt
+#SSLCACertificateFile conf/ssl/ca-bundle.crt
+
+# Certificate Revocation Lists (CRL):
+# Set the CA revocation path where to find CA CRLs for client
+# authentication or alternatively one huge file containing all
+# of them (file must be PEM encoded)
+# Note: Inside SSLCARevocationPath you need hash symlinks
+# to point to the certificate files. Use the provided
+# Makefile to update the hash symlinks after changes.
+#SSLCARevocationPath conf/ssl/ssl.crl
+#SSLCARevocationFile conf/ssl/ca-bundle.crl
+
+# Client Authentication (Type):
+# Client certificate verification type and depth. Types are
+# none, optional, require and optional_no_ca. Depth is a
+# number which specifies how deeply to verify the certificate
+# issuer chain before deciding the certificate is not valid.
+#SSLVerifyClient require
+#SSLVerifyDepth 10
+
+# Access Control:
+# With SSLRequire you can do per-directory access control based
+# on arbitrary complex boolean expressions containing server
+# variable checks and other lookup directives. The syntax is a
+# mixture between C and Perl. See the mod_ssl documentation
+# for more details.
+#
+#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
+# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
+# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
+# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
+# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
+# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
+#
+
+# SSL Engine Options:
+# Set various options for the SSL engine.
+# o FakeBasicAuth:
+# Translate the client X.509 into a Basic Authorisation. This means that
+# the standard Auth/DBMAuth methods can be used for access control. The
+# user name is the `one line' version of the client's X.509 certificate.
+# Note that no password is obtained from the user. Every entry in the user
+# file needs this password: `xxj31ZMTZzkVA'.
+# o ExportCertData:
+# This exports two additional environment variables: SSL_CLIENT_CERT and
+# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
+# server (always existing) and the client (only existing when client
+# authentication is used). This can be used to import the certificates
+# into CGI scripts.
+# o StdEnvVars:
+# This exports the standard SSL/TLS related `SSL_*' environment variables.
+# Per default this exportation is switched off for performance reasons,
+# because the extraction step is an expensive operation and is usually
+# useless for serving static content. So one usually enables the
+# exportation for CGI and SSI requests only.
+# o CompatEnvVars:
+# This exports obsolete environment variables for backward compatibility
+# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this
+# to provide compatibility to existing CGI scripts.
+# o StrictRequire:
+# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
+# under a "Satisfy any" situation, i.e. when it applies access is denied
+# and no other module can change it.
+# o OptRenegotiate:
+# This enables optimized SSL connection renegotiation handling when SSL
+# directives are used in per-directory context.
+#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
+
+
+ SSLOptions +StdEnvVars
+
+
+
+ SSLOptions +StdEnvVars
+
+
+# SSL Protocol Adjustments:
+# The safe and default but still SSL/TLS standard compliant shutdown
+# approach is that mod_ssl sends the close notify alert but doesn't wait for
+# the close notify alert from client. When you need a different shutdown
+# approach you can use one of the following variables:
+# o ssl-unclean-shutdown:
+# This forces an unclean shutdown when the connection is closed, i.e. no
+# SSL close notify alert is send or allowed to received. This violates
+# the SSL/TLS standard but is needed for some brain-dead browsers. Use
+# this when you receive I/O errors because of the standard approach where
+# mod_ssl sends the close notify alert.
+# o ssl-accurate-shutdown:
+# This forces an accurate shutdown when the connection is closed, i.e. a
+# SSL close notify alert is send and mod_ssl waits for the close notify
+# alert of the client. This is 100% SSL/TLS standard compliant, but in
+# practice often causes hanging connections with brain-dead browsers. Use
+# this only for browsers where you know that their SSL implementation
+# works correctly.
+# Notice: Most problems of broken clients are also related to the HTTP
+# keep-alive facility, so you usually additionally want to disable
+# keep-alive for those clients, too. Use variable "nokeepalive" for this.
+# Similarly, one has to force some clients to use HTTP/1.0 to workaround
+# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
+# "force-response-1.0" for this.
+
+ SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown \
+ downgrade-1.0 force-response-1.0
+
+
+# Per-Server Logging:
+# The home of a custom SSL log file. Use this when you want a
+# compact non-error SSL logfile on a virtual host basis.
+
+CustomLog logs/ssl_request_log \
+ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
+
+
+
+RewriteEngine On
+RewriteOptions inherit
+
+
+
+
+
+
+
+
diff --git a/server/web/apache/files/45_mod_dav.conf b/server/web/apache/files/45_mod_dav.conf
new file mode 100644
index 0000000000..74dffd07d2
--- /dev/null
+++ b/server/web/apache/files/45_mod_dav.conf
@@ -0,0 +1,31 @@
+
+
+ LoadModule dav_module modules/mod_dav.so
+
+
+
+
+
+ LoadModule dav_fs_module modules/mod_dav_fs.so
+
+
+
+
+
+ DavMinTimeout 600
+#
+# Options None
+# Dav On
+#
+# Require user greg
+#
+#
+
+
+
+
+
+ # Location of the WebDAV lock database.
+ DavLockDB /var/lib/dav/lockdb
+
+
diff --git a/server/web/apache/files/46_mod_ldap.conf b/server/web/apache/files/46_mod_ldap.conf
new file mode 100644
index 0000000000..665b08b1cb
--- /dev/null
+++ b/server/web/apache/files/46_mod_ldap.conf
@@ -0,0 +1,40 @@
+
+
+ LoadModule ldap_module modules/mod_ldap.so
+
+
+
+
+
+ LoadModule auth_ldap_module modules/mod_auth_ldap.so
+
+
+
+# Examples below are taken from the online documentation
+# Refer to:
+# http://localhost/manual/mod/mod_ldap.html
+# http://localhost/manual/mod/mod_auth_ldap.html
+
+
+
+ LDAPSharedCacheSize 200000
+ LDAPCacheEntries 1024
+ LDAPCacheTTL 600
+ LDAPOpCacheEntries 1024
+ LDAPOpCacheTTL 600
+
+
+ SetHandler ldap-status
+ Order deny,allow
+ Deny from all
+ Allow from 127.0.0.1
+
+
+
+
+
+
+ #AuthLDAPURL ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)
+ #require valid-user
+
+
diff --git a/server/web/apache/files/apache.service b/server/web/apache/files/apache.service
new file mode 100644
index 0000000000..b2f62d53bf
--- /dev/null
+++ b/server/web/apache/files/apache.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Apache Web Server
+After=network.target remote-fs.target nss-lookup.target
+
+[Service]
+Type=notify
+EnvironmentFile=/etc/conf.d/apache2
+PIDFile=/run/apache2.pid
+ExecStart=/usr/sbin/apache2 -d /usr/lib/apache2/ -f /etc/apache2/httpd.conf $APACHE2_OPTS -k start
+ExecReload=/usr/sbin/apache2 -d /usr/lib/apache2/ -f /etc/apache2/httpd.conf $APACHE2_OPTS -k graceful
+ExecStop=/usr/sbin/apache2 -d /usr/lib/apache2/ -f /etc/apache2/httpd.conf $APACHE2_OPTS -k graceful-stop
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/server/web/apache/files/apache2.confd b/server/web/apache/files/apache2.confd
new file mode 100644
index 0000000000..afe3f9638a
--- /dev/null
+++ b/server/web/apache/files/apache2.confd
@@ -0,0 +1,48 @@
+# Original works belongs to Gentoo Linux
+
+# Config file for /etc/conf. d/apache2
+
+# When you install a module it is easy to activate or deactivate the modules
+# and other features of apache using the APACHE2_OPTS line. Every module should
+# install a configuration in /etc/apache2/modules.d. In that file will be an
+# where NNN is the option to enable that module.
+# Here are the options available in the default configuration:
+# USERDIR Enables /~username mapping to /home/username/public_html
+# INFO Enables mod_info, a useful module for debugging
+# PROXY Enables mod_proxy
+# DAV Enables mod_dav
+# DAV_FS Enables mod_dav_fs (you should enable this when you enable DAV
+# unless you know what you are doing)
+# SSL Enables SSL
+# SSL_DEFAULT_VHOST Enables default vhost for SSL (you should enable this
+# when you enable SSL unless you know what you are doing)
+# LDAP Enables mod_ldap
+# AUTH_LDAP Enables authentication through mod_ldap
+# DEFAULT_VHOST Enables the default virtual host in /var/www/localhost/htdocs
+APACHE2_OPTS="-D DEFAULT_VHOST -D USERDIR"
+
+# Extended options for advanced uses of Apache ONLY
+# You don't need to edit these unless you are doing crazy Apache stuff
+# As not having them set correctly, or feeding in an incorrect configuration
+# via them will result in Apache failing to start
+# YOU HAVE BEEN WARNED.
+
+# ServerRoot setting
+#SERVERROOT=/usr/lib/apache2
+
+# Configuration file location
+# - If this does NOT start with a '/', then it is treated relative to
+# $SERVERROOT by Apache
+#CONFIGFILE=/etc/apache2/httpd.conf
+
+# Location to log startup errors to
+# They are normally dumped to your terminal.
+#STARTUPERRORLOG="/var/log/apache2/startuperror.log"
+
+# Environment variables to keep
+# All environment variables are cleared from apache
+# Use this to preserve some of them
+# NOTE!!! It's very important that this contains PATH
+# Also, it will fail if the _value_ of any of these variables contains a space
+KEEPENV="PATH"
+
diff --git a/server/web/apache/files/httpd-2.4.1-apctl.patch b/server/web/apache/files/httpd-2.4.1-apctl.patch
new file mode 100644
index 0000000000..b10ca8e5c8
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.1-apctl.patch
@@ -0,0 +1,83 @@
+
+- fail gracefully if links is not installed on target system
+- source sysconfig/httpd for custom env. vars etc.
+- make httpd -t work even in SELinux
+- pass $OPTIONS to all $HTTPD invocation
+
+Upstream-HEAD: vendor
+Upstream-2.0: vendor
+Upstream-Status: Vendor-specific changes for better initscript integration
+
+--- httpd-2.4.1/support/apachectl.in.apctl
++++ httpd-2.4.1/support/apachectl.in
+@@ -44,19 +44,25 @@
+ # the path to your httpd binary, including options if necessary
+ HTTPD='@exp_sbindir@/@progname@'
+ #
+-# pick up any necessary environment variables
+-if test -f @exp_sbindir@/envvars; then
+- . @exp_sbindir@/envvars
+-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
+ # programs may work.
+-LYNX="@LYNX_PATH@ -dump"
++if [ -x "@LYNX_PATH@" ]; then
++ LYNX="@LYNX_PATH@ -dump"
++else
++ LYNX=none
++fi
+ #
+ # the URL to your server's mod_status status page. If you do not
+ # have one, then status and fullstatus will not work.
+ STATUSURL="http://localhost:@PORT@/server-status"
++
++# Source /etc/conf.d/apache2 for $HTTPD setting, etc.
++if [ -r /etc/conf.d/apache2 ]; then
++ . /etc/conf.d/apache2
++fi
++
+ #
+ # Set this variable to a command that increases the maximum
+ # number of file descriptors allowed per child process. This is
+@@ -76,9 +82,16 @@
+ ARGV="-h"
+ fi
+
++function checklynx() {
++if [ "$LYNX" = "none" ]; then
++ echo "The 'links' package is required for this functionality."
++ exit 8
++fi
++}
++
+ case $ACMD in
+ start|stop|restart|graceful|graceful-stop)
+- $HTTPD -k $ARGV
++ $HTTPD $OPTIONS -k $ARGV
+ ERROR=$?
+ ;;
+ startssl|sslstart|start-SSL)
+@@ -88,17 +101,18 @@
+ ERROR=2
+ ;;
+ configtest)
+- $HTTPD -t
+- ERROR=$?
++ testconfig
+ ;;
+ status)
++ checklynx
+ $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
+ ;;
+ fullstatus)
++ checklynx
+ $LYNX $STATUSURL
+ ;;
+ *)
+- $HTTPD "$@"
++ $HTTPD $OPTIONS "$@"
+ ERROR=$?
+ esac
+
diff --git a/server/web/apache/files/httpd-2.4.1-corelimit.patch b/server/web/apache/files/httpd-2.4.1-corelimit.patch
new file mode 100644
index 0000000000..96f848674f
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.1-corelimit.patch
@@ -0,0 +1,35 @@
+
+Bump up the core size limit if CoreDumpDirectory is
+configured.
+
+Upstream-Status: Was discussed but there are competing desires;
+ there are portability oddities here too.
+
+--- 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 *
+ }
+ apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper,
+ apr_pool_cleanup_null);
++
++#ifdef RLIMIT_CORE
++ if (ap_coredumpdir_configured) {
++ struct rlimit lim;
++
++ if (getrlimit(RLIMIT_CORE, &lim) == 0 && lim.rlim_cur == 0) {
++ lim.rlim_cur = lim.rlim_max;
++ if (setrlimit(RLIMIT_CORE, &lim) == 0) {
++ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
++ "core dump file size limit raised to %lu bytes",
++ lim.rlim_cur);
++ } else {
++ ap_log_error(APLOG_MARK, APLOG_NOTICE, errno, NULL,
++ "core dump file size is zero, setrlimit failed");
++ }
++ }
++ }
++#endif
++
+ return OK;
+ }
+
diff --git a/server/web/apache/files/httpd-2.4.1-deplibs.patch b/server/web/apache/files/httpd-2.4.1-deplibs.patch
new file mode 100644
index 0000000000..b73c21dcff
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.1-deplibs.patch
@@ -0,0 +1,19 @@
+
+Link straight against .la files.
+
+Upstream-Status: vendor specific
+
+--- httpd-2.4.1/configure.in.deplibs
++++ httpd-2.4.1/configure.in
+@@ -707,9 +707,9 @@ APACHE_HELP_STRING(--with-suexec-umask,u
+
+ dnl APR should go after the other libs, so the right symbols can be picked up
+ 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`"
+ fi
+-AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`"
++AP_LIBS="$AP_LIBS `$apr_config --link-libtool`"
+ APACHE_SUBST(AP_LIBS)
+ APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
+ APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
diff --git a/server/web/apache/files/httpd-2.4.2-icons.patch b/server/web/apache/files/httpd-2.4.2-icons.patch
new file mode 100644
index 0000000000..13419996a9
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.2-icons.patch
@@ -0,0 +1,26 @@
+
+- Fix config for /icons/ dir to allow symlink to poweredby.png.
+- Avoid using coredump GIF for a directory called "core"
+
+Upstream-Status: vendor specific patch
+
+--- httpd-2.4.2/docs/conf/extra/httpd-autoindex.conf.in.icons
++++ httpd-2.4.2/docs/conf/extra/httpd-autoindex.conf.in
+@@ -21,7 +21,7 @@ IndexOptions FancyIndexing HTMLTable Ver
+ Alias /icons/ "@exp_iconsdir@/"
+
+
+- Options Indexes MultiViews
++ Options Indexes MultiViews FollowSymlinks
+ AllowOverride None
+ Require all granted
+
+@@ -53,7 +53,7 @@ AddIcon /icons/dvi.gif .dvi
+ AddIcon /icons/uuencoded.gif .uu
+ AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
+ AddIcon /icons/tex.gif .tex
+-AddIcon /icons/bomb.gif core
++AddIcon /icons/bomb.gif core.
+
+ AddIcon /icons/back.gif ..
+ AddIcon /icons/hand.right.gif README
diff --git a/server/web/apache/files/httpd-2.4.3-apctl-systemd.patch b/server/web/apache/files/httpd-2.4.3-apctl-systemd.patch
new file mode 100644
index 0000000000..bcb57fe8e9
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.3-apctl-systemd.patch
@@ -0,0 +1,45 @@
+
+Upstream-Status: vendor specific patch
+
+diff --git a/support/apachectl.in b/support/apachectl.in
+index c6ac3ea..2599386 100644
+--- a/support/apachectl.in
++++ b/support/apachectl.in
+@@ -100,9 +100,24 @@ fi
+ ERROR=$?
+ }
+
++if [ "x$2" != "x" ] ; then
++ echo Passing arguments to httpd using apachectl is no longer supported.
++ echo You can only start/stop/restart httpd using this script.
++ echo If you want to pass extra arguments to httpd, edit the
++ echo /etc/sysconfig/httpd config file.
++fi
++
+ case $ACMD in
+-start|stop|restart|graceful|graceful-stop)
+- $HTTPD $OPTIONS -k $ARGV
++start|stop|restart|status)
++ /usr/bin/systemctl $ACMD httpd.service
++ ERROR=$?
++ ;;
++graceful)
++ /usr/bin/systemctl restart httpd.service
++ ERROR=$?
++ ;;
++graceful-stop)
++ /usr/bin/systemctl stop httpd.service
+ ERROR=$?
+ ;;
+ startssl|sslstart|start-SSL)
+@@ -114,10 +129,6 @@ startssl|sslstart|start-SSL)
+ configtest)
+ testconfig
+ ;;
+-status)
+- checklynx
+- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
+- ;;
+ fullstatus)
+ checklynx
+ $LYNX $STATUSURL
diff --git a/server/web/apache/files/httpd-2.4.3-apxs.patch b/server/web/apache/files/httpd-2.4.3-apxs.patch
new file mode 100644
index 0000000000..ea1bc14891
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.3-apxs.patch
@@ -0,0 +1,56 @@
+--- httpd-2.4.3/support/apxs.in.apxs
++++ httpd-2.4.3/support/apxs.in
+@@ -25,7 +25,18 @@ package apxs;
+
+ my %config_vars = ();
+
+-my $installbuilddir = "@exp_installbuilddir@";
++# Awful hack to make apxs libdir-agnostic:
++my $pkg_config = "/usr/bin/pkg-config";
++if (! -x "$pkg_config") {
++ error("$pkg_config not found!");
++ exit(1);
++}
++
++my $libdir = `pkg-config --variable=libdir apr-1`;
++chomp $libdir;
++
++my $installbuilddir = $libdir . "/apache2/build";
++
+ get_config_vars("$installbuilddir/config_vars.mk",\%config_vars);
+
+ # read the configuration variables once
+@@ -275,7 +286,7 @@ if ($opt_g) {
+ $data =~ s|%NAME%|$name|sg;
+ $data =~ s|%TARGET%|$CFG_TARGET|sg;
+ $data =~ s|%PREFIX%|$prefix|sg;
+- $data =~ s|%INSTALLBUILDDIR%|$installbuilddir|sg;
++ $data =~ s|%LIBDIR%|$libdir|sg;
+
+ my ($mkf, $mods, $src) = ($data =~ m|^(.+)-=#=-\n(.+)-=#=-\n(.+)|s);
+
+@@ -453,11 +464,11 @@ if ($opt_c) {
+ my $ldflags = "$CFG_LDFLAGS";
+ if ($opt_p == 1) {
+
+- my $apr_libs=`$apr_config --cflags --ldflags --link-libtool --libs`;
++ my $apr_libs=`$apr_config --cflags --ldflags --link-libtool`;
+ chomp($apr_libs);
+ my $apu_libs="";
+ if ($apr_major_version < 2) {
+- $apu_libs=`$apu_config --ldflags --link-libtool --libs`;
++ $apu_libs=`$apu_config --ldflags --link-libtool`;
+ chomp($apu_libs);
+ }
+
+@@ -672,8 +683,8 @@ __DATA__
+
+ builddir=.
+ top_srcdir=%PREFIX%
+-top_builddir=%PREFIX%
+-include %INSTALLBUILDDIR%/special.mk
++top_builddir=%LIBDIR%/apache2
++include %LIBDIR%/apache2/build/special.mk
+
+ # the used tools
+ APXS=apxs
diff --git a/server/web/apache/files/httpd-2.4.3-mod_systemd.patch b/server/web/apache/files/httpd-2.4.3-mod_systemd.patch
new file mode 100644
index 0000000000..a9b1fd9910
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.3-mod_systemd.patch
@@ -0,0 +1,163 @@
+--- httpd-2.4.3/modules/arch/unix/config5.m4.systemd
++++ httpd-2.4.3/modules/arch/unix/config5.m4
+@@ -18,6 +18,19 @@ APACHE_MODULE(privileges, Per-virtualhos
+ fi
+ ])
+
++
++APACHE_MODULE(systemd, Systemd support, , , $unixd_mods_enabled, [
++ AC_CHECK_LIB(systemd-daemon, sd_notify, SYSTEMD_LIBS="-lsystemd-daemon")
++ AC_CHECK_HEADERS(systemd/sd-daemon.h, [ap_HAVE_SD_DAEMON_H="yes"], [ap_HAVE_SD_DAEMON_H="no"])
++ if test $ap_HAVE_SD_DAEMON_H = "no" || test -z "${SYSTEMD_LIBS}"; then
++ AC_MSG_WARN([Your system does not support systemd.])
++ enable_systemd="no"
++ else
++ APR_ADDTO(MOD_SYSTEMD_LDADD, [$SYSTEMD_LIBS])
++ enable_systemd="yes"
++ fi
++])
++
+ APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+
+ APACHE_MODPATH_FINISH
+--- httpd-2.4.3/modules/arch/unix/mod_systemd.c.systemd
++++ httpd-2.4.3/modules/arch/unix/mod_systemd.c
+@@ -0,0 +1,138 @@
++/* 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.
++ *
++ */
++
++#include
++#include
++#include "ap_mpm.h"
++#include
++#include
++#include
++#include
++#include
++#include "unixd.h"
++#include "scoreboard.h"
++#include "mpm_common.h"
++
++#include "systemd/sd-daemon.h"
++
++#if APR_HAVE_UNISTD_H
++#include
++#endif
++
++#define KBYTE 1024
++
++static pid_t pid; /* PID of the main httpd instance */
++static int server_limit, thread_limit, threads_per_child, max_servers;
++static time_t last_update_time;
++static unsigned long last_update_access;
++static unsigned long last_update_kbytes;
++
++static int systemd_pre_mpm(apr_pool_t *p, ap_scoreboard_e sb_type)
++{
++ int rv;
++ last_update_time = time(0);
++
++ ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit);
++ ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit);
++ ap_mpm_query(AP_MPMQ_MAX_THREADS, &threads_per_child);
++ /* work around buggy MPMs */
++ if (threads_per_child == 0)
++ threads_per_child = 1;
++ ap_mpm_query(AP_MPMQ_MAX_DAEMONS, &max_servers);
++
++ pid = getpid();
++
++ rv = sd_notifyf(0, "READY=1\n"
++ "STATUS=Processing requests...\n"
++ "MAINPID=%lu",
++ (unsigned long) pid);
++ if (rv < 0) {
++ ap_log_perror(APLOG_MARK, APLOG_ERR, 0, p,
++ "sd_notifyf returned an error %d", rv);
++ }
++
++ return OK;
++}
++
++static int systemd_monitor(apr_pool_t *p, server_rec *s)
++{
++ int i, j, res, rv;
++ process_score *ps_record;
++ worker_score *ws_record;
++ unsigned long access = 0;
++ unsigned long bytes = 0;
++ unsigned long kbytes = 0;
++ char bps[5];
++ time_t now = time(0);
++ time_t elapsed = now - last_update_time;
++
++ for (i = 0; i < server_limit; ++i) {
++ ps_record = ap_get_scoreboard_process(i);
++ for (j = 0; j < thread_limit; ++j) {
++ ws_record = ap_get_scoreboard_worker_from_indexes(i, j);
++ if (ap_extended_status && !ps_record->quiescing && ps_record->pid) {
++ res = ws_record->status;
++ if (ws_record->access_count != 0 ||
++ (res != SERVER_READY && res != SERVER_DEAD)) {
++ access += ws_record->access_count;
++ bytes += ws_record->bytes_served;
++ if (bytes >= KBYTE) {
++ kbytes += (bytes >> 10);
++ bytes = bytes & 0x3ff;
++ }
++ }
++ }
++ }
++ }
++
++ apr_strfsize((unsigned long)(KBYTE *(float) (kbytes - last_update_kbytes)
++ / (float) elapsed), bps);
++
++ rv = sd_notifyf(0, "READY=1\n"
++ "STATUS=Total requests: %lu; Current requests/sec: %.3g; "
++ "Current traffic: %sB/sec\n", access,
++ ((float)access - last_update_access) / (float) elapsed, bps);
++ if (rv < 0) {
++ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00000)
++ "sd_notifyf returned an error %d", rv);
++ }
++
++ last_update_access = access;
++ last_update_kbytes = kbytes;
++ last_update_time = now;
++
++ return DECLINED;
++}
++
++static void systemd_register_hooks(apr_pool_t *p)
++{
++ /* We know the PID in this hook ... */
++ ap_hook_pre_mpm(systemd_pre_mpm, NULL, NULL, APR_HOOK_LAST);
++ /* Used to update httpd's status line using sd_notifyf */
++ ap_hook_monitor(systemd_monitor, NULL, NULL, APR_HOOK_MIDDLE);
++}
++
++module AP_MODULE_DECLARE_DATA systemd_module =
++{
++ STANDARD20_MODULE_STUFF,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ NULL,
++ systemd_register_hooks,
++};
diff --git a/server/web/apache/files/httpd-2.4.3-sslsninotreq.patch b/server/web/apache/files/httpd-2.4.3-sslsninotreq.patch
new file mode 100644
index 0000000000..6e158c60d7
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.3-sslsninotreq.patch
@@ -0,0 +1,83 @@
+diff --git a/modules/ssl/ssl_engine_config.c b/modules/ssl/ssl_engine_config.c
+index 15993f1..53ed6f1 100644
+--- a/modules/ssl/ssl_engine_config.c
++++ b/modules/ssl/ssl_engine_config.c
+@@ -55,6 +55,7 @@ SSLModConfigRec *ssl_config_global_create(server_rec *s)
+ mc = (SSLModConfigRec *)apr_palloc(pool, sizeof(*mc));
+ mc->pPool = pool;
+ mc->bFixed = FALSE;
++ mc->sni_required = FALSE;
+
+ /*
+ * initialize per-module configuration
+diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c
+index bf1f0e4..a7523de 100644
+--- a/modules/ssl/ssl_engine_init.c
++++ b/modules/ssl/ssl_engine_init.c
+@@ -409,7 +409,7 @@ int ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
+ /*
+ * Configuration consistency checks
+ */
+- ssl_init_CheckServers(base_server, ptemp);
++ ssl_init_CheckServers(mc, base_server, ptemp);
+
+ /*
+ * Announce mod_ssl and SSL library in HTTP Server field
+@@ -1475,7 +1475,7 @@ void ssl_init_ConfigureServer(server_rec *s,
+ }
+ }
+
+-void ssl_init_CheckServers(server_rec *base_server, apr_pool_t *p)
++void ssl_init_CheckServers(SSLModConfigRec *mc, server_rec *base_server, apr_pool_t *p)
+ {
+ server_rec *s, *ps;
+ SSLSrvConfigRec *sc;
+@@ -1557,6 +1557,7 @@ void ssl_init_CheckServers(server_rec *base_server, apr_pool_t *p)
+ }
+
+ if (conflict) {
++ mc->sni_required = TRUE;
+ #ifdef OPENSSL_NO_TLSEXT
+ ap_log_error(APLOG_MARK, APLOG_WARNING, 0, base_server, APLOGNO(01917)
+ "Init: You should not use name-based "
+diff --git a/modules/ssl/ssl_engine_kernel.c b/modules/ssl/ssl_engine_kernel.c
+index bc9e26b..2460f01 100644
+--- a/modules/ssl/ssl_engine_kernel.c
++++ b/modules/ssl/ssl_engine_kernel.c
+@@ -164,6 +164,7 @@ int ssl_hook_ReadReq(request_rec *r)
+ return DECLINED;
+ }
+ #ifndef OPENSSL_NO_TLSEXT
++ if (myModConfig(r->server)->sni_required) {
+ if ((servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name))) {
+ char *host, *scope_id;
+ apr_port_t port;
+@@ -206,6 +207,7 @@ int ssl_hook_ReadReq(request_rec *r)
+ " virtual host");
+ return HTTP_FORBIDDEN;
+ }
++ }
+ #endif
+ SSL_set_app_data2(ssl, r);
+
+diff --git a/modules/ssl/ssl_private.h b/modules/ssl/ssl_private.h
+index 75fc0e3..31dbfa9 100644
+--- a/modules/ssl/ssl_private.h
++++ b/modules/ssl/ssl_private.h
+@@ -554,6 +554,7 @@ typedef struct {
+ struct {
+ void *pV1, *pV2, *pV3, *pV4, *pV5, *pV6, *pV7, *pV8, *pV9, *pV10;
+ } rCtx;
++ BOOL sni_required;
+ } SSLModConfigRec;
+
+ /** Structure representing configured filenames for certs and keys for
+@@ -786,7 +787,7 @@ const char *ssl_cmd_SSLFIPS(cmd_parms *cmd, void *dcfg, int flag);
+ int ssl_init_Module(apr_pool_t *, apr_pool_t *, apr_pool_t *, server_rec *);
+ void ssl_init_Engine(server_rec *, apr_pool_t *);
+ void ssl_init_ConfigureServer(server_rec *, apr_pool_t *, apr_pool_t *, SSLSrvConfigRec *);
+-void ssl_init_CheckServers(server_rec *, apr_pool_t *);
++void ssl_init_CheckServers(SSLModConfigRec *mc, server_rec *, apr_pool_t *);
+ STACK_OF(X509_NAME)
+ *ssl_init_FindCAList(server_rec *, apr_pool_t *, const char *, const char *);
+ void ssl_init_Child(apr_pool_t *, server_rec *);
diff --git a/server/web/apache/files/httpd-2.4.4-r1337344+.patch b/server/web/apache/files/httpd-2.4.4-r1337344+.patch
new file mode 100644
index 0000000000..6e5c3e7832
--- /dev/null
+++ b/server/web/apache/files/httpd-2.4.4-r1337344+.patch
@@ -0,0 +1,250 @@
+# ./pullrev.sh 1337344 1341905 1342065 1341930
+
+suexec enhancements:
+
+1) use syslog for logging
+2) use capabilities not setuid/setgid root binary
+
+http://svn.apache.org/viewvc?view=revision&revision=1337344
+http://svn.apache.org/viewvc?view=revision&revision=1341905
+http://svn.apache.org/viewvc?view=revision&revision=1342065
+http://svn.apache.org/viewvc?view=revision&revision=1341930
+
+--- httpd-2.4.4/configure.in.r1337344+
++++ httpd-2.4.4/configure.in
+@@ -734,7 +734,24 @@ APACHE_HELP_STRING(--with-suexec-gidmin,
+
+ AC_ARG_WITH(suexec-logfile,
+ APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
+- AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
++ if test "x$withval" = "xyes"; then
++ AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file])
++ fi
++])
++
++AC_ARG_WITH(suexec-syslog,
++APACHE_HELP_STRING(--with-suexec-syslog,Set the logfile),[
++ if test $withval = "yes"; then
++ if test "x${with_suexec_logfile}" != "xno"; then
++ AC_MSG_NOTICE([hint: use "--without-suexec-logfile --with-suexec-syslog"])
++ AC_MSG_ERROR([suexec does not support both logging to file and syslog])
++ fi
++ AC_CHECK_FUNCS([vsyslog], [], [
++ AC_MSG_ERROR([cannot support syslog from suexec without vsyslog()])])
++ AC_DEFINE(AP_LOG_SYSLOG, 1, [SuExec log to syslog])
++ fi
++])
++
+
+ AC_ARG_WITH(suexec-safepath,
+ APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[
+@@ -744,6 +761,15 @@ AC_ARG_WITH(suexec-umask,
+ APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
+ AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
+
++INSTALL_SUEXEC=setuid
++AC_ARG_ENABLE([suexec-capabilities],
++APACHE_HELP_STRING(--enable-suexec-capabilities,Use Linux capability bits not setuid root suexec), [
++INSTALL_SUEXEC=caps
++AC_DEFINE(AP_SUEXEC_CAPABILITIES, 1,
++ [Enable if suexec is installed with Linux capabilities, not setuid])
++])
++APACHE_SUBST(INSTALL_SUEXEC)
++
+ dnl APR should go after the other libs, so the right symbols can be picked up
+ if test x${apu_found} != xobsolete; then
+ AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool`"
+--- httpd-2.4.4/docs/manual/suexec.html.en.r1337344+
++++ httpd-2.4.4/docs/manual/suexec.html.en
+@@ -372,6 +372,21 @@
+ together with the --enable-suexec option to let
+ APACI accept your request for using the suEXEC feature.
+
++
--enable-suexec-capabilities
++
++
Linux specific: Normally,
++ the suexec binary is installed "setuid/setgid
++ root", which allows it to run with the full privileges of the
++ root user. If this option is used, the suexec
++ binary will instead be installed with only the setuid/setgid
++ "capability" bits set, which is the subset of full root
++ priviliges required for suexec operation. Note that
++ the suexec binary may not be able to write to a log
++ file in this mode; it is recommended that the
++ --with-suexec-syslog --without-suexec-logfile
++ options are used in conjunction with this mode, so that syslog
++ logging is used instead.
++
+
--with-suexec-bin=PATH
+
+
The path to the suexec binary must be hard-coded
+@@ -433,6 +448,12 @@
+ "suexec_log" and located in your standard logfile
+ directory (--logfiledir).
+
++
--with-suexec-syslog
++
++
If defined, suexec will log notices and errors to syslog
++ instead of a logfile. This option must be combined
++ with --without-suexec-logfile.
++
+
--with-suexec-safepath=PATH
+
+
Define a safe PATH environment to pass to CGI
+@@ -550,9 +571,12 @@ Group webgroup
+
+
The suEXEC wrapper will write log information
+ to the file defined with the --with-suexec-logfile
+- option as indicated above. If you feel you have configured and
+- installed the wrapper properly, have a look at this log and the
+- error_log for the server to see where you may have gone astray.
++ option as indicated above, or to syslog if --with-suexec-syslog
++ is used. If you feel you have configured and
++ installed the wrapper properly, have a look at the log and the
++ error_log for the server to see where you may have gone astray.
++ The output of "suexec -V" will show the options
++ used to compile suexec, if using a binary distribution.