debian-builder-1.8/0000755000175000017500000000000010766242212013250 5ustar gwolfgwolfdebian-builder-1.8/bin/0000755000175000017500000000000010440622505014014 5ustar gwolfgwolfdebian-builder-1.8/bin/debian-builder0000755000175000017500000003326510766240163016630 0ustar gwolfgwolf#!/usr/bin/perl -w =head1 NAME debian-builder - Rebuild a Debian package from its source code. =head1 SYNOPSIS debian-builder [options] Help Options: --debug Show useful debugging information. --help Show this scripts help information. --manual Read this scripts manual. --version Show the version number and exit. --verbose Show verbose output. Building options: --sign Force package signing, disabled by default. --debuild foo Pass arguments 'foo' onto debuild when building --suffix foo Give the built package versions the suffix 'foo'. =cut =head1 OPTIONS =over 8 =item B<--debug> Show the commands this script executes as an aid to debugging. =item B<--help> Show the brief help information. =item B<--verbose> Show verbose information useful to debugging. =back =cut =head1 DESCRIPTION debian-builder is a simple script which is designed to facilitate the rebuilding of a Debian GNU/Linux package from its source code. It will correctly handle the installation of any required build-dependencies, and remove them once building is complete. =cut =head1 AUTHOR Steve -- http://www.steve.org.uk/ $Id: debian-builder,v 1.14 2006/06/04 18:24:04 steve Exp $ =cut =head1 LICENSE Copyright (c) 2005 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 use strict; use diagnostics; use File::Copy; use File::Temp qw/ tempdir /; use Getopt::Long; use Pod::Usage; use strict; use File::Copy; use Getopt::Long; # # Version number # my $RELEASE = "1.5"; # # Configuration files from the config file, or the command line. # our %CONFIG; # # The list of packages installed upon the system # our %INSTALLED; # # Parse the global and per-user configuration files, if they exist. # parseOptions(); # # Allow command line to override configuration file(s) # parseCommandLineArguments(); # # Unless the user is specifying their own arguments then # we will add '-us' '-uc' to the debuild command line to # disable package signing. # # Rationale: If the user wishes to do this they are capable # of adding these two flags themselves. # if (! defined( $CONFIG{'debuild_args'} ) ) { $CONFIG{'debuild_args'} = "-uc -us"; } # # Remove from the debuild arguments if the '--sign' flag was used. # if ( $CONFIG{'sign_deb'} ) { # Remove the '-uc' and '-us' arguments. $CONFIG{'debuild_args'} =~ s/-uc//g; $CONFIG{'debuild_args'} =~ s/-us//g; # Remove any leading and trailing space. $CONFIG{'debuild_args'} =~ s/^\s+//; $CONFIG{'debuild_args'} =~ s/\s+$//; } # # Show the debuild arguments # if ($CONFIG{'verbose'}) { print "Arguments for debuild are '$CONFIG{'debuild_args'}'\n"; } # # We assume that we are given the name of package(s) to build # my $package = undef; # # Build each package specified on the command line. # while( $package = shift ) { buildPackage( $package ); } # # All done. # exit; =head2 buildPackage Do all the work of building the given package. Return '>0' on success, '0' on failure of any kind. (The result is the number of binary files moved into the results directory.) =cut sub buildPackage { my ($package) = ( @_ ); $CONFIG{'verbose'} && print "Starting build of $package\n"; # # See if we need a to build a different source package # than that which we were given. # my $source = getSourcePackageName( $package ); $package = $source; # # Get the package source, and clean it a little. # my $directory = getPackageSource( $package, $CONFIG{'build_dir'} ); $CONFIG{'verbose'} && print "Source directory is $directory\n"; # # See which packages are already installed upon our host. # %INSTALLED = getInstalledPackages(); # # Install the build-dependencies for the package. # installBuildDependencies( $package ); # # Patch up the changelog file to include the required suffix. # if ( defined( $CONFIG{'package_suffix'} ) && length( $CONFIG{'package_suffix'} ) ) { updateChangeLog( $directory, $CONFIG{'package_suffix'} ); } # # Build the .deb # my $log_dir = $CONFIG{'log_dir'}; system( "cd $directory; \ debuild $CONFIG{'debuild_args'} | tee $log_dir/$package.log" ); # # Move the deb, then nuke the build directory. # # here is where we tell that something produced a .deb or # not. # my $result = 0; # # Directory where we move built packages to # my $bin_dir = $CONFIG{'binary_dir'}; # # Clean the temporary directory where the build took blace. # system( "rm -rf $directory" ); # # Move the built packages from the build directory to the # binary directory. # $result += saveDebianPackage( $CONFIG{'build_dir'}, $bin_dir ); # # Uninstall all added packages, returning the system to the # state it was in initially. # tidySystem(); # # All done. # return( $result ); } # # Read the global configuration file, then override with the users # file if present # sub parseOptions { my $global = "/etc/debian-builder/debian-builder.conf"; if ( -e $global ) { $CONFIG{'verbose'} && print "Reading $global\n"; &parseConfigurationFile( $global ); } if ( -e $ENV{"HOME"} . "/.debian-builderrc" ) { $CONFIG{'verbose'} && print "Reading ~/.debian-builderrc\n"; &parseConfigurationFile( $ENV{"HOME"} . "/.debian-builderrc" ) ; } } # # Parse the named configuration file. # # Set the global '%CONFIG' hash with the values we read. # sub parseConfigurationFile { my ($FILE) = ( @_ ); if ( ( ! -e $FILE ) && ( $CONFIG{'verbose'} ) ) { print "Configuration file '$FILE' missing.\n"; return; } open( FILY, "<$FILE" ) or die "Cannot open file: $FILE - $!"; my $line = ""; my $fieldCount = -1; my $lineCount = 0; while (defined($line = ) ) { chomp $line; if ($line =~ s/\\$//) { $line .= ; redo unless eof(FILY); } # Skip lines beginning with comments next if ( $line =~ /^([ \t]*)\#/ ); # Skip blank lines next if ( length( $line ) < 1 ); # Strip trailing comments. if ( $line =~ /(.*)\#(.*)/ ) { $line = $1; } # Find variable settings if ( $line =~ /([^=]+)=(.+)/ ) { my $key = $1; my $val = $2; # Strip leading and trailing whitespace. $key =~ s/^\s+//; $key =~ s/\s+$//; $val =~ s/^\s+//; $val =~ s/\s+$//; # Store value. $CONFIG{ $key } = $val; if ( $CONFIG{'verbose'} ) { print "Set: '$key' -> '$val'\n"; } } } close( FILY ); } =head2 parseCommandLineArguments Parse any command line arguments, and set the appropriate values in the global CONFIG hash. =cut sub parseCommandLineArguments { my $HELP = 0; my $MANUAL = 0; my $VERSION = 0; GetOptions( "verbose", \$CONFIG{'verbose'}, "debuild=s", \$CONFIG{'debuild_args'}, "suffix=s", \$CONFIG{'package_suffix'}, "sign", \$CONFIG{'sign_deb'}, "help", \$HELP, "manual", \$MANUAL, "version", \$VERSION ); pod2usage(1) if $HELP; pod2usage(-verbose => 2 ) if $MANUAL; if ( $VERSION ) { my $REVISION = '$Revision: 1.14 $'; if ( $REVISION =~ /1.([0-9.]+) / ) { $REVISION = $1; } print "debian-builder release $RELEASE - CVS: $REVISION\n"; exit; } } =head2 getSourcePackageName Return the name of the source package required to build package 'foo' =cut sub getSourcePackageName { my ($package) = ( @_ ); $CONFIG{'verbose'} && print "Finding source package for '$package'\n"; my $available = "/var/lib/dpkg/available"; my $found = 0; my $source = $package; open( AVAIL, "<" . $available ); while( my $line = ) { if ( $line =~ /^Package: (.*)/ ) { my $pkg = $1; if ( $pkg eq $package ) { $found =1; } } if ( $line =~ /Source: (.*)/ ) { if ( $found ) { $source = $1; } } if ( length( $line ) < 2) { $found = 0; } } close( AVAIL ); if ( $source =~ /(.*) (.*)/ ) { $source = $1; } $CONFIG{'verbose'} && print "Found: $source\n"; return( $source ); } =head2 getPackageSource Download the source of the package to the specified directory and return the name of the unpacked directory. =cut sub getPackageSource { my( $package, $directory ) = ( @_ ); die "The directory '$directory' doesn't exist!" unless ( -d $directory ); # # Get the source, and remove the .dsc + .diff.gz files. # system( "cd $directory ; \ apt-get source $package && \ rm $package*.dsc && rm $package*.diff.gz" ); # # Change to the directory which contains the unpacked code. # opendir( DIR, $directory ); my $work = ""; foreach my $ent ( readdir( DIR ) ) { # Skip dotfiles. next if ( $ent =~ /^\./ ); # # If we find a directory with the name of our package # that is the right one. # if ( ( -d $directory . "/" . $ent ) && ( $ent =~ /$package/ ) ) { $work = $directory . "/" . $ent; } } closedir( DIR ); return( $work ); } =head2 updateChangeLog If the Debian changelog file doesn't already refer to the specified version then add it. =cut sub updateChangeLog { my ( $directory, $suffix ) = ( @_ ); die "No Debian changelog in $directory" unless ( -e $directory . "/debian/changelog" ); # # Read the changelog # open( CHANGE, "<", $directory . "/debian/changelog" ) or die "Failed to read changelog : $!"; my @LINES = ; close( CHANGE ); # # Look for the current version. # if ($LINES[0] =~ /$package \(([^\)]+)\) (.*)/ ) { my $ver = $1; if ( $ver =~ /$suffix/ ) { # Contains the 'ssp' marker already... $CONFIG{'verbose'} && print "Package already has the suffix '$suffix': " . $LINES[0] . "\n"; } else { $LINES[ 0 ] = $package . " (" . $1 . $suffix . ") " . $2; $CONFIG{'verbose'} && print "Package has new version: " . $LINES[0] . "\n"; } } # # Store the update changelog. # open( CHANGE, ">", $directory . "/debian/changelog" ) or die "Unable to open the Debian changelog for writing - $!"; foreach my $line ( @LINES ) { print CHANGE $line; } close(CHANGE); } =head2 saveDebianPackage Move the build Debian package, associated .diff.gz file, .changes file, etc. From the build directory into the binary directory. Return the number of files moved into the binary directory. =cut sub saveDebianPackage { my ( $source, $dest ) = ( @_ ); my $result = 0; opendir( DIR, $source ); foreach my $entry ( readdir( DIR ) ) { # # Skip dotfiles. # next if ( $entry =~ /^\./ ); # # Complete path to the file we're moving. # my $file = $source . "/" . $entry; if ( ( $file =~ /\.deb$/ ) || ( $file =~ /\.changes$/ ) || ( $file =~ /\.asc$/ ) || ( $file =~ /\.dsc$/ ) || ( $file =~ /\.diff.gz$/ ) || ( $file =~ /\.build$/ ) || ( $file =~ /\.tar.gz$/ ) ) { $CONFIG{'verbose'} && print "Moving file : $file - $dest\n"; File::Copy::move( $file, $dest ); $result ++; } else { $CONFIG{'verbose'} && print "Removing file .. $file\n"; unlink( $file ); } } closedir( DIR ); return( $result ); } =head2 tidySystem Uninstall all the build dependency packages we installed. We do this by finding the list of all packages which are currently installed and removing those that were not present when we started. =cut sub tidySystem { if( not scalar(%INSTALLED) ) { return; } my %NEW = getInstalledPackages(); my @removals; foreach my $package ( sort keys %NEW ) { if ( ! $INSTALLED{ $package } ) { push @removals, $package; $CONFIG{'verbose'} && print "Need to remove package : $package\n"; } } removePackages( @removals ); } =head2 getInstalledPackages Return a hash of all the currently installed packages. =cut sub getInstalledPackages { # # This command will display all the packages installed upon # the current host. # my $command = "COLUMNS=200 dpkg --list | grep ^ii | awk '{print \$2}' | sort -u"; # # Run the command and store each package name. # open( STATUS, $command . " |" ) or die "Cannot run package query command '$command' - $!"; my %INSTALLED; foreach my $line ( ) { chomp( $line ); $INSTALLED{$line} = 1; } close( STATUS ); return( %INSTALLED ); } =head2 installBuildDependencies Install the build-dependencies required to build the given package. =cut sub installBuildDependencies { my ($package) = ( @_ ); my $apt_install = qq(/usr/bin/apt-get -y -q -q build-dep -o "DPkg::Options::=--force-confold"); system( $apt_install . " " . $package ); } =head2 removePackages Remove the given array of packages from the system. =cut sub removePackages { my ( @packages ) = ( @_ ); if ( scalar( @packages) > 0 ) { my $command = join(" ", "dpkg --purge", @packages, "2>/dev/null"); $CONFIG{'verbose'} && print "Running: $command \n"; system( $command ); } else { $CONFIG{'verbose'} && print "No packages to remove.\n"; } } =head2 END Desperately try to reset the host system to the same starting point as it initially had. This should be taken care of in situations where the script doesn't abort on an error condition. =cut sub END { $CONFIG{'verbose'} && print "Running END\n"; $CONFIG{'verbose'} = 1; tidySystem(); } debian-builder-1.8/doc/0000755000175000017500000000000010766242212014015 5ustar gwolfgwolfdebian-builder-1.8/doc/README0000644000175000017500000000207410440622505014674 0ustar gwolfgwolf debian-builder 1.3 ------------------ Debian builder is designed to be a simple to install, configure, and use tool for rebuilding some or all of a Debian unstable installation upon a single machine. The competing programs such as wann-build, sbuild, katie, etc are all rather complex groups of software which led to this system being designed. It is ideal for a small to medium sized Debian machine which has the disk capacity to rebuild packages. Requirements ------------ Prior to installing this package you should have a working toolchain which can be used to install a Debian package from source. This means you are expected to have at least the following packages installed: gcc devscripts debuild etc Deficiencies ------------ * In the case of a package failing to compile you will need to fix this manually. * Uploading to an archive isn't supported, instead all produced packages are simply placed together in a single output directory. * No email notification is present although this is planned. Steve -- debian-builder-1.8/doc/MASS-REBUILD0000644000175000017500000000267610440622505015576 0ustar gwolfgwolf Mass Rebuilding --------------- As the debian-builder command will only build a single package at a time there will need to be some extra work in rebuilding a complete distribution. There are two things that you can do to start the process off easily, using the included files: 1. Rebuild the 'base' distribution. 2. Rebuild all dependencies of a program. Base distribution ----------------- When a Debian installation is installed upon a computer there are several packages which are always included. These are the "base" packages, contained in the section "base" of the archive, and given the priority "required". If you wish to rebuild these you could use something like the following (assuming your shell is bash): cd /usr/share/doc/debian-builder/examples for i in `./getBasePackages `; do debian-builder --verbose $i; done Dependencies ------------ Perhaps you wish to rebuild Apache? That's simple: debian-builder apache However the Apache package you build will rely upon more packages, the C runtime, etc. If you wish to rebuild a package it makes sense to handle them too, (note that this doesn't avoid rebuilding dependencies you have already built): cd /usr/share/doc/debian-builder/examples debian-builder --verbose apache for i in `./getRequired apache `; do debian-builder --verbose $i; done Note that recursive dependencies are not handled with this simplistic system. Steve --debian-builder-1.8/doc/DESIGN0000644000175000017500000000131510440622505014705 0ustar gwolfgwolf When this system is complete there will be two parts: * A queuing program. * A driver program. The intention is that the queuing program will take care of pulling out the packages which are needing built from a database, and then using debian-builder to build them. This queuing program will also present the logfiles as a GUI. The intention is that the queue will be manually seeded by a local build administrator, after which time the building process will remove entries from it as they are compiled. The system can be setup such that each dependency of a queued package will be automatically added ot the queue to allow a large change of packges to be built with minimum effort. debian-builder-1.8/etc/0000755000175000017500000000000010440622505014017 5ustar gwolfgwolfdebian-builder-1.8/etc/debian-builder.conf0000644000175000017500000000105210440622505017532 0ustar gwolfgwolf# /etc/debian-builder.conf # # System wide settings for the debian-builder program - settings here # may be overrided by the existance of a ~/.debian-builderrc file. # # This configuration file is pretty simple, lines beginning with # '#' are comments and are ignored. # # # Directory to build stuff in. # build_dir=/var/cache/debian-builder/tmp # # Output directory. # binary_dir=/var/cache/debian-builder/deb # # Logging goes here. # log_dir=/var/cache/debian-builder/log # # String to append to the produced packages # package_suffix=ssp debian-builder-1.8/TODO0000644000175000017500000000041110440622505013730 0ustar gwolfgwolf 1. Create a queuing deamon which will handle building multiple packages: debian-builder-www 2. Move all .deb files produced into the ../deb/ directory after building - or parse debian/control to see what files have been built. Steve - debian-builder-1.8/Makefile0000644000175000017500000000357710440622505014720 0ustar gwolfgwolf # # Only used to build distribution tarballs. # DIST_PREFIX = /tmp VERSION = 1.5 BASE = debian-builder PREFIX = / clean: find . -name '*~' -exec rm \{\} \; find . -name 'install-stamp' -exec rm \{\} \; find . -name 'build-stamp' -exec rm \{\} \; find . -name 'debian-builder.1' -exec rm \{\} \; install: manpage -mkdir -p $(PREFIX)var/cache/debian-builder -mkdir -p $(PREFIX)var/cache/debian-builder/tmp -mkdir -p $(PREFIX)var/cache/debian-builder/log -mkdir -p $(PREFIX)var/cache/debian-builder/deb -mkdir -p $(PREFIX)etc/debian-builder/ -mkdir -p $(PREFIX)usr/bin -mkdir -p $(PREFIX)usr/share/man/man1 chmod -R 775 $(PREFIX)var/cache/debian-builder cp bin/debian-builder $(PREFIX)usr/bin cp etc/debian-builder.conf $(PREFIX)etc/debian-builder cp doc/debian-builder.1 $(PREFIX)usr/share/man/man1 gzip -9 $(PREFIX)usr/share/man/man1/debian-builder.1 uninstall: -rm -rf /var/cache/debian-builder/tmp -rm -rf /var/cache/debian-builder/deb -rm -rf /var/cache/debian-builder/log -rmdir /var/cache/debian-builder/ -rm /usr/bin/debian-builder -rm /etc/debian-builder/debian-builder.conf -rm /usr/share/man/man1/debian-builder.1.gz test: prove --shuffle tests/ test-verbose: prove --shuffle --verbose tests/ manpage: pod2man bin/debian-builder > doc/debian-builder.1 release: clean manpage rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION) rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION) find $(DIST_PREFIX)/$(BASE)-$(VERSION) -name "CVS" -print | xargs rm -rf find $(DIST_PREFIX)/$(BASE)-$(VERSION) -name ".cvsignore" -exec rm -f \{\} \; cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar --exclude=debian/* $(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 debian-builder-1.8/tests/0000755000175000017500000000000010440622505014406 5ustar gwolfgwolfdebian-builder-1.8/tests/Makefile0000644000175000017500000000041510440622505016046 0ustar gwolfgwolf all: @cd ..; perl -MTest::Harness -e '$$Test::Harness::verbose=0; runtests @ARGV;' tests/*.t verbose: @cd ..; perl -MTest::Harness -e '$$Test::Harness::verbose=1; runtests @ARGV;' tests/*.t modules: .PHONY ./modules.sh > modules.t .PHONY: true clean: rm *~ debian-builder-1.8/tests/pod-check.t0000644000175000017500000000132110440622505016425 0ustar gwolfgwolf#!/usr/bin/perl -w # # Test that the POD we include in our scripts is valid, via the external # podcheck command. # # Steve # -- # $Id: pod-check.t,v 1.1 2006/06/04 18:15:01 steve Exp $ # use strict; use Test::More qw( no_plan ); foreach my $file ( glob( "bin/debian-builder" ) ) { 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" ); } } debian-builder-1.8/tests/pod.t0000644000175000017500000000044710440622505015362 0ustar gwolfgwolf#!/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( . ); all_pod_files_ok( all_pod_files( @poddirs ) ); debian-builder-1.8/tests/modules.sh0000755000175000017500000000115410440622505016416 0ustar gwolfgwolf#!/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/ # # $Id: modules.sh,v 1.1 2006/06/04 18:15:01 steve Exp $ # cat < ) { if ( $line =~ /^Package: (.*)/ ) { my $pkg = $1; if ( $pkg eq $package ) { $found =1; } } if ( $line =~ /Depends: (.*)/ ) { if ( $found ) { $required = $1; } } if ( length( $line ) < 2) { $found = 0; } } close( AVAIL ); if ( length( $required ) ) { foreach my $bin ( split( /,/, $required ) ) { $bin =~ s/^\s+//; $bin =~ s/\s+$//; if ( $bin =~ /([^ \t]+)[ \t]+(.*)/ ) { $bin = $1; } print $bin . "\n"; } } } debian-builder-1.8/scripts/debian-builder-recursive0000755000175000017500000000060110440622505021531 0ustar gwolfgwolf#!/bin/sh # # Rebuild a package and the dependencies it needs. # # # Build the named package first. # debian-builder --verbose $1 # # Now all it's dependencies which don't look like they're already present. # for i in `./getRequired $1`; do if [ -e /var/cache/debian-builder/deb/$i*.deb ] ; then echo $i already built else ./debian-builder-recursive $i; fi done debian-builder-1.8/scripts/getBasePackages0000755000175000017500000000131710440622505017674 0ustar gwolfgwolf#!/usr/bin/perl -w # # Display all the packages of priority "base" or "required". # # Essential packages which must exist on all systems. # use strict; my $input = "/var/lib/dpkg/available"; my @BASE = (); open( INPUT, "<$input" ) or die "Cannot open $input - $!"; my $package = ""; my $priority = ""; while( my $line = ) { if ( $line =~ /^Package: (.*)/ ) { $package = $1; } if ( $line =~ /^Priority: (.*)/ ) { $priority = $1; } if ( length( $package ) && length( $priority ) ) { if ( $priority =~ /^required$/i ) { push @BASE, $package; } $package = ""; $priority = ""; } } close( INPUT ); foreach my $p ( sort @BASE ) { print $p . "\n"; } debian-builder-1.8/debian/0000755000175000017500000000000010766242212014472 5ustar gwolfgwolfdebian-builder-1.8/debian/dirs0000644000175000017500000000023610656632056015366 0ustar gwolfgwolfetc/debian-builder usr/bin usr/share/man/man1/ var/cache/debian-builder var/cache/debian-builder/tmp var/cache/debian-builder/log var/cache/debian-builder/debdebian-builder-1.8/debian/control0000644000175000017500000000172410766240311016077 0ustar gwolfgwolfSource: debian-builder Section: admin Priority: optional Maintainer: Deepak Tripathi Standards-Version: 3.7.3 Build-Depends: debhelper (>= 5) Package: debian-builder Architecture: all Depends: ${shlibs:Depends}, perl, perl-modules, build-essential, devscripts, dpkg-dev Description: Rebuild Debian packages from source code This is a simple tool which is designed to allow a local administrator to rebuild individual Debian packages from their source code. . With the aid of a few included wrapper scripts this allows automatically rebuilding a package and all its dependencies. . Note: This software is not designed to enhance your installation by producing optimized binaries, however this may be achieved with the aid of companion packages such as 'pentium-builder', or 'athlon-builder'. . The prime purpose of this package is to ease the testing of compiler patches such as the Stack Smashing Protection patch available from IBM. debian-builder-1.8/debian/rules0000755000175000017500000000221310766240470015554 0ustar gwolfgwolf#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: build-stamp build-stamp: dh_testdir $(MAKE) touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp install-stamp $(MAKE) clean dh_clean install: install-stamp install-stamp: build dh_testdir dh_testroot dh_clean -k dh_installdirs make install PREFIX=`pwd`/debian/debian-builder/ touch install-stamp # Build architecture-dependent files here. binary-arch: build install # We have nothing to do by default. # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot dh_installdirs dh_installdocs README TODO doc/DESIGN doc/MASS-REBUILD dh_installexamples scripts/getBasePackages scripts/getRequired scripts/debian-builder-recursive dh_installchangelogs dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb source diff: @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary debian-builder-1.8/debian/changelog0000644000175000017500000001057210766240564016361 0ustar gwolfgwolfdebian-builder (1.8) unstable; urgency=low * Include patch from Dmitry Petukhov (Closes: 457027) * debian/control - Bumped Standerds-Version to 3.7.3 * debian/rule - Change rule file for build-indep -- Deepak Tripathi Thu, 13 Mar 2008 20:29:33 +0530 debian-builder (1.7) unstable; urgency=low * New maintainer (Closes: #390216) -- Deepak Tripathi Wed, 18 Jul 2007 23:31:53 +0530 debian-builder (1.6) unstable; urgency=low * QA upload. * Set maintainer to QA Group; Orphaned: #390216 -- Michael Ablassmeier Sun, 15 Oct 2006 12:38:42 +0200 debian-builder (1.5) unstable; urgency=low * New upstream release, fixes all the brokenness and last minute fixes made to the broken Dependency handling. -- Steve Kemp Sun, 4 Jun 2006 19:27:30 +0000 debian-builder (1.4-3) unstable; urgency=high * Stupid-head-release: Actually include the changes in the previous entry. -- Steve Kemp Sat, 3 Jun 2006 17:26:32 +0000 debian-builder (1.4-2) unstable; urgency=high * BUGFIX: Fixed broken dependency handling. -- Steve Kemp Sat, 3 Jun 2006 17:19:48 +0000 debian-builder (1.4-1) unstable; urgency=high * BUGFIX: Handling "or" dependencies properly. (By ignoring them ;) -- Steve Kemp Sat, 3 Jun 2006 15:54:32 +0000 debian-builder (1.4-0) unstable; urgency=high * New upstream release. * BUGFIX: Package dependency installation works correctly. -- Steve Kemp Fri, 2 Jun 2006 17:33:12 +0000 debian-builder (1.3-9) unstable; urgency=low * Updated the handling of build-dependencies so they are detected via the use of 'dpkg-checkbuilddeps' which is much more reliable. * Added dependency on dpkg-dev. -- Steve Kemp Fri, 2 Jun 2006 16:44:22 +0000 debian-builder (1.3-8) unstable; urgency=low * Updated standards version to 3.7.2 * Don't remove any present .dsc + .diff.gz unless the apt-get command succeeds. (Closes: #314638) -- Steve Kemp Tue, 30 May 2006 23:19:23 +0000 debian-builder (1.3-7) unstable; urgency=low * Really fix the spelling. D'oh. -- Steve Kemp Mon, 16 January 2006 10:07:12 +0000 debian-builder (1.3-6) unstable; urgency=low * Corrected the spelling of 'athilon-bulder' in the package description. (Closes: #348089) * Updated standards version to 3.6.2 * Updated debhelper compatability to level 4. -- Steve Kemp Mon, 16 January 2006 10:04:21 +0000 debian-builder (1.3-5) unstable; urgency=high * Removed the Suggests: wrap-gcc, this isn't available in the Debian archive and makes the package uninstallable for some users. (Closes: #272830) urgency set to high as this is a serious bug. -- Steve Kemp Wed, 22 September 2004 13:40:28 +0000 debian-builder (1.3-4) unstable; urgency=medium * Artificial upload to fix broken version number. -- Steve Kemp Fri, 27 August 2004 10:08:17 +0000 debian-builder (1.3-3) unstable; urgency=medium * Do not try to sign the .deb and .changes files which have been built by default. (Closes: #268270) * Introduce a new command line flag --sign to force package signing. * Introduce a new command line flag '--debuild' to pass options through to the debuild process. -- Steve Kemp Fri, 27 August 2004 08:59:32 +0000 debian-builder (1.3-2) unstable; urgency=medium * Fixed FTBFS bug; trying to access a directory outside the build tree. (Closes: #261050) * Updated description to explain purpose more clearly. (Closes: #260507) -- Steve Kemp Fri, 23 July 2004 17:34:03 +0000 debian-builder (1.3-1) unstable; urgency=low * Changed maintainer address to my @debian.org email. * Changed section to admin. * Uploaded to the Debian archive. (Closes: #257167) * Added `debian-builder-recursive` to scripts directory to rebuild a package recursively. -- Steve Kemp Sun, 4 July 2004 15:06:19 +0000 debian-builder (1.2-1) unstable; urgency=low * New upstream release. -- Steve Kemp Thu, 24 Jun 2004 22:13:10 +0000 debian-builder (1.1-1) unstable; urgency=low * Initial release -- Steve Kemp Thu, 24 Jun 2004 9:21:42 +0000 debian-builder-1.8/debian/compat0000644000175000017500000000000210656632056015677 0ustar gwolfgwolf5 debian-builder-1.8/debian/copyright0000644000175000017500000000075110656632056016437 0ustar gwolfgwolf This package was Debianized by Steve Kemp steve@steve.org.uk on Sun, 18 Jan 2005 20:53:23 +0000 It was downloaded from http://www.steve.org.uk/Software/debian-builder It is now maintained by Deepak Tripathi Copyright (C) 2004 Steve Kemp This code is distributed under the terms of the GNU General Public License. The complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL file. debian-builder-1.8/debian/.cvsignore0000644000175000017500000000002510656632056016476 0ustar gwolfgwolffiles debian-builder debian-builder-1.8/ChangeLog0000644000175000017500000000161610440622505015022 0ustar gwolfgwolf 1.5 - Recorded to use Pod::Usage. Utterly reworked the handling of build-dependencies, rather than trying to manually keep track of the installed packages just take a snapshot of before and after and then revert. Added pod checking + dependency checking to the script via 'make test' + 'make test-verbose' makefile targets. 1.4 - Added better dependancy handling with dpkg-checkbuilddeps 1.3 - Added --help and other command line documentation. Stopped relying upon the hidden use of sudo. Allow the user to change the package suffix, defaults to 'ssp' still. Added debian-builder-recursive script to recursively build a package. 1.2 - Handle versioned source dependencies. Include some utility scripts in scripts. 1.1 - Read the available file, so that package source files are gained correctly. 1.0 - Initial release