[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