rinse-2.0.1/0000755006034000603400000000000012101522453012027 5ustar langestaff-jrinse-2.0.1/bin/0000755006034000603400000000000012101522453012577 5ustar langestaff-jrinse-2.0.1/bin/rinse-unpack0000755006034000603400000001055612101522453015133 0ustar langestaff-j#!/usr/bin/perl -w =head1 NAME rinse-unpack - A utility for working with a directory of RPM files. =head1 SYNOPSIS rinse [options] Help Options: --help Show help information. --manual Read the manual for this script. --version Show the version information and exit. Mandatory Options: --directory The directory to install the distribution within. Misc Options: --keep-rpm Don't delete the .rpm files after conversion. --keep-tgz Don't delete the .tgz files after unpacking. =cut =head1 OPTIONS =over 8 =item B<--directory> Specify the directory containing the files to unpack. =item B<--help> Show help information. =item B<--keep-rpm> Don't delete the .rpm files after converting them to .tgz files. =item B<--keep-tgz> Don't delete the .tgz files after unpacking them. =item B<--manual> Read the manual for this script. =item B<--version> Show the version number and exit. =back =cut =head1 DESCRIPTION rinse-unpack is a simple utility which will "unpack" all the files in the specified directory. It isn't used by rinse itself, instead it is supplied as a utility for people who run into troubles using rinse. =cut =head1 AUTHOR Steve -- http://www.steve.org.uk/ =cut =head1 LICENSE Copyright (c) 2007 by Steve Kemp. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The LICENSE file contains the full text of the license. =cut # # Good practise # use strict; use warnings; # # Standard Perl modules we require # use English; use Getopt::Long; use Pod::Usage; # # Release number. # my $RELEASE = '2.0.1'; # # Our configuration options. # my %CONFIG; $CONFIG{ 'directory' } = '.'; # default to the current directory. # # Make sure the host is setup correctly, and that all required # tools are available. # testSetup(); # # Parse our arguments # parseCommandLineArguments(); # # Make sure the directory we've been given actually exists. # if ( !-d $CONFIG{ 'directory' } ) { print "The directory specified doesn't exist. Aborting\n"; exit; } # # Convert *.rpm -> *.tgz # print "Converting *.rpm -> *.tgz\n"; convertRPM2TGZ( $CONFIG{ 'directory' } ); # # Unpack *.tgz # print "Unpacking *.tgz\n"; unpackTGZ( $CONFIG{ 'directory' } ); # # All done. # print "Unpacking complete\n"; exit; =begin doc Convert each .rpm file into a .tgz file, via the use of the alien tool. =end doc =cut sub convertRPM2TGZ { my ($directory) = (@_); foreach my $file ( sort( glob( $directory . "/*.rpm" ) ) ) { # convert system("cd $directory && alien --to-tgz $file 2>/dev/null >/dev/null"); # delete unlink($file) unless ( $CONFIG{ 'keep-rpm' } ); } } =begin doc Unpack each .tgz file in the specified directory. =end doc =cut sub unpackTGZ { my ($directory) = (@_); foreach my $file ( sort( glob( $directory . "/*.tgz" ) ) ) { # unpack system("cd $directory && tar -zxf $file 2>/dev/null >/dev/null"); # delete unlink($file) unless ( $CONFIG{ 'keep-tgz' } ); } } =begin doc This routine is designed to test that the host system we're running upon has all the required binaries present. If any are missing then we'll abort. =end doc =cut sub testSetup { my @required = qw/ alien rpm wget /; foreach my $file (@required) { if ( ( !-x "/bin/$file" ) && ( !-x "/usr/bin/$file" ) ) { print "The following (required) binary appears to be missing:\n"; print "\t" . $file . "\n"; print "Aborting...\n"; exit; } } } =begin doc Parse our command line arguments. =end doc =cut sub parseCommandLineArguments { my $HELP = 0; my $MANUAL = 0; my $VERSION = 0; # # Parse options. # GetOptions( # Main options "directory=s", \$CONFIG{ 'directory' }, # misc options "keep-rpm", \$CONFIG{ 'keep-rpm' }, "keep-tgz", \$CONFIG{ 'keep-tgz' }, # Help options "help", \$HELP, "manual", \$MANUAL, "verbose", \$CONFIG{ 'verbose' }, "version", \$VERSION ); pod2usage(1) if $HELP; pod2usage( -verbose => 2 ) if $MANUAL; if ($VERSION) { print("rinse-unpack release $RELEASE\n"); exit; } } rinse-2.0.1/bin/rinse0000755006034000603400000006754212101522453013663 0ustar langestaff-j#!/usr/bin/perl -w =head1 NAME rinse - RPM Installation Entity. =head1 SYNOPSIS rinse [options] Help Options: --help Show help information. --manual Read the manual for this script. --version Show the version information and exit. Mandatory Options: --arch Specify the architecture to install. --directory The directory to install the distribution within. --distribution The distribution to install. Customization Options: --add-pkg-list Additional packages to download and install --after-post-install Additionally run the specified script after the post install script. --before-post-install Additionally run the specified script before the post install script. --post-install Run the given post-install script instead of the default files in /usr/lib/rinse/$distro Misc Options: --cache Should we use a local cache? (Default is 1) --cache-dir Specify the directory we should use for the cache. --clean-cache Clean our cache of .rpm files. --config Specify a different configuration file. (Default is /etc/rinse/rinse.conf) --pkgs-dir Specify a different directory containing .packages files. --mirror Specify the URL of the mirror. (Default is to read it from /etc/rinse/rinse.conf) --list-distributions Show installable distributions. --print-uris Only show the RPMs which should be downloaded. default files in /usr/lib/rinse/$distro --verbose Enable verbose output. =cut =head1 OPTIONS =over 8 =item B<--arch> Specify the architecture to install. Valid choices are 'amd64' and 'i386' only. =item B<--add-pkg-list> Add a list of additional packages. =item B<--cache> Specify whether to cache packages (1) or not (0). =item B<--cache-dir> Specify the directory we should use for the cache. =item B<--clean-cache> Remove all cached .rpm files. =item B<--directory> Specify the directory into which the distribution should be installed. =item B<--distribution> Specify the distribution to be installed. =item B<--help> Show help information. =item B<--mirror> Specify the URL of the mirror. Normally this is read from /etc/rinse/rinse.conf. =item B<--list-distributions> Show the distributions which are installable. =item B<--manual> Read the manual for this script. =item B<--print-uris> Only show the files we would download, don't actually do so. =item B<--verbose> Enable verbose output. =item B<--version> Show the version number and exit. =back =cut =head1 DESCRIPTION rinse is a simple script which is designed to be able to install a minimal working installation of an RPM-based distribution into a directory. The tool is analogous to the standard Debian GNU/Linux debootstrap utility. =cut =head1 USAGE To use this script you will need to be root. This is required to mount /proc, run chroot, and more. Basic usage is as simple as: =for example begin rinse --distribution fedora-core-6 --directory /tmp/test =for example end This will download the required RPM files and unpack them into a minimal installation of Fedora Core 6. To see which RPM files would be downloaded, without actually performing an installation or downloading anything, then you may run the following: =for example begin rinse --distribution fedora-core-6 --print-uris =for example end =cut =head1 TODO Short of supporting more distributions or architectures there aren't really any outstanding issues. =cut =head1 AUTHOR Steve -- http://www.steve.org.uk/ =cut =head1 LICENSE Copyright (c) 2007-2010 by Steve Kemp. All rights reserved. Copyright (c) 2011-2013 by Thomas Lange. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The LICENSE file contains the full text of the license. =cut # # Good practise # use strict; use warnings; # # Standard Perl modules we require # use English; use File::Copy; use File::Path; use File::Find; use File::Basename; use Getopt::Long; use Pod::Usage; use LWP::UserAgent; # # Release number. # my $RELEASE = '2.0.1'; # # Our configuration options. # my %CONFIG; # # Default options. # $CONFIG{ 'cache' } = 1; $CONFIG{ 'cache-dir' } = "/var/cache/rinse/"; $CONFIG{ 'config' } = "/etc/rinse/rinse.conf"; $CONFIG{ 'pkgs-dir' } = "/etc/rinse"; # # Find the size of our terminal # ( $CONFIG{ 'width' }, $CONFIG{ 'height' } ) = getTerminalSize(); # # Make sure the host is setup correctly, and that all required # tools are available. # testSetup(); # # Parse our arguments # parseCommandLineArguments(); # # Handle special case first. # if ( $CONFIG{ 'list-distributions' } ) { listDistributions(); exit; } if ( $CONFIG{ 'clean-cache' } ) { cleanCache(); exit; } # # Sanity check our arguments # sanityCheckArguments(); # # Ensure we're started by root at this point. This is required # to make sure we mount /proc, etc. # testRootUser() unless ( $CONFIG{ 'print-uris' } ); # # Make sure the directory we're installing into exists. # if ( ( !$CONFIG{ 'print-uris' } ) && ( !-d $CONFIG{ 'directory' } ) ) { # # Make the directory, including all required parent(s) directories. # mkpath( $CONFIG{ 'directory' }, 0, 0755 ); } # # Find the list of packages to download # my @packages = getDistributionPackageList( $CONFIG{ 'distribution' } ); # # Find the mirror, if not specified already. # if ( !$CONFIG{ 'mirror' } ) { $CONFIG{ 'mirror' } = getDistributionMirror( $CONFIG{ 'distribution' }, $CONFIG{ 'arch' } ); } # # # Download the packages into the specified directory # downloadPackagesToDirectory( $CONFIG{ 'directory' }, $CONFIG{ 'mirror' }, @packages ); # # If we're only printing then exit here. # exit if ( $CONFIG{ 'print-uris' } ); # # Unpack the packages # unpackPackages( $CONFIG{ 'directory' } ); # # Now run the post-installation customisation. # postInstallationCustomization( $CONFIG{ 'distribution' }, $CONFIG{ 'directory' } ); # # All done # print "Installation complete.\n"; exit; =begin doc This routine is designed to test that the host system we're running upon has all the required binaries present. If any are missing then we'll abort. =end doc =cut sub testSetup { my @required = qw/ rpm rpm2cpio wget /; foreach my $file (@required) { if ( ( !-x "/bin/$file" ) && ( !-x "/usr/bin/$file" ) ) { print "The following (required) binary appears to be missing:\n"; print "\t" . $file . "\n"; print "Aborting...\n"; exit; } } } =begin doc Make sure this script is being run by a user with UID 0. =end doc =cut sub testRootUser { if ( $EFFECTIVE_USER_ID != 0 ) { print < 2 ) if $MANUAL; if ($VERSION) { print("rinse release $RELEASE\n"); exit; } } =begin doc Test that our arguments are sane and sensible. Mostly this just means ensuring that mandatory options are present. =end doc =cut sub sanityCheckArguments { # # Distribution is mandatory # if ( !$CONFIG{ 'distribution' } ) { print < \&removePackages, no_chdir => 1 }, $dir ); } =begin doc Return the list of packages which are required for a basic installation of the specified distribution. These packages are located in the configuration file in /etc/rinse. =end doc =cut sub getDistributionPackageList { my ($distribution) = (@_); my $file = "$CONFIG{'pkgs-dir'}/$distribution.packages"; my @additional; my $adt_file = $CONFIG{ 'add-pkg-list' }; if ( !-e $file ) { print <) { next if ( !$line ); chomp($line); next if ( $line =~ /^#/ ); next if ( !length($line) ); push( @packages, $line ); } close(FILE); if ($adt_file) { open( ADT, "<", $adt_file ) or die "Failed to open $adt_file - $!"; foreach my $line () { next if ( !$line ); chomp($line); next if ( $line =~ /^#/ ); next if ( !length($line) ); push( @packages, $line ); } close(ADT); } # # Return the list in a sorted fashion. # return ( sort {lc($a) cmp lc($b)} @packages ); } =begin doc Find the mirror which should be used for the specified distribution. =end doc =cut sub getDistributionMirror { my ( $dist, $arch ) = (@_); my $file = $CONFIG{ 'config' }; if ( !-e $file ) { print <) { next if ( !$line || !length($line) ); next if $line =~ /^#/; chomp($line); if ( $line =~ /^\[([^]]+)\]/ ) { if ( lc($1) eq lc($dist) ) { $indist = 1; } else { $indist = 0; } } elsif ( ( $line =~ /([^=]+)=([^\n]+)/ ) && $indist ) { my $key = $1; my $val = $2; # Strip leading and trailing whitespace. $key =~ s/^\s+//; $key =~ s/\s+$//; $val =~ s/^\s+//; $val =~ s/\s+$//; $options{ $key } = $val; } } close(INPUT); # # Did we find it? # my $key = "mirror." . $arch; return ( $options{ $key } ) if ( $options{ $key } ); return ( $options{ 'mirror' } ) if ( $options{ 'mirror' } ); # # Error if we didn't. # print <--..rpm # # Unfortunately the version and release are unknown (and can # change) and therefore cannot be used to compare - they must # be discarded. The string can be split on '-' to find the # version and release. The name portion should exactly match # the package and the remainder # See if the key is long enough to be split and still have # '--..rpm' if ( length($key) <= length($package) ) { next; } my $name_part = substr( $key, 0, length($package) ); # See if the name part compares if ( $name_part ne $package ) { next; } my $remainder_part = substr( $key, length($package) ); my @remainder_parts = split( /-/, $remainder_part ); # See if there are exactly three elements leftover and if they are # a reasonable approximation of what is expected: # # '' The remainder part starts with '-' # # ..rpm my $arch = $CONFIG{ 'arch' }; if ( $CONFIG{ 'arch' } eq 'amd64' ) { $arch = 'x86_64'; } if ( $CONFIG{ 'arch' } eq 'i386' ) { $arch = 'i386|i686'; } if ( $#remainder_parts != 2 || $remainder_parts[0] ne '' || $remainder_parts[1] !~ /^[\d\w][\d\w.+]*$/ || $remainder_parts[2] !~ /^[\d\w][\d\w.+]*\.(${arch}|noarch)\.rpm$/ ) { # Don't have enough parts or they don't look right next; } # Match found! if ( $CONFIG{ 'print-uris' } ) { print $mirror . "/" . $key . "\n"; } else { # # Print message and padding. # my $msg = "\r[$count:$total] Downloading: $key .."; while ( length($msg) < ( $CONFIG{ 'width' } - 1 ) ) { $msg .= " "; } print $msg; # download - unless already present. if ( !-e "$dir/$key" ) { system("wget --quiet -O $dir/$key $mirror/$key"); } } $CONFIG{ 'verbose' } && print "+Download $package\n"; next PACKAGE; } print "[Harmless] Failed to find download link for $package\n"; } continue { $count += 1; } # newline. print "\r"; print " " x ( $CONFIG{ 'width' } - 1 ); print "\n"; # # Now update the cache. # if ( ( $CONFIG{ 'cache' } ) && !$CONFIG{ 'print-uris' } ) { $CONFIG{ 'verbose' } && print "Copying files to cache directory: $cache\n"; # # Make sure we have a cache directory. # mkpath( $cache, 0, 0755 ) if ( !-d $cache ); copyPackageFiles( $dir, $cache ); } } =begin doc Find the links which are contained in the given HTML page. =end doc =cut sub findMirrorContents { my ($mirror) = (@_); # # Download # my $index = downloadURL($mirror); # # Now we want to store all the links we've found. # my %links; # # Parse the HTML. # foreach my $line ( split( /\n/, $index ) ) { # # Look for contents of the form: # # href="..."> # while ( $line =~ /href=\"([^\"]+)\">(.*)/i ) { my $link = $1; $line = $2; # strip any path from the link. $link = $2 if ( $link =~ /^(.*)\/(.*)$/ ); # ignore any non-RPM links. next if ( $link !~ /\.rpm$/i ); # Decode entities. eg. libstd++ $link = uri_unescape($link); # store $links{ $link } = 1; } } # # Now we need to do something sneaky. # # If we're looking at installing i386, or amd64, # then we need to *only* return those things. # my $i386 = undef; $i386 = 1 if ( $CONFIG{ 'arch' } =~ /i386/ ); $i386 = 0 if ( $CONFIG{ 'arch' } =~ /amd64/ ); foreach my $key ( sort keys %links ) { # i386/i486/i586/i686 packages when we're dealing with amd64 installs. if ( ( $key =~ /\.i[3456]86\.rpm/ ) && !$i386 ) { delete( $links{ $key } ); } # amd64 packages when we're dealing with i386 installs. if ( $key =~ /\.x86_64\.rpm/ && ($i386) ) { delete( $links{ $key } ); } } return (%links); } =begin doc Download the contents of an URL and return it. =end doc =cut sub downloadURL { my ($URL) = (@_); # # Create the helper. # my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; # # Fetch the URI # my $response = $ua->get($URL); # # If it worked then return it # if ( $response->is_success ) { return ( $response->content ); } else { print "Failed to fetch : $URL\n"; print "\t" . $response->status_line . "\n\n"; exit; } } =begin doc Unpack each of the RPM files which are contained in the given directory. =end doc =cut sub unpackPackages { my ($dir) = (@_); # # Get a sorted list of the RPMs # my @rpms = glob( $dir . "/*.rpm" ); @rpms = sort {lc($a) cmp lc($b)} @rpms; # Command to execute after extraction my $postcmd = ""; # # For each RPM file: convert to .tgz # foreach my $file (@rpms) { $CONFIG{ 'verbose' } && print "-extract $file\n"; # # Show status # my $name = $file; if ( $name =~ /(.*)\/(.*)/ ) { $name = $2; } # # Show status output. # my $msg = "\rExtracting .rpm file : $name"; while ( length($msg) < ( $CONFIG{ 'width' } - 1 ) ) { $msg .= " "; } print $msg; # # Run the unpacking command. # my $cmd = "rpm2cpio $file | (cd $CONFIG{'directory'} ; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>/dev/null >/dev/null"; if ( $file =~ /(fedora|centos|redhat|mandriva)-release-/ ) { my $rpmname = basename($file); $postcmd = "cp $file $CONFIG{'directory'}/tmp ; chroot $CONFIG{'directory'} rpm -ivh --force --nodeps /tmp/$rpmname ; rm $CONFIG{'directory'}/tmp/$rpmname"; } system($cmd ); $CONFIG{ 'verbose' } && print "+extract $file\n"; } print "\r"; print " " x $CONFIG{ 'width' }; print "\n"; # # In order to be setup correctly, yum needs an installed package # providing distroverpkg this is provided by a *-release package # such as redhat-release, centos-release, fedora-release ... # # So here we force the install with rpm of the one we previously found # if ( $postcmd ne "" ) { system($postcmd); $CONFIG{ 'verbose' } && print "+execute $postcmd\n"; } } =begin doc Run the post-installation customisation scripts for the given distribution. We might have been given a distinct file to run, instead of the default via --post-install. Or we might have pre/post post-install scripts to run if the options --before-post-install or --after-post-install were used =end doc =cut sub postInstallationCustomization { my ( $distribution, $prefix ) = (@_); # # Setup environment for the post-install scripts. # $ENV{ 'ARCH' } = $CONFIG{ 'arch' }; $ENV{ 'mirror' } = $CONFIG{ 'mirror' }; $ENV{ 'dist' } = $CONFIG{ 'distribution' }; $ENV{ 'directory' } = $CONFIG{ 'directory' }; $ENV{ 'cache_dir' } = $CONFIG{ 'cache-dir' }; # # Did we get a custom file to execute before? # if ( ( defined $CONFIG{ 'before-post-install' } ) && ( -x $CONFIG{ 'before-post-install' } ) ) { print "Running custom script: $CONFIG{'before-post-install'}\n"; system( $CONFIG{ 'before-post-install' }, $prefix ); } # # Did we get a custom file to execute? # if ( ( defined $CONFIG{ 'post-install' } ) && ( -x $CONFIG{ 'post-install' } ) ) { print "Running custom script: $CONFIG{'post-install'}\n"; system( $CONFIG{ 'post-install' }, $prefix ); return; } # # OK we run the per-distro file(s), along with any # common files. # my @scripts; push( @scripts, "/usr/lib/rinse/common" ); push( @scripts, "/usr/lib/rinse/" . lc ( $distribution ) ); # # For each one # foreach my $script ( @scripts ) { $CONFIG{'verbose'} && print "Dir: $script\n"; foreach my $file ( sort( glob( $script . "/*" ) ) ) { $CONFIG{ 'verbose' } && print "-script $file\n"; # # Report on progress all the time. # my $name = $file; if ( $name =~ /(.*)\/(.*)/ ) { $name = $2; } print "Running post-install script $name:\n"; my $cmd = "$file $prefix"; system($cmd ); $CONFIG{ 'verbose' } && print "+script $file\n"; } } # # Did we get a custom file to execute after? # if ( ( defined $CONFIG{ 'after-post-install' } ) && ( -x $CONFIG{ 'after-post-install' } ) ) { print "Running custom script: $CONFIG{'after-post-install'}\n"; system( $CONFIG{ 'after-post-install' }, $prefix ); } } =begin doc Copy a collection of RPM files from one directory to another. =end doc =cut sub copyPackageFiles { my ( $src, $dest ) = (@_); $CONFIG{ 'verbose' } && print "- archiving from $src - $dest\n"; foreach my $file ( sort( glob( $src . "/*.rpm" ) ) ) { # strip path. if ( $file =~ /^(.*)\/(.*)$/ ) { $file = $2; } # # if the file isn't already present in the destination then # copy it there. Copy only if source is non-empty. # if ( !-e $dest . "/" . $file && -s "$src/$file" ) { copy( $src . "/" . $file, $dest . "/" . $file ); } } $CONFIG{ 'verbose' } && print "+ archiving from $src - $dest\n"; } =begin doc Find and return the width of the current terminal. This makes use of the optional Term::Size module. If it isn't installed then we fall back to the standard size of 80x25. =end doc =cut sub getTerminalSize { my $testModule = "use Term::Size;"; my $width = 80; my $height = 25; # # Test loading the size module. If this fails # then we will use the defaults sizes. # eval($testModule); if ($@) { } else { # # Term::Size is available, so use it to find # the current terminal size. # ( $width, $height ) = Term::Size::chars(); } return ( $width, $height ); } =begin doc Taken from the URI::Escape module, which contains the following copyright: Copyright 1995-2004 Gisle Aas. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =end doc =cut sub uri_unescape { # Note from RFC1630: "Sequences which start with a percent sign # but are not followed by two hexadecimal characters are reserved # for future extension" my $str = shift; if ( @_ && wantarray ) { # not executed for the common case of a single argument my @str = ( $str, @_ ); # need to copy foreach (@str) { s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; } return @str; } $str =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg if defined $str; $str; } rinse-2.0.1/scripts.common/0000755006034000603400000000000012101522453015005 5ustar langestaff-jrinse-2.0.1/scripts.common/10-resolv.conf.sh0000755006034000603400000000106112101522453020016 0ustar langestaff-j#!/bin/sh # # Ensure the chroot has an /etc/resolv.conf file. # Add localhost entry into etc/hosts # # Get the root of the chroot. # prefix=$1 # # Ensure it exists. # if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi if [ ! -d "${prefix}/etc/" ]; then mkdir -p "${prefix}/etc/" fi if ! grep -q localhost ${prefix}/etc/hosts ; then echo " Adding localhost entry" echo "127.0.0.1 localhost" >> ${prefix}/etc/hosts fi echo " Creating resolv.conf" cp /etc/resolv.conf "${prefix}/etc/" rinse-2.0.1/scripts.common/20-dev-zero.sh0000755006034000603400000000142112101522453017314 0ustar langestaff-j#!/bin/sh # # Ensure the chroot has /dev/zero # # Steve # -- # # Get the root of the chroot. # prefix=$1 # # Ensure it exists. # if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # Ensure we have /dev # if [ ! -d "${prefix}/dev" ]; then mkdir "${prefix}/dev" fi # # Create the node # echo " Creating devices in /dev" if [ ! -e "${prefix}/dev/zero" ]; then mknod -m 666 "${prefix}/dev/zero" c 1 5 fi echo " Creating random devices in /dev" if [ ! -e "${prefix}/dev/random" ]; then mknod -m 666 "${prefix}/dev/random" c 1 8 chown root:root "${prefix}/dev/random" fi if [ ! -e "${prefix}/dev/urandom" ]; then mknod -m 666 "${prefix}/dev/urandom" c 1 9 chown root:root "${prefix}/dev/urandom" fi rinse-2.0.1/scripts.common/15-mount-proc.sh0000755006034000603400000000072612101522453017677 0ustar langestaff-j#!/bin/sh # # Ensure the chroot has /proc + /sys mounted. # # Steve # -- # # Get the root of the chroot. # prefix=$1 # # Ensure it exists. # if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # Mount /proc + /sys # for i in /proc /sys; do echo " Mounting $i" if [ ! -d "${prefix}/$i" ]; then mkdir -p "${prefix}/$i" fi # # Bind-mount # mount -o bind $i ${prefix}/${i} donerinse-2.0.1/tests/0000755006034000603400000000000012101522453013171 5ustar langestaff-jrinse-2.0.1/tests/pod-check.t0000755006034000603400000000134312101522453015217 0ustar langestaff-j#!/usr/bin/perl -w # # Test that the POD we include in our scripts is valid, via the external # podcheck command. # # Steve # -- use strict; use Test::More qw( no_plan ); foreach my $file ( glob( "bin/*" ) ) { next if ( -d $file ); ok( -e $file, "$file" ); ok( -x $file, " File is executable: $file" ); ok( ! -d $file, " File is not a directory: $file" ); if ( ( -x $file ) && ( ! -d $file ) ) { # # Execute the command giving STDERR to STDOUT where we # can capture it. # my $cmd = "podchecker $file"; my $output = `$cmd 2>&1`; chomp( $output ); is( $output, "$file pod syntax OK.", " File has correct POD syntax: $file" ); } } rinse-2.0.1/tests/Makefile0000644006034000603400000000024512101522453014632 0ustar langestaff-j all: @cd ..; prove --shuffle tests/ verbose: @cd ..; prove --shuffle --verbose tests/ modules: .PHONY ./modules.sh > modules.t .PHONY: true clean: rm *~ rinse-2.0.1/tests/modules.t0000755006034000603400000000145712101522453015040 0ustar langestaff-j#!/usr/bin/perl -w -I.. # # Test that all the Perl modules we require are available. # # This list is automatically generated by modules.sh # # Steve # -- # use Test::More qw( no_plan ); BEGIN{ use_ok( 'English' ); } require_ok( 'English' ); BEGIN{ use_ok( 'File::Copy' ); } require_ok( 'File::Copy' ); BEGIN{ use_ok( 'File::Find' ); } require_ok( 'File::Find' ); BEGIN{ use_ok( 'File::Path' ); } require_ok( 'File::Path' ); BEGIN{ use_ok( 'Getopt::Long' ); } require_ok( 'Getopt::Long' ); BEGIN{ use_ok( 'LWP::UserAgent' ); } require_ok( 'LWP::UserAgent' ); BEGIN{ use_ok( 'Pod::Usage' ); } require_ok( 'Pod::Usage' ); BEGIN{ use_ok( 'strict' ); } require_ok( 'strict' ); BEGIN{ use_ok( 'Test::More' ); } require_ok( 'Test::More' ); BEGIN{ use_ok( 'warnings' ); } require_ok( 'warnings' ); rinse-2.0.1/tests/install-all0000755006034000603400000000225112101522453015333 0ustar langestaff-j#!/bin/sh # # Attempt to install each distribution into a static location # so that we can test it worked as expected. # # This is not run automatically because detection of success is # hard - and it would take a very very long time to complete. # # Steve # -- # # # Prefix to install into. # prefix=/tmp/f/b # # We must be root to run the script. # if [ "$UID" != "0" ]; then echo "You must be root to run this script" exit fi # # Make sure the prefix exists. # if [ ! -d "$prefix" ]; then echo "Prefix not found: $prefix" exit fi # # Save our start time # start=$(date) # # Try all distributions # for i in $(rinse --list-distributions | grep -- - ); do # # Try all archs. # for j in i386 amd64 ; do # # Clean old any previous run # if [ -d $prefix/$i.$j ]; then rm -rf $prefix/$i.$j fi # # Install now, keeping a logfile of any activity. # rinse --directory=$prefix/$i.$j --distribution=$i --arch=$j | tee $prefix/$i.$j.log done done # # Report on the time taken to perform the installations. # echo "Started: ${start}" echo "Finished: `date`"rinse-2.0.1/tests/perl-syntax.t0000755006034000603400000000262612101522453015655 0ustar langestaff-j#!/usr/bin/perl -w # # Test that every perl file we have passes the syntax check. # # Steve # -- use strict; use File::Find; use Test::More qw( no_plan ); # # Find all the files beneath the current directory, # and call 'checkFile' with the name. # find( { wanted => \&checkFile, no_chdir => 1 }, '.' ); # # Check a file. # # If this is a perl file then call "perl -c $name", otherwise # return # sub checkFile { # The file. my $file = $File::Find::name; # We don't care about directories return if ( ! -f $file ); # `modules.sh` is a false positive. return if ( $file =~ /modules.sh$/ ); # `tests/hook-tls.t` is too. return if ( $file =~ /hook-tls.t$/ ); # See if it is a perl file. my $isPerl = 0; # Read the file. open( INPUT, "<", $file ); foreach my $line ( ) { if ( $line =~ /\/usr\/bin\/perl/ ) { $isPerl = 1; } } close( INPUT ); # # Return if it wasn't a perl file. # return if ( ! $isPerl ); # # Now run 'perl -c $file' to see if we pass the syntax # check. We add a couple of parameters to make sure we're # really OK. # # use strict "vars"; # use strict "subs"; # my $retval = system( "perl -Mstrict=subs -Mstrict=vars -c $file 2>/dev/null >/dev/null" ); is( $retval, 0, "Perl file passes our syntax check: $file" ); } rinse-2.0.1/tests/portable-shell.t0000755006034000603400000000276112101522453016304 0ustar langestaff-j#!/usr/bin/perl -w # # Test that we don't use non-portable shell syntax in our hooks. # # Specifically we test for: # # 1. "[[" & "]]" around tests. # # 2. The "function" keyword # # Steve # -- use strict; use File::Find; use Test::More qw( no_plan ); # # Find all the files beneath the current directory, # and call 'checkFile' with the name. # find( { wanted => \&checkFile, no_chdir => 1 }, '.' ); # # Check a file. # # If this is a shell script then call "sh -n $name", otherwise # return # sub checkFile { # The file. my $file = $File::Find::name; # We don't care about directories return if ( ! -f $file ); # See if it is a shell script. my $isShell = 0; # Read the file. open( INPUT, "<", $file ); foreach my $line ( ) { if ( ( $line =~ /\/bin\/sh/ ) || ( $line =~ /\/bin\/bash/ ) ) { $isShell = 1; } } close( INPUT ); # # Return if it wasn't a shell script. # return if ( ! $isShell ); # The result my $result = 0; # # Open the file and read it. # open( INPUT, "<", $file ) or die "Failed to open '$file' - $!"; while( my $line = ) { # [[ or ]] $result += 1 if ( $line =~ /\[\[/ ); $result += 1 if ( $line =~ /\]\]/ ); # function $result += 1 if ( $line =~ /^[ \t]*function/ ); } close( INPUT ); is( $result, 0, "Shell script passes our portability check: $file" ); } rinse-2.0.1/tests/urls.t0000755006034000603400000000120112101522453014340 0ustar langestaff-j#!/usr/bin/perl -w # # Test that our URLs are "neat" # # Steve # -- use strict; use Test::More qw( no_plan ); # # Find the file # my $file = undef; foreach my $f ( qw! ../etc/rinse.conf ./etc/rinse.conf ! ) { $file = $f if ( -e $f ); } ok( $file, "Found configuration file" ); # # Open the file # open( FILE, "<", $file ) or die "Failed to open $file - $!"; foreach my $line ( ) { next if ( !$line ); chomp( $line ); if( my ( $key , $val ) = split( /=/, $line ) ) { next if ( !$val ); $val =~ s!http://!!g; ok( $val !~ /\/\//, "URL is neat: $val" ); } } close ( FILE ); rinse-2.0.1/tests/pod.t0000755006034000603400000000045112101522453014143 0ustar langestaff-j#!/usr/bin/perl -w # # Test that the POD we use in our modules is valid. # use strict; use Test::More; eval "use Test::Pod 1.00"; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; # # Run the test(s). # my @poddirs = qw( bin ); all_pod_files_ok( all_pod_files( @poddirs ) ); rinse-2.0.1/tests/test-trailing-whitespace.t0000755006034000603400000000156212101522453020305 0ustar langestaff-j#!/usr/bin/perl -w # # Test that every script in ./bin/ has no trailing whitespace. # # Steve # -- use strict; use File::Find; use Test::More qw( no_plan ); # # Find our bin/ directory. # my $dir = undef; $dir = "./bin/" if ( -d "./bin/" ); plan skip_all => "No bin directory found" if (!defined( $dir ) ); # # Process each file. # foreach my $file (sort( glob ( $dir . "*" ) ) ) { # skip backups, and directories. next if ( $file =~ /~$/ ); next if ( -d $file ); ok( -e $file, "Found file : $file" ); checkFile( $file ); } # # Check a file. # # sub checkFile { my( $file ) = (@_); my $trailing = 0; # Read the file. open( INPUT, "<", $file ); foreach my $line ( ) { $trailing = 1 if ( $line =~ /^(.*)[ \t]+$/ ) } close( INPUT ); is( $trailing, 0, "File has no trailing whitespace" ); } rinse-2.0.1/tests/shell-syntax.t0000755006034000603400000000220112101522453016007 0ustar langestaff-j#!/usr/bin/perl -w # # Test that every shell script we have passes a syntax check. # # Steve # -- use strict; use File::Find; use Test::More qw( no_plan ); # # Find all the files beneath the current directory, # and call 'checkFile' with the name. # find( { wanted => \&checkFile, no_chdir => 1 }, '.' ); # # Check a file. # # If this is a shell script then call "sh -n $name", otherwise # return # sub checkFile { # The file. my $file = $File::Find::name; # We don't care about directories return if ( ! -f $file ); # See if it is a shell script. my $isShell = 0; # Read the file. open( INPUT, "<", $file ); foreach my $line ( ) { if ( ( $line =~ /\/bin\/sh/ ) || ( $line =~ /\/bin\/bash/ ) ) { $isShell = 1; } } close( INPUT ); # # Return if it wasn't a perl file. # return if ( ! $isShell ); # # Now run 'sh -n $file' to see if we pass the syntax # check # my $retval = system( "sh -n $file 2>/dev/null >/dev/null" ); is( $retval, 0, "Shell script passes our syntax check: $file" ); } rinse-2.0.1/tests/clean-cache.t0000755006034000603400000000233312101522453015505 0ustar langestaff-j#!/usr/bin/perl -w # # Test that we can remove .rpm files from our cache. # # Steve # -- use strict; use File::Temp; use Test::More qw( no_plan ); # # Find our script # my $script = undef; $script = "./bin/rinse" if ( -e "./bin/rinse" ); $script = "../bin/rinse" if ( -e "../bin/rinse" ); ok( $script, "We found our script" ); # # Create a random directory # my $dir = File::Temp::tempdir( CLEANUP => 1 ); ok( -d $dir, "The temporary directory exists" ); # # Populate the tree with RPM files. # createRPMS( $dir ); # # Count the RPM files. # my $count = countRPM( $dir ); ok( $count, "We have some RPM files: $count" ); # # Delete the cache # system( "perl $script --cache-dir=$dir --clean-cache" ); # # Count them again # $count = countRPM( $dir ); is( $count, 0, "The RPM files are all correctly removed!" ); sub createRPMS { my( $dir ) = ( @_ ); my @rand = qw/ foo bar baz bart steve /; foreach my $f ( sort( @rand ) ) { `touch $dir/$f.rpm`; ok( -e "$dir/$f.rpm", "Created random RPM file $f.rpm" ); } } sub countRPM { my( $dir ) = ( @_ ); my $count = 0; foreach my $file ( sort( glob( $dir . "/*.rpm" ) ) ) { $count += 1; } return $count; } rinse-2.0.1/tests/modules.sh0000755006034000603400000000110412101522453015174 0ustar langestaff-j#!/bin/sh # # Automatically attempt to create a test which ensures all the modules # used in the code are availabe. # # Steve # -- # http://www.steve.org.uk/ # # cat < \&checkFile, no_chdir => 1 }, '.' ); # # Check a file. # # sub checkFile { # The file. my $file = $File::Find::name; # We don't care about directories return if ( ! -f $file ); # Nor about backup files. return if ( $file =~ /~$/ ); # Nor about files which start with ./debian/ return if ( $file =~ /^\.\/debian\// ); # See if it is a shell/perl file. my $isShell = 0; my $isPerl = 0; # Read the file. open( INPUT, "<", $file ); foreach my $line ( ) { if ( ( $line =~ /\/bin\/sh/ ) || ( $line =~ /\/bin\/bash/ ) ) { $isShell = 1; } if ( $line =~ /\/usr\/bin\/perl/ ) { $isPerl = 1; } } close( INPUT ); # # Return if it wasn't a perl file. # if ( $isShell || $isPerl ) { # # Count TAB characters # my $count = countTabCharacters( $file ); is( $count, 0, "Script has no tab characters: $file" ); } } =head2 countTabCharacters =cut sub countTabCharacters { my ( $file ) = (@_); my $count = 0; open( FILE, "<", $file ) or die "Cannot open $file - $!"; foreach my $line ( ) { while( $line =~ /(.*)\t(.*)/ ) { $count += 1; $line = $1 . $2; } } close( FILE ); return( $count ); } rinse-2.0.1/Makefile0000644006034000603400000000631712101522453013476 0ustar langestaff-j# # Makefile for rinse, the RPM installation entity # # Steve # -- # # # Only used to build distribution tarballs. # DIST_PREFIX = ${TMP} VERSION = 2.0.1 BASE = rinse PREFIX = # # Report on targets. # default: @echo " The following targets are available:" @echo " " @echo " clean - Remove editor backups" @echo " install - Install to ${PREFIX}" @echo " test - Run the tests" @echo " test-verbose - Run the tests, verbosely" @echo " uninstall - Uninstall from ${PREFIX}" @echo " " # # Show what has been changed in the local copy vs. the remote repository. # diff: hg diff 2>/dev/null # # Clean edited files. # clean: @find . -name '*~' -delete @find . -name '.#*' -delete @find . -name 'build-stamp' -delete @find . -name 'configure-stamp' -delete @if [ -d debian/rinse ]; then rm -rf debian/rinse; fi @if [ -e ./bin/rinse.8.gz ]; then rm -f ./bin/rinse.8.gz; fi # # Make sure our scripts are executable. # fixupperms: for i in scripts/*/*.sh; do chmod 755 $$i; done # # Install software # install: fixupperms install-manpage mkdir -p ${PREFIX}/etc/bash_completion.d mkdir -p ${PREFIX}/etc/rinse mkdir -p ${PREFIX}/usr/sbin mkdir -p ${PREFIX}/usr/lib/rinse mkdir -p ${PREFIX}/usr/lib/rinse/common cp ./scripts.common/* ${PREFIX}/usr/lib/rinse/common chmod 755 ${PREFIX}/usr/lib/rinse/common/*.sh mkdir -p ${PREFIX}/var/cache/rinse cp bin/rinse ${PREFIX}/usr/sbin/ chmod 755 ${PREFIX}/usr/sbin/rinse cp etc/*.packages ${PREFIX}/etc/rinse cp etc/*.conf ${PREFIX}/etc/rinse for i in scripts/*/; do name=`basename $$i`; if [ "$$name" != "CVS" ]; then mkdir -p ${PREFIX}/usr/lib/rinse/$$name ; cp $$i/*.sh ${PREFIX}/usr/lib/rinse/$$name ; fi ; done cp misc/rinse ${PREFIX}/etc/bash_completion.d install-manpage: pod2man --release=${VERSION} --official --section=8 ./bin/rinse ./bin/rinse.8 gzip --force -9 bin/rinse.8 -mkdir -p ${PREFIX}/usr/share/man/man8/ mv ./bin/rinse.8.gz ${PREFIX}/usr/share/man/man8/ # # Make a new release tarball, and make a GPG signature. # release: clean rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION) rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION) perl -pi -e "s/XXUNRELEASEDXX/$(VERSION)/g" $(DIST_PREFIX)/$(BASE)-$(VERSION)/bin/rinse* rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.hg* rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.release cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/ gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz . rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION) gpg --armour --detach-sign $(BASE)-$(VERSION).tar.gz echo $(VERSION) > .version # # Run the test suite. (Minimal.) # test: prove --shuffle tests/ # # Run the test suite verbosely. (Minimal.) # test-verbose: prove --shuffle --verbose tests/ # # Update the local copy from the remote repository. # # update: hg pull --update # # Remove the software. # uninstall: rm -f ${PREFIX}/usr/sbin/rinse rm -f ${PREFIX}/etc/rinse/*.conf rm -f ${PREFIX}/etc/rinse/*.packages rm -rf ${PREFIX}/var/cache/rinse rm -rf ${PREFIX}/usr/lib/rinse rm -f ${PREFIX}/etc/bash_completion.d/rinse rinse-2.0.1/misc/0000755006034000603400000000000012101522453012762 5ustar langestaff-jrinse-2.0.1/misc/rinse0000644006034000603400000000165312101522453014032 0ustar langestaff-j# # Bash command line completion for rinse # function _rinse() { local cur prev opts vgs COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" # Determine arguments dynamically. Avoids out-of-dateness. opts=$(rinse --help|grep -- --|awk '{print $1}'|grep -- -- | sort -u) case "$prev" in --arch) COMPREPLY=( $( compgen -W 'amd64 i386' -- "${COMP_WORDS[COMP_CWORD]}" ) ) return 0 ;; --cache) COMPREPLY=( $( compgen -W '0 1' -- "${COMP_WORDS[COMP_CWORD]}" ) ) return 0 ;; --distribution) dists=$(for x in `ls -1 /etc/rinse/*.conf 2>/dev/null`; do i=`basename $x`; echo ${i/.conf/} ; done ) COMPREPLY=( $( compgen -W '${dists}' -- "${COMP_WORDS[COMP_CWORD]}" ) ) return 0 ;; esac if [[ ${cur} == -* ]]; then COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 fi } complete -F _rinse rinse rinse-2.0.1/BUGS0000644006034000603400000000060612101522452012513 0ustar langestaff-j Reporting Bugs -------------- I prefer a bug report to the Debian bug tracking system (BTS). Use the tool reportbug or read the instructions at http://bugs.debian.org You may also use the xen-tools mailing list: http://xen-tools.org/lists/ If you're capable of fixing it yourself a patch is appreciated, and a test case would be a useful bonus. Thomas -- rinse-2.0.1/scripts/0000755006034000603400000000000012101522452013515 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-12.1/0000755006034000603400000000000012101522452015735 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-12.1/post-install.sh0000755006034000603400000000326312101522452020731 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the zypper directory, so that # zypper doesn't need to fetch them again. # echo " Setting up zypper cache" if [ ! -d "${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}" ]; then mkdir -p ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} fi cp ${cache_dir}/${dist}.${ARCH}/* ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} # # 3. Ensure that zypper has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating zypper repo entry" [ -d "${prefix}/etc/zypp/repos.d" ] || mkdir -p ${prefix}/etc/zypp/repos.d cat > ${prefix}/etc/zypp/repos.d/${dist}.repo </dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install dhclient 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks update 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/zypper clean umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/opensuse-10.1/0000755006034000603400000000000012101522452015733 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-10.1/post-install.sh0000755006034000603400000000401412101522452020722 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null chroot ${prefix} /usr/bin/yum -y update 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/centos-4/0000755006034000603400000000000012101522452015151 5ustar langestaff-jrinse-2.0.1/scripts/centos-4/post-install.sh0000755006034000603400000000142012101522452020136 0ustar langestaff-j#!/bin/sh # # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum passwd 2>/dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal dhclient 2>/dev/null # # make 'passwd' work. # echo " Authfix" chroot ${prefix} /usr/bin/yum -y install authconfig chroot ${prefix} /usr/bin/authconfig --enableshadow --update # # Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/opensuse-11.0/0000755006034000603400000000000012101522452015733 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-11.0/post-install.sh0000755006034000603400000000326312101522452020727 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the zypper directory, so that # zypper doesn't need to fetch them again. # echo " Setting up zypper cache" if [ ! -d "${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}" ]; then mkdir -p ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} fi cp ${cache_dir}/${dist}.${ARCH}/* ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} # # 3. Ensure that zypper has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating zypper repo entry" [ -d "${prefix}/etc/zypp/repos.d" ] || mkdir -p ${prefix}/etc/zypp/repos.d cat > ${prefix}/etc/zypp/repos.d/${dist}.repo </dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install dhclient 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks update 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/zypper clean umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/opensuse-10.2/0000755006034000603400000000000012101522452015734 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-10.2/post-install.sh0000755006034000603400000000366712101522452020740 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the zypper directory, so that # zypper doesn't need to fetch them again. # echo " Setting up zypper cache" if [ ! -d "${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}" ]; then mkdir -p ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} fi cp ${cache_dir}/${dist}.${ARCH}/* ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} # # 3. Ensure that zypper has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating zypper repo entry" [ -d "${prefix}/etc/zypp/repos.d" ] || mkdir -p ${prefix}/etc/zypp/repos.d cat > ${prefix}/etc/zypp/repos.d/${dist}.repo </dev/null chroot ${prefix} /bin/sh -c "/usr/bin/yes | /usr/bin/zypper install vim-minimal" 2>/dev/null chroot ${prefix} /bin/sh -c "/usr/bin/yes | /usr/bin/zypper install dhclient" 2>/dev/null chroot ${prefix} /bin/sh -c "/usr/bin/yes | /usr/bin/zypper update" 2>/dev/null # # 5. Clean up # echo " Cleaning up" rm -f ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}/*.rpm umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." rm -f ${prefix}/*.rpm find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/fedora-core-9/0000755006034000603400000000000012101522452016051 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-9/post-install.sh0000755006034000603400000000361112101522452021042 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/fedora-core-10/0000755006034000603400000000000012101522452016121 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-10/post-install.sh0000755006034000603400000000361112101522452021112 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/fedora-core-6/0000755006034000603400000000000012101522452016046 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-6/post-install.sh0000755006034000603400000000354212101522452021042 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/fedora-core-7/0000755006034000603400000000000012101522452016047 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-7/post-install.sh0000755006034000603400000000332712101522452021044 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/opensuse-11.1/0000755006034000603400000000000012101522452015734 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-11.1/post-install.sh0000755006034000603400000000326312101522452020730 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the zypper directory, so that # zypper doesn't need to fetch them again. # echo " Setting up zypper cache" if [ ! -d "${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}" ]; then mkdir -p ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} fi cp ${cache_dir}/${dist}.${ARCH}/* ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} # # 3. Ensure that zypper has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating zypper repo entry" [ -d "${prefix}/etc/zypp/repos.d" ] || mkdir -p ${prefix}/etc/zypp/repos.d cat > ${prefix}/etc/zypp/repos.d/${dist}.repo </dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install dhclient 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks update 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/zypper clean umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/fedora-core-4/0000755006034000603400000000000012101522452016044 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-4/post-install.sh0000755006034000603400000000351412101522452021037 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/slc-6/0000755006034000603400000000000012101522452014441 5ustar langestaff-jrinse-2.0.1/scripts/slc-6/post-install.sh0000755006034000603400000000123612101522452017433 0ustar langestaff-j#!/bin/sh # # post-install.sh # Scientific Linux CERN (SLC-6) prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # rpm's can now be removed rm -f ${prefix}/*.rpm touch ${prefix}/etc/mtab echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum vim-minimal dhclient 2>/dev/null echo " cleaning up..." chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # Install modprobe if [ -e "${prefix}/etc/modprobe.d/modprobe.conf.dist" ]; then cp "${prefix}/etc/modprobe.d/modprobe.conf.dist" "${prefix}/etc/modprobe.conf" fi echo " post-install.sh : done." rinse-2.0.1/scripts/opensuse-10.3/0000755006034000603400000000000012101522452015735 5ustar langestaff-jrinse-2.0.1/scripts/opensuse-10.3/post-install.sh0000755006034000603400000000332112101522452020724 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the zypper directory, so that # zypper doesn't need to fetch them again. # echo " Setting up zypper cache" if [ ! -d "${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}" ]; then mkdir -p ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} fi cp ${cache_dir}/${dist}.${ARCH}/* ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch} # # 3. Ensure that zypper has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating zypper repo entry" [ -d "${prefix}/etc/zypp/repos.d" ] || mkdir -p ${prefix}/etc/zypp/repos.d cat > ${prefix}/etc/zypp/repos.d/${dist}.repo </dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks install dhclient 2>/dev/null chroot ${prefix} /usr/bin/zypper -n --no-gpg-checks update 2>/dev/null # # 5. Clean up # echo " Cleaning up" rm -f ${prefix}/var/cache/zypp/packages/opensuse/suse/${arch}/*.rpm umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/centos-6/0000755006034000603400000000000012101522452015153 5ustar langestaff-jrinse-2.0.1/scripts/centos-6/post-install.sh0000755006034000603400000000121112101522452020136 0ustar langestaff-j#!/bin/sh # # post-install.sh # CentOS 6 prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # rpm's can now be removed rm -f ${prefix}/*.rpm touch ${prefix}/etc/mtab echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum vim-minimal dhclient 2>/dev/null echo " cleaning up..." chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # Install modprobe if [ -e "${prefix}/etc/modprobe.d/modprobe.conf.dist" ]; then cp "${prefix}/etc/modprobe.d/modprobe.conf.dist" "${prefix}/etc/modprobe.conf" fi echo " post-install.sh : done." rinse-2.0.1/scripts/fedora-core-5/0000755006034000603400000000000012101522452016045 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-5/post-install.sh0000755006034000603400000000377312101522452021047 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete if [ -e "${prefix}/etc/modprobe.d/modprobe.conf.dist" ]; then cp "${prefix}/etc/modprobe.d/modprobe.conf.dist" "${prefix}/etc/modprobe.conf" fi rinse-2.0.1/scripts/rhel-5/0000755006034000603400000000000012101522452014611 5ustar langestaff-jrinse-2.0.1/scripts/rhel-5/post-install.sh0000755006034000603400000000247712101522452017613 0ustar langestaff-j#!/bin/sh # # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # rpm's can now be removed rm -f ${prefix}/*.rpm # # 1. Make sure there is a resolv.conf file present, such that # DNS lookups succeed. # echo " Creating resolv.conf" if [ ! -d "${prefix}/etc/" ]; then mkdir -p "${prefix}/etc/" fi cp /etc/resolv.conf "${prefix}/etc/" # # BUGFIX: # echo "BUGFIX" mkdir -p ${prefix}/usr/lib/python2.4/site-packages/urlgrabber.skx for i in ${prefix}/usr/lib/python2.4/site-packages/urlgrabber/keepalive.*; do mv $i ${prefix}/usr/lib/python2.4/site-packages/urlgrabber.skx/ done # # Run "yum install yum". # echo " Mounting /proc" if [ ! -d "${prefix}/proc" ]; then mkdir -p "${prefix}/proc" fi mount -o bind /proc ${prefix}/proc echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum vim-minimal dhclient 2>/dev/null # # make 'passwd' work. # echo " Authfix" chroot ${prefix} /usr/bin/yum -y install authconfig chroot ${prefix} /usr/bin/authconfig --enableshadow --update # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/scripts/centos-5/0000755006034000603400000000000012101522452015152 5ustar langestaff-jrinse-2.0.1/scripts/centos-5/post-install.sh0000755006034000603400000000222512101522452020143 0ustar langestaff-j#!/bin/sh # # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # rpm's can now be removed rm -f ${prefix}/*.rpm # # BUGFIX: # echo "BUGFIX" mkdir -p ${prefix}/usr/lib/python2.4/site-packages/urlgrabber.skx for i in ${prefix}/usr/lib/python2.4/site-packages/urlgrabber/keepalive.*; do mv $i ${prefix}/usr/lib/python2.4/site-packages/urlgrabber.skx/ done # # Run "yum install yum". # echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum vim-minimal dhclient 2>/dev/null # # make 'passwd' work. # echo " Authfix" chroot ${prefix} /usr/bin/yum -y install authconfig chroot ${prefix} /usr/bin/authconfig --enableshadow --update # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete # Install modprobe if [ -e "${prefix}/etc/modprobe.d/modprobe.conf.dist" ]; then cp "${prefix}/etc/modprobe.d/modprobe.conf.dist" "${prefix}/etc/modprobe.conf" fi rinse-2.0.1/scripts/slc-5/0000755006034000603400000000000012101522452014440 5ustar langestaff-jrinse-2.0.1/scripts/slc-5/post-install.sh0000755006034000603400000000123512101522452017431 0ustar langestaff-j#!/bin/sh # # post-install.sh # Scientific Linux CERN (SLC5) prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # rpm's can now be removed rm -f ${prefix}/*.rpm touch ${prefix}/etc/mtab echo " Bootstrapping yum" chroot ${prefix} /usr/bin/yum -y install yum vim-minimal dhclient 2>/dev/null echo " cleaning up..." chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # Install modprobe if [ -e "${prefix}/etc/modprobe.d/modprobe.conf.dist" ]; then cp "${prefix}/etc/modprobe.d/modprobe.conf.dist" "${prefix}/etc/modprobe.conf" fi echo " post-install.sh : done." rinse-2.0.1/scripts/fedora-core-8/0000755006034000603400000000000012101522452016050 5ustar langestaff-jrinse-2.0.1/scripts/fedora-core-8/post-install.sh0000755006034000603400000000367112101522452021047 0ustar langestaff-j#!/bin/sh # # Customise the distribution post-install. # prefix=$1 if [ ! -d "${prefix}" ]; then echo "Serious error - the named directory doesn't exist." exit fi # # 2. Copy the cached .RPM files into the yum directory, so that # yum doesn't need to make them again. # echo " Setting up YUM cache" if [ ! -d ${prefix}/var/cache/yum/core/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/core/packages/ fi if [ ! -d ${prefix}/var/cache/yum/updates-released/packages/ ]; then mkdir -p ${prefix}/var/cache/yum/updates-released/packages/ fi for i in ${prefix}/*.rpm ; do cp $i ${prefix}/var/cache/yum/core/packages/ cp $i ${prefix}/var/cache/yum/updates-released/packages/ done # # 3. Ensure that Yum has a working configuration file. # arch=i386 if [ $ARCH = "amd64" ] ; then arch=x86_64 fi echo " Creating yum.conf" cat > ${prefix}/etc/yum.conf </dev/null chroot ${prefix} /usr/bin/yum -y install vim-minimal 2>/dev/null chroot ${prefix} /usr/bin/yum -y install dhclient 2>/dev/null # # 5. Clean up # echo " Cleaning up" chroot ${prefix} /usr/bin/yum clean all umount ${prefix}/proc umount ${prefix}/sys # # 6. Remove the .rpm files from the prefix root. # echo " Final tidy..." for i in ${prefix}/*.rpm; do rm -f $i done find ${prefix} -name '*.rpmorig' -delete find ${prefix} -name '*.rpmnew' -delete rinse-2.0.1/etc/0000755006034000603400000000000012101522452012601 5ustar langestaff-jrinse-2.0.1/etc/fedora-core-9.packages0000644006034000603400000000172112101522452016636 0ustar langestaff-jaudit-libs basesystem bash bzip2-libs chkconfig ConsoleKit-libs coreutils cpio cracklib cracklib-dicts crontabs cyrus-sasl-lib db4 dbus dbus-libs device-mapper device-mapper-libs dhclient dirmngr e2fsprogs e2fsprogs-libs elfutils-libelf ethtool event-compat-sysv expat fedora-release fedora-release-notes filesystem findutils gamin gawk gdbm glib2 glibc glibc-common gnupg2 gpgme grep info initscripts iproute iputils keyutils-libs krb5-libs libacl libattr libcap libcurl libgcc libgcrypt libgpg-error libidn libksba libselinux libsepol libstdc++ libsysfs libusb libvolume_id libxml2 linux-atm-libs logrotate MAKEDEV mingetty module-init-tools ncurses ncurses-base ncurses-libs net-tools nspr nss openldap openssl pam pcre pinentry popt procps psmisc pth pygpgme python python-iniparse python-libs python-urlgrabber readline rpm rpm-libs rpm-python rsyslog sed setup shadow-utils sqlite sysvinit-tools tzdata udev upstart util-linux-ng vim-minimal yum yum-metadata-parser zlib rinse-2.0.1/etc/centos-5.packages0000644006034000603400000000145712101522452015745 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # CentOS 5.6 # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs centos-release coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs elfutils-libelf e2fsprogs-libs ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools nss nspr openssl pam pcre popt procps psmisc python python-elementtree python-libs python-sqlite python-urlgrabber python-iniparse readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/opensuse-11.0.packages0000644006034000603400000000215212101522452016517 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 11.0 # aaa_base audit-libs bash bzip2 ConsoleKit coreutils coreutils-lang cpio cpio-lang cracklib cracklib-dict-small cyrus-sasl dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs ethtool expat filesystem fillup findutils gawk gdbm glib2 glib2-lang glib2-branding-upstream glibc gpg2 gpg2-lang grep gzip hal info insserv keyutils-libs krb5 libacl libattr libbz2-1 libcom_err2 libcurl4 libdb-4_5 libexpat1 libgcc43 libgcrypt11 libglib-2_0-0 libgobject-2_0-0 libgthread-2_0-0 libgpg-error0 libidn libksba libncurses5 libnscd libopenssl0_9_8 libreadline5 libreiserfs libstdc++43 libusb libuuid1 libvolume_id libxcrypt libxml2 libxml2-python libzio libzypp login mingetty module-init-tools ncurses-utils neon net-tools openldap2-client openSUSE-release openslp pam pam-config pam-modules parted pciutils pcre perl-base permissions pinentry pm-utils pmtools PolicyKit popt procps psmisc pth pwdutils python python-urlgrabber rpm rpm-python satsolver-tools sed setserial sysvinit termcap terminfo-base udev util-linux uuid-runtime zlib zypper rinse-2.0.1/etc/opensuse-10.1.packages0000644006034000603400000000146212101522452016522 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 10.1 # aaa_base audit-libs bash boost bzip2 coreutils cpio cracklib curl cyrus-sasl db dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs ethtool expat filesystem fillup findutils gawk gdbm glib2 glibc gpg2 grep gzip hal info insserv krb5 libacl libattr libcom_err libicu libgcc libgcrypt libgpg-error libidn libksba libnscd libreiserfs libstdc++ libusb libxcrypt libxml2 libxml2-python libzio libzypp mingetty module-init-tools ncurses neon net-tools openldap2-client openslp pam pam-modules parted pciutils pcre perl permissions pinentry pmtools popt procps psmisc pwdutils python python-elementtree python-sqlite python-urlgrabber rpm rpm-python sed setserial sqlite suse-release sysvinit termcap udev util-linux yum zlib rinse-2.0.1/etc/centos-6.packages0000644006034000603400000000217012101522452015737 0ustar langestaff-j# # packages which we will need to download for a minimal installation for # CentOS 6.0 # MAKEDEV upstart audit-libs basesystem bash binutils bzip2-libs chkconfig cracklib cracklib-dicts crontabs coreutils db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat file-libs filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iputils keyutils-libs krb5-libs libacl libattr libcap libcom_err libgcc libidn libselinux libsepol libstdc++ libsysfs libgcrypt libnih dbus-libs libcurl lua compat-libtermcap libutempter libxml2 libxml2-python logrotate m2crypto mcstrans mingetty mlocate module-init-tools ncurses ncurses-libs neon net-tools nss nss-sysinit nss-softokn nss-softokn-freebl openldap libssh2 cyrus-sasl-lib nss-util nspr openssl pam passwd libuser pcre popt procps psmisc python python-libs python-pycurl python-iniparse python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils centos-release sqlite rsyslog tzdata udev util-linux-ng xz xz-libs yum yum-plugin-fastestmirror yum-plugin-keys yum-plugin-protect-packages yum-plugin-protectbase yum-metadata-parser yum-utils zlib rinse-2.0.1/etc/opensuse-10.2.packages0000644006034000603400000000157212101522452016525 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 10.2 # aaa_base aaa_skel audit-libs bash boost bzip2 coreutils cpio cracklib curl cyrus-sasl db dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs ethtool expat filesystem fillup findutils gawk gdbm glib2 glibc gpg gpg2 grep gzip hal info insserv keyutils-libs krb5 libacl libattr libcom_err libicu libgcc41 libgcrypt libgpg-error libidn libksba libnscd libreiserfs libstdc++41 libusb libvolume_id libxcrypt libxml2 libxml2-python libzio libzypp logrotate mingetty mktemp module-init-tools ncurses neon net-tools openldap2-client openSUSE-release openslp pam pam-config pam-modules parted pciutils pcre perl permissions pinentry pm-utils pmtools PolicyKit popt procps psmisc pwdutils python python-urlgrabber rpm rpm-python sed setserial sqlite strace sysvinit termcap udev util-linux zlib zypper rinse-2.0.1/etc/fedora-core-7.packages0000644006034000603400000000146512101522452016641 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of Fedora Core 7. # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs chkconfig coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn keyutils-libs libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-libs python-numeric python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/opensuse-12.1.packages0000644006034000603400000000345312101522452016526 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 12.1 # aaa_base audit-libs-python bash boost-license1_46_1 bzip2 ConsoleKit coreutils cpio cracklib cracklib-dict-full cyrus-sasl dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs elfutils ethtool expat file filesystem fillup findutils gawk gdbm glib2-tools #glib2-lang glibc gpg2 grep gzip info insserv keyutils krb5 libacl1 libadns1 libasm1 libassuan0 libattr1 libaudit0 libaudit1 libaugeas0 libauparse0 libblkid1 libboost_signals1_46_1 libbz2-1 libcap-ng0 libcap2 libcares2 libcom_err2 libcrack2 libcurl4 libdb-4_8 libdw1 libelf1 libext2fs2 libexpat1 libffi46 libgcc46 libgcrypt11 libgio-2_0-0 libglib-2_0-0 libgmodule-2_0-0 libgmp10 libgnutls28 libgobject-2_0-0 libgpg-error0 libgssglue1 libgthread-2_0-0 libgudev-1_0-0 libhogweed2 libidn libimobiledevice2 libkeyutils1 libksba libldap-2_4-2 liblua5_1 liblzma5 libmount1 libncurses5 libncurses6 libnettle4 libnscd libopenssl1_0_0 libp11-kit0 libparted0 libpcre0 libpcreposix0 libplist1 libpolkit0 libpopt0 libpth20 libpython2_7-1_0 libreadline6 libreiserfs libselinux1 libsemanage1 libsepol1 libsmbios2 libsolv-tools libsqlite3-0 libssh2-1 libstdc++46 libtasn1 libtasn1-3 libtirpc1 libudev0 libupower-glib1 libusb-0_1-4 libusb-1_0-0 libusbmuxd1 libustr-1_0-1 libuuid1 libxcrypt libxml2 libxml2-python libzio libzypp login mingetty module-init-tools ncurses-utils net-tools openSUSE-release openSUSE-release-ftp openslp openssl pam pam-config pam-modules parted pciutils #pciutils-ids pcre-tools perl perl-base permissions pinentry pkg-config pm-utils PolicyKit polkit procps psmisc pwdutils python python-base python-pycurl #python-urlgrabber rpm rpm-python sed setserial sysvinit sysvinit-tools termcap terminfo-base udev update-alternatives upower usbmuxd util-linux uuidd zlib zypper rinse-2.0.1/etc/centos-4.packages0000644006034000603400000000137612101522452015744 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of CentOS 4.6 # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs centos-release coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/fedora-core-4.packages0000644006034000603400000000132712101522452016633 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of Fedora Core 4. # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs chkconfig coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libtermcap libxml2 libxml2-python mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum zlib rinse-2.0.1/etc/fedora-core-8.packages0000644006034000603400000000146512101522452016642 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of Fedora Core 8. # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs chkconfig coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn keyutils-libs libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-libs python-numeric python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/fedora-core-5.packages0000644006034000603400000000135712101522452016637 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of Fedora Core 6. # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs chkconfig coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum zlib rinse-2.0.1/etc/opensuse-10.3.packages0000644006034000603400000000171512101522452016525 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 10.3 # aaa_base audit-libs bash boost bzip2 ConsoleKit coreutils cpio cracklib cracklib-dict-small cyrus-sasl dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs ethtool expat filesystem fillup findutils gawk gdbm glib2 glib2-lang glibc gpg2 grep gzip hal info insserv keyutils-libs krb5 libacl libattr libbz2-1 libcom_err2 libcurl4 libdb-4_5 libexpat1 libicu libgcc42 libgcrypt libgpg-error libidn libksba libnscd libopenssl0_9_8 libreadline5 libreiserfs libstdc++42 libusb libuuid1 libvolume_id libxcrypt libxml2 libxml2-python libzio libzypp mingetty module-init-tools ncurses neon net-tools openldap2-client openSUSE-release openslp pam pam-config pam-modules parted pciutils pcre perl-base permissions pinentry pm-utils pmtools PolicyKit popt procps psmisc pth pwdutils python python-urlgrabber rpm rpm-python sed setserial sqlite sysvinit termcap udev util-linux zlib zypper rinse-2.0.1/etc/rinse.conf0000644006034000603400000001134412101522452014573 0ustar langestaff-j# # /etc/rinse/rinse.conf # # Contains the list of servers to download our initial collection of # packages from. # # Steve # -- # # RedHat Enterprise Linux 5 (RHEL-5) [rhel-5] mirror = http://your.mirror.to.rhel5.repository.here/rhel/5/i386/Server/ mirror.amd64 = http://your.mirror.to.rhel5.repository.here/rhel/5/x86_64/Server/ [centos-4] mirror = http://mirror.bytemark.co.uk/centos/4/os/i386/CentOS/RPMS/ mirror.amd64 = http://mirror.bytemark.co.uk/centos/4/os/x86_64/CentOS/RPMS/ [centos-5] mirror = http://mirror.bytemark.co.uk/centos/5/os/i386/CentOS/ mirror.amd64 = http://mirror.bytemark.co.uk/centos/5/os/x86_64/CentOS/ [centos-6] mirror = http://mirror.bytemark.co.uk/centos/6/os/i386/Packages/ mirror.amd64 = http://mirror.bytemark.co.uk/centos/6/os/x86_64/Packages/ # Scientific Linux CERN 5 (SLC-5) [slc-5] mirror = http://linuxsoft.cern.ch/cern/slc5X/i386/SL/ mirror.amd64 = http://linuxsoft.cern.ch/cern/slc5X/x86_64/SL/ # Scientific Linux CERN 6 (SLC-6) [slc-6] mirror = http://linuxsoft.cern.ch/cern/slc6X/i386/SLC/Packages/ mirror.amd64 = http://linuxsoft.cern.ch/cern/slc6X/x86_64/SLC/Packages/ [fedora-core-4] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/4/i386/os/Fedora/RPMS/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/4/x86_64/os/Fedora/RPMS/ [fedora-core-5] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/5/i386/os/Fedora/RPMS/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/5/x86_64/os/Fedora/RPMS/ [fedora-core-6] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/6/i386/os/Fedora/RPMS/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/core/6/x86_64/os/Fedora/RPMS/ [fedora-core-7] mirror = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/7/Fedora/i386/os/Fedora/ mirror.amd64 = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/7/Fedora/x86_64/os/Fedora/ [fedora-core-8] mirror = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/8/Fedora/i386/os/Packages/ mirror.amd64 = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/8/Fedora/x86_64/os/Packages/ [fedora-core-9] mirror = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/9/Fedora/i386/os/Packages/ mirror.amd64 = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/9/Fedora/x86_64/os/Packages/ [fedora-core-10] mirror = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/10/Fedora/i386/os/Packages/ mirror.amd64 = http://ftp.heanet.ie/pub/fedora-archive/fedora/linux/releases/10/Fedora/x86_64/os/Packages/ [fedora-11] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/11/Fedora/i386/os/Packages/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/11/Fedora/x86_64/os/Packages/ [fedora-12] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/i386/os/Packages/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/x86_64/os/Packages/ [fedora-13] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/13/Fedora/i386/os/Packages/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/13/Fedora/x86_64/os/Packages/ [fedora-14] mirror = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/14/Fedora/i386/os/Packages/ mirror.amd64 = http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/14/Fedora/x86_64/os/Packages/ [opensuse-10.1] mirror = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/SL-10.1/inst-source/suse/i586/ mirror.amd64 = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/SL-10.1/inst-source/suse/x86_64/ [opensuse-10.2] mirror = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/oss/suse/i586/ mirror.amd64 = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.2/repo/oss/suse/x86_64/ [opensuse-10.3] mirror = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.3/repo/oss/suse/i586/ mirror.amd64 = http://ftp.hosteurope.de/mirror/ftp.opensuse.org/discontinued/10.3/repo/oss/suse/x86_64/ [opensuse-11.0] mirror = http://download.opensuse.org/distribution/11.0/repo/oss/suse/i686/ mirror.amd64 = http://download.opensuse.org/distribution/11.0/repo/oss/suse/x86_64/ [opensuse-11.1] mirror = http://download.opensuse.org/distribution/11.1/repo/oss/suse/i586/ mirror.amd64 = http://download.opensuse.org/distribution/11.1/repo/oss/suse/x86_64/ [opensuse-12.1] mirror = http://download.opensuse.org/distribution/12.1/repo/oss/suse/i586/ mirror.amd64 = http://download.opensuse.org/distribution/12.1/repo/oss/suse/x86_64/ rinse-2.0.1/etc/rhel-5.packages0000644006034000603400000000145412101522452015401 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # RHEL 5 # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs redhat-release coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs elfutils-libelf e2fsprogs-libs ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools nss nspr openssl pam pcre popt procps psmisc python python-libs python-elementtree python-sqlite python-urlgrabber python-iniparse readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/fedora-core-10.packages0000644006034000603400000000173412101522452016712 0ustar langestaff-jaudit-libs basesystem bash bzip2-libs chkconfig compat-db45 ConsoleKit-libs coreutils cpio cracklib cracklib-dicts crontabs cyrus-sasl-lib db4 dbus dbus-libs device-mapper device-mapper-libs dhclient dirmngr e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat fedora-release fedora-release-notes file file-libs filesystem findutils gamin gawk gdbm glib2 glibc glibc-common gnupg2 gpgme grep info initscripts iproute iputils keyutils-libs krb5-libs libacl libattr libcap libcurl libgcc libgcrypt libgpg-error libidn libksba libselinux libsepol libstdc++ libusb libvolume_id libxml2 linux-atm-libs logrotate lua MAKEDEV mingetty module-init-tools ncurses ncurses-base ncurses-libs net-tools nspr nss openldap openssl pam passwd pcre pinentry popt procps psmisc pth pygpgme python python-iniparse python-libs python-urlgrabber readline rpm rpm-libs rpm-python rsyslog sed setup shadow-utils sqlite sysvinit-tools tzdata udev upstart util-linux-ng vim-minimal yum yum-metadata-parser zlib rinse-2.0.1/etc/opensuse-11.1.packages0000644006034000603400000000231112101522452016515 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # OpenSuSE 11.1 # aaa_base audit-libs bash boost-license bzip2 ConsoleKit coreutils coreutils-lang cpio cpio-lang cracklib cracklib-dict-small cyrus-sasl dbus-1 dbus-1-glib device-mapper diffutils dirmngr e2fsprogs ethtool expat filesystem fillup findutils gawk gdbm glib2 glib2-lang glib2-branding-upstream glibc gpg2 gpg2-lang grep gzip hal info insserv keyutils-libs krb5 libacl libattr libboost_signals1_36_0 libbz2-1 libcom_err2 libcurl4 libdb-4_5 libexpat1 libgcc43 libgcrypt11 libglib-2_0-0 libgobject-2_0-0 libgthread-2_0-0 libgpg-error0 libidn libksba libldap-2_4-2 libncurses5 libnscd libopenssl0_9_8 libreadline5 libreiserfs libselinux1 libsepol1 libsmbios2 libstdc++43 libusb-0_1-4 libuuid1 libvolume_id1 libxcrypt libxml2 libxml2-python libzio libzypp login mingetty module-init-tools ncurses-utils neon net-tools openSUSE-release openSUSE-release-ftp openslp pam pam-config pam-modules parted pciutils pcre perl-base permissions pinentry pm-utils pmtools PolicyKit popt procps psmisc pth pwdutils python python-urlgrabber rpm rpm-python satsolver-tools sed setserial sysvinit termcap terminfo-base udev util-linux uuid-runtime zlib zypper rinse-2.0.1/etc/slc-6.packages0000644006034000603400000000225712101522452015233 0ustar langestaff-j# # packages which we will need to download for a minimal installation for # Scientific Linux CERN 6 (http://linux.web.cern.ch/linux/scientific6/) # MAKEDEV upstart audit-libs basesystem bash binutils bzip2-libs chkconfig cracklib cracklib-dicts crontabs coreutils db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat file-libs filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iputils keyutils-libs krb5-libs libacl libattr libcap libcom_err libgcc libidn libselinux libsepol libstdc++ libsysfs libgcrypt libnih dbus-libs libcurl lua compat-libtermcap libutempter libxml2 libxml2-python logrotate m2crypto mcstrans mingetty mlocate module-init-tools ncurses ncurses-libs neon net-tools nss nss-sysinit nss-softokn nss-softokn-freebl openldap libssh2 cyrus-sasl-lib nss-util nspr openssl pam passwd libuser pcre popt procps psmisc python python-libs python-pycurl python-iniparse python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sl-release sqlite rsyslog tzdata udev util-linux-ng xz xz-libs yum yum-plugin-fastestmirror yum-plugin-keys yum-plugin-protect-packages yum-plugin-protectbase yum-metadata-parser yum-utils zlib rinse-2.0.1/etc/fedora-core-6.packages0000644006034000603400000000141412101522452016632 0ustar langestaff-j# # Packages which we'll need to download for a minimal installation # of Fedora Core 6. # MAKEDEV SysVinit audit-libs basesystem bash beecrypt bzip2-libs chkconfig coreutils cracklib cracklib-dicts db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iproute iputils krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libxml2 libxml2-python mcstrans mingetty mktemp module-init-tools ncurses neon net-tools openssl pam pcre popt procps psmisc python python-elementtree python-sqlite python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sqlite sysklogd termcap tzdata udev util-linux yum yum-metadata-parser zlib rinse-2.0.1/etc/slc-5.packages0000644006034000603400000000201612101522452015223 0ustar langestaff-j# # packages which we will need to download for a minimal installation for # Scientific Linux CERN 5 (http://linux.web.cern.ch/linux/scientific5/) # MAKEDEV SysVinit audit-libs basesystem bash binutils bzip2-libs chkconfig cracklib cracklib-dicts crontabs coreutils db4 device-mapper e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat filesystem findutils gawk gdbm glib2 glibc glibc-common grep info initscripts iputils keyutils-libs krb5-libs libacl libattr libcap libgcc libidn libselinux libsepol libstdc++ libsysfs libtermcap libutempter libxml2 libxml2-python logrotate m2crypto mcstrans mingetty mktemp mlocate module-init-tools ncurses neon net-tools nss nspr openssl pam pcre popt procps psmisc python python-libs python-elementtree python-sqlite python-numeric python-iniparse python-urlgrabber readline rpm rpm-libs rpm-python sed setup shadow-utils sl-release sqlite sysklogd termcap tzdata udev util-linux yum yum-conf yum-fastestmirror yum-keys yum-protect-packages yum-protectbase yum-metadata-parser yum-utils zlib rinse-2.0.1/INSTALL0000644006034000603400000000105412101522452013057 0ustar langestaff-j Installation ------------ Installing this program, from source, should be as simple as running: make install To remove, please run: make uninstall Requirements ------------ The requirements of this program are minimal and can be installed by: apt-get update apt-get install wget rpm Host System ----------- Although this tool has only been tested upon Debian and Ubuntu host systems it should be supported by any distribution of GNU/Linux which has working 'rpm' and 'rpm2cpio' commands. Steve -- rinse-2.0.1/.version0000644006034000603400000000000612101522452013510 0ustar langestaff-j2.0.1 rinse-2.0.1/README0000644006034000603400000000177412101522452012717 0ustar langestaff-jRinse ----- The rinse utility is designed to install a minimal RPM-based distribution of GNU/Linux within a local directory. The purpose and usage are analogous to the 'debootstrap' utility familiar to users of Debian GNU/Linux. Rationale --------- This tool is being developed primarily for use by the xen-tools software, so that new Xen guests may be easily created running RPM-based distributions of GNU/Linux. It's also used by FAI (Fully Automatic Installation) for rpm based installations. RPMStrap is the common solution to this problem, however it is rarely successful. Resources --------- Homepage: http://steve.org.uk/Software/rinse/ Mercurial Repository: http://rinse.repository.steve.org.uk/ Supported Distributions ----------------------- So far the following distributions are supported, in both 32 and 64 bit flavours: * CentOS * Scientific Linux CERN * Fedora Core * OpenSUSE * RHEL For a complete list use: rinse --list-distributions