aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-12-08 11:45:08 (GMT)
committerBoris Kolpackov <boris@codesynthesis.com>2015-12-14 10:02:13 (GMT)
commite28ab8f48c891c03cf4b3a8ed88b98d38a561960 (patch)
tree0ae1dbb54e497fc797e5a73fcf3dd2dc487a5572 /etc
parenta31dfac365feef7838b01b1efd3fe058c89484d7 (diff)
Separate brep module configuration from Apache server configuration
Diffstat (limited to 'etc')
-rw-r--r--etc/brep.conf49
-rwxr-xr-xetc/dev/apachectl (renamed from etc/apachectl)50
-rwxr-xr-xetc/dev/brep (renamed from etc/brep)0
-rw-r--r--etc/dev/brep-site.conf9
-rw-r--r--etc/dev/config (renamed from etc/config)16
-rw-r--r--etc/dev/httpd.conf51
-rwxr-xr-xetc/dev/pgctl (renamed from etc/pgctl)0
-rw-r--r--etc/httpd.conf113
-rwxr-xr-xetc/loader18
-rw-r--r--etc/package-details.conf15
-rw-r--r--etc/package-search.conf13
-rw-r--r--etc/package-version-details.conf14
-rw-r--r--etc/repository-details.conf7
13 files changed, 146 insertions, 209 deletions
diff --git a/etc/brep.conf b/etc/brep.conf
new file mode 100644
index 0000000..6f806e8
--- /dev/null
+++ b/etc/brep.conf
@@ -0,0 +1,49 @@
+# The brep.conf file can be included once into Apache configuration file in
+# the <VirtualHost> section or in the main server context.
+#
+LoadModule brep_module modules/mod_brep.so
+LoadModule alias_module modules/mod_alias.so
+
+# Alternatively, if loading the modules in another place, make sure they
+# are loaded.
+#
+<IfModule !brep_module>
+ Error "mod_brep is not loaded"
+</IfModule>
+
+<IfModule !alias_module>
+ Error "mod_alias is not loaded"
+</IfModule>
+
+# To use a repository root other than /pkg/, replace all occurrences of
+# /pkg/ with the desired alternative root (use '/' for webserver root).
+#
+brep-root /pkg/
+brep-db-host localhost
+brep-db-port 5432
+brep-search-results 10
+brep-pager-pages 5
+brep-description-len 500
+brep-changes-len 5000
+brep-log-verbosity 0
+
+# To override brep module options place them into the separate configuration
+# file, suppressing the "brep-" prefix.
+#
+#brep-conf /path/to/brep-site.conf
+
+SetHandler brep
+
+# Location of the brep static content (CSS files).
+#
+Alias /pkg/@/ /usr/share/brep/static/
+
+<Directory "/usr/share/brep/static">
+ Require all granted
+</Directory>
+
+# Serve repository files from the repository root path. For example:
+#
+# http://example.org/pkg/1/... -> /path/to/repo/1/...
+#
+#AliasMatch ^/pkg/(\d+)/(.+) /path/to/repo/$1/$2
diff --git a/etc/apachectl b/etc/dev/apachectl
index 4c67c1f..4d45570 100755
--- a/etc/apachectl
+++ b/etc/dev/apachectl
@@ -20,14 +20,16 @@
# 8 - configuration syntax error
#
# When multiple arguments are given, only the error from the _last_
-# one is reported. Run "apachectl help" for usage info
+# one is reported. Run "apachectl help" for usage info.
+#
. `dirname $0`/config
ARGV="$@"
export AP_PORT
-export AP_SERVER_NAME
+export AP_GLOBAL_SERVER_NAME
+export AP_BREP_SERVER_NAME
export AP_ROOT
export AP_ADMIN_EMAIL
export AP_LOG_LEVEL
@@ -36,41 +38,55 @@ export AP_DB_PORT
export AP_MODULE_DIR
export AP_WWW_DIR
export AP_CONFIG_DIR
+export AP_LOG_DIR
export AP_WORKSPACE_DIR
export AP_REPOSITORY_DIR
-if test -n "$AP_LIB_DIRS"; then
- export LD_LIBRARY_PATH=$AP_LIB_DIRS:$LD_LIBRARY_PATH
+if [ -n "$AP_LIB_DIRS" ] ; then
+ export LD_LIBRARY_PATH=$AP_LIB_DIRS:$LD_LIBRARY_PATH
fi
mkdir -p "$AP_WORKSPACE_DIR"
mkdir -p "$AP_LOG_DIR"
mkdir -p "$AP_REPOSITORY_DIR"
-# the path to your httpd binary, including options if necessary
-
-HTTPD="/usr/sbin/httpd -d $AP_LOG_DIR -f $AP_CONFIG_DIR/httpd.conf"
+cat "$AP_CONFIG_DIR/../brep.conf" | \
+sed -e 's%modules\(/mod_brep.so\)%${AP_MODULE_DIR}\1%g' \
+ -e 's%/pkg/%${AP_ROOT}%g' \
+ -e 's%^\(brep-db-port\s*\).*%\1${AP_DB_PORT}%g' \
+ -e 's%^\(brep-db-host\s*\).*%\1${AP_DB_HOST}%g' \
+ -e 's%^#\(brep-conf\s*\)/path/to%\1${AP_CONFIG_DIR}%g' \
+ -e 's%/usr/share/brep/static%${AP_WWW_DIR}%g' \
+ -e 's%^#\(AliasMatch.*\)/path/to/repo%\1${AP_REPOSITORY_DIR}%g' \
+> "$AP_CONFIG_DIR/brep.conf"
+
+# The path to your httpd binary, including options if necessary.
+#
+HTTPD="/usr/sbin/httpd -f $AP_CONFIG_DIR/httpd.conf"
-# 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.
+# The 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 -dump"
-# the URL to your server's mod_status status page. If you do not
-# have one, then status and fullstatus will not work.
+# 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:$AP_PORT/server-status"
-# Set this variable to a command that increases the maximum
-# number of file descriptors allowed per child process. This is
-# critical for configurations that use many file descriptors,
-# such as mass vhosting, or a multithreaded server.
+# Set this variable to a command that increases the maximum number of file
+# descriptors allowed per child process. This is critical for configurations
+# that use many file descriptors, such as mass vhosting, or a multithreaded
+# server.
+#
ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"
# -------------------- --------------------
# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
# Set the maximum number of file descriptors allowed per child process.
+#
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
- $ULIMIT_MAX_FILES
+ $ULIMIT_MAX_FILES
fi
ERROR=0
diff --git a/etc/brep b/etc/dev/brep
index 3ec448b..3ec448b 100755
--- a/etc/brep
+++ b/etc/dev/brep
diff --git a/etc/dev/brep-site.conf b/etc/dev/brep-site.conf
new file mode 100644
index 0000000..09f020c
--- /dev/null
+++ b/etc/dev/brep-site.conf
@@ -0,0 +1,9 @@
+# file : etc/brep-site.conf
+# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+#
+
+search-results 2
+description-len 100
+changes-len 100
+log-verbosity 1
diff --git a/etc/config b/etc/dev/config
index c7edd56..cdd0b53 100644
--- a/etc/config
+++ b/etc/dev/config
@@ -2,7 +2,7 @@
#
SCRIPT_DIR=`dirname $0`
CONFIG_DIR=`cd $SCRIPT_DIR; pwd`
-PROJECT_DIR="$CONFIG_DIR/.."
+PROJECT_DIR="$CONFIG_DIR/../.."
WORKSPACE_DIR="$PROJECT_DIR/var"
LIB_DIRS="$PROJECT_DIR/brep:$PROJECT_DIR/../libbutl/butl:$PROJECT_DIR/../libbpkg/bpkg"
@@ -17,9 +17,9 @@ PG_WORKSPACE_DIR="$WORKSPACE_DIR/run/pgsql"
# Apache settings (used in apachectl)
#
AP_PORT=8080
-AP_SERVER_NAME="cppget.org:$AP_PORT"
-AP_ROOT="" # Value examples: "", "/foo", "/foo/bar".
-AP_ADMIN_EMAIL=admin@cppget.org
+AP_GLOBAL_SERVER_NAME="localhost"
+AP_BREP_SERVER_NAME="dev.cppget.org"
+AP_ROOT="/" # Value examples: "/", "/foo/", "/foo/bar/".
AP_LOG_LEVEL=trace1
AP_DB_HOST="$PG_WORKSPACE_DIR"
AP_DB_PORT=$PG_PORT
@@ -30,11 +30,3 @@ AP_CONFIG_DIR="$CONFIG_DIR"
AP_LOG_DIR="$WORKSPACE_DIR/log/httpd"
AP_WORKSPACE_DIR="$WORKSPACE_DIR/run/httpd"
AP_REPOSITORY_DIR="$WORKSPACE_DIR/www"
-
-# brep-loader settings (used in loader)
-#
-LD_DB_HOST="$PG_WORKSPACE_DIR"
-LD_DB_PORT=$PG_PORT
-LD_REPOSITORIES="$CONFIG_DIR/repositories.conf"
-LD_LIB_DIRS="$LIB_DIRS"
-LD_EXE_DIRS="$PROJECT_DIR/loader"
diff --git a/etc/dev/httpd.conf b/etc/dev/httpd.conf
new file mode 100644
index 0000000..5943d70
--- /dev/null
+++ b/etc/dev/httpd.conf
@@ -0,0 +1,51 @@
+Listen ${AP_PORT}
+ServerName ${AP_GLOBAL_SERVER_NAME}:${AP_PORT}
+
+CoreDumpDirectory "${AP_WORKSPACE_DIR}"
+PidFile "${AP_WORKSPACE_DIR}/httpd.pid"
+
+ErrorLog "|/usr/sbin/rotatelogs ${AP_LOG_DIR}/error_log.%Y%m%d 86400"
+ErrorLogFormat "[%t] [%l] [%m] %M"
+LogLevel ${AP_LOG_LEVEL}
+
+Timeout 60
+KeepAlive On
+KeepAliveTimeout 3
+
+ThreadLimit 1000
+ServerLimit 2
+StartServers 1
+MaxClients 1000
+MinSpareThreads 400
+MaxSpareThreads 600
+ThreadsPerChild 500
+MaxRequestsPerChild 0
+
+LoadModule mpm_worker_module modules/mod_mpm_worker.so
+LoadModule unixd_module modules/mod_unixd.so
+LoadModule filter_module modules/mod_filter.so
+LoadModule authz_core_module modules/mod_authz_core.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule status_module modules/mod_status.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule deflate_module modules/mod_deflate.so
+
+<VirtualHost *:${AP_PORT}>
+ ServerName ${AP_GLOBAL_SERVER_NAME}
+</VirtualHost>
+
+<VirtualHost *:${AP_PORT}>
+ ServerName ${AP_BREP_SERVER_NAME}
+ Include ${AP_CONFIG_DIR}/brep.conf
+</VirtualHost>
+
+ExtendedStatus On
+
+<Location /server-status>
+ SetHandler server-status
+ Require local
+</Location>
+
+TypesConfig /etc/mime.types
+AddOutputFilterByType DEFLATE application/xhtml+xml
+AddOutputFilterByType DEFLATE text/css
diff --git a/etc/pgctl b/etc/dev/pgctl
index d1f676f..d1f676f 100755
--- a/etc/pgctl
+++ b/etc/dev/pgctl
diff --git a/etc/httpd.conf b/etc/httpd.conf
deleted file mode 100644
index dc56d9b..0000000
--- a/etc/httpd.conf
+++ /dev/null
@@ -1,113 +0,0 @@
-Listen ${AP_PORT}
-ServerName "${AP_SERVER_NAME}"
-ServerAdmin "${AP_ADMIN_EMAIL}"
-
-User apache
-Group apache
-
-CoreDumpDirectory "${AP_WORKSPACE_DIR}"
-PidFile "${AP_WORKSPACE_DIR}/httpd.pid"
-
-ErrorLog "|/usr/sbin/rotatelogs error_log.%Y%m%d 86400"
-ErrorLogFormat "[%t] [%l] [%m] %M"
-LogLevel ${AP_LOG_LEVEL}
-
-Timeout 60
-KeepAlive On
-KeepAliveTimeout 3
-
-ThreadLimit 1000
-ServerLimit 2
-StartServers 1
-MaxClients 1000
-MinSpareThreads 400
-MaxSpareThreads 600
-ThreadsPerChild 500
-MaxRequestsPerChild 0
-
-LoadModule mpm_worker_module /usr/lib64/httpd/modules/mod_mpm_worker.so
-LoadModule unixd_module /usr/lib64/httpd/modules/mod_unixd.so
-LoadModule filter_module /usr/lib64/httpd/modules/mod_filter.so
-LoadModule authz_core_module /usr/lib64/httpd/modules/mod_authz_core.so
-LoadModule authz_host_module /usr/lib64/httpd/modules/mod_authz_host.so
-LoadModule status_module /usr/lib64/httpd/modules/mod_status.so
-LoadModule mime_module /usr/lib64/httpd/modules/mod_mime.so
-LoadModule deflate_module /usr/lib64/httpd/modules/mod_deflate.so
-LoadModule alias_module /usr/lib64/httpd/modules/mod_alias.so
-
-LoadModule repository_root_srv ${AP_MODULE_DIR}/libbrep-apache.so
-
-LoadModule package_search_srv ${AP_MODULE_DIR}/libbrep-apache.so
-
-<IfModule package_search_srv>
- package-search-root "${AP_ROOT}"
- package-search-db-host ${AP_DB_HOST}
- package-search-db-port ${AP_DB_PORT}
- package-search-conf ${AP_CONFIG_DIR}/package-search.conf
-</IfModule>
-
-LoadModule package_details_srv ${AP_MODULE_DIR}/libbrep-apache.so
-
-<IfModule package_details_srv>
- package-details-root "${AP_ROOT}"
- package-details-db-host ${AP_DB_HOST}
- package-details-db-port ${AP_DB_PORT}
- package-details-conf ${AP_CONFIG_DIR}/package-details.conf
-</IfModule>
-
-LoadModule package_version_details_srv ${AP_MODULE_DIR}/libbrep-apache.so
-
-<IfModule package_version_details_srv>
- package-version-details-root "${AP_ROOT}"
- package-version-details-db-host ${AP_DB_HOST}
- package-version-details-db-port ${AP_DB_PORT}
- package-version-details-conf ${AP_CONFIG_DIR}/package-version-details.conf
-</IfModule>
-
-LoadModule repository_details_srv ${AP_MODULE_DIR}/libbrep-apache.so
-
-<IfModule repository_details_srv>
- repository-details-root "${AP_ROOT}"
- repository-details-db-host ${AP_DB_HOST}
- repository-details-db-port ${AP_DB_PORT}
- repository-details-conf ${AP_CONFIG_DIR}/repository-details.conf
-</IfModule>
-
-<LocationMatch ^${AP_ROOT}/?$>
- SetHandler repository-root
-</LocationMatch>
-
-<LocationMatch ^${AP_ROOT}/[^/]+$>
- SetHandler package-details
-</LocationMatch>
-
-<LocationMatch ^${AP_ROOT}/[^/]+/[^/]+$>
- SetHandler package-version-details
-</LocationMatch>
-
-# Disable package-version-details and package-details handlers on static files
-# and repository content locations.
-# Location examples: /@, /@/common.css, /1, /1/math/stable.
-#
-<LocationMatch ^${AP_ROOT}/(@|\d+)(/.*)?$>
- SetHandler None
-</LocationMatch>
-
-# Static files locations.
-#
-AliasMatch ^${AP_ROOT}/@/(.+) ${AP_WWW_DIR}/$1
-
-# Repository files locations.
-#
-AliasMatch ^${AP_ROOT}/(\d+)/(.+) ${AP_REPOSITORY_DIR}/$1/$2
-
-ExtendedStatus On
-
-<Location /server-status>
- SetHandler server-status
- Require local
-</Location>
-
-TypesConfig /etc/mime.types
-AddOutputFilterByType DEFLATE application/xhtml+xml
-AddOutputFilterByType DEFLATE text/css
diff --git a/etc/loader b/etc/loader
deleted file mode 100755
index 1ae3b48..0000000
--- a/etc/loader
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# file : etc/loader
-# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-#
-# Designed to simplify running brep-loader utility.
-
-. `dirname $0`/config
-
-if test -n "$LD_LIB_DIRS"; then
- export LD_LIBRARY_PATH=$LD_LIB_DIRS:$LD_LIBRARY_PATH
-fi
-
-if test -n "$LD_EXE_DIRS"; then
- export PATH=$LD_EXE_DIRS:$PATH
-fi
-
-brep-loader --db-host "$LD_DB_HOST" --db-port $PG_PORT "$LD_REPOSITORIES"
diff --git a/etc/package-details.conf b/etc/package-details.conf
deleted file mode 100644
index 66a7c17..0000000
--- a/etc/package-details.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-# file : etc/package-details.conf
-# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-#
-# brep::module options
-#
-verb 1
-
-# brep::package_details options
-#
-# @@ Set to 10.
-results-on-page 2
-pages-in-pager 5
-# @@ Set to 500 (~ 80 chars x 6 lines).
-description-length 100
diff --git a/etc/package-search.conf b/etc/package-search.conf
deleted file mode 100644
index 4c1484f..0000000
--- a/etc/package-search.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# file : etc/package-search.conf
-# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-#
-# brep::module options
-#
-verb 1
-
-# brep::package_search options
-#
-# @@ Set to 10.
-results-on-page 2
-pages-in-pager 5
diff --git a/etc/package-version-details.conf b/etc/package-version-details.conf
deleted file mode 100644
index 865e162..0000000
--- a/etc/package-version-details.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-# file : etc/package-version-details.conf
-# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-#
-# brep::module options
-#
-verb 1
-
-# brep::package_version_details options
-#
-# @@ Set to 500 (~ 80 chars x 6 lines).
-description-length 100
-# @@ Set to 5000 (~ 80 chars x 60 lines).
-changes-length 100
diff --git a/etc/repository-details.conf b/etc/repository-details.conf
deleted file mode 100644
index e173cfb..0000000
--- a/etc/repository-details.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# file : etc/repository-details.conf
-# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-#
-# brep::module options
-#
-verb 1