OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   28-Mar-2003 20:06:57
  Branch: HEAD                             Handle: 2003032819065402

  Added files:
    openpkg-src/pks         pks-mail.c
  Modified files:
    openpkg-src/pks         pks.spec rc.pks
    openpkg-web             news.txt

  Log:
    work-off this package even more to reach a more final point

  Summary:
    Revision    Changes     Path
    1.1         +29 -0      openpkg-src/pks/pks-mail.c
    1.2         +48 -12     openpkg-src/pks/pks.spec
    1.2         +12 -3      openpkg-src/pks/rc.pks
    1.3878      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/pks/pks-mail.c
  ============================================================================
  $ cvs diff -u -r0 -r1.1 pks-mail.c
  --- /dev/null 2003-03-28 20:06:56.000000000 +0100
  +++ pks-mail.c        2003-03-28 20:06:56.000000000 +0100
  @@ -0,0 +1,29 @@
  +
  +#include <stdlib.h>
  +#include <sys/types.h>
  +#include <unistd.h>
  +
  +#define RUN_DIR    L_PREFIX "/var/pks"
  +#define RUN_SCRIPT L_PREFIX "/libexec/pks/pks-mail"
  +
  +int main(int argc, char *argv[])
  +{
  +    static char *const exec_env[] = {
  +        "PATH=/bin:/usr/bin:/sbin:/usr/sbin",
  +        NULL
  +    };
  +    if (chdir(RUN_DIR) == -1) {
  +        perror("chdir");
  +        exit(1);
  +    }
  +    if (setuid(geteuid()) == -1) {
  +        perror("setuid");
  +        exit(1);
  +    }
  +    if (setgid(getegid()) == -1) {
  +        perror("setgid");
  +        exit(1);
  +    }
  +    execve(RUN_SCRIPT, argv, exec_env);
  +}
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/pks/pks.spec
  ============================================================================
  $ cvs diff -u -r1.1 -r1.2 pks.spec
  --- openpkg-src/pks/pks.spec  28 Mar 2003 13:12:54 -0000      1.1
  +++ openpkg-src/pks/pks.spec  28 Mar 2003 19:06:56 -0000      1.2
  @@ -40,6 +40,7 @@
   Source1:      fsl.pks
   Source2:      rc.pks
   Source3:      pksd.conf
  +Source4:      pks-mail.c
   
   #   build information
   Prefix:       %{l_prefix}
  @@ -72,6 +73,10 @@
       %{l_make} %{l_mflags} \
           LDFLAGS="%{l_ldflags} `%{l_prefix}/bin/fsl-config --ldflags --libs`"
   
  +    #   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
   
  @@ -82,13 +87,32 @@
       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}/var/%{name}/incoming \
  +        $RPM_BUILD_ROOT%{l_prefix}/var/%{name}/queue
  +    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  +
  +    #   remove non-English language files
  +    mv $RPM_BUILD_ROOT%{l_prefix}/share/pks/pks_help.en \
  +       $RPM_BUILD_ROOT%{l_prefix}/share/pks/pks_help.EN
  +    rm -f $RPM_BUILD_ROOT%{l_prefix}/share/pks/pks_help.[a-z]*
  +    mv $RPM_BUILD_ROOT%{l_prefix}/share/pks/pks_help.EN \
  +       $RPM_BUILD_ROOT%{l_prefix}/share/pks/pks_help.en
  +
  +    #   install HTML top-level page
  +    %{l_shtool} mkdir -f -p -m 755 \
  +        $RPM_BUILD_ROOT%{l_prefix}/pub/%{name}
  +    mv  $RPM_BUILD_ROOT%{l_prefix}/var/%{name}/index.html \
  +        $RPM_BUILD_ROOT%{l_prefix}/pub/%{name}/index.html
  +
  +    #   install suid wrapper for pks-mail
  +    %{l_shtool} mkdir -f -p -m 755 \
  +        $RPM_BUILD_ROOT%{l_prefix}/libexec/%{name}
       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
  +        $RPM_BUILD_ROOT%{l_prefix}/libexec/%{name}/pks-mail
  +    %{l_shtool} install -c -s -m 755 \
  +        pks-mail $RPM_BUILD_ROOT%{l_prefix}/bin/
   
       #   install OSSP fsl configuration
       %{l_shtool} mkdir -f -p -m 755 \
  @@ -102,20 +126,22 @@
           $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
       %{l_shtool} install -c -m 644 \
           -e 's;@l_prefix@;%{l_prefix};g' \
  +        -e 's;@l_rusr@;%{l_rusr};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/
  +        %{SOURCE pksd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/%{name}/
   
       #   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'
  +        '%config %{l_prefix}/etc/%{name}/pksd.conf' \
  +        '%attr(4755,%{l_rusr},%{l_mgrp}) %{l_prefix}/bin/pks-mail' \
  +        '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/%{name}' \
  +        '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/%{name}/db' \
  +        '%dir %attr(755,%{l_rusr},%{l_mgrp}) %{l_prefix}/var/%{name}/queue'
   
   %files -f files
   
  @@ -125,18 +151,18 @@
   %post
       if [ $1 -eq 1 ]; then
           #   create initial database
  -        %{l_prefix}/bin/pksclient %{l_prefix}/var/pks/db create
  +        su - %{l_rusr} "%{l_prefix}/bin/pksclient %{l_prefix}/var/%{name}/db 
create" # >/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-request:     \"|%{l_prefix}/bin/pks-mail 
%{l_prefix}/etc/pks/pksd.conf\""
  +            ( echo "pks-request:     \"|%{l_prefix}/bin/pks-mail 
%{l_prefix}/etc/%{name}/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
  +            ) | %{l_rpmtool} config -a -i "%{l_prefix}:%{name}" $mta_aliases_file
           fi
           if [ ".$mta_aliases_update" != . ]; then
               eval $mta_aliases_update
  @@ -145,6 +171,9 @@
   
   %preun
       if [ $1 -eq 0 ]; then
  +        #   stop perhaps still running server
  +        %{l_prefix}/etc/rc %{name} 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`
  @@ -154,5 +183,12 @@
           if [ ".$mta_aliases_update" != . ]; then
               eval $mta_aliases_update
           fi
  +
  +        #   remove generated files
  +        rm -f %{l_prefix}/var/%{name}/pksd.ctl >/dev/null 2>&1 || true
  +        rm -f %{l_prefix}/var/%{name}/pksd.log >/dev/null 2>&1 || true
  +        rm -f %{l_prefix}/var/%{name}/pks-queue-run.pid >/dev/null 2>&1 || true
  +        rm -f %{l_prefix}/var/%{name}/queue/* >/dev/null 2>&1 || true
  +        rm -f %{l_prefix}/var/%{name}/db/* >/dev/null 2>&1 || true
       fi
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/pks/rc.pks
  ============================================================================
  $ cvs diff -u -r1.1 -r1.2 rc.pks
  --- openpkg-src/pks/rc.pks    28 Mar 2003 13:12:54 -0000      1.1
  +++ openpkg-src/pks/rc.pks    28 Mar 2003 19:06:56 -0000      1.2
  @@ -8,11 +8,20 @@
   
   %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 &
  +    (nohup @l_prefix@/sbin/pksd \
  +        @l_prefix@/etc/pks/pksd.conf \
  +        </dev/null >/dev/null 2>&1 &) >/dev/null 2>&1
  +    sleep 2
  +    (nohup @l_prefix@/bin/pks-queue-run \
  +        @l_prefix@/etc/pks/pksd.conf \
  +        </dev/null >/dev/null 2>&1 &) >/dev/null 2>&1
  +    echo "$!" >@l_prefix@/var/pks/pks-queue-run.pid
   
   %stop -p 200 -u @l_rusr@
       opServiceEnabled pks || exit 0
       @l_prefix@/bin/pksdctl @l_prefix@/var/pks/pksd.ctl shutdown
  +    if [ -f @l_prefix@/var/pks/pks-queue-run.pid ]; then
  +        kill `cat @l_prefix@/var/pks/pks-queue-run.pid` >/dev/null 2>&1
  +        rm -f @l_prefix@/var/pks/pks-queue-run.pid
  +    fi
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.3877 -r1.3878 news.txt
  --- openpkg-web/news.txt      28 Mar 2003 19:00:30 -0000      1.3877
  +++ openpkg-web/news.txt      28 Mar 2003 19:06:54 -0000      1.3878
  @@ -1,3 +1,4 @@
  +28-Mar-2003: Upgraded package: P<pks-0.9.6-20030328>
   28-Mar-2003: Upgraded package: P<swig-1.3.19-20030328>
   28-Mar-2003: Upgraded package: P<iozone-3.167-20030328>
   28-Mar-2003: Upgraded package: P<w3m-0.4.1-20030328>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to