Browse Source

new package: pound 1.4 (HTTP/HTTPS Reverse Proxy)

Ralf S. Engelschall 22 years ago
parent
commit
d8647073f6
5 changed files with 236 additions and 0 deletions
  1. 16 0
      pound/fsl.pound
  2. 26 0
      pound/pound.cfg
  3. 35 0
      pound/pound.pem
  4. 140 0
      pound/pound.spec
  5. 19 0
      pound/rc.pound

+ 16 - 0
pound/fsl.pound

@@ -0,0 +1,16 @@
+##
+##  fsl.pound -- OSSP fsl configuration for Pound
+##
+
+ident (pound)/.+ q{
+    prefix(
+        prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
+    ) 
+    -> {
+        debug: file(
+            path="@l_prefix@/var/pound/pound.log",
+            append=1, perm=0644
+        )
+    }
+};
+

+ 26 - 0
pound/pound.cfg

@@ -0,0 +1,26 @@
+##
+##  pound.cfg -- Pound Reverse Proxy Configuration
+##
+
+User         @l_nusr@
+Group        @l_ngrp@
+
+RootJail     @l_prefix@/var/pound
+LogLevel     2
+
+ListenHTTP   127.0.0.1,8080
+ListenHTTPS  127.0.0.1,8443 @l_prefix@/etc/pound/pound.pem
+
+ExtendedHTTP 1
+WebDAV       1
+
+Alive        30
+Client       30
+
+UrlGroup     ".*"
+BackEnd      127.0.0.1,80,1
+#BackEnd     127.0.0.1,81,2
+#BackEnd     127.0.0.1,82,3
+Session      IP 300
+EndGroup
+

+ 35 - 0
pound/pound.pem

@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
+FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG
+A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv
+cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz
+bmFrZW9pbC5kb20wHhcNOTkxMDIxMTgyMTUxWhcNMDExMDIwMTgyMTUxWjCBpzEL
+MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h
+a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl
+cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN
+AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQC554Ro+VH0dJONqljPBW+C72MDNGNy9eXnzejXrczsHs3Pc92Vaat6CpIEEGue
+yG29xagb1o7Gj2KRgpVYcmdx6tHd2JkFW5BcFVfWXL42PV4rf9ziYon8jWsbK2aE
++L6hCtcbxdbHOGZdSIWZJwc/1Vs70S/7ImW+Zds8YEFiAwIDAQABo24wbDAbBgNV
+HREEFDASgRB3d3dAc25ha2VvaWwuZG9tMDoGCWCGSAGG+EIBDQQtFittb2Rfc3Ns
+IGdlbmVyYXRlZCBjdXN0b20gc2VydmVyIGNlcnRpZmljYXRlMBEGCWCGSAGG+EIB
+AQQEAwIGQDANBgkqhkiG9w0BAQQFAAOBgQB6MRsYGTXUR53/nTkRDQlBdgCcnhy3
+hErfmPNl/Or5jWOmuufeIXqCvM6dK7kW/KBboui4pffIKUVafLUMdARVV6BpIGMI
+5LmVFK3sgwuJ01v/90hCt4kTWoT8YHbBLtQh7PzWgJoBAY7MJmjSguYCRt91sU4K
+s0dfWsdItkw4uQ==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC554Ro+VH0dJONqljPBW+C72MDNGNy9eXnzejXrczsHs3Pc92V
+aat6CpIEEGueyG29xagb1o7Gj2KRgpVYcmdx6tHd2JkFW5BcFVfWXL42PV4rf9zi
+Yon8jWsbK2aE+L6hCtcbxdbHOGZdSIWZJwc/1Vs70S/7ImW+Zds8YEFiAwIDAQAB
+AoGBAKTvnFGKSkUJnNQGe66I0wunGgCA3W7kbarAzEF2qKYhGlZhJQnn68RmVnAW
+pXUFvB+vmtu/+4J9OmWBJsGHFvC9xH32a0PWNr7APjAKrjAD8GWS7Z6BjuxN8QhD
+WlFMmpYhYIjT1jt7RNfs2gJGS2Ryu3zutUQGwtUB9Pou03dJAkEA6yttwVINFqQP
+utgUZ1JUHrN/rE73FzYsF/CwJp5d3rLHenZzLT0iW+kNDLUw/VpzYxK7bF2Qrt/3
+QIUWwm2InQJBAMpe+jhNMJeLDLc3tG3zeithT0mFkuzWWmT2PJgQ0V78UWhw/fSn
+Qqnq7KBY/DNjlfhezrozLDD73/ccmha0Ax8CQQCBaBlyOtNm9QqO116K6HvPlRiZ
+Wa6QQEgNOG3GInknFZu9ILcKWsywZNLAfmgh0gcSqnkmDWqTQD0PbOz0Ok/lAkEA
+g24JrfUbwOASww9PhDUju/a36rTwhhZ0oKt3EP+jKsBOErmHhZP3bKlhQoZoTOu5
+Y5QXSMChS7LZcwDFZkdE2wJATRgMbhErif+ZRwt9XJRdCo5Sx6ewyGyxjc5gvUyK
+KegHcgru/ZC3pGlujRD2LqxgJNAn5QTdW4LK8xVPFySTYg==
+-----END RSA PRIVATE KEY-----

+ 140 - 0
pound/pound.spec

@@ -0,0 +1,140 @@
+##
+##  pound.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
+##  Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package information
+Name:         pound
+Summary:      HTTP/HTTPS Reverse Proxy
+URL:          http://www.apsis.ch/pound/
+Vendor:       APSIS
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        Web
+License:      GPL
+Version:      1.4
+Release:      20030530
+
+#   list of sources
+Source0:      http://www.apsis.ch/pound/Pound-%{version}.tgz
+Source1:      pound.cfg
+Source2:      pound.pem
+Source3:      rc.pound
+Source4:      fsl.pound
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20020206, fsl, openssl, openssl::with_threads = yes, pth, pth::with_pthread = yes, pcre
+PreReq:       OpenPKG, openpkg >= 20020206, fsl
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    The Pound program is a reverse proxy, load balancer and HTTPS
+    front-end for Web server(s). Pound was developed to enable
+    distributing the load among several Web-servers and to allow for a
+    convenient SSL wrapper for those Web servers that do not offer it
+    natively.
+
+%prep
+    %setup -q -n Pound-%{version}
+
+    #   force to use PCRE instead of vendor regex(3)
+    %{l_shtool} subst \
+        -e 's;regex\.h;pcreposix.h;' \
+        -e 's;HAVE_REGEX_H;HAVE_PCREPOSIX_H;' \
+        configure
+    %{l_shtool} subst \
+        -e 's;HAVE_REGEX_H;HAVE_PCREPOSIX_H;' \
+        config.h.in
+    %{l_shtool} subst \
+        -e 's;HAVE_REGEX_H;HAVE_PCREPOSIX_H;' \
+        -e 's;<regex\.h>;<pcreposix.h>;' \
+        pound.h
+
+    #   adjust hard-coded paths
+    %{l_shtool} subst \
+        -e 's;/usr/local/etc/pound/pound.cfg;%{l_prefix}/etc/pound/pound.cfg;' \
+        -e 's;/var/run/pound.pid;%{l_prefix}/var/pound/pound.pid;' \
+        Makefile.in pound.8 pound.c
+
+%build
+    #   configure package
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O} `%{l_prefix}/bin/pthread-config --all --cflags`" \
+    LDFLAGS="%{l_ldflags} `%{l_prefix}/bin/pthread-config --all --ldflags`" \
+    LIBS="`%{l_prefix}/bin/pthread-config --all --libs` `%{l_prefix}/bin/fsl-config --all --libs` -lpcreposix -lpcre" \
+    ./configure \
+        --prefix=%{l_prefix} \
+        --sysconfdir=%{l_prefix}/etc/pound \
+        --with-ssl=%{l_prefix}
+
+    #   build package
+    %{l_make} %{l_mflags -O}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   create installation hierarchy
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/sbin \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/fsl \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/pound \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
+        $RPM_BUILD_ROOT%{l_prefix}/man/man8 \
+        $RPM_BUILD_ROOT%{l_prefix}/var/pound
+
+    #   install program and manual page
+    %{l_shtool} install -c -s -m 755 \
+        pound $RPM_BUILD_ROOT%{l_prefix}/sbin/
+    %{l_shtool} install -c -m 644 \
+        pound.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
+
+    #   install default configuration
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        -e 's;@l_nusr@;%{l_nusr};g' \
+        -e 's;@l_ngrp@;%{l_ngrp};g' \
+        %{SOURCE pound.cfg} $RPM_BUILD_ROOT%{l_prefix}/etc/pound/
+    %{l_shtool} install -c -m 644 \
+        %{SOURCE pound.pem} $RPM_BUILD_ROOT%{l_prefix}/etc/pound/
+
+    #   install run-command and fsl configuration
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE rc.pound} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE fsl.pound} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/pound/*'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+

+ 19 - 0
pound/rc.pound

@@ -0,0 +1,19 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.pound -- Run-Commands for Pound Daemon
+##
+
+%config
+    pound_enable="yes"
+
+%start -p 100 -u root
+    if opServiceEnabled pound; then
+        @l_prefix@/sbin/pound
+    fi
+
+%stop -p 200 -u root
+    if opServiceEnabled pound; then
+        kill -TERM `cat @l_prefix@/var/pound/pound.pid`
+        sleep 1
+    fi
+