From: Anas Nashif Date: Tue, 1 May 2012 13:20:18 +0000 (+0100) Subject: cleanup X-Git-Tag: 2.0_alpha~61 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=62b379d1a00d5886fff234f96528e5a51aa4f577;p=tools%2Fdepanneur.git cleanup --- diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8d166d5 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +VERSION=0.1 + +prefix=/usr +bindir=$(prefix)/bin +datadir=$(prefix)/share +libdir=$(prefix)/lib +sysconfdir=/etc +DESTDIR= + +all: + +install: + install -m755 -d \ + $(DESTDIR)$(bindir) + install -m755 \ + dbuild + $(DESTDIR)$(bindir) + diff --git a/depbuild.pl b/dbuild old mode 100644 new mode 100755 similarity index 100% rename from depbuild.pl rename to dbuild diff --git a/deps.pl b/deps.pl deleted file mode 100644 index 2cf6cc5..0000000 --- a/deps.pl +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/perl -BEGIN { - my ($wd) = $0 =~ m-(.*)/- ; - $wd ||= '.'; - unshift @INC, "$wd/build"; - unshift @INC, "$wd"; - unshift @INC, "$ENV{'VIRTUAL_ENV'}/lib/build" -} - -use strict; -use Build; -use Build::Rpm; -use Data::Dumper; -my $dist="tizen"; -my $archs="i586"; -my $configdir="/home/nashif/localbuild/builder/configs"; -my $config = Build::read_config_dist($dist, $archs, $configdir); - -my $spec = Build::Rpm::parse($config, $ARGV[0]); -print Dumper($spec); diff --git a/penv.pl b/penv.pl deleted file mode 100644 index dc283cc..0000000 --- a/penv.pl +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; -use Cwd qw(abs_path); -use File::Path qw(mkpath); -use File::Basename; - -if ( !$ARGV[0] ) { - print "Usage: penv.pl \n"; - exit; -} - -my $abs = abs_path( $ARGV[0] ); - -mkpath "$abs/bin"; - -open my $file, '>', "$abs/bin/activate-perl"; -while () { - $_ =~ s/{{ PENV }}/$abs/g; - print $file $_; -} -close($file); - -__DATA__ -# This file must be used with "source bin/activate" *from bash* -# you cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "$_OLD_VIRTUAL_PATH" ] ; then - PATH="$_OLD_VIRTUAL_PATH" - export PATH - unset _OLD_VIRTUAL_PATH - fi - - unset MODULEBUILDRC - unset PERL_MM_OPT - unset PERL5LIB - - # This should detect bash and zsh, which have a hash command that must - # be called to get it to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then - hash -r - fi - - if [ -n "$_OLD_VIRTUAL_PS1" ] ; then - PS1="$_OLD_VIRTUAL_PS1" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - if [ ! "$1" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelavent variables -deactivate nondestructive - -VIRTUAL_ENV="{{ PENV }}" -export VIRTUAL_ENV - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/bin:$PATH" -export PATH - -if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then - _OLD_VIRTUAL_PS1="$PS1" - if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then - # special case for Aspen magic directories - # see http://www.zetadev.com/software/aspen/ - PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" - else - PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" - fi - export PS1 -fi - -# This should detect bash and zsh, which have a hash command that must -# be called to get it to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then - hash -r -fi -eval $(perl -I{{ PENV }}/perl5/lib/perl5 -Mlocal::lib={{ PENV }}) diff --git a/smock_smock.pl b/smock_smock.pl deleted file mode 100644 index d0d0042..0000000 --- a/smock_smock.pl +++ /dev/null @@ -1,418 +0,0 @@ -#!/usr/bin/perl -w -# -# SMOCK - Simpler Mock -# by Dan Berrange and Richard W.M. Jones. -# Copyright (C) 2008 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -use strict; - -use Getopt::Long; -use Pod::Usage; -use File::Temp qw(tempfile); - -my @arches = (); -my $chain = 0; -my @distros = (); -my $dryrun = 0; -my $help = 0; -my $keepgoing = 0; -my $localrepo = $ENV{HOME} . "/public_html/smock/yum"; -my $man = 0; -my $overwrite = 0; -my $suffix = ""; - -GetOptions ( - "arch=s" => \@arches, - "chain" => \$chain, - "distro=s" => \@distros, - "dryrun" => \$dryrun, - "help|?" => \$help, - "keepgoing" => \$keepgoing, - "localrepo=s" => \$localrepo, - "man" => \$man, - "overwrite" => \$overwrite, - "suffix=s" => \$suffix, - ) or pod2usage (2); -pod2usage (1) if $help; -pod2usage (-exitstatus => 0, -verbose => 2) if $man; - -=pod - -=head1 NAME - - smock - Simpler mock - -=head1 SYNOPSIS - - smock.pl --arch=i386 --arch=x86_64 --distro=fedora-10 list of SRPMs ... - -=head1 DESCRIPTION - -This is a wrapper around I which lets you build a whole group of -mutually dependent SRPMs in one go. - -The smock command will work out the correct order in which to build -the SRPMs, and makes the result of previous RPM builds available as -dependencies for later builds. - -Smock also works incrementally. It won't rebuild RPMs which were -built already in a previous run, which means if a package fails to -build, you can just fix it and rerun the same smock command. (In the -unlikely case that you want to force smock to rebuild RPMs then you -must bump the release number or delete the binary RPM from the -localrepo directory). - -B Please read the README file first. You need to set up mock -and optionally a web server before you can use this command. - -=head1 OPTIONS - -=over 4 - -=item B<--arch> - -Specify the architecture(s) to build, eg. i386, x86_64. You can -list this option several times to build several architectures. - -=item B<--chain> - -Don't run any commands, just print the packages in the correct -format for chain building. See: -L - -=item B<--distro> - -Specify the distribution(s) to build, eg. fedora-9, fedora-10. -You can list this option several times to build several distributions. - -=item B<--dryrun> - -Don't run any commands, just print the packages in the order -in which they must be built. - -=item B<--help> - -Print this help. - -=item B<--keepgoing> - -Don't exit if a package fails, but keep building. - -Note that this isn't always safe because new packages may be built -against older packages, in the case where the older package couldn't -be rebuilt because of an error. - -However, it is very useful. - -=item B<--localrepo> - -Local repository. Defaults to C<$HOME/public_html/smock/yum> - -=item B<--man> - -Show this help using man. - -=item B<--overwrite> - -Overwrite existing files that are already in the repository. By default the -build of an SRPM is skipped if there is already a package with the same name, -version and release in the localrepo. With this option, the new build -overwrites the old one. This may lead to unexpected results, if the new build -does not create the same subpackages as the old one, because then the old -subpackages will still be accessible in the repository. - -=item B<--suffix> - -Append a suffix to the mock configuration file in order to use -a custom one. - -=back - -=cut - -my @srpms = @ARGV; - -if (0 == @arches) { - die "smock: specify one or more architectures using --arch=\n" -} - -if (0 == @distros) { - die "smock: specify one or more distros using --distro=\n" -} - -if (0 == @srpms) { - die "smock: specify one or more SRPMs to build on the command line\n" -} - -# Resolve the names, dependency list, etc. of the SRPMs that were -# specified. - -sub get_one_line -{ - open PIPE, "$_[0] |" or die "$_[0]: $!"; - my $line = ; - chomp $line; - close PIPE; - return $line; -} - -sub get_lines -{ - local $_; - open PIPE, "$_[0] |" or die "$_[0]: $!"; - my @lines; - foreach () { - chomp; - push @lines, $_; - } - close PIPE; - return @lines; -} - -my %srpms = (); -foreach my $srpm (@srpms) { - my $name = get_one_line "rpm -q --qf '%{name}' -p '$srpm'"; - my $version = get_one_line "rpm -q --qf '%{version}' -p '$srpm'"; - my $release = get_one_line "rpm -q --qf '%{release}' -p '$srpm'"; - - my @buildrequires = get_lines "rpm -q --requires -p '$srpm' | - grep -Eo '^[^[:space:]]+'"; - - #print "Filename: $srpm\n"; - #print " name = $name\n"; - #print " version = $version\n"; - #print " release = $release\n"; - #print " buildrequires = ", join (",", @buildrequires), "\n"; - - $srpms{$name} = { - name => $name, - version => $version, - release => $release, - buildrequires => \@buildrequires, - filename => $srpm - } -} - -# We don't care about buildrequires unless they refer to other -# packages that we are building. So filter them on this condition. - -sub is_member_of -{ - my $item = shift; - - foreach (@_) { - return 1 if $item eq $_; - } - 0; -} - -sub dependency_in -{ - my $dep = shift; # eg. dbus-devel - - while ($dep) { - return $dep if is_member_of ($dep, @_); - my $newdep = $dep; - $newdep =~ s/-\w+$//; # eg. dbus-devel -> dbus - last if $newdep eq $dep; - $dep = $newdep; - } - 0; -} - -foreach my $name (keys %srpms) { - my @buildrequires = @{$srpms{$name}->{buildrequires}}; - @buildrequires = - grep { $_ = dependency_in ($_, keys %srpms) } @buildrequires; - $srpms{$name}{buildrequires} = \@buildrequires; -} - -# This function takes a list of package names and sorts them into the -# correct order for building, given the existing %srpms hash -# containing buildrequires. We use the external 'tsort' program. - -sub tsort -{ - my @names = @_; - - my ($fh, $filename) = tempfile (); - - foreach my $name (@names) { - my @buildrequires = @{$srpms{$name}->{buildrequires}}; - foreach (@buildrequires) { - print $fh "$_ $name\n" - } - # Add a self->self dependency. This ensures that any - # packages which don't have or appear as a dependency of - # any other package still get built. - print $fh "$name $name\n" - } - close $fh; - - get_lines "tsort $filename"; -} - -# Sort the initial list of package names. - -my @names = sort keys %srpms; -my @buildorder = tsort (@names); - -# With --chain flag we print the packages in groups for chain building. - -if ($chain) { - my %group = (); - my $name; - - print 'make chain-build CHAIN="'; - - foreach $name (@buildorder) { - my @br = @{$srpms{$name}->{buildrequires}}; - - # If a BR occurs within the current group, then start the next group. - my $occurs = 0; - foreach (@br) { - if (exists $group{$_}) { - $occurs = 1; - last; - } - } - - if ($occurs) { - %group = (); - print ": "; - } - - $group{$name} = 1; - print "$name "; - } - print "\"\n"; - - exit 0 -} - -# With --dryrun flag we just print the packages in build order then exit. - -if ($dryrun) { - foreach (@buildorder) { - print "$_\n"; - } - - exit 0 -} - -# Now we can build each SRPM. - -sub my_mkdir -{ - local $_ = $_[0]; - - if (! -d $_) { - mkdir ($_, 0755) or die "mkdir $_: $!" - } -} - -sub createrepo -{ - my $arch = shift; - my $distro = shift; - - my_mkdir "$localrepo/$distro"; - my_mkdir "$localrepo/$distro/src"; - my_mkdir "$localrepo/$distro/src/SRPMS"; - system ("cd $localrepo/$distro/src && rm -rf repodata && createrepo -q .") == 0 - or die "createrepo failed: $?\n"; - - my_mkdir "$localrepo/$distro/$arch"; - my_mkdir "$localrepo/$distro/$arch/RPMS"; - my_mkdir "$localrepo/$distro/$arch/logs"; - - system ("cd $localrepo/$distro/$arch && rm -rf repodata && createrepo -q --exclude 'logs/*rpm' .") == 0 - or die "createrepo failed: $?\n"; -} - -if (! -d "$localrepo/scratch") { - mkdir "$localrepo/scratch" - or die "mkdir $localrepo/scratch: $!\nIf you haven't set up a local repository yet, you must read the README file.\n"; -} - -system "rm -rf $localrepo/scratch/*"; - -my @errors = (); - -# NB: Need to do the arch/distro in the outer loop to work -# around the caching bug in mock/yum. -foreach my $arch (@arches) { - foreach my $distro (@distros) { - foreach my $name (@buildorder) { - my $version = $srpms{$name}->{version}; - my $release = $srpms{$name}->{release}; - my $srpm_filename = $srpms{$name}->{filename}; - - $release =~ s/\.fc?\d+$//; # "1.fc9" -> "1" - - # Does the built (binary) package exist already? - my $pattern = "$localrepo/$distro/$arch/RPMS/$name-$version-$release.*.rpm"; - #print "pattern = $pattern\n"; - my @binaries = glob $pattern; - - if (@binaries != 0 && $overwrite) { - print "*** overwriting $name-$version-$release $arch $distro ***\n"; - } - - if (@binaries == 0 || $overwrite) - { - # Rebuild the package. - print "*** building $name-$version-$release $arch $distro ***\n"; - - createrepo ($arch, $distro); - - my $scratchdir = "$localrepo/scratch/$name-$distro-$arch"; - mkdir $scratchdir; - - if (system ("mock -r $distro-$arch$suffix --resultdir $scratchdir $srpm_filename") == 0) { - # Build was a success so move the final RPMs into the - # mock repo for next time. - system ("mv $scratchdir/*.src.rpm $localrepo/$distro/src/SRPMS") == 0 or die "mv"; - system ("mv $scratchdir/*.rpm $localrepo/$distro/$arch/RPMS") == 0 or die "mv"; - my_mkdir "$localrepo/$distro/$arch/logs/$name-$version-$release"; - system ("mv $scratchdir/*.log $localrepo/$distro/$arch/logs/$name-$version-$release/") == 0 or die "mv"; - system "rm -rf $scratchdir"; - - createrepo ($arch, $distro); - - } - else { - push @errors, "$name-$distro-$arch$suffix"; - print STDERR "Build failed, return code $?\nLeaving the logs in $scratchdir\n"; - exit 1 unless $keepgoing; - } - } - else - { - print "skipping $name-$version-$release $arch $distro\n"; - } - } - } -} - -if (@errors) { - print "\n\n\nBuild failed for the following packages:\n"; - print " $_\n" foreach @errors; - exit 1 -} - -exit 0 diff --git a/solv.pl b/solv.pl deleted file mode 100755 index 5f525b6..0000000 --- a/solv.pl +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/perl -BEGIN { - my ($wd) = $0 =~ m-(.*)/- ; - $wd ||= '.'; - unshift @INC, "$wd/build"; - unshift @INC, "$wd"; -} - -use BSSolv; - -my $pool = BSSolv::pool->new(); -$pool->createwhatprovides(); - -print $pool;