[csw-devel] SF.net SVN: opencsw:[660] buildfarm/cleanbuild/dobuild

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Fri Mar 15 09:30:00 CET 2013


Revision: 660
          http://sourceforge.net/p/opencsw/code/660
Author:   dmichelsen
Date:     2013-03-15 08:29:59 +0000 (Fri, 15 Mar 2013)
Log Message:
-----------
cleanbuild: One more step

Modified Paths:
--------------
    buildfarm/cleanbuild/dobuild

Modified: buildfarm/cleanbuild/dobuild
===================================================================
--- buildfarm/cleanbuild/dobuild	2013-02-28 08:41:01 UTC (rev 659)
+++ buildfarm/cleanbuild/dobuild	2013-03-15 08:29:59 UTC (rev 660)
@@ -2,6 +2,7 @@
 
 use strict;
 use warnings;
+use Data::Dumper;
 
 my $target = shift @ARGV;
 
@@ -20,6 +21,7 @@
   $catalog{$p} = $l;
 }
 close $C;
+#print Dumper( %catalog );
 
 my $gardir = $catalog{$target};
 
@@ -27,11 +29,16 @@
   die "The package $target is not in GAR";
 }
 
-if( 0 ) {
+print "Building $target from $gardir\n";
+
+if( 1 ) {
+  print "Halting zone\n";
 system( qw(/usr/sbin/zoneadm -z cswbuild halt) );
 
+  print "Uninstalling zone\n";
 system( qw(/usr/sbin/zoneadm -z cswbuild uninstall -F) );
 
+  print "Cloning zone\n";
 system( qw(/usr/sbin/zoneadm -z cswbuild clone cswproto) );
 
 open S, ">/zones/cswbuild/root/etc/sysidcfg";
@@ -60,8 +67,10 @@
 # Bootstrap ssh host key, otherwise these will be generated on each new zone clone
 system( "cp ssh-proto/* /zones/cswbuild/root/etc/ssh/" );
 
+  print "Booting zone\n";
 system( qw(/usr/sbin/zoneadm -z cswbuild boot) );
 
+
 }
 
 {
@@ -71,18 +80,47 @@
   do {
     print '.';
     sleep( 1 );
-    chomp( $n = `ssh cswbuild\@cswbuild uname -n 2>/dev/null` );
+    chomp( $n = `ping cswbuild 1 >/dev/null 2>&1 && ssh cswbuild\@cswbuild uname -n 2>/dev/null` );
   } while( $n ne "cswbuild" );
+  print "\n";
 }
 
-foreach my $p (sort keys %desc) {
-  next if( !$p );
-  print "$p\t";
-  print join( ",", @{$desc{$p}} ), "\t";
+system( "cp nsswitch.conf /zones/cswbuild/root/etc/" );
+system( "cp resolv.conf /zones/cswbuild/root/etc/" );
+
+#foreach my $p (sort keys %desc) {
+#  next if( !$p );
+#  print "$p\t";
+#  print join( ",", @{$desc{$p}} ), "\t";
 #  if( !$catalog{$p} ) {
 #    print "NOTINGAR\n";
 #    next;
 #  }
-  my @deps = split( /\s+/, `ssh cswbuild\@cswbuild "if [ -d opencsw/$p ]; then cd opencsw/$p; mgar build-dep-pkgs; else echo DIRVANISHED-opencsw/$p; fi"` );
-  print join(",", @deps ), "\n";
+
+  # 
+#  my @deps = split( /\s+/, `ssh cswbuild\@cswbuild "if [ -d opencsw/$p ]; then cd opencsw/$p; mgar build-dep-pkgs; else echo DIRVANISHED-opencsw/$p; fi"` );
+#  print join(",", @deps ), "\n";
+#}
+
+my @deps = split( /\s+/, `ssh cswbuild\@cswbuild "if [ -d opencsw/$gardir ]; then cd opencsw/$gardir; mgar build-dep-pkgs; else echo DIRVANISHED; fi"` );
+
+if( $deps[0] =~ /DIRVANISHED/ ) {
+  print "The GAR directory $gardir is not there, terminating.\n";
+  exit( 1 );
 }
+
+print "\n--- Installing build dependencies ", join(",", @deps ), " ---\n\n";
+print( "Executing " . 'ssh cswbuild\@cswbuild "sudo pkgutil -y -i ' . join( ' ', @deps ), "\n" );
+system( 'ssh cswbuild\@cswbuild "sudo pkgutil -y -i ' . join( ' ', @deps ) );
+
+print "\n--- Configuring system ---\n\n";
+
+system( 'ssh cswbuild\@cswbuild "git config --global user.email dam at opencsw.org"' );
+system( 'ssh cswbuild\@cswbuild "git config --global user.name Dagobert\ Michelsen"' );
+
+print "\n--- Building ---\n\n";
+system( "ssh cswbuild\@cswbuild 'cd opencsw/$gardir; mgar package'" );
+
+# put package into newly built catalog area
+# rebuild catalog
+# add package to catalog database for further checkpkg runs

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list