diff options
author | cvs2git <cvs2git> | 2010-12-27 00:04:45 +0000 |
---|---|---|
committer | cvs2git <cvs2git> | 2010-12-27 00:04:45 +0000 |
commit | c82d349f864e6bd9f96fd1156903bc1f7193a203 (patch) | |
tree | e117a87533656110b6acd56fc0ca64289892a9f5 /rpm | |
parent | 74e058c8a010ef6feb539248a550d0bb169c1e94 (diff) |
This commit was manufactured by cvs2svn to create tag 'TORRUS_1_0_9'.TORRUS_1_0_9
Diffstat (limited to 'rpm')
27 files changed, 0 insertions, 2285 deletions
diff --git a/rpm/INSTALL b/rpm/INSTALL deleted file mode 100644 index d39bf70a2..000000000 --- a/rpm/INSTALL +++ /dev/null @@ -1,4 +0,0 @@ -See httemplates/docs/install-rpm.html and documentation on the wiki. - -This directory contains files that are RPM-specific and are referenced by the spec file during a build of the Freeside RPMs. - diff --git a/rpm/build/BOOTSTRAP b/rpm/build/BOOTSTRAP deleted file mode 100644 index 6ddf5b54d..000000000 --- a/rpm/build/BOOTSTRAP +++ /dev/null @@ -1,146 +0,0 @@ -# its more notes than a script, so no #!/bin/sh yet - -# s/ivan/username/ in buildsysrc and below - - -### -# host dirs -### - - -cd -mkdir public_html -mkdir mock -mkdir redhat -mkdir redhat/SRPMS -mkdir buildsys -mkdir buildsys/ref -mkdir buildsys/ref/SRPMS - -cd buildsys -for a in build-freeside buildsysrc cvs-check-and-build enrpm expect-addsign expect-signrepo ovid2flute refresh-repo; do -ln -s ~/freeside/rpm/build/$a . -done - - -### -# vserver setup -### - - -#ftp://ftp.pld-linux.org/people/hawk/vserver-templates/Centos -#sudo vserver centos5 build -m template --context 5 --hostname centos5.freeside.biz --interface dummy0:10.5.4.5/24 -- -d centos5 -t centos5-i686.tar.bz2 -sudo vserver centos5 build -m template --context 5 --hostname centos5.freeside.biz --interface dummy0:10.5.4.5/24 -- -d centos5 -t centos5-x86_64.tar.bz2 - -#something like this as /etc/init.d/vserver-nat: -!/bin/sh -iptables -t nat -F -iptables -t nat -A POSTROUTING -s 10.5.4.0/24 -d ! 10.5.4.0/24 -j SNAT --to-source 192.168.1.143 - -vserver centos5 start -vserver centos5 enter -#edit /etc/resolv.conf (easier from outside, no vi inside yet) - -yum update -yum install openssh-server vim-minimal zsh screen sudo perl patch cvs diffutils rpm-build rsync - -adduser ivan #username -cd ~ivan #username -mkdir .ssh -vi .ssh/authorized_keys - -mkdir redhat -mkdir redhat/BUILD -mkdir redhat/RPMS -mkdir redhat/SOURCES -mkdir redhat/SPECS -mkdir redhat/SRPMS -chown -R ivan:ivan redhat - -vi ~/.rpmmacros -%_gpg_path /home/ivan/.gnupg -%_gpg_name Freeside Internet Services, Inc. RPM Signing Key - -vi /etc/ssh/sshd_config #ListenAddress -#also need to edit on the host so the vserver can claim its address - -vi /etc/pam.d/sshd -#comment out: -#session required pam_loginuid.so - -/etc/init.d/sshd restart - -vi /etc/sudoers - -exit #and test ssh'ing in - -### -# more... -### - -#copy the stuff from rpm/build/native into /home/ivan (#username) in the vserver -cd rpm/build/native -for a in build-from-cvs freeside-cvs makesrpm ovid2flute ovid-0.12-1.x86_64.rpm Ovid.diff; do - cp $a /var/lib/vservers/centos5/home/ivan/ -done - -for a in build-from-cvs freeside-cvs makesrpm ovid2flute; do - chmod a+rx /var/lib/vservers/centos5/home/ivan/$a -done - -vserver centos5 enter #or ssh 10.5.4.5 and sudo - -rpm -i ovid-0.12-1.x86_64.rpm -cd /usr/lib/perl5/site_perl/5.*/Ovid -patch < ~ivan/Ovid.diff - -#also checkout the necessary freeside versions... -export CVSROOT=":pserver:anonymous:anonymous@cvs.freeside.biz:/home/cvs/cvsroot" - -cvs checkout -rFREESIDE_1_7_BRANCH -d freeside-1.7 freeside -#cvs checkout -rFREESIDE_1_9_BRANCH -d freeside-1.9 freeside - -### -# yet more -### - -cp -i /var/lib/vservers/centos5/etc/yum.repos.d/CentOS-Base.repo /etc/yum/repos.d/ -#and s/$releasever/5/g; - -cp expect-* /usr/local/bin/ -#edit them and set your real passphrase for the gpg key you're using -#(as per that dir above) - -### -# and the repository -### - -cd -mkdir -p public_html/repo/centos/5/freeside-1.7/testing/x86_64/ -mkdir public_html/repo/centos/5/freeside-1.7/testing/i686 - -### -# and for enrpm! -### - -vserver centos5 enter -yum install perl-libwww-perl make -cpan -install RPM::Specfile -#if it fails, might need to go to /root/.cpan/build/RPM-Specfile-* and do it manually -install YAML - -#for user cpan-ability -mkdir .cpan -mkdir .cpan/CPAN -cp /usr/lib/perl5/5.8.8/CPAN/Config.pm .cpan/CPAN/MyConfig.pm -vi .cpan/CPAN/MyConfig.pm #and just leave and change the /root ones -chmod a+rx .cpan/CPAN/MyConfig.pm - -#edit ovid2flue and set user - -### -# references -### - -http://www.freeside.biz/mediawiki/index.php/Freeside:Documentation:CreatingRPMRepo diff --git a/rpm/build/build-freeside b/rpm/build/build-freeside deleted file mode 100755 index afef96ab6..000000000 --- a/rpm/build/build-freeside +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/sh -# -# Copyright 2008, Elirion, Inc. All rights reserved. -# This software is licensed under the same terms as Freeside itself. -# -# This script rebuilds SRPMs of Freeside builds or the required Perl modules on all the target -# distributions and versions using mock. After a successful build, it signs the resulting RPMs -# and scp's them to the server where the yum repositories are hosted. -# (Of course, koji is supposed to do all this, including updating the repo.) - -VERSIONS='1.7 1.9' -#VERSIONS='1.7 1.9 2.1' -REPO=testing -BRANCH= -DISTROS='centos sles' -CENTOSVERS='5' -SLESVERS=10 -WHICHVERS= -ARCHS='i386 x86_64' - -BUILDSYSDIR=`dirname $0` - -MOCKWORK="$BUILDSYSDIR/mockwork" - -#MOCKARGS='--autocache' -MOCKARGS="--configdir=$BUILDSYSDIR/mock --resultdir=$MOCKWORK" - -if [ -f $BUILDSYSDIR/buildsysrc ]; then - #chmod a+x $BUILDSYSDIR/buildsysrc - #echo $BUILDSYSDIR/buildsysrc - . $BUILDSYSDIR/buildsysrc -fi -if [ -f $HOME/buildsysrc ]; then - #chmod a+x $HOME/buildsysrc - #echo $HOME/buildsysrc - . $HOME/buildsysrc -fi - -EXPECT_ADDSIGN=$BUILDSYSDIR/expect-addsign -if [ -f /usr/local/bin/expect-addsign ]; then - EXPECT_ADDSIGN=/usr/local/bin/expect-addsign -fi - -usage() { - echo "build-freeside: build RPMs for all target distros and architectures using mock" - echo "where:" - echo " -a <archs>: change architectures (currently: $ARCHS)" - echo " -b <branch>: change branch (currently: $BRANCH)" - echo " -d <distros>: change distributions (currently: $DISTROS)" - echo " -m <arguments>: change arguments passed to 'mock' (currently: $MOCKARGS)" - echo " -r <repo>: change repositories (currently: $REPO)" - echo " -s <srpms>: build these SRPMs instead of new ones in staging area" - echo " -v <versions>: change versions (currently: $VERSIONS)" - echo " -w <distvers>: change distro version (currently: $WHICHVERS)" - exit 0 -} - -while getopts "a:b:d:hm:r:s:v:w:" flag -do - case $flag in - a) - echo "Changing architectures from $ARCHS to $OPTARG" - ARCHS=$OPTARG;; - b) - echo "Changing branch from $BRANCH to $OPTARG" - BRANCH=$OPTARG;; - d) - echo "Changing distros from $DISTROS to $OPTARG" - DISTROS=$OPTARG;; - m) - echo "Changing mock arguments from $MOCKARGS to $OPTARG" - MOCKARGS=$OPTARG;; - r) - echo "Changing repository from $REPO to $OPTARG" - REPO=$OPTARG;; - s) - echo "Changing SRPMS from $SRPMS to $OPTARG" - SRPMS=$OPTARG;; - v) - echo "Changing versions from $VERSIONS to $OPTARG" - VERSIONS=$OPTARG;; - w) - echo "Changing which distro versions from $WHICHVERS to $OPTARG" - WHICHVERS=$OPTARG;; - *) - usage;; - esac -done - -if [ "${SRCFOLDER}x" = "x" ]; then - PWD=`pwd` - echo "No source folder defined! (BUILDSYSDIR=$BUILDSYSDIR pwd=$PWD)" - exit -fi - -if [ "${REFFOLDER}x" = "x" ]; then - echo "No reference folder defined!" - exit -fi - -if [ "${SRPMS}x" = "x" ]; then - # Work out the new SRPMs on grosbeak - SRPMS=`/usr/bin/rsync -Cavz --dry-run $SRCFOLDER/ $REFFOLDER | grep .src.rpm | grep -v safecat | tr '\n' ' '` - - # Go and get the SRPMs - /usr/bin/rsync -Cavz $SRCFOLDER/ $REFFOLDER -fi - -# Make sure the SRPMs are there -for srpm in ${SRPMS} -do - if [ ! -f $REFFOLDER/${srpm} ] - then - echo "No such file: $REFFOLDER/${srpm}" - exit - fi -done - -# Build all the SRPMs -for srpm in ${SRPMS} -do - for distro in $DISTROS - do - if [ "${WHICHVERS}x" = "x" ]; then - if [ "$distro" = "centos" ]; then - DISTVERS=$CENTOSVERS - fi - if [ "$distro" = "sles" ]; then - DISTVERS=$SLESVERS - fi - else - DISTVERS=$WHICHVERS - fi - for distver in $DISTVERS - do - os=${distro}-${distver} - for arch in $ARCHS - do - echo "$os - $arch: $srpm" - echo mock $MOCKARGS -r ${os}-${arch} $REFFOLDER/${srpm} - time mock $MOCKARGS -r ${os}-${arch} $REFFOLDER/${srpm} - if true #[ -f $MOCKWORK/${os}-${arch}/state/status ] && grep done $MOCKWORK/${os}-${arch}/state/status - then - for VERSION in $VERSIONS - do - DEST=$VERSION - if [ "${BRANCH}x" != "x" ] - then - DEST=$BRANCH - fi - # Copy freeside RPMs for this version only - #FILES=`ls -1 $MOCKWORK/${os}-${arch}/result/freeside*-${VERSION}-*.rpm | grep -v .src.rpm | tr '\n' ' '` - FILES=`ls -1 $MOCKWORK/freeside*-${VERSION}-*.rpm | grep -v .src.rpm | tr '\n' ' '` - echo $FILES - if [ "${FILES}x" != "x" ] - then - for FILE in $FILES - do - $EXPECT_ADDSIGN $FILE - done - if [ "${REPOMACHINE}x" != "x" ] - then - scp -p $FILES $REPOUSER@$REPOMACHINE:$REPOFOLDER/repo/${distro}/${distver}/freeside-${DEST}/${REPO}/${arch} - else - cp -p $FILES $REPOFOLDER/repo/${distro}/${distver}/freeside-${DEST}/${REPO}/${arch} - fi - fi - # Copy non-freeside RPMs to all versions - #FILES=`ls -1 $MOCKWORK/${os}-${arch}/result/*.rpm | grep -v freeside | grep -v .src.rpm | tr '\n' ' '` - FILES=`ls -1 $MOCKWORK/*.rpm | grep -v freeside | grep -v .src.rpm | tr '\n' ' '` - echo $FILES - if [ "${FILES}x" != "x" ] - then - for FILE in $FILES - do - $EXPECT_ADDSIGN $FILE - done - if [ "${REPOMACHINE}x" != "x" ] - then - scp -p $FILES $REPOUSER@$REPOMACHINE:$REPOFOLDER/repo/${distro}/${distver}/freeside-${DEST}/${REPO}/${arch} - else - cp -p $FILES $REPOFOLDER/repo/${distro}/${distver}/freeside-${DEST}/${REPO}/${arch} - fi - fi - done - fi - done - done - done -done - -echo "build-freeside done" diff --git a/rpm/build/buildsysrc b/rpm/build/buildsysrc deleted file mode 100755 index c8d0beeb0..000000000 --- a/rpm/build/buildsysrc +++ /dev/null @@ -1,14 +0,0 @@ -# Define shell variables for the Freeside RPM build system -# - -SRCFOLDER=ivan@10.5.4.5:/home/ivan/redhat/SRPMS -REFFOLDER=$HOME/buildsys/ref/SRPMS -#ARCHS='i386 x86_64' -REPOFOLDER=/home/ivan/public_html -REPOBASEFOLDER=/home/ivan/public_html -KEYID=rpm - -VERSIONS='1.7' -DISTROS='centos' -CENTOSVERS='5' -#ARCHS='x86_64' diff --git a/rpm/build/cvs-check-and-build b/rpm/build/cvs-check-and-build deleted file mode 100755 index e8cd52104..000000000 --- a/rpm/build/cvs-check-and-build +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -# -# Copyright 2009, Elirion, Inc. All rights reserved. -# This software is licensed under the same terms as Freeside itself. -# -# This script wraps other scripts in the build system. It does a CVS comparison on the vserver -# to determine if the CVS contents have changed. If so, an SRPM is built. The script then invokes -# the local build script which pulls down this SRPM and uses mock to build binary RPMs for the -# default targets. Finally, the repository is updated. -# -# There's currently no testing for failure. - -FORCE_FLAG= -QUIET_FLAG= - -usage() { - echo "cvs-check-and-build: check Freeside CVS and build RPMs if changed" - echo "where:" - echo " -f: force SRPM rebuild even if CVS contents have not changed" - echo " -h: print this help message" - echo " -q: run yum-arch and createrepo in quiet mode" - exit 0 -} - -while getopts "fhq" flag -do - case $flag in - f) - echo "Force mode" - FORCE_FLAG=-f;; - q) - echo "Quiet mode" - QUIET_FLAG=-q;; - *) - usage;; - esac -done - -#ssh 10.5.4.5 /home/rsiddall/build-from-cvs $FORCE_FLAG -#cd /home/rsiddall/buildsys; ./build-freeside; ./refresh-repo $QUIET_FLAG - -ssh 10.5.4.5 ./build-from-cvs $FORCE_FLAG - -cd ~/buildsys; ./build-freeside; ./refresh-repo $QUIET_FLAG - diff --git a/rpm/build/enrpm b/rpm/build/enrpm deleted file mode 100755 index 3e674bc3a..000000000 --- a/rpm/build/enrpm +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/perl -w -# -# Attempt to build RPMs for Freeside from a tarball or module -# -# Contains portions of "cpanspec" http://cpanspec.sourceforge.net/ - -=head1 NAME - -enrpm - Attempt to build RPMs for Freeside from a tarball or a module - -=head1 SYNOPSIS - -enrpm [options] [tarball|module-name [...]] - - Options: - --help -h Help message - -=head1 DESCRIPTION - -B<enrpm> will generate a spec file to build a rpm from a CPAN-style -Perl module distribution, then try to build RPMs from that spec file -under mock, and update the repositories if successful. - -B<enrpm> uses the file extension of the tarball or module-name specified -on the command line to determine if the argument is a tarball or a module name. - -Modules are downloaded from the CPAN. You must have initialized CPAN on the machine -for B<enrpm> to be able to do this. - -For tarballs B<enrpm> attempts to build a usable .spec file using cpanflute2, and then builds -an SRPM from the .spec file and the tarball. - -Once an SRPM has been built, B<enrpm> uses an external script to build binary RPMs under "mock". -It then uses a second script to update the repositories. - -=head1 OPTIONS - -=over 4 - -=item B<--help> - -Print a brief help message and exit. - -=item B<--packager> - -Specify the name and e-mail address of the packager. This winds up in auto-generated .spec files. - -=item B<--server> - -Specify the host name or IP address of the server on which the SRPM will be built. This server must be -set up for SRPM building, which means it must have both B<ovid> and B<cpanflute2> installed on it. - -=item B<--dry-run> - -Just print out commands, don't actually run them. - -=back - -=head1 BUGS - -Currently has little in the way of error detection and diagnostics. - -The back-end should be replaced with an existing build system such as koji. - -=head1 AUTHOR - -Richard Siddall <richard.siddall@elirion.net> - -=head1 SEE ALSO - -L<perl(1)>, L<cpan2rpm(1)>, L<cpanflute2(1)> - -=cut - -use strict; -use Getopt::Long; -use Cwd qw/getcwd abs_path/; -use File::Basename; -use Sys::Hostname; # False laziness to get around a real config file... - -my %opts; - -GetOptions(\%opts, 'packager=s', 'release=s', 'server=s', 'dryrun'); - -$ENV{PATH} = "/bin:/usr/bin"; - -sub usage { - print STDERR "usage: enrpm --packager <Your Name <you\@example.com>> [--release=<rpm-release-string>] --server <server-name> [--dryrun] tarball|module-name\n"; - print STDERR "where:\n\t--packager is the name and e-mail address of the packager for the .spec file\n\t--release is the rpm release number for the .spec file\n\t--server is the server to build the SRPM on\n\t--dryrun means do not actually run the commands\n\n"; - print STDERR "\ttarball is the name of a tarball containing the Perl module to be packaged\n"; - print STDERR "\tmodule-name is the name of a CPAN Perl module to be packaged\n"; - exit; -} - -# Feeble excuse for not having a real configuration file -my $user = 'ivan'; -my $buildsys = "/home/$user/buildsys"; -#my $rembuild = '/home/rsiddall/buildsys/ref'; -my $remdeps = '/home/ivan'; -my $rpmtopdir = "/home/$user/redhat"; -my $packager = 'Ivan Kohler <ivan@freeside.biz>'; -my $server = '10.5.4.5'; - -$server = $opts{server} if defined($opts{server}); -$user = $1 if $server =~ /(\w+)\@[\w\d\.]+/; - -$packager = $opts{packager} if defined($opts{packager}); - -# Go ahead and build an SRPM... - -my $ovidignore = '--ignore ' . join ('--ignore ', qw/libwww/); - - -for my $file (@ARGV) { - my ($name,$version,$type); - - if ($file =~ /^(?:.*\/)?(.*)-(?:v\.?)?([^-]+)\.(tar)\.(?:gz|bz2)$/) { - $name = $1; - $version = $2; - $type = $3; - } elsif ($file =~ /^(?:.*\/)?(.*)-(?:v\.?)?([^-]+)\.tgz$/) { - $name = $1; - $version = $2; - $type = 'tar'; - } elsif ($file =~ /^(?:.*\/)?(.*)-(?:v\.?)?([^-]+)\.(zip)$/) { - $name = $1; - $version = $2; - $type = $3; - } else { - # keep things happy if we get "Foo-Bar" instead of "Foo::Bar" - $file =~ s/-/::/g; - $name = $file; - $version = undef; - $type = 'module'; - } - - if ($type eq 'module') { - my $fluteopts = ''; - $fluteopts .= "--packager='$packager' " if defined($packager); - $fluteopts .= "--release='$opts{release}' " if defined($opts{release}); - do_cmd("ssh $user\@$server \"ovid --deps $ovidignore $name | tail -1 | $remdeps/ovid2flute $fluteopts | /bin/sh\""); - } else { - my $absfile = abs_path($file); - my $fname = basename($file); - die "Packager name and e-mail required" if !defined($packager); - die "RPM release string required" if !defined($opts{release}); - do_cmd("scp $absfile $user\@$server:/home/$user/$fname"); -# do_cmd("ssh $user\@$server 'cpanflute2 --just-spec --noperlreqs --email=\\\"$packager\\\" --release=$opts{release} /home/$user/$fname > /home/$user/work/redhat/SPECS/$name.spec;'"); -# do_cmd("ssh $user\@$server 'perl -pi -e \\\"s/perl\(perl\)/perl/g\\\" /home/$user/work/redhat/SPECS/$name.spec;'"); -# do_cmd("ssh $user\@$server 'rpmbuild -bs --nodeps --define \\\"_sourcedir /home/$user/\\\" --define \\\"_srcrpmdir /home/$user/work/redhat/SRPMS\\\" /home/$user/work/redhat/SPECS/$name.spec'"); - open SCRIPT, ">/home/$user/makesrpm" or die "Can't create SRPM construction script: ", $!; - print SCRIPT "#!/bin/sh\n\n"; - print SCRIPT "cpanflute2 --just-spec --noperlreqs --email='$packager' --release=$opts{release} /home/$user/$fname > $rpmtopdir/SPECS/$name.spec;\n"; - print SCRIPT "perl -pi -e 's/perl(perl)/perl/g' $rpmtopdir/SPECS/$name.spec\n"; - print SCRIPT "rpmbuild -bs --nodeps --define '_sourcedir /home/$user/' --define '_srcrpmdir $rpmtopdir/SRPMS' $rpmtopdir/SPECS/$name.spec\n"; - close SCRIPT or die "Can't close SRPM construction script: ", $!; - chmod(0711, "/home/$user/makesrpm"); - do_cmd("scp /home/$user/makesrpm $user\@$server:/home/$user/makesrpm"); - do_cmd("ssh $user\@$server /home/$user/makesrpm"); - } - my $olddir = getcwd(); - do_cmd("$buildsys/build-freeside"); -# if (-x "$buildsys/refresh-repo") { - do_cmd("$buildsys/refresh-repo"); -# } else { -# do_cmd("ssh $user\@$server $rembuild/refresh-repo"); -# } -} - -sub do_cmd { - my $cmd = shift; - - print "$cmd\n"; - `$cmd` if !exists($opts{dryrun}); -} - -1; - diff --git a/rpm/build/expect-addsign b/rpm/build/expect-addsign deleted file mode 100755 index 5634ed47b..000000000 --- a/rpm/build/expect-addsign +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/expect -set p "not our actual passphrase" -set f [lindex $argv 0] -#spawn /bin/rpm --resign $f -spawn /usr/bin/rpm --resign $f -expect "Enter pass phrase:" -send -- "$p\r" -expect eof diff --git a/rpm/build/expect-signrepo b/rpm/build/expect-signrepo deleted file mode 100755 index 81035f9f2..000000000 --- a/rpm/build/expect-signrepo +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/expect -set password "not our actual passphrase" -set key [lindex $argv 0] -set output [lindex $argv 1] -set input [lindex $argv 2] -spawn gpg -sab --yes -u "$key" -o $output $input -expect "Enter passphrase:" -send -- "$password\r" -expect eof diff --git a/rpm/build/mock/centos-5-i386.cfg b/rpm/build/mock/centos-5-i386.cfg deleted file mode 100644 index 203d4fd13..000000000 --- a/rpm/build/mock/centos-5-i386.cfg +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/python -tt -import os -config_opts['root'] = 'centos-5-i386' -config_opts['target_arch'] = 'i386' - -config_opts['cleanup_on_failure'] = 0 - -config_opts['chroot_setup_cmd'] = 'install buildsys-build' - -# caching related options -#these are probably obsolete? -config_opts['rebuild_cache'] = False -#config_opts['use_cache'] = False -config_opts['use_cache'] = True -config_opts['pack_cmd'] = "/usr/sbin/mock-helper pack" -config_opts['unpack_cmd'] = "/usr/sbin/mock-helper unpack" -config_opts['cache_ext'] = ".tar.gz" -config_opts['cache_topdir'] = "/var/cache/mock" -#config_opts['max_cache_age_days'] = 15 -config_opts['max_cache_age_days'] = 150 - -# config_opts['plugin_conf']['ccache_enable'] = True -config_opts['plugin_conf']['ccache_enable'] = False -# config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G' -# config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/" -config_opts['plugin_conf']['yum_cache_enable'] = True -config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30 -config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/yum_cache/" -config_opts['plugin_conf']['root_cache_enable'] = True -config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15 -config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/" -config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "gzip" -config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" - - -config_opts['yum.conf'] = """ - -[main] -cachedir=/var/cache/yum -debuglevel=1 -reposdir=/dev/null -logfile=/var/log/yum.log -retries=20 -obsoletes=1 -gpgcheck=0 -assumeyes=1 - -# repos - -[os] -name=os -mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=os -baseurl=http://mirror.centos.org/centos/5/os/i386/ -#baseurl=file:///home/rsiddall/mock/repos/centos/5/os/i386/ - -[updates] -name=updates -mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=updates -baseurl=http://mirror.centos.org/centos/5/updates/i386/ -#baseurl=file:///home/rsiddall/mock/repos/centos/5/updates/i386/ - -[groups] -name=groups -baseurl=http://dev.centos.org/centos/buildsys/5/ - -""" - -#something here is causing a problem, don't know what, see if we need anything -#config_opts['macros'] = """ -#%_topdir /builddir/build -#%_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm -# -## Change the next two lines to reflect yourself. -# -#%packager Freeside Internet Services, Inc. <rpm@freeside.biz> -##%vendor -##%distribution -# -## please change this to reflect the Distro Tree and Repo hosting packages! -##%dist <distro>.<yourtag> -#%centos_ver 5 -# -##%_smp_mflags -j1 -# -#""" - - diff --git a/rpm/build/mock/centos-5-x86_64.cfg b/rpm/build/mock/centos-5-x86_64.cfg deleted file mode 100644 index 174136909..000000000 --- a/rpm/build/mock/centos-5-x86_64.cfg +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/python -tt -import os - -config_opts['root'] = 'centos-5-x86_64' -config_opts['target_arch'] = 'x86_64' - -config_opts['cleanup_on_failure'] = 0 - -config_opts['chroot_setup_cmd'] = 'install buildsys-build' - -# caching related options -#these are probably obsolete? -config_opts['rebuild_cache'] = False -#config_opts['use_cache'] = False -config_opts['use_cache'] = True -config_opts['pack_cmd'] = "/usr/sbin/mock-helper pack" -config_opts['unpack_cmd'] = "/usr/sbin/mock-helper unpack" -config_opts['cache_ext'] = ".tar.gz" -config_opts['cache_topdir'] = "/var/cache/mock" -#config_opts['max_cache_age_days'] = 15 -config_opts['max_cache_age_days'] = 150 - -# config_opts['plugin_conf']['ccache_enable'] = True -config_opts['plugin_conf']['ccache_enable'] = False -# config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G' -# config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/" -config_opts['plugin_conf']['yum_cache_enable'] = True -config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30 -config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/yum_cache/" -config_opts['plugin_conf']['root_cache_enable'] = True -config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15 -config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/" -config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "gzip" -config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" - - -config_opts['yum.conf'] = """ - -[main] -cachedir=/var/cache/yum -debuglevel=1 -reposdir=/dev/null -logfile=/var/log/yum.log -retries=20 -obsoletes=1 -gpgcheck=0 -assumeyes=1 -exclude=[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz]*.i*86 g[abcdefghijkmnopqrstuvwxyz]*.i?86 glib2.i?86 glib.i?86 *-devel.i?86 -# repos - -[os] -name=os -mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os -baseurl=http://mirror.centos.org/centos/5/os/x86_64/ -#baseurl=file:///home/rsiddall/mock/repos/centos/5/os/x86_64/ - -[updates] -name=updates -mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=updates -baseurl=http://mirror.centos.org/centos/5/updates/x86_64/ -#baseurl=file:///home/rsiddall/mock/repos/centos/5/updates/x86_64/ - -[groups] -name=groups -baseurl=http://dev.centos.org/centos/buildsys/5/ -""" - -#something here is causing a problem, don't know what, see if we need anything -#re-enabled -#config_opts['macros'] = """ -#%_topdir /builddir/build -#%_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm -# -## Change the next two lines to reflect yourself. -# -#%packager Freeside Internet Services, Inc. <rpm@freeside.biz> -##%vendor -##%distribution -# -## please change this to reflect the Distro Tree and Repo hosting packages! -##%dist <distro>.<yourtag> -#%centos_ver 5 -# -##%_smp_mflags -j1 -# -#""" - - diff --git a/rpm/build/mock/defaults.cfg b/rpm/build/mock/defaults.cfg deleted file mode 100644 index 3f9fcf6c2..000000000 --- a/rpm/build/mock/defaults.cfg +++ /dev/null @@ -1,39 +0,0 @@ -# mock defaults -# -# Define default values here. -# These values are overwritten in the /etc/mock/CHROOT.cfg files. -# -# Example: -# -# config_opts['foo'] = bar -config_opts['basedir'] = '/var/lib/mock/' -config_opts['chroot'] = '/usr/sbin/mock-helper chroot' -config_opts['mount'] = '/usr/sbin/mock-helper mount' -config_opts['umount'] = '/usr/sbin/mock-helper umount' -config_opts['rm'] = '/usr/sbin/mock-helper rm' -config_opts['mknod'] = '/usr/sbin/mock-helper mknod' -config_opts['yum'] = '/usr/sbin/mock-helper yum' -config_opts['runuser'] = '/sbin/runuser' -config_opts['chrootuser'] = 'mockbuild' -config_opts['chrootgroup'] = 'mockbuild' -config_opts['chrootuid'] = os.geteuid() -config_opts['chrootgid'] = os.getegid() -config_opts['chroothome'] = '/builddir' -config_opts['clean'] = True - -# caching related options -config_opts['rebuild_cache'] = False -config_opts['use_cache'] = False -config_opts['pack_cmd'] = "/usr/sbin/mock-helper pack" -config_opts['unpack_cmd'] = "/usr/sbin/mock-helper unpack" -config_opts['cache_ext'] = ".tar.gz" -config_opts['cache_topdir'] = "root-cache" -config_opts['max_cache_age_days'] = 15 - -# allow some network tests to run under the chroot -config_opts['files']['/etc/resolv.conf'] = open("/etc/resolv.conf","r").read() -config_opts['files']['/etc/hosts'] = open("/etc/hosts","r").read() - -config_opts['chroot_setup_cmd'] = 'install buildsys-build' -#config_opts['chroot_setup_cmd'] = 'groupinstall build' - diff --git a/rpm/build/mock/logging.ini b/rpm/build/mock/logging.ini deleted file mode 100644 index fadc6a85b..000000000 --- a/rpm/build/mock/logging.ini +++ /dev/null @@ -1,84 +0,0 @@ -[formatters] -keys: detailed,simple,unadorned,state - -[handlers] -keys: simple_console,detailed_console,unadorned_console,simple_console_warnings_only - -[loggers] -keys: root,build,state,mock - -[formatter_state] -format: %(asctime)s - %(message)s - -[formatter_unadorned] -format: %(message)s - -[formatter_simple] -format: %(levelname)s: %(message)s - -;useful for debugging: -[formatter_detailed] -format: %(levelname)s %(filename)s:%(lineno)d: %(message)s - -[handler_unadorned_console] -class: StreamHandler -args: [] -formatter: unadorned -level: INFO - -[handler_simple_console] -class: StreamHandler -args: [] -formatter: simple -level: INFO - -[handler_simple_console_warnings_only] -class: StreamHandler -args: [] -formatter: simple -level: WARNING - -[handler_detailed_console] -class: StreamHandler -args: [] -formatter: detailed -level: WARNING - -; usually dont want to set a level for loggers -; this way all handlers get all messages, and messages can be filtered -; at the handler level -; -; all these loggers default to a console output handler -; -[logger_root] -level: NOTSET -handlers: simple_console - -; mock logger normally has no output -; catches stuff like mock.trace_decorator and mock.util -; dont normally want to propagate to root logger, either -[logger_mock] -level: NOTSET -handlers: -qualname: mock -propagate: 1 - -[logger_state] -level: NOTSET -; unadorned_console only outputs INFO or above -handlers: unadorned_console -qualname: mock.Root.state -propagate: 0 - -[logger_build] -level: NOTSET -handlers: simple_console_warnings_only -qualname: mock.Root.build -propagate: 0 - -; the following is a list mock logger qualnames used within the code: -; -; qualname: mock.util -; qualname: mock.uid -; qualname: mock.trace_decorator - diff --git a/rpm/build/mock/site-defaults.cfg b/rpm/build/mock/site-defaults.cfg deleted file mode 100644 index 0ee2082eb..000000000 --- a/rpm/build/mock/site-defaults.cfg +++ /dev/null @@ -1,98 +0,0 @@ -# mock defaults -# vim:tw=0:ts=4:sw=4:et: -# -# This config file is for site-specific default values that apply across all -# configurations. Options specified in this config file can be overridden in -# the individual mock config files. -# -# The defaults.cfg delivered by default has NO options set. Only set options -# here if you want to override the defaults. -# -# Entries in this file follow the same format as other mock config files. -# config_opts['foo'] = bar - -############################################################################# -# -# Things that we recommend you set in defaults.cfg: -# -# config_opts['basedir'] = '/var/lib/mock/' -# config_opts['cache_topdir'] = '/var/cache/mock' -# Note: the path pointed to by basedir and cache_topdir must be owned -# by group 'mock' and must have mode: g+rws -# config_opts['rpmbuild_timeout'] = 0 -# config_opts['use_host_resolv'] = True - -# You can configure log format to pull from logging.ini formats of these names: -# config_opts['build_log_fmt_name'] = "unadorned" -# config_opts['root_log_fmt_name'] = "detailed" -# config_opts['state_log_fmt_name'] = "state" -# -# mock will normally set up a minimal chroot /dev. -# If you want to use a pre-configured /dev, disable this and use the bind-mount -# plugin to mount your special /dev -# config_opts['internal_dev_setup'] = True -# -# internal_setarch defaults to 'True' if the python 'ctypes' package is -# available. It is in the python std lib on >= python 2.5. On older versions, -# it is available as an addon. On systems w/o ctypes, it will default to -# 'False' -# config_opts['internal_setarch'] = False -# -# the cleanup_on_* options allow you to automatically clean and remove the -# mock build directory, but only take effect if --resultdir is used. -# config_opts provides fine-grained control. cmdline only has big hammer -# -# config_opts['cleanup_on_success'] = 1 -# config_opts['cleanup_on_failure'] = 1 - -############################################################################# -# -# plugin related. Below are the defaults. Change to suit your site -# policy. defaults.cfg is a good place to do this. -# -# NOTE: Some of the caching options can theoretically affect build -# reproducability. Change with care. -# -# config_opts['plugin_conf']['ccache_enable'] = True -# config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G' -# config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/" -# config_opts['plugin_conf']['yum_cache_enable'] = True -# config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30 -# config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/yum_cache/" -# config_opts['plugin_conf']['root_cache_enable'] = True -# config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15 -# config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/" -# config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "gzip" -# config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" -# -# bind mount plugin is enabled by default but has no configured directories to mount -# config_opts['plugin_conf']['bind_mount_enable'] = True -# config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/host/path', '/bind/mount/path/in/chroot/' )) -# -# config_opts['plugin_conf']['tmpfs_enable'] = False -# config_opts['plugin_conf']['tmpfs_opts'] = {'required_ram_mb': 1024} - -############################################################################# -# -# Things that you can change, but we dont recommend it: -# config_opts['chroothome'] = '/builddir' -# config_opts['clean'] = True - -############################################################################# -# -# Things that are best suited for individual chroot config files: -# -# MUST SET (in individual chroot cfg file): -# config_opts['root'] = 'name-of-yum-build-dir' -# config_opts['target_arch'] = 'i386' -# config_opts['yum.conf'] = '' -# -# CAN SET, defaults usually work ok: -# config_opts['chroot_setup_cmd'] = 'install buildsys-build' -# config_opts['log_config_file'] = 'logging.ini' -# config_opts['more_buildreqs']['srpm_name-version-release'] = 'dependencies' -# config_opts['macros']['Add_your_macro_name_here'] = "add macro value here" -# config_opts['files']['path/name/no/leading/slash'] = "put file contents here." -# config_opts['chrootuid'] = os.getuid() -# config_opts['chrootgid'] = grp.getgrnam("mock")[2] -# config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s -n %(user)s' # Fedora/RedHat diff --git a/rpm/build/mock/sles-10-i386.cfg b/rpm/build/mock/sles-10-i386.cfg deleted file mode 100644 index ad1a62b40..000000000 --- a/rpm/build/mock/sles-10-i386.cfg +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python -tt - -import os - -config_opts['root'] = 'sles-10-i386' -config_opts['basedir'] = '/var/lib/mock/' -config_opts['chroot'] = '/usr/sbin/mock-helper chroot' -config_opts['mount'] = '/usr/sbin/mock-helper mount' -config_opts['umount'] = '/usr/sbin/mock-helper umount' -config_opts['rm'] = '/usr/sbin/mock-helper rm' -config_opts['mknod'] = '/usr/sbin/mock-helper mknod' -config_opts['yum'] = '/usr/sbin/mock-helper yum' -config_opts['runuser'] = '/bin/su' -config_opts['chroot_setup_cmd'] = 'groupinstall build build-minimal build-base' -config_opts['chrootuser'] = 'mockbuild' -config_opts['chrootgroup'] = 'users' -config_opts['chrootuid'] = os.geteuid() -config_opts['chrootgid'] = os.getegid() -config_opts['chroothome'] = '/builddir' -config_opts['clean'] = True -config_opts['target_arch'] = 'i386' -config_opts['use_cache'] = 1 - - -config_opts['yum.conf'] = """ -[main] -cachedir=/var/cache/yum -debuglevel=1 -logfile=/var/log/yum.log -reposdir=/dev/null -retries=20 -obsoletes=1 -gpgcheck=0 -assumeyes=1 - -# repos - -[base] -name=base -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/sles10/base/i386/ -#baseurl=http://redshank.elirion.net/sles -baseurl=file:///home/rsiddall/mock/repos/sles10/i386 - -[build] -name=build -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/sles10/base/i386/ -#baseurl=http://grosbeak.elirion.net/repo/sles/10/build/i386/ -baseurl=file:///home/rsiddall/public_html/repo/sles/10/build/i386 - -[groups] -name=groups -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/mock/buildgroups/sles10/i386/ -#baseurl=http://redshank.elirion.net/slesgroup/sles10/i386/ -baseurl=file:///home/rsiddall/mock/buildgroups/sles10/i386 - -""" - - - diff --git a/rpm/build/mock/sles-10-x86_64.cfg b/rpm/build/mock/sles-10-x86_64.cfg deleted file mode 100644 index d55b40ad6..000000000 --- a/rpm/build/mock/sles-10-x86_64.cfg +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python -tt - -import os - -config_opts['root'] = 'sles-10-x86_64' -config_opts['basedir'] = '/var/lib/mock/' -config_opts['chroot'] = '/usr/sbin/mock-helper chroot' -config_opts['mount'] = '/usr/sbin/mock-helper mount' -config_opts['umount'] = '/usr/sbin/mock-helper umount' -config_opts['rm'] = '/usr/sbin/mock-helper rm' -config_opts['mknod'] = '/usr/sbin/mock-helper mknod' -config_opts['yum'] = '/usr/sbin/mock-helper yum' -config_opts['runuser'] = '/bin/su' -config_opts['chroot_setup_cmd'] = 'groupinstall build build-minimal build-base' -config_opts['chrootuser'] = 'mockbuild' -config_opts['chrootgroup'] = 'users' -config_opts['chrootuid'] = os.geteuid() -config_opts['chrootgid'] = os.getegid() -config_opts['chroothome'] = '/builddir' -config_opts['clean'] = True -config_opts['target_arch'] = 'x86_64' -config_opts['use_cache'] = 1 - - -config_opts['yum.conf'] = """ -[main] -cachedir=/var/cache/yum -debuglevel=1 -logfile=/var/log/yum.log -reposdir=/dev/null -retries=20 -obsoletes=1 -gpgcheck=0 -assumeyes=1 - -# repos - -[base] -name=base -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/sles10/base/x86_64/ -#baseurl=http://redshank.elirion.net/sles -baseurl=file:///home/rsiddall/mock/repos/sles10/x86_64 - -[build] -name=build -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/sles10/base/x86_64/ -#baseurl=http://grosbeak.elirion.net/repo/sles/10/build/x86_64/ -baseurl=file:///home/rsiddall/public_html/repo/sles/10/build/x86_64 - -[groups] -name=groups -#baseurl=http://hb.linuxdev.us.dell.com/pub/yum/mock/buildgroups/sles10/x86_64/ -#baseurl=http://redshank.elirion.net/slesgroup/sles10/x86_64/ -baseurl=file:///home/rsiddall/mock/buildgroups/sles10/x86_64 - -""" - - - diff --git a/rpm/build/native/Ovid.diff b/rpm/build/native/Ovid.diff deleted file mode 100644 index 81db7c5a8..000000000 --- a/rpm/build/native/Ovid.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- Package.pm.orig 2007-05-25 09:54:14.000000000 -0400 -+++ Package.pm 2007-07-07 15:35:20.000000000 -0400 -@@ -165,6 +165,7 @@ - push @out, $self->provreq($n); - } - -+ return join("\n", map { "Provides: $_"; } @out) if scalar(@out) > 5; - return join('', 'Provides: ', join ' ', @out); - } - -@@ -376,10 +377,15 @@ - - %install - --make PREFIX=%{_prefix} \ -- DESTDIR=%{buildroot} \ -- INSTALLDIRS=@installdirs@ \ -- install -+if [ -f Build.PL -a -f Build ] ; then -+ ./Build destdir=%{buildroot} \ -+ install -+else -+ make PREFIX=%{_prefix} \ -+ DESTDIR=%{buildroot} \ -+ INSTALLDIRS=@installdirs@ \ -+ install -+fi - - [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress - diff --git a/rpm/build/native/build-from-cvs b/rpm/build/native/build-from-cvs deleted file mode 100755 index aa1319b96..000000000 --- a/rpm/build/native/build-from-cvs +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# Copyright 2008, Elirion, Inc. All rights reserved. -# This software is licensed under the same terms as Freeside itself. -# -# This script builds SRPMs if the Freeside CVS contents have changed. -# It must have reference copies of the Freeside versions it builds. -# Each SRPM's "release" is set to the date & time the script is run. -# The version number is forced to the CVS version. The version and release -# hard-coded in the last .spec file committed to CVS are NOT used. -# -source $HOME/freeside-cvs -RELEASE=`date +%Y%m%d%H%M%S` -QUIET_FLAG= -#FORCE_FLAG=0 -FORCE_FLAG=1 -#VERSIONS='1.7 1.9' -VERSIONS='1.7' - -while getopts "fhqv:" flag -do - case $flag in - f) - echo "Force mode" - FORCE_FLAG=1;; - q) - echo "Quiet mode" - QUIET_FLAG=-q;; - v) - echo "Changing versions from $VERSIONS to $OPTARG" - VERSIONS=$OPTARG;; - *) - usage;; - esac -done - -usage() { - echo "build-from-cvs: build SRPMs if the Freeside CVS contents have changed" - echo "where:" - echo " -f: force building SRPMs even if CVS is unchanged" - echo " -h: print this usage information" - echo " -q: run quietly" - echo " -v <versions>: change versions (currently: $VERSIONS)" - exit 0 -} - -for VERSION in $VERSIONS; do - echo ${VERSION} - /bin/rm -rf ref-${VERSION} - cp -pr freeside-${VERSION} ref-${VERSION} - cd freeside-${VERSION} - cvs update -d -P - cd .. - diff -qr --exclude=CVS freeside-${VERSION} ref-${VERSION} - RETVAL=$? - if [ $FORCE_FLAG = 1 -o $RETVAL -gt 0 ]; then - # Build the tarball with the modified .spec file in it, hard-coding the release into the .spec file - cd freeside-${VERSION} - for SPECFILE in install/rpm/freeside.spec rpm/freeside.spec; do - if [ -f $SPECFILE ]; then - cp -pf $SPECFILE .. - perl -p -i -e "s/\d+[^\}]+/${VERSION}/ if /%define\s+version\s+(\d+[^\}]+)\}/;" ${SPECFILE} - perl -pi -e "s/\$1/${RELEASE}/ if /%define\s+release\s+(\d+)/;" $SPECFILE - tar zcvf $HOME/redhat/SOURCES/freeside-${VERSION}.tar.gz --exclude CVS ../freeside-${VERSION} - mv -f ../`basename $SPECFILE` `dirname $SPECFILE` - fi - done - cd .. - rpmbuild -ts $HOME/redhat/SOURCES/freeside-${VERSION}.tar.gz - # Could do a koji-build here - # Or move the SRPM to a staging directory for the build machine to check - # Should make the Bundles and check the dependencies for changes - fi - /bin/rm -rf ref-${VERSION} -done diff --git a/rpm/build/native/freeside-cvs b/rpm/build/native/freeside-cvs deleted file mode 100755 index 88d12b4dc..000000000 --- a/rpm/build/native/freeside-cvs +++ /dev/null @@ -1,2 +0,0 @@ -export CVSROOT=":pserver:anonymous:anonymous@cvs.freeside.biz:/home/cvs/cvsroot" -export CVS_RSH="ssh" diff --git a/rpm/build/native/makesrpm b/rpm/build/native/makesrpm deleted file mode 100755 index fc9703ebc..000000000 --- a/rpm/build/native/makesrpm +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -cpanflute2 --just-spec --noperlreqs --email='Ivan Kohler <ivan@freeside.biz>' --release=1 /home/rsiddall/Business-OnlinePayment-Jety-0.06.tar.gz > /home/rsiddall/redhat/SPECS/Business-OnlinePayment-Jety.spec; -perl -pi -e 's/perl(perl)/perl/g' /home/rsiddall/redhat/SPECS/Business-OnlinePayment-Jety.spec -rpmbuild -bs --nodeps --define '_sourcedir /home/rsiddall/' --define '_srcrpmdir /home/rsiddall/redhat/SRPMS' /home/rsiddall/redhat/SPECS/Business-OnlinePayment-Jety.spec diff --git a/rpm/build/native/ovid-0.12-1.x86_64.rpm b/rpm/build/native/ovid-0.12-1.x86_64.rpm Binary files differdeleted file mode 100644 index 363e08922..000000000 --- a/rpm/build/native/ovid-0.12-1.x86_64.rpm +++ /dev/null diff --git a/rpm/build/native/ovid2flute b/rpm/build/native/ovid2flute deleted file mode 100755 index 5bb836116..000000000 --- a/rpm/build/native/ovid2flute +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/perl -w -# -# Convert the output from ovid --deps into a list of modules to run through cpanflute2 to get -# better .spec files, and generate SRPMs from these. - -use strict; -use Getopt::Long; - -# Need to fix up modules where Ovid parses the name incorrectly -my %badparse=( - 'Crypt-PasswdMD-5' => 'Crypt-PasswdMD5', - 'IPC-Run-3' => 'IPC-Run3', - 'Digest-SHA-1' => 'Digest-SHA1', - 'Digest-MD-4' => 'Digest-MD4', -); - -my %extra_buildreqs=( - 'File-Rsync' => [ qw/rsync/ ], - 'MIMETools' => [ qw/perl(Mail::Header) perl(Mail::Internet) perl(Mail::Field) perl(IO::Stringy) perl(File::Temp)/ ], - 'HTML::Scrubber' => [ qw/perl(HTML::Parser) perl(HTML::Tagset)/ ], -# 'Time::Duration' => [ qw/perl(Test::Pod) perl(Test::Pod::Coverage)/ ], -); - -my %extra_reqs=( - 'File-Rsync' => [ qw/rsync/ ], -); - -my %opts; - -GetOptions(\%opts, 'packager=s', 'release=s'); - -$opts{packager} = 'Richard Siddall <richard.siddall@elirion.net>' if !defined($opts{packager}); - -# Need to process modules that cause Ovid to crash -#my @extramods= qw/Text::CSV_XS Pod::Simple Crypt::SSLeay/; -#my @extramods= qw/Crypt::SSLeay/; -my @extramods= qw/IPC::ShareLite/; - -my $specfiledir="/home/ivan/work/redhat/SPECS"; -$specfiledir = "/home/ivan/redhat/SPECS" if ! -d $specfiledir; -my $srpmdir="/home/ivan/work/redhat/SRPMS"; -$srpmdir = "/home/ivan/redhat/SRPMS" if ! -d $srpmdir; - -foreach (reverse <STDIN>) { - next if !defined($_); - #print $_; - last if $_ !~ /^([-\w:]+) perl-([-\w\.]+)(-\d+[\w\.]+?)$/; - #print "$1 = $2\n" - my ($name, $rpm, $ver) = ($1, $2, $3); - print "# $name ($rpm - $ver)\n"; - foreach my $cand (keys %badparse) { - if ($rpm =~ /^$cand/) { - $rpm =~ s/^$cand/$badparse{$cand}/; - print "# Fixed up $rpm\n"; - last; - } - } - printcmds($name, "$rpm$ver"); - #print "cpanspec -v --packager 'Unknown <nobody\@example.com>' $name\n"; - #print "echo $rpm\n"; - #print "repoquery perl-$rpm\n"; - #touchsrpms($name, "$rpm$ver"); -} - -exit; - -foreach my $name (@extramods) { - my $rpm = $name; - $rpm =~ s/::/-/g; - my $tarball = `find ~/.cpan/sources -name '$rpm-*' -print | tail -1`; - #print "$name (Extra!)\n" - if ($tarball =~ /\/($rpm-.*?)(\.tar\.gz|\.tgz)\s*$/) { - $rpm = $1; - printcmds($name, $rpm); - } else { - die "Can't find full rpm name for $name in \"$tarball\"\n"; - } -} - -sub touchsrpms { - my ($name, $rpm) = @_; - my $repofolder ="/var/www/html/repo/sles/10/freeside-1.9/stable/x86_64"; - my $srpmfolder ="/home/ivan/work/redhat/SRPMS"; - my @files = glob "$repofolder/perl-$rpm-*.rpm"; - if (! scalar(@files)) { - print "Can't find $rpm in $repofolder\n"; - @files = glob "$srpmfolder/perl-$rpm-*.src.rpm\n"; - if (scalar(@files)) { - my $file = pop @files; - print "touch $file\n"; - } else { - print STDERR "No corresponding SRPM: $srpmfolder/perl-$rpm-*.src.rpm\n"; - printcmds($name, $rpm); - } - } -} - -sub printcmds { - my ($name, $rpm) = @_; - - my $tarball = `find ~/.cpan -name '$rpm.tar.gz' -print`; - $tarball = `find ~/.cpan -name '$rpm.tgz' -print` if ! $tarball; - chomp($tarball); -# my $specfile = "$specfiledir/$name.spec"; - my $rpmname = $rpm; - $rpmname = $1 if $rpm =~ /^(?:.*\/)?(.*)-(?:v\.?)?([^-]+)$/; - my $specfile = "$specfiledir/perl-$rpmname.spec"; - $specfile =~ s/::/-/g; - # Work out which version of the SRPM we're going to generate. - my $rel; - if (!defined($opts{release})) { - for ($rel = 1; ; $rel++) { - my $srpm = "$srpmdir/perl-$rpm-$rel.src.rpm"; - last if ! -e $srpm; - print "# File exists: $srpm\n"; - } - } else { - $rel = $opts{release}; - } - my $fluteopts = ""; - foreach my $cand (keys %extra_buildreqs) { - if ($rpm =~ /^$cand/) { - $fluteopts .= join "", map { "--buildrequires $_ " } @{$extra_buildreqs{$cand}}; - last; - } - } - foreach my $cand (keys %extra_reqs) { - if ($rpm =~ /^$cand/) { - $fluteopts .= join "", map { "--requires $_ " } @{$extra_reqs{$cand}}; - last; - } - } - print "cpanflute2 --just-spec --noperlreqs --email='$opts{packager}' --release=$rel $fluteopts $tarball > $specfile;\n"; - # Should fix up the .spec file - print "perl -pi -e 's/perl\\(perl\\)/perl/g' $specfile;\n"; - my $tarballdir = `dirname $tarball` or die "Can't find tarball for $name: $tarball\n"; - chomp($tarballdir); - print "rpmbuild -bs --nodeps --define '_sourcedir $tarballdir' --define '_srcrpmdir $srpmdir' $specfile\n"; - print "# Generates: $srpmdir/perl-$rpm-$rel.src.rpm\n"; -} - diff --git a/rpm/build/ovid2flute b/rpm/build/ovid2flute deleted file mode 100755 index 403b1d93f..000000000 --- a/rpm/build/ovid2flute +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/perl -w -# -# Convert the output from ovid --deps into a list of modules to run through cpanflute2 to get -# better .spec files, and generate SRPMs from these. - -use strict; -use Getopt::Long; - -# Need to fix up modules where Ovid parses the name incorrectly -my %badparse=( - 'Crypt-PasswdMD-5' => 'Crypt-PasswdMD5', - 'IPC-Run-3' => 'IPC-Run3', - 'Digest-SHA-1' => 'Digest-SHA1', - 'Digest-MD-4' => 'Digest-MD4', -); - -my %extra_buildreqs=( - 'File-Rsync' => [ qw/rsync/ ], - 'MIMETools' => [ qw/perl(Mail::Header) perl(Mail::Internet) perl(Mail::Field) perl(IO::Stringy) perl(File::Temp)/ ], - 'HTML::Scrubber' => [ qw/perl(HTML::Parser) perl(HTML::Tagset)/ ], -# 'Time::Duration' => [ qw/perl(Test::Pod) perl(Test::Pod::Coverage)/ ], -); - -my %extra_reqs=( - 'File-Rsync' => [ qw/rsync/ ], -); - -my %opts; - -GetOptions(\%opts, 'packager=s', 'release=s'); - -$opts{packager} = 'Richard Siddall <richard.siddall@elirion.net>' if !defined($opts{packager}); - -# Need to process modules that cause Ovid to crash -#my @extramods= qw/Text::CSV_XS Pod::Simple Crypt::SSLeay/; -#my @extramods= qw/Crypt::SSLeay/; -my @extramods= qw/IPC::ShareLite/; - -my $specfiledir="/home/rsiddall/work/redhat/SPECS"; -my $srpmdir="/home/rsiddall/work/redhat/SRPMS"; - -foreach (reverse <STDIN>) { - next if !defined($_); - #print $_; - last if $_ !~ /^([-\w:]+) perl-([-\w\.]+)(-\d+[\w\.]+?)$/; - #print "$1 = $2\n" - my ($name, $rpm, $ver) = ($1, $2, $3); - print "# $name ($rpm - $ver)\n"; - foreach my $cand (keys %badparse) { - if ($rpm =~ /^$cand/) { - $rpm =~ s/^$cand/$badparse{$cand}/; - print "# Fixed up $rpm\n"; - last; - } - } - printcmds($name, "$rpm$ver"); - #print "cpanspec -v --packager 'Unknown <nobody\@example.com>' $name\n"; - #print "echo $rpm\n"; - #print "repoquery perl-$rpm\n"; - #touchsrpms($name, "$rpm$ver"); -} - -exit; - -foreach my $name (@extramods) { - my $rpm = $name; - $rpm =~ s/::/-/g; - my $tarball = `find ~/.cpan/sources -name '$rpm-*' -print | tail -1`; - #print "$name (Extra!)\n" - if ($tarball =~ /\/($rpm-.*?)(\.tar\.gz|\.tgz)\s*$/) { - $rpm = $1; - printcmds($name, $rpm); - } else { - die "Can't find full rpm name for $name in \"$tarball\"\n"; - } -} - -sub touchsrpms { - my ($name, $rpm) = @_; - my $repofolder ="/var/www/html/repo/sles/10/freeside-1.9/stable/x86_64"; - my $srpmfolder ="/home/rsiddall/work/redhat/SRPMS"; - my @files = glob "$repofolder/perl-$rpm-*.rpm"; - if (! scalar(@files)) { - print "Can't find $rpm in $repofolder\n"; - @files = glob "$srpmfolder/perl-$rpm-*.src.rpm\n"; - if (scalar(@files)) { - my $file = pop @files; - print "touch $file\n"; - } else { - print STDERR "No corresponding SRPM: $srpmfolder/perl-$rpm-*.src.rpm\n"; - printcmds($name, $rpm); - } - } -} - -sub printcmds { - my ($name, $rpm) = @_; - - my $tarball = `find ~/.cpan -name '$rpm.tar.gz' -print`; - $tarball = `find ~/.cpan -name '$rpm.tgz' -print` if ! $tarball; - chomp($tarball); -# my $specfile = "$specfiledir/$name.spec"; - my $rpmname = $rpm; - $rpmname = $1 if $rpm =~ /^(?:.*\/)?(.*)-(?:v\.?)?([^-]+)$/; - my $specfile = "$specfiledir/perl-$rpmname.spec"; - $specfile =~ s/::/-/g; - # Work out which version of the SRPM we're going to generate. - my $rel; - if (!defined($opts{release})) { - for ($rel = 1; ; $rel++) { - my $srpm = "$srpmdir/perl-$rpm-$rel.src.rpm"; - last if ! -e $srpm; - print "# File exists: $srpm\n"; - } - } else { - $rel = $opts{release}; - } - my $fluteopts = ""; - foreach my $cand (keys %extra_buildreqs) { - if ($rpm =~ /^$cand/) { - $fluteopts .= join "", map { "--buildrequires $_ " } @{$extra_buildreqs{$cand}}; - last; - } - } - foreach my $cand (keys %extra_reqs) { - if ($rpm =~ /^$cand/) { - $fluteopts .= join "", map { "--requires $_ " } @{$extra_reqs{$cand}}; - last; - } - } - print "cpanflute2 --just-spec --noperlreqs --email='$opts{packager}' --release=$rel $fluteopts $tarball > $specfile;\n"; - # Should fix up the .spec file - print "perl -pi -e 's/perl\\(perl\\)/perl/g' $specfile;\n"; - my $tarballdir = `dirname $tarball` or die "Can't find tarball for $name: $tarball\n"; - chomp($tarballdir); - print "rpmbuild -bs --nodeps --define '_sourcedir $tarballdir' --define '_srcrpmdir $srpmdir' $specfile\n"; - print "# Generates: $srpmdir/perl-$rpm-$rel.src.rpm\n"; -} - diff --git a/rpm/build/refresh-repo b/rpm/build/refresh-repo deleted file mode 100755 index 32d07ad97..000000000 --- a/rpm/build/refresh-repo +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/sh -# -# Copyright 2008, Elirion, Inc. All rights reserved. -# This software is licensed under the same terms as Freeside itself. -# -# This script iterates through all the specified Freeside repositories, running -# both yum-arch and createrepo to update the yum repository meta-data. -# The script should be run after the repository contents are changed. -# -# TBD: Run yum-arch, createrepo, or both, as appropriate for the distro and version -# the repository is targetted for. -# -DISTROS='centos sles' -CENTOSVERS='4 5' -SLESVERS=10 -WHICHVERS= -VERSIONS='1.7 1.9' -ARCHS='i386 x86_64' -REPOS='testing stable prerelease' -RPMS= -KEYID=rsiddall -SAVEDIR=$HOME - -REPOBASEFOLDER=/var/www/html - -QUIET_FLAG= - -BUILDSYSDIR=`dirname $0` - -if [ -f $BUILDSYSDIR/buildsysrc ]; then - #chmod a+x $BUILDSYSDIR/buildsysrc - #echo $BUILDSYSDIR/buildsysrc - . $BUILDSYSDIR/buildsysrc -fi -if [ -f $HOME/buildsysrc ]; then - #chmod a+x $HOME/buildsysrc - #echo $HOME/buildsysrc - . $HOME/buildsysrc -fi - - -usage() { - echo "refresh-repo: refresh yum metadata for all yum repositories" - echo "where:" - echo " -a <archs>: change architectures (currently: $ARCHS)" - echo " -d <distros>: change distributions (currently: $DISTROS)" - echo " -r <repos>: change repositories (currently: $REPOS)" - echo " -v <versions>: change versions (currently: $VERSIONS)" - echo " -w <distvers>: change distro version (currently: $WHICHVERS)" - exit 0 -} - -while getopts "a:d:hqr:v:w:" flag -do - case $flag in - a) - echo "Changing architectures from $ARCHS to $OPTARG" - ARCHS=$OPTARG;; - d) - echo "Changing distros from $DISTROS to $OPTARG" - DISTROS=$OPTARG;; - q) - echo "Quiet mode" - QUIET_FLAG=-q;; - r) - echo "Changing repository from $REPOS to $OPTARG" - REPOS=$OPTARG;; - v) - echo "Changing versions from $VERSIONS to $OPTARG" - VERSIONS=$OPTARG;; - w) - echo "Changing which distro versions from $WHICHVERS to $OPTARG" - WHICHVERS=$OPTARG;; - *) - usage;; - esac -done - -#for DISTRO in ${DISTROS}; do -# for VERSION in ${VERSIONS}; do -# for REPO in ${REPOS}; do -# for ARCH in ${ARCHS}; do -# # Determine which RPMs need to be signed -# NEWRPMS=`rpm --checksig $REPOBASEFOLDER/repo/$DISTROS/$DISTVERS/freeside-${VERSION}/${REPO}/${ARCH}/*.rpm | grep -v ' gpg ' | cut -d ':' -f 1 | tr '\n' ' '` -# RPMS=`echo "$RPMS $NEWRPMS"` -# done -# done -# done -#done -##rpm --addsign $RPMS -#for RPM in $RPMS; do -# ./expect-addsign $RPM -#done -for DISTRO in ${DISTROS}; do - for VERSION in ${VERSIONS}; do - for REPO in ${REPOS}; do - for ARCH in ${ARCHS}; do - if [ "${WHICHVERS}x" = "x" ]; then - if [ "$DISTRO" = "centos" ]; then - DISTVERS=$CENTOSVERS - fi - if [ "$DISTRO" = "sles" ]; then - DISTVERS=$SLESVERS - fi - else - DISTVERS=$WHICHVERS - fi - for distver in $DISTVERS - do - # Update the repo information - echo "${DISTRO}-${distver}: $VERSION - $REPO - $ARCH" - DIR=$REPOBASEFOLDER/repo/$DISTRO/$distver/freeside-${VERSION}/${REPO}/${ARCH} - if [ -d $DIR ] - then - # SLES requires signed repodata. Save any existing files so we don't regenerate - for ext in asc key - do - if [ -e $DIR/repodata/repomd.xml.${ext} ] - then - mv $DIR/repodata/repomd.xml.${ext} $SAVEDIR - fi - done - if [ "$DISTRO" = "sles" ] - then - for file in $DIR/freeside-mysql-*.rpm - do - mv $file $file.old - done - for file in $DIR/freeside-selfservice-*.rpm - do - mv $file $DIR/../self-service/$ARCH - done - fi - if [ "$DISTRO-$distver" = "centos-4" ] - then - yum-arch $QUIET_FLAG $DIR/ - fi -# createrepo $QUIET_FLAG --checkts $DIR/ - createrepo $QUIET_FLAG $DIR/ - if [ "$DISTRO" = "sles" ] - then - # SLES requires signed repodata... - if [ -e $SAVEDIR/repomd.xml.asc ] - then - mv $SAVEDIR/repomd.xml.asc $DIR/repodata - fi - -# gpg -sab --yes -u "$KEYID" -o $DIR/repodata/repomd.xml.asc $DIR/repodata/repomd.xml - ./expect-signrepo $KEYID $DIR/repodata/repomd.xml.asc $DIR/repodata/repomd.xml - if [ -e $SAVEDIR/repomd.xml.key ] - then - mv $SAVEDIR/repomd.xml.key $DIR/repodata - else - gpg -a --yes -u "$KEYID" --export -o $DIR/repodata/repomd.xml.key - fi - fi - else - echo "No such folder $DIR - skipping" - fi - done - done - done - done -done diff --git a/rpm/freeside-selfservice.conf b/rpm/freeside-selfservice.conf deleted file mode 100644 index f2c103b2c..000000000 --- a/rpm/freeside-selfservice.conf +++ /dev/null @@ -1,11 +0,0 @@ -ScriptAlias /selfservice %%%FREESIDE_SELFSERVICE_DOCUMENT_ROOT%%%/cgi - -<Directory %%%FREESIDE_SELFSERVICE_DOCUMENT_ROOT%%%/cgi> -SSLRequireSSL -DirectoryIndex selfservice.cgi -AllowOverride None -Options +ExecCGI -Includes -Order deny,allow -Allow from all -SetHandler cgi-script -</Directory> diff --git a/rpm/freeside.spec b/rpm/freeside.spec deleted file mode 100644 index 548444e12..000000000 --- a/rpm/freeside.spec +++ /dev/null @@ -1,492 +0,0 @@ -%{!?_initrddir:%define _initrddir /etc/rc.d/init.d} -%{!?version:%define version 2.1.1} -%{!?release:%define release 8} - -Summary: Freeside ISP Billing System -Name: freeside -Version: %{version} -Release: %{release} -License: AGPLv3 -Group: Applications/Internet -URL: http://www.sisd.com/freeside/ -Vendor: Freeside -Source: http://www.sisd.com/freeside/%{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildArch: noarch -Requires: %{name}-frontend -Requires: %{name}-backend -%if "%{_vendor}" != "suse" -Requires: tetex-latex -Requires: ghostscript -%else -Requires: te_latex -Requires: ghostscript-library -%endif -Requires: perl-Fax-Hylafax-Client - -%if "%{_vendor}" != "suse" -%define apache_conffile /etc/httpd/conf/httpd.conf -%define apache_confdir /etc/httpd/conf.d -%define apache_version 2 -%define freeside_document_root /var/www/freeside -%define freeside_selfservice_document_root /var/www/freeside-selfservice -%else -%define apache_conffile /etc/apache2/uid.conf -%define apache_confdir /etc/apache2/conf.d -%define apache_version 2 -%define freeside_document_root /srv/www/freeside -%define freeside_selfservice_document_root /srv/www/freeside-selfservice -%endif -# Can change this back to /var/cache/subsys/freeside when cache relocation is fixed and released -%define freeside_cache /etc/freeside -%define freeside_conf /etc/freeside -%define freeside_export /etc/freeside -%define freeside_lock /var/lock/freeside -%define freeside_log /var/log/freeside -%define freeside_socket /etc/freeside -%define rt_enabled 0 -%define fs_queue_user fs_queue -%define fs_selfservice_user fs_selfservice -%define fs_cron_user fs_daily -%define db_types Pg mysql - -%define texmflocal /usr/share/texmf - -%define _rpmlibdir /usr/lib/rpm -%define rpmfiles rpm - -%description -Freeside is a flexible ISP billing system - -%package mason -Summary: HTML::Mason interface for %{name} -Group: Applications/Internet -Prefix: %{freeside_document_root} -%if "%{_vendor}" != "suse" -Requires: mod_ssl -%endif -Requires: perl-Apache-DBI -Provides: %{name}-frontend = %{version} -BuildArch: noarch - -%description mason -This package includes the HTML::Mason web interface for %{name}. -You should install only one %{name} web interface. - -%package postgresql -Summary: PostgreSQL backend for %{name} -Group: Applications/Internet -Requires: perl-DBI -Requires: perl-DBD-Pg >= 1.32 -Requires: %{name} -Conflicts: %{name}-mysql -Provides: %{name}-backend = %{version} - -%description postgresql -This package includes the PostgreSQL database backend for %{name}. -You should install only one %{name} database backend. -Please note that this RPM does not create the database or database user; it only installs the required drivers. - -%package mysql -Summary: MySQL database backend for %{name} -Group: Applications/Internet -Requires: perl-DBI -Requires: perl-DBD-MySQL -Requires: %{name} -Conflicts: %{name}-postgresql -Provides: %{name}-backend = %{version} - -%description mysql -This package includes the MySQL database backend for %{name}. -You should install only one %{name} database backend. -Please note that this RPM does not create the database or database user; it only installs the required drivers. - -%package selfservice -Summary: Self-service interface for %{name} -Group: Applications/Internet -Requires: %{name}-selfservice-cgi - -%description selfservice -This package installs the Perl modules and CGI scripts for the self-service interface for %{name}. -For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer. - -%package selfservice-core -Summary: Core Perl libraries for the self-service interface for %{name} -Group: Applications/Internet - -%description selfservice-core -This package installs the Perl modules and client daemon for the self-service interface for %{name}. It does not install the CGI interface and can be used with a different front-end. -For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer. - -%package selfservice-cgi -Summary: CGI scripts for the self-service interface for %{name} -Group: Applications/Internet -Requires: %{name}-selfservice-core -Prefix: %{freeside_selfservice_document_root} - -%description selfservice-cgi -This package installs the CGI scripts for the self-service interface for %{name}. The scripts use some core libraries packaged in a separate RPM. -For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer. - -%package selfservice-php -Summary: Sample PHP files for the self-service interface for %{name} -Group: Applications/Internet -Prefix: %{freeside_selfservice_document_root} - -%description selfservice-php -This package installs the sample PHP scripts for the self-service interface for %{name}. -For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer. - -%prep -%setup -q -%{__rm} -f bin/pod2x # Only useful to Ivan Kohler now -perl -pi -e 's|/usr/local/bin|%{_bindir}|g' FS/Makefile.PL -# RPM handles changing file ownership, so Makefile shouldn't -perl -pi -e 's/\s+-o\s+(freeside|root)(\s+-g\s+\$\{\w+\})?\s+/ /g' Makefile -perl -ni -e 'print if !/\s+chown\s+/;' Makefile - -# Fix-ups for self-service. Should merge this into Makefile -perl -pi -e 's|/usr/local/sbin|%{_sbindir}|g' FS/bin/freeside-selfservice-server -perl -pi -e 's|/usr/local/bin|%{_bindir}|g' fs_selfservice/FS-SelfService/Makefile.PL -perl -pi -e 's|/usr/local/sbin|%{_sbindir}|g' fs_selfservice/FS-SelfService/Makefile.PL -perl -pi -e 's|/usr/local/freeside|%{freeside_socket}|g' fs_selfservice/FS-SelfService/*.pm -perl -pi -e 's|socket\s*=\s*"/usr/local/freeside|socket = "%{freeside_socket}|g' fs_selfservice/FS-SelfService/freeside-selfservice-* -perl -pi -e 's|log_file\s*=\s*"/usr/local/freeside|log_file = "%{freeside_log}|g' fs_selfservice/FS-SelfService/freeside-selfservice-* -perl -pi -e 's|lock_file\s*=\s*"/usr/local/freeside|lock_file = "%{freeside_lock}|g' fs_selfservice/FS-SelfService/freeside-selfservice-* - -# Fix-ups for SuSE -%if "%{_vendor}" == "suse" -perl -pi -e 's|htpasswd|/usr/sbin/htpasswd2|g if /system/;' FS/FS/access_user.pm -perl -pi -e 'print "Order deny,allow\nAllow from all\n" if /<Files/i;' htetc/freeside*.conf -%endif - -# Override find-requires/find-provides to supplement Perl requires for HTML::Mason file handler.pl -cat << \EOF > %{name}-req -#!/bin/sh -tee %{_tmppath}/filelist | %{_rpmlibdir}/rpmdeps --requires | grep -v -E '^perl\(the\)$' \ -| grep -v -E '^perl\((lib|strict|vars|RT)\)$' \ -| grep -v -E '^perl\(RT::' \ -| grep -v -E '^perl\(FS::' \ -| sort -u -grep handler.pl %{_tmppath}/filelist | xargs %{_rpmlibdir}/perldeps.pl --requires \ -| grep -v -E '^perl\((lib|strict|vars|RT)\)$' \ -| grep -v -E '^perl\(RT::' \ -| sort -u -EOF - -%define __find_provides %{_rpmlibdir}/rpmdeps --provides -%define __find_requires %{_builddir}/%{name}-%{version}/%{name}-req -%{__chmod} +x %{__find_requires} -%define _use_internal_dependency_generator 0 - -%build - -# False laziness... -# The htmlman target now makes wiki documentation. Let's pretend we made it. -touch htmlman -%{__make} alldocs - -#perl -pi -e 's|%%%%%%VERSION%%%%%%|%{version}|g' FS/bin/* -cd FS -if [ "%{_vendor}" = "suse" ]; then - CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL -else - CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_bindir} -fi -%{__make} OPTIMIZE="$RPM_OPT_FLAGS" -cd .. -%{__make} perl-modules RT_ENABLED=%{rt_enabled} FREESIDE_CACHE=%{freeside_cache} FREESIDE_CONF=%{freeside_conf} FREESIDE_EXPORT=%{freeside_export} FREESIDE_LOCK=%{freeside_lock} FREESIDE_LOG=%{freeside_log} -touch perl-modules - -cd fs_selfservice/FS-SelfService -if [ "%{_vendor}" = "suse" ]; then - CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL -else - CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_sbindir} -fi -%{__make} OPTIMIZE="$RPM_OPT_FLAGS" -cd ../.. - -%install -%{__rm} -rf %{buildroot} - -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root} - -touch install-perl-modules perl-modules -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_cache} -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_conf} -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_export} -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_lock} -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_log} -for DBTYPE in %{db_types}; do - %{__mkdir_p} $RPM_BUILD_ROOT/tmp - [ -d $RPM_BUILD_ROOT%{freeside_conf}/default_conf ] && %{__rm} -rf $RPM_BUILD_ROOT%{freeside_conf}/default_conf - %{__make} create-config DB_TYPE=$DBTYPE DATASOURCE=DBI:$DBTYPE:dbname=%{name} RT_ENABLED=%{rt_enabled} FREESIDE_CACHE=$RPM_BUILD_ROOT%{freeside_cache} FREESIDE_CONF=$RPM_BUILD_ROOT/tmp FREESIDE_EXPORT=$RPM_BUILD_ROOT%{freeside_export} FREESIDE_LOCK=$RPM_BUILD_ROOT%{freeside_lock} FREESIDE_LOG=$RPM_BUILD_ROOT%{freeside_log} DIST_CONF=$RPM_BUILD_ROOT%{freeside_conf}/default_conf - %{__mv} $RPM_BUILD_ROOT/tmp/secrets $RPM_BUILD_ROOT%{freeside_conf} - %{__rm} -rf $RPM_BUILD_ROOT/tmp -done -%{__rm} install-perl-modules perl-modules $RPM_BUILD_ROOT%{freeside_conf}/default_conf/ticket_system - -touch docs -%{__perl} -pi -e "s|%%%%%%FREESIDE_DOCUMENT_ROOT%%%%%%|%{freeside_document_root}|g" htetc/handler.pl -%{__make} install-docs RT_ENABLED=%{rt_enabled} PREFIX=$RPM_BUILD_ROOT%{_prefix} TEMPLATE=mason FREESIDE_DOCUMENT_ROOT=$RPM_BUILD_ROOT%{freeside_document_root} MASON_HANDLER=$RPM_BUILD_ROOT%{freeside_conf}/handler.pl MASONDATA=$RPM_BUILD_ROOT%{freeside_cache}/masondata -%{__perl} -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT%{freeside_conf}/handler.pl -%{__rm} docs - -# Install the init script -%{__mkdir_p} $RPM_BUILD_ROOT%{_initrddir} -%{__make} install-init INSTALLGROUP=root INIT_FILE=$RPM_BUILD_ROOT%{_initrddir}/%{name} QUEUED_USER=%{fs_queue_user} SELFSERVICE_USER=%{fs_selfservice_user} SELFSERVICE_MACHINES= INIT_INSTALL= -%{__perl} -pi -e "\ - s|/etc/default|/etc/sysconfig|g;\ - " $RPM_BUILD_ROOT%{_initrddir}/%{name} - -# Install the HTTPD configuration snippet for HTML::Mason -%{__mkdir_p} $RPM_BUILD_ROOT%{apache_confdir} -%{__make} install-apache FREESIDE_DOCUMENT_ROOT=%{freeside_document_root} RT_ENABLED=%{rt_enabled} APACHE_CONF=$RPM_BUILD_ROOT%{apache_confdir} APACHE_VERSION=%{apache_version} FREESIDE_CONF=%{freeside_conf} MASON_HANDLER=%{freeside_conf}/handler.pl -%{__perl} -pi -e 'print "Alias /%{name} %{freeside_document_root}\n\n" if /^<Directory/;' $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf -%{__perl} -pi -e 'print "SSLRequireSSL\n" if /^AuthName/i;' $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf - -# Make lists of the database-specific configuration files -for DBTYPE in %{db_types}; do - echo "%%attr(600,freeside,freeside) %{freeside_conf}/secrets" > %{name}-%{version}-%{release}-$DBTYPE-filelist - for DIR in `echo -e "%{freeside_conf}\n%{freeside_cache}\n%{freeside_export}\n" | sort | uniq`; do - find $RPM_BUILD_ROOT$DIR -type f -print | \ - grep ":$DBTYPE:" | \ - sed "s@^$RPM_BUILD_ROOT@%%attr(640,freeside,freeside) %%config(noreplace) @g" >> %{name}-%{version}-%{release}-$DBTYPE-filelist - find $RPM_BUILD_ROOT$DIR -type d -print | \ - grep ":$DBTYPE:" | \ - sed "s@^$RPM_BUILD_ROOT@%%attr(711,freeside,freeside) %%dir @g" >> %{name}-%{version}-%{release}-$DBTYPE-filelist - done - if [ "$(cat %{name}-%{version}-%{release}-$DBTYPE-filelist)X" = "X" ] ; then - echo "ERROR: EMPTY FILE LIST" - exit 1 - fi -done - -# Make a list of the Mason files before adding self-service, etc. -echo "%attr(-,freeside,freeside) %{freeside_conf}/handler.pl" > %{name}-%{version}-%{release}-mason-filelist -find $RPM_BUILD_ROOT%{freeside_document_root} -type f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" >> %{name}-%{version}-%{release}-mason-filelist -if [ "$(cat %{name}-%{version}-%{release}-mason-filelist)X" = "X" ] ; then - echo "ERROR: EMPTY FILE LIST" - exit 1 -fi - -# Install all the miscellaneous binaries into /usr/share or similar -%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/bin -%{__install} bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/bin - -%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig -%{__install} %{rpmfiles}/freeside.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} - -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root} -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/images -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/misc -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/php -%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/templates -%{__install} fs_selfservice/FS-SelfService/cgi/{*.cgi,*.html,*.gif} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi -%{__install} fs_selfservice/FS-SelfService/cgi/images/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/images -%{__install} fs_selfservice/FS-SelfService/cgi/misc/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/misc -%{__install} fs_selfservice/php/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/php -%{__install} fs_selfservice/FS-SelfService/*.template $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/templates - -# Install the main billing server Perl files -cd FS -eval `perl '-V:installarchlib'` -%{__mkdir_p} $RPM_BUILD_ROOT$installarchlib -%makeinstall PREFIX=$RPM_BUILD_ROOT%{_prefix} -%{__rm} -f `find $RPM_BUILD_ROOT -type f -name perllocal.pod -o -name .packlist` - -[ -x %{_rpmlibdir}/brp-compress ] && %{_rpmlibdir}/brp-compress - -find $RPM_BUILD_ROOT%{_prefix} -type f -print | \ - grep -v '/etc/freeside/conf' | \ - grep -v '/etc/freeside/secrets' | \ - sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-filelist -if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then - echo "ERROR: EMPTY FILE LIST" - exit 1 -fi -cd .. - -# Install the self-service interface Perl files -cd fs_selfservice/FS-SelfService -%{__mkdir_p} $RPM_BUILD_ROOT%{_prefix}/local/bin -%makeinstall -%{__rm} -f `find $RPM_BUILD_ROOT -type f -name perllocal.pod -o -name .packlist` - -[ -x %{_rpmlibdir}/brp-compress ] && %{_rpmlibdir}/brp-compress - -find $RPM_BUILD_ROOT%{_prefix} -type f -print | \ - grep -v '/etc/freeside/conf' | \ - grep -v '/etc/freeside/secrets' | \ - sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-temp-filelist -cat ../../FS/%{name}-%{version}-%{release}-filelist %{name}-%{version}-%{release}-temp-filelist | sort | uniq -u > %{name}-%{version}-%{release}-selfservice-core-filelist -if [ "$(cat %{name}-%{version}-%{release}-selfservice-core-filelist)X" = "X" ] ; then - echo "ERROR: EMPTY FILE LIST" - exit 1 -fi -cd ../.. - -# Install the Apache configuration file for self-service -%{__install} %{rpmfiles}/freeside-selfservice.conf $RPM_BUILD_ROOT%{apache_confdir}/%{name}-selfservice.conf -%{__perl} -pi -e "s|%%%%%%FREESIDE_SELFSERVICE_DOCUMENT_ROOT%%%%%%|%{freeside_selfservice_document_root}|g" $RPM_BUILD_ROOT%{apache_confdir}/%{name}-selfservice.conf - -# This is part of Makefile's install-texmf. The rest is in triggers. These files are not in the filelist -%{__install} -D etc/fslongtable.sty $RPM_BUILD_ROOT%{texmflocal}/tex/generic/fslongtable.sty - -%pre -if ! %{__id} freeside &>/dev/null; then -%if "%{_vendor}" == "suse" - /usr/sbin/groupadd freeside -%endif - /usr/sbin/useradd -m freeside -fi - -%pre mason -if ! %{__id} freeside &>/dev/null; then -%if "%{_vendor}" == "suse" - /usr/sbin/groupadd freeside -%endif - /usr/sbin/useradd -m freeside -fi - -%pre postgresql -if ! %{__id} freeside &>/dev/null; then -%if "%{_vendor}" == "suse" - /usr/sbin/groupadd freeside -%endif - /usr/sbin/useradd -m freeside -fi - -%pre mysql -if ! %{__id} freeside &>/dev/null; then -%if "%{_vendor}" == "suse" - /usr/sbin/groupadd freeside -%endif - /usr/sbin/useradd -m freeside -fi - -%pre selfservice-cgi -if ! %{__id} freeside &>/dev/null; then -%if "%{_vendor}" == "suse" - /usr/sbin/groupadd freeside -%endif - /usr/sbin/useradd -m freeside -fi - -%post -if [ -x /sbin/chkconfig ]; then - /sbin/chkconfig --add freeside -fi -#if [ $1 -eq 2 -a -x /usr/bin/freeside-upgrade ]; then -# /usr/bin/freeside-upgrade -#fi - -%post postgresql -if [ -f %{freeside_conf}/secrets ]; then - perl -p -i.fsbackup -e 's/^DBI:.*?:/DBI:Pg:/' %{freeside_conf}/secrets -fi - -%post mysql -if [ -f %{freeside_conf}/secrets ]; then - perl -p -i.fsbackup -e 's/^DBI:.*?:/DBI:mysql:/' %{freeside_conf}/secrets -fi - -%post mason -# Make local httpd run with User/Group = freeside -if [ -f %{apache_conffile} ]; then -%if "%{_vendor}" != "suse" - perl -p -i.fsbackup -e 's/^(User|Group) .*/$1 freeside/' %{apache_conffile} -%else - perl -p -i.fsbackup -e 's/^(User) .*/$1 freeside/' %{apache_conffile} -%endif -fi -# Fix up environment so pslatex will run -%if "%{_vendor}" == "suse" -if ! %{__grep} TEXINPUTS /etc/profile.local >/dev/null; then - echo "unset TEXINPUTS" >>/etc/profile.local -fi -if ! %{__grep} TEXINPUTS /etc/init.d/apache2 >/dev/null; then - perl -p -i.fsbackup -e 'print "unset TEXINPUTS\n\n" if /^httpd_conf\s*=\s*/;' /etc/init.d/apache2 -fi -%endif - -%triggerin -- tetex -#texhash `kpsewhich -expand-var \$TEXMFLOCAL` -texhash %{texmflocal} - -%clean -%{__rm} -rf %{buildroot} - -%files -f FS/%{name}-%{version}-%{release}-filelist -%attr(0711,root,root) %{_initrddir}/%{name} -%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/%{name} -%defattr(-,freeside,freeside,-) -%doc README INSTALL CREDITS AGPL -%attr(-,freeside,freeside) %dir %{freeside_conf} -%attr(-,freeside,freeside) %dir %{freeside_lock} -%attr(-,freeside,freeside) %dir %{freeside_log} -%attr(0711,freeside,freeside) %config(noreplace) %{freeside_conf}/default_conf -%attr(0644,freeside,freeside) %config(noreplace) %{freeside_conf}/default_conf/* -%attr(444,root,root) %{texmflocal}/tex/generic/fslongtable.sty - -%files mason -f %{name}-%{version}-%{release}-mason-filelist -%defattr(-, freeside, freeside, 0755) -%attr(-,freeside,freeside) %{freeside_cache}/masondata -%attr(0644,root,root) %config(noreplace) %{apache_confdir}/%{name}-base%{apache_version}.conf - -%files postgresql -f %{name}-%{version}-%{release}-Pg-filelist - -%files mysql -f %{name}-%{version}-%{release}-mysql-filelist - -%files selfservice -%defattr(-, freeside, freeside, 0644) -%attr(0644,root,root) %config(noreplace) %{apache_confdir}/%{name}-selfservice.conf - -%files selfservice-core -f fs_selfservice/FS-SelfService/%{name}-%{version}-%{release}-selfservice-core-filelist -%defattr(-, freeside, freeside, 0644) -%attr(-,freeside,freeside) %dir %{freeside_socket} -%attr(-,freeside,freeside) %dir %{freeside_lock} -%attr(-,freeside,freeside) %dir %{freeside_log} - -%files selfservice-cgi -%defattr(-, freeside, freeside, 0644) -%attr(0711,freeside,freeside) %{freeside_selfservice_document_root}/cgi -%attr(0644,freeside,freeside) %{freeside_selfservice_document_root}/templates - -%files selfservice-php -%defattr(-, freeside, freeside, 0644) -%attr(0755,freeside,freeside) %{freeside_selfservice_document_root}/php - -%changelog -* Thu Jun 11 2009 Richard Siddall <richard.siddall@elirion.net> - 1.9-8 -- Since configuration is now kept in the RDBMS, don't install a configuration folder - -* Mon Dec 22 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-5 -- Modifications to make self-service work if you really insist on installing it on the same machine as Freeside - -* Tue Dec 9 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-4 -- Cleaning up after rpmlint - -* Tue Aug 26 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-3 -- More revisions for self-service interface - -* Sat Aug 23 2008 Richard Siddall <richard.siddall@elirion.net> - 1.7.3-2 -- Revisions for self-service interface -- RT support is still missing - -* Sun Jul 8 2007 Richard Siddall <richard.siddall@elirion.net> - 1.7.3 -- Updated for upcoming Freeside 1.7.3 -- RT support is still missing - -* Fri Jun 29 2007 Richard Siddall <richard.siddall@elirion.net> - 1.7.2 -- Updated for Freeside 1.7.2 -- Removed support for Apache::ASP - -* Wed Oct 12 2005 Richard Siddall <richard.siddall@elirion.net> - 1.5.7 -- Added self-service package - -* Sun Feb 06 2005 Richard Siddall <richard.siddall@elirion.net> - 1.5.0pre6-1 -- Initial package diff --git a/rpm/freeside.sysconfig b/rpm/freeside.sysconfig deleted file mode 100644 index baa04622c..000000000 --- a/rpm/freeside.sysconfig +++ /dev/null @@ -1,5 +0,0 @@ -QUEUED_USER=fs_queue -#RADACCTD_USER= -# -SELFSERVICE_USER=fs_selfservice -#SELFSERVICE_MACHINES= diff --git a/rpm/rpm2Bundle b/rpm/rpm2Bundle deleted file mode 100755 index 1bc877124..000000000 --- a/rpm/rpm2Bundle +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/perl -Tw -# -# Make a bundle file from an RPM -# -use strict; - -$ENV{PATH} = '/bin:/usr/bin/'; - -my $verbose = 0; - -# These are Perl dependencies that should be ignored/suppressed -my %suppress; - -foreach (qw/strict subs vars base lib warnings FS/) { - $suppress{$_} = $_; -} - -# These are Perl modules corresponding to RPM names. -# Add entries when the mapping isn't simply "remove leading 'perl-' and replace - with ::" -my %rpm2mod=( - 'DBD-MySQL' => 'DBD::mysql', -); - -## These are root packages that shouldn't be cited multiple times -## Should figure this out with CPAN -#my %rootpkgs; -# -#foreach (qw/FS/) { -# $rootpkgs{$_} = 1; -#} - -foreach my $rawrpm (@ARGV) { - $rawrpm =~ /^([-\.a-z0-9\/]+)\s*$/i; - my $rpm = $1 or next; - my @parts = split '/', $rpm; - my $name = pop @parts; - my $version = 0.01; - if ($name =~ m<([^/]+?)[-._]?v?-?([-_.\d]+[a-z]*?\d*)\.\w+\.rpm$>) { - $name = $1; - $version = $2; - } - print STDERR "rpm: $rpm ($name, $version)\n"; - my @deps = sort `rpm -qp --requires $rpm`; - - my %mods; - - foreach (@deps) { - if (/^perl\((.*?)\)\s*((>=|=|<=)\s+([\d\.]+))?$/ - || /^perl-(.*?)\s*((>=|=|<=)\s+([\d\.]+))?$/) { - my ($mod, $rel, $ver) = ($1, $3, $4); - if (/^perl-/) { - print STDERR "\"$mod\"\n" if $verbose; - $mod = $rpm2mod{$mod} if exists($rpm2mod{$mod}); - $mod =~ s/-/::/g - } - next if exists($suppress{$mod}); - my @parts = split /::/, $mod; - if (scalar @parts > 1) { - next if exists($suppress{$parts[0]}); - } - if ($verbose) { - print STDERR "$mod"; - print STDERR " $rel $ver" if $ver; - print STDERR "\n"; - } - $mods{$mod} = $ver ? $ver : undef; # Should also save $rel - } - } - - my $hdr =<<END; -# -*- perl -*- - -package Bundle::$name; - -\$VERSION = '$version'; - -1; - -__END__ - -=head1 NAME - -Bundle::$name - A bundle to install prerequisites for the $name package - -=head1 SYNOPSIS - -C<perl -MCPAN -e 'install Bundle::$name'> - -=head1 CONTENTS - -END - - my $ftr =<<END; -=head1 DESCRIPTION - -This bundle includes all prerequisites needed by the $name package. - -=cut -END - - print $hdr; - foreach (sort keys %mods) { - print "$_"; - print " $mods{$_}" if exists($mods{$_}) && $mods{$_}; - print " -\n\n"; - } - print $ftr; -} - -1; - |