Forráskód Böngészése

first cut for OpenPGP Key Server

Ralf S. Engelschall 22 éve
szülő
commit
fda4bb2ea1
4 módosított fájl, 218 hozzáadás és 0 törlés
  1. 16 0
      pks/fsl.pks
  2. 158 0
      pks/pks.spec
  3. 26 0
      pks/pksd.conf
  4. 18 0
      pks/rc.pks

+ 16 - 0
pks/fsl.pks

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

+ 158 - 0
pks/pks.spec

@@ -0,0 +1,158 @@
+##
+##  pks.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:         pks
+Summary:      OpenPGP Key Server
+URL:          http://pks.sourceforge.net/
+Vendor:       Marc Horowitz et al.
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        Cryptography
+License:      GPL
+Version:      0.9.6
+Release:      20030328
+
+#   list of sources
+Source0:      http://osdn.dl.sourceforge.net/sourceforge/pks/pks-%{version}.tar.gz
+Source1:      fsl.pks
+Source2:      rc.pks
+Source3:      pksd.conf
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20030103, fsl
+PreReq:       OpenPKG, openpkg >= 20030103, fsl, MTA
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    PKS is an OpenPGP (RFC 2440) compliant Public Key server, originally
+    developed by Marc Horowitz for http://pgp.mit.edu/.
+
+%prep
+    %setup -q
+
+%build
+    #   configure and build programs
+    echo "ac_cv_path_SENDMAIL=%{l_prefix}/sbin/sendmail" >config.cache
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O}" \
+    CPPFLAGS="%{l_cppflags}" \
+    LDFLAGS="%{l_ldflags} `%{l_prefix}/bin/fsl-config --ldflags --libs`" \
+    ./configure \
+        --cache-file=./config.cache \
+        --prefix=%{l_prefix} \
+        --sysconfdir=%{l_prefix}/etc/%{name} \
+        --localstatedir=%{l_prefix}/var/%{name} \
+        --datadir=%{l_prefix}/share/%{name}
+    %{l_make} %{l_mflags} \
+        LDFLAGS="%{l_ldflags} `%{l_prefix}/bin/fsl-config --ldflags --libs`"
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install programs
+    %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
+
+    #   strip installation files and adjust paths
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/include/db2
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/db2
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/db_*
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    mv  $RPM_BUILD_ROOT%{l_prefix}/bin/pks-queue-run.sh \
+        $RPM_BUILD_ROOT%{l_prefix}/bin/pks-queue-run
+    mv  $RPM_BUILD_ROOT%{l_prefix}/bin/pks-mail.sh \
+        $RPM_BUILD_ROOT%{l_prefix}/bin/pks-mail
+    mv  $RPM_BUILD_ROOT%{l_prefix}/var/pks/incoming \
+        $RPM_BUILD_ROOT%{l_prefix}/var/pks/queue
+
+    #   install OSSP fsl configuration
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE fsl.pks} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
+
+    #   install run-command script
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE rc.pks} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   override default configuration
+    %{l_shtool} install -c -m 644 \
+        -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE pksd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/pks/
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/pks/pksd.conf' \
+        '%dir %attr(775,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pks' \
+        '%dir %attr(775,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pks/db' \
+        '%dir %attr(775,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/pks/queue'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+
+%post
+    if [ $1 -eq 1 ]; then
+        #   create initial database
+        %{l_prefix}/bin/pksclient %{l_prefix}/var/pks/db create
+
+        #   activate in MTA configuration
+        mta_aliases_file=`%{l_prefix}/etc/rc --query mta_aliases_file`
+        mta_aliases_update=`%{l_prefix}/etc/rc --query mta_aliases_update`
+        if [ ".$mta_aliases_file" != . ]; then
+            ( echo "pks-request:     \"|%{l_prefix}/bin/pks-mail %{l_prefix}/etc/pks/pksd.conf\""
+              echo "pks-daemon:      MAILER-DAEMON"
+              echo "pks-admin:       postmaster"
+              echo "pgp-public-keys: pks-request"
+              echo "pgp:             pks-request"
+            ) | %{l_rpmtool} config -a -i "%{l_prefix}:%{l_name}" $mta_aliases_file
+        fi
+        if [ ".$mta_aliases_update" != . ]; then
+            eval $mta_aliases_update
+        fi
+    fi
+
+%preun
+    if [ $1 -eq 0 ]; then
+        #   deactivate in MTA configuration
+        mta_aliases_file=`%{l_prefix}/etc/rc --query mta_aliases_file`
+        mta_aliases_update=`%{l_prefix}/etc/rc --query mta_aliases_update`
+        if [ ".$mta_aliases_file" != . ]; then
+            %{l_rpmtool} config -r -i "%{l_prefix}:%{name}" $mta_aliases_file
+        fi
+        if [ ".$mta_aliases_update" != . ]; then
+            eval $mta_aliases_update
+        fi
+    fi
+

+ 26 - 0
pks/pksd.conf

@@ -0,0 +1,26 @@
+##
+##  pksd.conf -- PKS Daemon Configuration
+##
+
+pks_bin_dir          @l_prefix@/bin
+db_dir               @l_prefix@/var/pks/db
+socket_name          @l_prefix@/var/pks/pksd.ctl
+
+www_dir              @l_prefix@/var/pks
+www_port             11371
+www_readonly         0
+
+maintainer_email     PGP Key Server Administrator <pks-admin@pgp.example.com>
+mail_delivery_client @l_prefix@/sbin/sendmail -t -oi -fpks-daemon
+mail_intro_file      @l_prefix@/share/pks/mail_intro
+mail_dir             @l_prefix@/var/pks/queue
+help_dir             @l_prefix@/share/pks
+default_language     EN
+
+#this_site           pgp-public-keys@pgp.example.com
+#syncsite            pgp-public-keys@other1.example.com
+#syncsite            pgp-public-keys@other2.exampke.com
+#max_last            -1
+#max_last_reply_keys -1
+#max_reply_keys      -1
+

+ 18 - 0
pks/rc.pks

@@ -0,0 +1,18 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.pks -- Run-Commands for PKS Daemon
+##
+
+%config
+    pks_enable="yes"
+
+%start -p 200 -u @l_rusr@
+    opServiceEnabled pks || exit 0
+    @l_prefix@/sbin/pksd @l_prefix@/etc/pks/pksd.conf
+    (sleep 4; @l_prefix@/bin/pks-queue-run @l_prefix@/etc/pks/pksd.conf) \
+        </dev/null >/dev/null 2>&1 &
+
+%stop -p 200 -u @l_rusr@
+    opServiceEnabled pks || exit 0
+    @l_prefix@/bin/pksdctl @l_prefix@/var/pks/pksd.ctl shutdown
+