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 d...@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. _______________________________________________ devel mailing list devel@lists.opencsw.org https://lists.opencsw.org/mailman/listinfo/devel