## ## pks.spec -- OpenPKG RPM Specification ## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH ## Copyright (c) 2000-2003 The OpenPKG Project ## Copyright (c) 2000-2003 Ralf S. Engelschall ## ## 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 [PLUS] Group: Cryptography License: GPL Version: 0.9.6 Release: 20030708 # package options %option with_fsl yes # list of sources Source0: http://osdn.dl.sourceforge.net/sourceforge/pks/pks-%{version}.tar.gz Source1: fsl.pks Source2: rc.pks Source3: pksd.conf Source4: pks-mail.c Source5: pks.html Source6: pks-apache.conf # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20030415 PreReq: OpenPKG, openpkg >= 20030415, MTA %if "%{with_fsl}" == "yes" BuildPreReq: fsl PreReq: fsl %endif 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_fsl_ldflags}" \ ./configure \ --cache-file=./config.cache \ --prefix=%{l_prefix} \ --sysconfdir=%{l_prefix}/etc/pks \ --localstatedir=%{l_prefix}/var/pks \ --datadir=%{l_prefix}/share/pks %{l_make} %{l_mflags} \ LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" # build suid wrapper for pks-mail %{l_cc} %{l_cflags} %{l_ldflags} '-DL_PREFIX="%{l_prefix}"' \ -o pks-mail %{SOURCE pks-mail.c} %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_* rm -f $RPM_BUILD_ROOT%{l_prefix}/var/pks/index.html 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}/var/pks/incoming \ $RPM_BUILD_ROOT%{l_prefix}/var/pks/queue strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true # install HTML top-level page %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/pub/pks %{l_shtool} install -c -m 644 \ %{SOURCE pks.html} $RPM_BUILD_ROOT%{l_prefix}/pub/pks/index.html # install suid wrapper for pks-mail %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/libexec/pks mv $RPM_BUILD_ROOT%{l_prefix}/bin/pks-mail.sh \ $RPM_BUILD_ROOT%{l_prefix}/libexec/pks/pks-mail %{l_shtool} install -c -s -m 755 \ pks-mail $RPM_BUILD_ROOT%{l_prefix}/bin/ # install run-command script %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d %{l_shtool} install -c -m 755 \ -e 's;@l_prefix@;%{l_prefix};g' \ -e 's;@l_rusr@;%{l_rusr};g' \ -e 's;@l_rgrp@;%{l_rgrp};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/ %{l_shtool} install -c -m 644 \ -e 's;@l_prefix@;%{l_prefix};g' \ %{SOURCE pks-apache.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/pks/ # 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/ # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%not %dir %{l_prefix}/etc/fsl' \ '%config %{l_prefix}/etc/fsl/fsl.pks' \ '%config %{l_prefix}/etc/pks/pksd.conf' \ '%attr(4755,%{l_rusr},%{l_mgrp}) %{l_prefix}/bin/pks-mail' \ '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/pks' \ '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/pks/db' \ '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/pks/queue' %files -f files %clean rm -rf $RPM_BUILD_ROOT %post if [ $1 -eq 1 ]; then # create initial database su - %{l_rusr} -c "%{l_prefix}/bin/pksclient \ %{l_prefix}/var/pks/db create" >/dev/null 2>&1 su - %{l_rusr} -c "%{l_prefix}/bin/pksclient \ %{l_prefix}/var/pks/db add %{l_prefix}/etc/openpkg/openpkg.pgp" >/dev/null 2>&1 # 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: pks-request" 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}:pks" $mta_aliases_file fi if [ ".$mta_aliases_update" != . ]; then eval $mta_aliases_update fi fi %preun if [ $1 -eq 0 ]; then # stop perhaps still running server %{l_prefix}/etc/rc pks stop >/dev/null 2>&1 || true # 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}:pks" $mta_aliases_file fi if [ ".$mta_aliases_update" != . ]; then eval $mta_aliases_update fi # remove generated files rm -f %{l_prefix}/var/pks/pksd.ctl >/dev/null 2>&1 || true rm -f %{l_prefix}/var/pks/pksd.log >/dev/null 2>&1 || true rm -f %{l_prefix}/var/pks/pks-queue-run.pid >/dev/null 2>&1 || true rm -f %{l_prefix}/var/pks/queue/* >/dev/null 2>&1 || true rm -f %{l_prefix}/var/pks/db/* >/dev/null 2>&1 || true fi