[csw-devel] SF.net SVN: gar:[7067] csw/mgar/pkg/cvsproxy/trunk/files
bonivart at users.sourceforge.net
bonivart at users.sourceforge.net
Sun Nov 1 17:49:38 CET 2009
Revision: 7067
http://gar.svn.sourceforge.net/gar/?rev=7067&view=rev
Author: bonivart
Date: 2009-11-01 16:49:37 +0000 (Sun, 01 Nov 2009)
Log Message:
-----------
cvsproxy: changes in files dir
Added Paths:
-----------
csw/mgar/pkg/cvsproxy/trunk/files/inetd.conf
csw/mgar/pkg/cvsproxy/trunk/files/services
Removed Paths:
-------------
csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.postinstall
csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.preremove
csw/mgar/pkg/cvsproxy/trunk/files/editconf.pl
Deleted: csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.postinstall
===================================================================
--- csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.postinstall 2009-11-01 16:46:43 UTC (rev 7066)
+++ csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.postinstall 2009-11-01 16:49:37 UTC (rev 7067)
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-# Mostly copied from CSWfam
-
-set -e
-
-if [ "$PKG_ROOT_DIR" = "" ]; then
- PKG_ROOT_DIR=/;
-fi
-
-CSWROOT=$PKG_ROOT_DIR/opt/csw
-EDITCONF=$CSWROOT/libexec/cvsproxy/editconf.pl
-
-
-echo "Adding cvsproxy to /etc/services"
-"$EDITCONF" "$PKG_ROOT_DIR/etc/services" add '^cvsproxy\b' \
- "cvsproxy 2401/tcp # Transparent CVS proxy" \
- "cvsproxy 2401/udp # Transparent CVS proxy"
-
-echo "Adding cvsproxy to inetd.conf"
-"$EDITCONF" "$PKG_ROOT_DIR/etc/inetd.conf" add 'Transparent CVS proxy' \
- "# Transparent CVS proxy"
-"$EDITCONF" "$PKG_ROOT_DIR/etc/inetd.conf" add '^cvsproxy\b' \
- "cvsproxy stream tcp nowait nobody /opt/csw/libexec/tcpd /opt/csw/libexec/cvsproxy/cvsproxy"
-
-
-echo "Restarting inetd..."
-pkill -HUP inetd
-
-exit 0
Deleted: csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.preremove
===================================================================
--- csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.preremove 2009-11-01 16:46:43 UTC (rev 7066)
+++ csw/mgar/pkg/cvsproxy/trunk/files/CSWcvsproxy.preremove 2009-11-01 16:49:37 UTC (rev 7067)
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$PKG_ROOT_DIR" = "" ]; then
- PKG_ROOT_DIR=/;
-fi
-
-EDITCONF="$PKG_ROOT_DIR/opt/csw/libexec/cvsproxy/editconf.pl"
-
-echo "Removing cvsproxy from /etc/services"
-"$EDITCONF" "$PKG_ROOT_DIR/etc/services" remove '^cvsproxy'
-
-echo "Removing cvsproxy from inetd.conf"
-"$EDITCONF" "$PKG_ROOT_DIR/etc/inetd.conf" remove '^cvsproxy'
-"$EDITCONF" "$PKG_ROOT_DIR/etc/inetd.conf" remove 'Transparent CVS proxy'
-
-echo "Restarting inetd..."
-pkill -HUP inetd
-
-exit 0
Deleted: csw/mgar/pkg/cvsproxy/trunk/files/editconf.pl
===================================================================
--- csw/mgar/pkg/cvsproxy/trunk/files/editconf.pl 2009-11-01 16:46:43 UTC (rev 7066)
+++ csw/mgar/pkg/cvsproxy/trunk/files/editconf.pl 2009-11-01 16:49:37 UTC (rev 7067)
@@ -1,440 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-# $Id: editconf.perl,v 1.1 2000/05/19 22:44:34 rusty Exp $
-#
-# This edits configuration files during software install/uninstall.
-# Run with --help or see the text of the usage subroutine below for
-# more information.
-#
-# Examples:
-#
-# Add fam to /etc/inetd.conf during install:
-# editconf inetd.conf add '\bfam\b' \
-# "# fam, the File Alteration Monitor" \
-# "sgi_fam/1-2 stream rpc/tcp wait root /usr/local/bin/fam fam"
-#
-# Remove fam from /etc/inetd.conf during uninstall:
-# editconf inetd.conf remove '\bfam\b'
-#
-# Add /usr/sysadm/lib to /etc/ld.so.conf#
-# editconf ld.so.conf add '\bsysadm\b' /usr/sysadm/lib
-#
-# Add sysadmd to /usr/local/etc/tcpmux.conf:
-# editconf tcpmux.conf add '\bsysadm\b' \
-# "# sysadmd, for system administration applications" \
-# "sgi_sysadm root /usr/sysadm/bin/sysadmd sysadmd"
-#
-# The main goal of this script is to "do no harm." We don't
-# modify any files if it looks like we're going to mess with
-# lines which have been edited by the user. The only time we
-# change a file is when we're confident that we're adding new
-# lines, or messing with lines which we ourselves added or
-# removed during a previous invocation of the script.
-#
-# Well... that's not entirely true; the "remove" operation comments
-# out any line that matches the given regexp. But it makes a backup!
-#
-# USING EDITCONF WITH AUTOMAKE AND RPM
-#
-# This prepends DESTDIR to the files it operates on (unless you pass
-# it a file starting with \.{0,2}/, so it can be used during an
-# automake "make install" into a non-root directory (as you would do
-# while building an RPM package). Note that the file it attempts to
-# operate on probably won't be present, though, so you'll probably
-# need to ignore errors during the make install:
-#
-# make-install-hook:
-# -$(EDITCONF) ld.so.conf add '\bsysadm\b' /usr/sysadm/lib
-#
-# This will probably fail when DESTDIR is set, as ld.so.conf probably
-# doesn't exist under DESTDIR; the only reason to have this line in the
-# Makefile.am is so that a normal "make install" will update the
-# configuration files.
-#
-# In order to have your configuration files updated during the install/
-# uninstall of an rpm package, you'll need to add something like this
-# to your spec file:
-#
-# # this is %preun rather than %postun because we want to use our
-# # script before it gets uninstalled.
-# %preun
-# perl /usr/local/lib/fam/editconf.perl ld.so.conf remove '\bsysadm\b'
-#
-#
-sub usage {
- my($msg) = @_;
- $msg && ($msg ne "help") && print STDERR "$msg\n\n";
- print STDERR <<"EOF";
-Usage:
- $0 [options] file \"add\" regexp lines...
- $0 [options] file \"remove\" regexp [comment]
- $0 --help
-
-Options:
- -n No-exec (don't change any files)
- -v Verbose
- -s Silent
- -- End argument processing (in case your new config file lines
- start with -)
-EOF
-
- if($msg eq "help") {
- print STDERR <<"EOF";
-
-This edits configuration files. Given a file name, it looks
-in a list of directories (see below) for the file. (If the file
-name starts with "/" or ".", the path list is not searched.)
-Once the file is found, the given regular expression is searched
-for in the file to determine whether the option or service we're
-adding/removing already exists.
-
-If we're adding new lines to the file, there are four possible
-outcomes:
-
- - If the regexp isn't found in the file, we figure our lines
- haven't been added before, and we add them.
-
- - If the regexp is found in the file, and indeed the exact lines
- we were going to add are already there, we're happy, and we
- don't change the file.
-
- - If the regexp is found in the file, and the lines we were going
- to add are present but commented out, we uncomment them.
-
- - If the regexp is found in the file, but in lines which are
- different than the lines we were going to add, we figure the
- option or service we were going to add has already been configured
- differently; in this case, we make our changes in a new copy
- of the file and print a warning message saying that someone
- should compare the two files. (We don't change the
- configuration of the system in this case.)
-
-If we're removing lines from the file, there are two possible
-outcomes:
-
- - If the regexp isn't found in the file, we're happy, and we
- don't change the file.
-
- - If the regexp is found in the file, we make a backup of the
- file, and comment out the lines containing the regexp in the
- original file.
-
-EOF
- print STDERR "Configuration file paths:\n";
- foreach (@::paths) { print STDERR " $_\n"; }
- }
-
- exit 1;
-}
-
-
-# See if DESTDIR is set, to have us operate on files not in /
-my $DESTDIR = $ENV{'DESTDIR'} ? $ENV{'DESTDIR'} : "";
-
-# This is the list of places we'll look for the configuration file
-# if we weren't given an absolute path.
-@::paths = ("$DESTDIR/etc", "$DESTDIR/usr/etc", "$DESTDIR/usr/local/etc");
-
-my $comment = '#';
-my $verbose = &splicegrep('^-v$', \@ARGV, '^--$');
-my $noexec = &splicegrep('^-n$', \@ARGV, '^--$');
-my $silent = &splicegrep('^-s$', \@ARGV, '^--$');
-&splicegrep('^--?h', \@ARGV, '^--$') && &usage("help");
-&splicegrep('^-', \@ARGV, '^--$') && &usage();
-&splicegrep('^--$', \@ARGV);
-
-my $file; # the name of the file passed on the command line
-my $regexp; # the pattern passed on the command line
-my $op; # the operation being performed (add|remove)
-
-($file = shift) || &usage("The config file name is required!");
-(($op = shift) && ($op =~ /^(add|remove)$/)) || &usage("\"add\" or \"remove\" is required!");
-($regexp = shift) || &usage("The regexp to search for is required!");
-my @lines = @ARGV;
-
-
-#
-# Does the file name start with /, ./, or ../?
-#
-if ($file =~ m#^\.{0,2}/#) {
- # Danger! Not applying $DESTDIR to $path here!
- &shaketh_thy_booty($op, $file, $regexp, @lines);
- exit 0;
-}
-#
-# No, so we'll search for the file name in the list of paths.
-#
-$verbose && $DESTDIR && print "Using DESTDIR \"$DESTDIR\"\n";
-my($p, $path);
-foreach $p (@::paths) {
- $path = "$p/$file";
- $verbose && print STDERR "Looking for $path...\n";
- if (-f $path) {
- &shaketh_thy_booty($op, $path, $regexp, @lines);
- exit 0;
- }
-}
-die("Couldn't find $file in " . join(" ", @::paths) . "\n");
-
-
-#
-# Once we know what file we're attacking, this does the actual work.
-#
-sub shaketh_thy_booty { # or is it "thine"?
- my($op, $path, $regexp, @lines) = @_;
- $noexec || -w $path || die("I don't have write permission on $path!\n");
- # Might as well snort it into memory. Hopefully it's a small file, ha ha.
- open(CFG, "<$path") || die("Couldn't open $path for input!\n");
- my @wholefile = <CFG>;
- close(CFG);
-
- my $matched = 0;
- if (!grep /$regexp/, @wholefile) {
- if ($op eq 'add') {
- # It doesn't contain our regexp, so append our lines and
- # exit happily.
- if ($noexec) {
- print "I would have added the following lines to $path:\n";
- foreach (@lines) { print "$_\n"; }
- } else {
- open(CFG, ">>$path") || die("Couldn't open $path for append!\n");
- $silent || print "Added the following lines to $path:\n";
- foreach (@lines) {
- $silent || print "$_\n";
- print CFG "$_\n";
- }
- $silent || print "(end of lines added to $path)\n";
- }
- exit 0;
- } elsif ($op eq 'remove') {
- # It doesn't contain our regexp, so we don't need to remove it,
- # so we're happy.
- exit 0;
- } else { die("bad op \"$op\""); }
- }
-
- if ($op eq "remove") {
- # Since we're still here, and we're removing this entry, comment out
- # all lines matching our regexp.
- if ($noexec) {
- print "I would have commented out the following lines in $path:\n";
- grep {
- /$regexp/ && print;
- } @wholefile;
- } else {
- my $tmpnm = &tmpnam("$path.$$");
- my $comment_re = quotemeta $comment;
- my @commented_out;
- open(CFG, ">$tmpnm") || die("Couldn't open $tmpnm for output!\n");
- foreach (@wholefile) {
- # We care if it matches, and isn't already commented out.
- if ((/$regexp/) && (!/^$comment_re/)) {
- push @commented_out, $_;
- print CFG $comment;
- }
- print CFG;
- }
- if ($#commented_out == -1) {
- # We didn't actually need to comment anything out!
- # Apparently all the lines that matched our regexp were
- # already commented out.
- $verbose && print "All the lines matching our regexp were ",
- "already commented out, so we're not doing ",
- "anything!\n";
- unlink $tmpnm;
- exit 0;
- }
-# $silent || print "Commented out the following lines in $path:\n";
-# $silent || grep { print; } @commented_out;
-# $silent || print "(end of lines commented out in $path)\n";
- my $bak = &tmpnam("$path.O");
- rename($path, $bak) || die("Couldn't rename $path to $bak!\n");
- rename($tmpnm, $path) || die("Couldn't rename $tmpnm to $path!\n");
- $silent || print "Original file saved as $bak\n";
- }
- exit 0;
- }
-
- # just a sanity check...
- ($op eq "add") || die("bad op \"\$op\"");
-
- # We're still here, so we found our regexp, which suggests that the
- # entry we're adding might already be in the file. Do our new lines
- # match existing lines exactly?
- $verbose && print "The file contains our regular expression, so let's see ",
- "if it has our lines...\n";
- $matched = 1;
- my $re;
- foreach (@lines) {
- $re = quotemeta $_;
- $verbose && print " Looking for \"$re\"\n";
- if (! grep /^$re$/, @wholefile) {
- $verbose && print " Didn't find it!\n";
- $matched = 0;
- last;
- }
- }
- if ($matched) {
- # The lines we would have added are already in the file, so
- # we can all go home early.
- $verbose && print "$path already contains the lines we would have ",
- "added.\n";
- exit 0;
- }
-
- # All right, we're still here, so let's see if the lines we would have
- # added are in the file, but commented out. This is slightly complicated
- # by the possibility that lines we're adding start with comments; if so,
- # we don't want to require that they be preceded by another comment
- # character.
- $verbose && print "Let's see if it has our lines, but commented out...\n";
- $re = quotemeta $comment;
- my @linesre = @lines;
- grep {
- # If it starts with a comment, require make an additional starting
- # comment optional. (the ($re.*)? as opposed to $re.*)
- $_ = (/^$re/) ? "^($re.*)?" . quotemeta $_ : "^$re.*" . quotemeta $_;
- } @linesre;
- $matched = 1;
- foreach $re (@linesre) {
- # This loop through @linesre isn't done in the grep above because
- # we want that to iterate through every element, while this loop
- # can bail as soon as it fails to find a line it's looking for.
- $verbose && print " Looking for \"$re\"\n";
- # If you change this next line, make sure you make the same changes
- # in the substitution below.
- if (! grep /$re$/, @wholefile) {
- $verbose && print " Didn't find it!\n";
- $matched = 0;
- last;
- }
- }
- if ($matched) {
- # The lines we would have added are already in the file, but
- # commented out. Let's uncomment them into a temp file, and then
- # replace the existing file with the temp file.
- if ($noexec) {
- print "I would have uncommented the following lines in $path:\n";
- foreach (@lines) { print "$_\n"; }
- exit 0;
- }
- # This is crude. For every line in the file, if it matches the
- # commented-out version of any of the lines we're adding, replace
- # it with the corresponding non-commented-out line.
- my $idx;
- foreach (@wholefile) {
- foreach $idx (0..$#lines) {
- s/$linesre[$idx]$/$lines[$idx]/ && last;
- }
- }
- # isn't there a perl tmpnam? this open/die is stupid.
- my $tmpnm = &tmpnam("$path.$$");
- open(CFG, ">$tmpnm") || die("Couldn't open $tmpnm for output!\n");
- print CFG @wholefile;
- close(CFG) || die("Couldn't close $tmpnm after writing!\n");
- rename($tmpnm, $path) || die("Couldn't replace $path with $tmpnm " .
- "after writing!\n");
- exit 0;
- }
-
- # We're still here, so it looks like our configuration lines are in the
- # file, but they're different than what we would have added. Nuts!
- # Comment out everything matching our regexp and append our new lines,
- # but do it into a new file so that we don't stomp any existing
- # configuration.
- my $tmpnm = &tmpnam("$path.N");
- if ($noexec) {
- print "I would have copied $path to $tmpnm and commented out the following lines in $tmpnm:\n";
- grep {
- /$regexp/ && print;
- } @wholefile;
- print "...and added the following lines to $tmpnm:\n";
- foreach (@lines) { print "$_\n"; }
- exit 0;
- }
- grep {
- /$regexp/ && ($_ = ($comment . $_));
- } @wholefile;
- # Now append our new stuff
- foreach (@lines) {
- push @wholefile, "$_\n";
- }
- open(CFG, ">$tmpnm") || die("Couldn't open $tmpnm for output!\n");
- print CFG @wholefile;
- close(CFG) || die("Couldn't close $tmpnm after writing!\n");
- # Just for fun, if $path.N already existed, let's see if it's the
- # same as what we just wrote.
- &diff($tmpnm, "$path.N", \@wholefile) || ($tmpnm = "$path.N");
-
- print STDERR <<"EOF";
-
-**********************************************************************
-Configuration changes to $file have not been made
-automatically because there appears to be a conflict between the
-file's current contents and the lines which would have been added.
-
-Original file: $path
-New file: $tmpnm
-
-Please compare these two files and update the original file as needed.
-**********************************************************************
-
-EOF
- exit 0;
-}
-
-
-# Returns the array of elements matching the given re in the given array,
-# and removes those elements from the array. If $bre is set, we only
-# search through the array until an element matching $bre is encountered.
-sub splicegrep {
- my($re, $a, $bre) = @_;
- my @ta = ();
- my @ra = ();
- my $skip = 0;
- $a || ($a = \@ARGV);
- # sub-optimal but our argv should be short
- grep {
- $bre && /$bre/ && ($skip = 1);
- ((!$skip) && /$re/) ? push @ra, $_ : push @ta, $_;
- } @{$a};
- @{$a} = @ta;
- return @ra;
-}
-
-
-# This is kind of stupid.
-sub tmpnam {
- my($base) = @_;
- my $hope = $base;
- my $count = 0;
- while(-e $hope) {
- $hope = "$base$count";
- ++$count;
- }
- return $hope;
-}
-
-
-# Returns 0 if we know the two files are the same, 1 if we're not sure.
-sub diff {
- my($fn1, $fn2, $fc1) = @_;
- ($fn1 eq $fn2) && return 0; # same file name!
- my $sz1 = (stat $fn1)[7]; # size $sstuff[7]; # size
- my $sz2 = (stat $fn2)[7]; # size $sstuff[7]; # size
- $sz1 && ($sz1 != $sz2) && return 1; # different sizes; they're different
- # Nuts, they're the same size, so we have to compare them.
- open(FH2, "<$fn2") || return 1;
- my @snort2 = <FH2>;
- close(FH2);
- # Same number of lines?
- ($#snort2 == $#{$fc1}) || return 1;
- my $i = $#snort2;
- while ($i >= 0) {
- ($snort2[$i] eq $fc1->[$i]) || return 1;
- --$i;
- }
- return 0;
-}
Added: csw/mgar/pkg/cvsproxy/trunk/files/inetd.conf
===================================================================
--- csw/mgar/pkg/cvsproxy/trunk/files/inetd.conf (rev 0)
+++ csw/mgar/pkg/cvsproxy/trunk/files/inetd.conf 2009-11-01 16:49:37 UTC (rev 7067)
@@ -0,0 +1 @@
+cvsproxy stream tcp nowait nobody /opt/csw/libexec/tcpd /opt/csw/libexec/cvsproxy/cvsproxy
Added: csw/mgar/pkg/cvsproxy/trunk/files/services
===================================================================
--- csw/mgar/pkg/cvsproxy/trunk/files/services (rev 0)
+++ csw/mgar/pkg/cvsproxy/trunk/files/services 2009-11-01 16:49:37 UTC (rev 7067)
@@ -0,0 +1,2 @@
+cvsproxy 2401/tcp
+cvsproxy 2401/udp
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list