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

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   05-May-2004 15:05:04
  Branch: OPENPKG_2_0_SOLID                Handle: 2004050514050300

  Added files:              (Branch: OPENPKG_2_0_SOLID)
    openpkg-src/perl-kolab  perl-kolab.patch
  Modified files:           (Branch: OPENPKG_2_0_SOLID)
    openpkg-src/perl-kolab  perl-kolab.spec

  Log:
    MFC: fix chown; SA-2004.019-kolab

  Summary:
    Revision    Changes     Path
    1.1.2.1     +163 -0     openpkg-src/perl-kolab/perl-kolab.patch
    1.7.2.4     +5  -3      openpkg-src/perl-kolab/perl-kolab.spec
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/perl-kolab/perl-kolab.patch
  ============================================================================
  $ cvs diff -u -r0 -r1.1.2.1 perl-kolab.patch
  --- /dev/null 2004-05-05 15:05:03.000000000 +0200
  +++ perl-kolab.patch  2004-05-05 15:05:04.000000000 +0200
  @@ -0,0 +1,163 @@
  +--- Conf.pm  2004-05-03 14:27:12.000000000 +0200
  ++++ Conf.pm  2004-05-03 14:27:41.000000000 +0200
  +@@ -56,72 +56,94 @@
  + 
  + our $VERSION = '0.9';
  + 
  +-sub build {
  +-    my $tmpl = shift;
  +-    my $cfg = shift;
  +-    my $oldcfg = $cfg . '.old';
  +-    my $prefix = $Kolab::config{'prefix'};
  +-
  +-    my $tmpfile = $prefix . '/etc/kolab/.tmp';
  +-    copy($cfg, $oldcfg);
  +-    chown($Kolab::config{'kolab_uid'}, $Kolab::config{'kolab_gid'}, $oldcfg);
  +-
  +-    Kolab::log('T', "Creating new configuration file `$cfg' from template 
`$tmpl'");
  +-
  +-    my $template;
  +-    if (!($template = IO::File->new($tmpl, 'r'))) {
  +-        Kolab::log('T', "Unable to open template file `$tmpl'", KOLAB_ERROR);
  +-        exit(1);
  +-    }
  +-    my $config;
  +-    if (!($config = IO::File->new($tmpfile, 'w+'))) {
  +-        Kolab::log('T', "Unable to open configuration file `$cfg'", KOLAB_ERROR);
  +-        exit(1);
  +-    }
  +-
  +-    while (<$template>) {
  +-        if (/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]/) {
  +-            if ($Kolab::config{$1}) {
  +-                s/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]/$Kolab::config{$1}/g;
  +-            } else {
  +-                Kolab::log('T', "No configuration variable corresponding to `$1' 
exists", KOLAB_WARN);
  +-                s/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]//g;
  +-            }
  +-        }
  +-        print $config $_;
  +-    }
  +-
  +-    $template->close;
  +-    $config->close;
  +-
  +-    move($tmpfile, $cfg);
  +-    chown($Kolab::config{'kolab_uid'}, $Kolab::config{'kolab_gid'}, $cfg);
  +-
  +-    if (-f $oldcfg) {
  +-        my $rc = `diff -q $cfg $oldcfg`;
  +-        chomp($rc);
  +-        if ($rc) {
  +-            if ($cfg =~ /postfix/) {
  +-                $Kolab::haschanged{'postfix'} = 1;
  +-            } elsif ($cfg =~ /saslauthd/) {
  +-                $Kolab::haschanged{'saslauthd'} = 1;
  +-            } elsif ($cfg =~ /apache/) {
  +-                $Kolab::haschanged{'apache'} = 1;
  +-            } elsif ($cfg =~ /proftpd/) {
  +-                $Kolab::haschanged{'proftpd'} = 1;
  +-            } elsif ($cfg =~ /openldap/) {
  +-                $Kolab::haschanged{'slapd'} = 1;
  +-            } elsif ($cfg =~ /imapd/) {
  +-                $Kolab::haschanged{'imapd'} = 1;
  +-            }
  +-
  +-            Kolab::log('T', "`$cfg' change detected: $rc", KOLAB_DEBUG);
  +-        }
  +-    }
  +-
  +-    Kolab::log('T', "Finished creating configuration file `$cfg'");
  +-}
  +-
  ++sub build {
  ++    my $tmpl = shift;
  ++    my $cfg = shift;
  ++    my $prefix = $Kolab::config{'prefix'};
  ++
  ++    my $TEMPLATE;
  ++    if (!($TEMPLATE = IO::File->new($tmpl, 'r'))) {
  ++        Kolab::log('T', "Unable to open template file `$tmpl'", KOLAB_ERROR);
  ++        exit(1);
  ++    }
  ++    my @tempfile = ();
  ++
  ++    while (<$TEMPLATE>) {
  ++        if (/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]/) {
  ++            if ($Kolab::config{$1}) {
  ++                s/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]/$Kolab::config{$1}/g;
  ++            } else {
  ++                Kolab::log('T', "No configuration variable corresponding to `$1' 
exists", KOLAB_WARN);
  ++                s/[EMAIL PROTECTED](\S+)[EMAIL PROTECTED]//g;
  ++            }
  ++        }
  ++        push (@tempfile, $_);
  ++    }
  ++    $TEMPLATE->close;
  ++ 
  ++    my $CONFIGFILE;
  ++    if (!($CONFIGFILE = IO::File->new($cfg, 'r'))) {
  ++        Kolab::log('T', "Unable to open config file `$cfg'", KOLAB_ERROR);
  ++        exit(1);
  ++    }
  ++    
  ++    my $configchanged = 0;
  ++    
  ++    foreach my $line (@tempfile) {
  ++      my $configline = <$CONFIGFILE>;
  ++      $configchanged = 1 if ($configline ne $line)
  ++    }
  ++    $CONFIGFILE->close;
  ++    undef $CONFIGFILE;
  ++
  ++    return 0 if ($configchanged ne 1);
  ++    
  ++    if ($configchanged) {
  ++            Kolab::log('T', "`$cfg' change detected.", KOLAB_DEBUG);
  ++            
  ++        if ($cfg =~ /postfix/) {
  ++                $Kolab::haschanged{'postfix'} = 1;
  ++            } elsif ($cfg =~ /saslauthd/) {
  ++                $Kolab::haschanged{'saslauthd'} = 1;
  ++            } elsif ($cfg =~ /apache/) {
  ++                $Kolab::haschanged{'apache'} = 1;
  ++            } elsif ($cfg =~ /proftpd/) {
  ++                $Kolab::haschanged{'proftpd'} = 1;
  ++            } elsif ($cfg =~ /openldap/) {
  ++                $Kolab::haschanged{'slapd'} = 1;
  ++            } elsif ($cfg =~ /imapd/) {
  ++                $Kolab::haschanged{'imapd'} = 1;
  ++            }
  ++    }
  ++    Kolab::log('T', "Creating new configuration file `$cfg' from template 
`$tmpl'");
  ++    
  ++    my $tmpfile = $prefix . '/etc/kolab/.tmp';
  ++    unlink($tmpfile);
  ++    my $NEWFILE;
  ++    if ($cfg =~ /openldap/) { 
  ++      if (!($NEWFILE = IO::File->new($tmpfile, O_RDWR|O_CREAT|O_EXCL, 0600))) {
  ++        Kolab::log('T', "Unable to open configuration file `$tmpfile'", 
KOLAB_ERROR);
  ++        exit(1);
  ++      } 
  ++    } else { 
  ++      if (!($NEWFILE = IO::File->new($tmpfile, O_RDWR|O_CREAT|O_EXCL, 0644))) {
  ++        Kolab::log('T', "Unable to open configuration file `$tmpfile'", 
KOLAB_ERROR);
  ++        exit(1);
  ++      } 
  ++    }
  ++    
  ++    foreach my $line (@tempfile) {
  ++       print $NEWFILE $line;
  ++    }
  ++    $NEWFILE->close;
  ++    unlink($cfg);
  ++    link($tmpfile,$cfg);
  ++    unlink($tmpfile);
  ++    chown($Kolab::config{'kolab_uid'}, $Kolab::config{'kolab_gid'}, $cfg);
  ++    
  ++    Kolab::log('T', "Finished creating configuration file `$cfg'");
  ++}
  ++
  + sub buildPostfixTransportMap
  + {
  +     Kolab::log('T', 'Building Postfix transport map');
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/perl-kolab/perl-kolab.spec
  ============================================================================
  $ cvs diff -u -r1.7.2.3 -r1.7.2.4 perl-kolab.spec
  --- openpkg-src/perl-kolab/perl-kolab.spec    5 May 2004 13:02:09 -0000       1.7.2.3
  +++ openpkg-src/perl-kolab/perl-kolab.spec    5 May 2004 13:05:03 -0000       1.7.2.4
  @@ -48,7 +48,7 @@
   Group:        Language
   License:      GPL/Artistic
   Version:      %{V_perl}
  -Release:      2.0.1
  +Release:      2.0.2
   
   #   list of sources
   Source0:      http://www.cpan.org/authors/id/S/ST/STEPHANB/Kolab-%{V_kolab}.tar.gz
  @@ -62,6 +62,7 @@
   Source8:      
http://www.cpan.org/authors/id/S/ST/STEPHANB/Kolab-Conf-%{V_kolab_conf}.tar.gz
   Source9:      
http://www.cpan.org/authors/id/S/ST/STEPHANB/Kolab-DirServ-%{V_kolab_dirserv}.tar.gz
   Source10:     
http://www.cpan.org/authors/id/S/ST/STEPHANB/Kolab-Mailer-%{V_kolab_mailer}.tar.gz
  +Patch0:       perl-kolab.patch
   
   #   build information
   Prefix:       %{l_prefix}
  @@ -143,9 +144,10 @@
       %setup -q -T -D -a 8
       %setup -q -T -D -a 9
       %setup -q -T -D -a 10
  +    %patch -p0 -d Kolab-Conf-%{V_kolab_conf}
       %{l_shtool} subst \
  -        -e 's;chown root.root;chown @l_susr@:@l_sgrp@;' \
  -        Kolab-Conf-0.9/Conf.pm
  +        -e 's;chown root.root;chown %{l_susr}:%{l_sgrp};' \
  +        Kolab-Conf-%{V_kolab_conf}/Conf.pm
   
   %build
   
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to