From b3722503332f0fbaa6013a6aab3f0fed24cbb243 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 17 Dec 2015 15:54:29 +0200 Subject: First pass over INSTALL, some file renames --- INSTALL | 34 +++++++++++-------- INSTALL-DEV | 4 +-- brep/buildfile | 6 +++- etc/brep-apache2.conf | 94 +++++++++++++++++++++++++-------------------------- etc/brep-module.conf | 41 ++++++++++++++++++++++ etc/brep.conf | 41 ---------------------- etc/buildfile | 2 +- 7 files changed, 114 insertions(+), 108 deletions(-) create mode 100644 etc/brep-module.conf delete mode 100644 etc/brep.conf diff --git a/INSTALL b/INSTALL index 5239d5d..737fa9d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,22 +1,25 @@ This guide shows how to install and configure brep on a "deployment" machine as -opposed to a "development" one (see INSTALL-DEV for latter). Here we assume you -are using a systemd-based installation. If not, then you will need to replace -systemctl commands with the equivalend init.d ones. +opposed to a "development" one (see INSTALL-DEV for the latter). Here we assume +you are using a systemd-based distribution. If not, then you will need to +replace systemctl commands with the equivalend init.d ones. 1. Create 'brep' User This user will be used to run the brep repository loader. We will also use its home directory to build and install the brep module, store its configuration, etc. We create this user with a disabled password so only root will be able to -operate as brep. Because of this restriction we can allow brep to run sudo +operate as brep. Because of this restriction we will allow brep to run sudo without a password: # adduser --disabled-password brep # echo "brep ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/brep # chmod 0440 /etc/sudoers.d/brep +@@ TODO ACL + In the rest of this guide commands that start with the $ shell prompt are -assumed to be executed as the brep user and in its home directory. +expected to be executed as the brep user and in its home directory. + 2. Install Prerequisites @@ -55,8 +58,8 @@ e) Install libodb-pgsql and libstudxml 3. Build and Install brep -$ mkdir build -$ cd build +$ mkdir brep install +$ cd brep In the following command line, replace and with directories that contain the apr.h and httpd.h headers, respectively. Below are their @@ -92,7 +95,7 @@ CREATE USER "www-data" INHERIT IN ROLE brep; Exit psql (^D), then make sure the logins work: -$ psql -d brep +$ psql $ sudo sudo -u www-data psql -d brep To troubleshoot, see PostgreSQL logs. @@ -101,10 +104,10 @@ To troubleshoot, see PostgreSQL logs. 5. Create Database Schema and Load Repositories $ mkdir config -$ edit config/loader.conf # Capture loader configuration, see brep-loader(1). +$ edit config/brep-loader.conf # Loader configuration, see brep-loader(1). -$ psql --quiet -f brep/package.sql -$ install/bin/brep-loader tests/loader/r.conf +$ psql --quiet -f install/share/brep/package.sql +$ install/bin/brep-loader config/brep-loader.conf To verify: @@ -113,11 +116,12 @@ $ psql -c 'SELECT name, summary FROM repository' 6. Setup Apache2 Module -$ cp install/share/brep/etc/brep.conf config/module.conf -$ edit config/module.conf # Adjust default values if required. +$ cp install/share/brep/etc/brep-module.conf config/ +$ edit config/brep-module.conf # Adjust default values if required. Here we assume you have setup an appropriate Apache2 virtual server. Open the -corresponding Apache2 .conf file and add the following inside VirtualServer: +corresponding Apache2 .conf file and add the following inside VirtualHost (you +can also find this fragment in install/share/brep/etc/brep-apache2.conf): # Load the brep module. # @@ -136,7 +140,7 @@ corresponding Apache2 .conf file and add the following inside VirtualServer: # of this file here. However, you will need to prefix every option with # 'brep-'. # - brep-conf /home/brep/config/module.conf + brep-conf /home/brep/config/brep-module.conf # Static brep content (CSS files). # diff --git a/INSTALL-DEV b/INSTALL-DEV index 3ad039c..92d7d43 100644 --- a/INSTALL-DEV +++ b/INSTALL-DEV @@ -75,7 +75,7 @@ replacing and with the actual absolute paths # Brep module configuration. # - brep-conf /etc/brep.conf + brep-conf /etc/brep-module.conf # Static brep content (CSS files). # @@ -87,7 +87,7 @@ replacing and with the actual absolute paths Require all granted -You may want to replace /etc/brep.conf with a custom +You may want to replace /etc/brep-module.conf with a custom configuration file if you often need to modify it. Restart Apache2 (use the second version for systemd): diff --git a/brep/buildfile b/brep/buildfile index 7fd7233..dbe0bce 100644 --- a/brep/buildfile +++ b/brep/buildfile @@ -6,7 +6,11 @@ define mod: libso mod{*}: bin.libprefix = mod_ mod{*}: install = libexec -./: lib{brep} mod{brep} +define sql: file +sql{*}: extension = sql +sql{*}: install = data + +./: lib{brep} mod{brep} sql{package} # lib{brep} # diff --git a/etc/brep-apache2.conf b/etc/brep-apache2.conf index bd8cd0c..189216c 100644 --- a/etc/brep-apache2.conf +++ b/etc/brep-apache2.conf @@ -1,49 +1,47 @@ -# The brep.conf file can be included once into Apache configuration file in -# the section or in the main server context. +# Paste the following fragment into your section (it is the same +# as what you find in the INSTALL file). # -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. -# - - Error "mod_brep is not loaded" - - - - Error "mod_alias is not loaded" - - -# 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-search-pages 5 -brep-package-description 500 -brep-package-changes 5000 -brep-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/ - - - Require all granted - - -# 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 + + # Load the brep module. + # + LoadModule brep_module /home/brep/install/libexec/brep/mod_brep.so + SetHandler brep + + # Repository root. This is the part of the URL between the host name + # and the start of the repository. For example, root value /pkg/ means + # the repository URL is http://example.org/pkg/. Specify / to use the + # web server root (e.g., http://example.org/). If using a different + # repository root, don't forget to also change Alias directives below. + # + brep-root /pkg/ + + # Brep module configuration. If you prefer, you can paste the contents + # of this file here. However, you will need to prefix every option with + # 'brep-'. + # + brep-conf /home/brep/config/brep-module.conf + + # Static brep content (CSS files). + # + + Error "mod_alias is not enabled" + + + # Note: trailing slashes are important! + # + Alias /pkg/@/ /home/brep/install/share/brep/www/ + + + Require all granted + + + # You can also serve the repository files from the repository root. + # For example: + # + # http://example.org/pkg/1/... -> /path/to/repo/1/... + # + #AliasMatch ^/pkg/(\d+)/(.+) /path/to/repo/$1/$2 + # + # + # Require all granted + # diff --git a/etc/brep-module.conf b/etc/brep-module.conf new file mode 100644 index 0000000..26767d6 --- /dev/null +++ b/etc/brep-module.conf @@ -0,0 +1,41 @@ +# Configuration file for the brep module (note: this is not an apache2 .conf +# file but it can be converted to one by prefixing all the options with brep-). +# See brep(1) for detailed description of each configuration option. Commented +# out options indicate their default values. +# + +# Number of results per page. +# +# search-results 10 + + +# Number of pages in navigation (pager). +# +# search-pages 5 + + +# Number of package description characters to display in brief pages. +# +# package-description 500 + + +# Number of package changes characters to display in brief pages. +# +# package-changes 5000 + + +# Database connection configuration. By default, brep will try to connect to +# the local instance of PostgreSQL with the operating system-default mechanism +# (Unix-domain socket, etc) and use operating system (login) user name and the +# database called 'brep'. See brep(1) for details. +# +# db-user +# db-password +# db-name brep +# db-host +# db-port + + +# Trace verbosity. Disabled by default. +# +# verbosity 1 diff --git a/etc/brep.conf b/etc/brep.conf deleted file mode 100644 index 26767d6..0000000 --- a/etc/brep.conf +++ /dev/null @@ -1,41 +0,0 @@ -# Configuration file for the brep module (note: this is not an apache2 .conf -# file but it can be converted to one by prefixing all the options with brep-). -# See brep(1) for detailed description of each configuration option. Commented -# out options indicate their default values. -# - -# Number of results per page. -# -# search-results 10 - - -# Number of pages in navigation (pager). -# -# search-pages 5 - - -# Number of package description characters to display in brief pages. -# -# package-description 500 - - -# Number of package changes characters to display in brief pages. -# -# package-changes 5000 - - -# Database connection configuration. By default, brep will try to connect to -# the local instance of PostgreSQL with the operating system-default mechanism -# (Unix-domain socket, etc) and use operating system (login) user name and the -# database called 'brep'. See brep(1) for details. -# -# db-user -# db-password -# db-name brep -# db-host -# db-port - - -# Trace verbosity. Disabled by default. -# -# verbosity 1 diff --git a/etc/buildfile b/etc/buildfile index ea96623..fc192b6 100644 --- a/etc/buildfile +++ b/etc/buildfile @@ -6,4 +6,4 @@ define conf: file conf{*}: extension = conf conf{*}: install = data/etc -./: conf{brep} +./: conf{brep-module brep-apache2} -- cgit v1.1