[Mud-builder-commits] r155 - in trunk: . lib/MUD/Fetch
jaffa at garage.maemo.org
jaffa at garage.maemo.org
Mon Feb 19 12:06:10 EET 2007
Author: jaffa
Date: 2007-02-19 12:06:08 +0200 (Mon, 19 Feb 2007)
New Revision: 155
Modified:
trunk/TODO
trunk/lib/MUD/Fetch/Debian.pm
trunk/lib/MUD/Fetch/Tarball.pm
Log:
Fix dependency tracking in Tarball and Debian (need to do Command.pm and abstract)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2007-02-18 22:53:14 UTC (rev 154)
+++ trunk/TODO 2007-02-19 10:06:08 UTC (rev 155)
@@ -4,6 +4,9 @@
Outstanding tasks:
+ * Try to auto-derive version number from URL, if not in directory
+ * Abstract dependency-building code out of MUD::Fetch::* since it's so
+ common across all.
* Sources.list keeps growing (reported by Kees Jongenburger)
* Auto-derive licence from files.
* Auto-derive description from files/Google.
Modified: trunk/lib/MUD/Fetch/Debian.pm
===================================================================
--- trunk/lib/MUD/Fetch/Debian.pm 2007-02-18 22:53:14 UTC (rev 154)
+++ trunk/lib/MUD/Fetch/Debian.pm 2007-02-19 10:06:08 UTC (rev 155)
@@ -53,7 +53,9 @@
# -- Build from one of MUD, existing binaries or upstream source...
#
if (-f $self->{config}->directory('PACKAGES_DIR') . "/$dep.xml") {
- $build = new MUD::Build( package => $dep );
+ print "[Got existing MUD package for $dep]\n";
+ $build = new MUD::Build( package => $dep,
+ config => $self->{config} );
} else {
system('fakeroot', 'apt-get', '-y', 'install', $dep);
@@ -90,7 +92,7 @@
return unless $self->{deps};
foreach my $dep (values %{ $self->{deps} }) {
- $dep->clean();
+ $dep->clean() if $dep;
}
}
Modified: trunk/lib/MUD/Fetch/Tarball.pm
===================================================================
--- trunk/lib/MUD/Fetch/Tarball.pm 2007-02-18 22:53:14 UTC (rev 154)
+++ trunk/lib/MUD/Fetch/Tarball.pm 2007-02-19 10:06:08 UTC (rev 155)
@@ -39,12 +39,38 @@
}
my @deps = split /\s*,\s*/, ($self->{package}->{data}->{fetch}->{depends} || '');
- foreach my $d (@deps) {
- my $builder = new MUD::Build(package => $d, config => $self->{config});
- $builder->build();
- chdir $builder->{workdir};
- system("fakeroot dpkg -i --force-depends *.deb");
- croak "Unable to install $d [$?]\n" if $?;
+ foreach my $dep (@deps) {
+ my $build;
+
+ # -- Build from one of MUD, existing binaries or upstream source...
+ #
+ if (-f $self->{config}->directory('PACKAGES_DIR') . "/$dep.xml") {
+ $build = new MUD::Build( package => $dep,
+ config => $self->{config} );
+
+ } else {
+ system('fakeroot', 'apt-get', '-y', 'install', $dep);
+ my $dpkg = `dpkg -s $dep 2>/dev/null`;
+ print $dpkg;
+ if ($dpkg !~ /Status: install ok installed/) {
+ print "+++ Status not installed.\n";
+ my $newPkg = new MUD::Package( (%{ $self->{package} }));
+ $newPkg->{package} = $dep;
+ $newPkg->{data}->{fetch}->{name} = $dep;
+ $newPkg->{data}->{deb}->{prefixSection} = 0;
+ $build = new MUD::Build( package => $newPkg,
+ config => $self->{config} );
+ }
+ }
+
+ # -- If we built, install...
+ #
+ if ($build) {
+ $build->build();
+ chdir $build->{workdir};
+ system("fakeroot dpkg -i --force-depends *.deb");
+ croak "Unable to install $dep [$?]\n" if $?;
+ }
}
}
More information about the Mud-builder-commits
mailing list