Hello community, here is the log from the commit of package kiwi checked in at Tue Sep 25 21:11:38 CEST 2007. -------- --- arch/i386/kiwi/kiwi.changes 2007-09-21 15:46:03.000000000 +0200 +++ /mounts/work_src_done/STABLE/STABLE/kiwi/kiwi.changes 2007-09-25 20:31:26.958153000 +0200 @@ -1,0 +2,39 @@ +Tue Sep 25 16:48:45 CEST 2007 - ms@suse.de + +- fixed ftp:// pattern requests (#328003) +- really fixed call of config-cdroot.sh if relative path is used +- added better error information for pattern downloads + +------------------------------------------------------------------- +Tue Sep 25 15:51:05 CEST 2007 - ms@suse.de + +- fixed build for x86_64 +- fixed call of config-cdroot.sh if relative path is used + +------------------------------------------------------------------- +Tue Sep 25 12:13:07 CEST 2007 - ms@suse.de + +- fixed spec file architecture build requirements +- fixed missing copy call of config-cdroot.sh + +------------------------------------------------------------------- +Mon Sep 24 11:06:10 CEST 2007 - ms@suse.de + +- fixed documentation typos (#327668) +- added config-cdroot.sh to be called if existent. The script is called + with access to the image environment and within the CD root directory. + The call takes place outside of a chroot because the CD root has no + accessable root tree with bash or other programs available (#327799) +- added better failed message if loop mount has failed +- added posbios as allowed tool in initrd +- allow tool parameter to suseStripInitrd() function to + prevent the given tools from being deleted +- added experimental jabber client to kiwi, which can be + configured in $HOME/.kiwirc + my $JabberServer = "server-name" + my $JabberUserName = "user-name" + my $JabberPassword = "password" + my $JabberRessource = "ressource-name" + my $JabberComponent = "component-name" + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.y26112/_old 2007-09-25 21:11:21.000000000 +0200 +++ /var/tmp/diff_new_pack.y26112/_new 2007-09-25 21:11:21.000000000 +0200 @@ -12,11 +12,14 @@ Name: kiwi Url: http://kiwi.berlios.de -BuildRequires: module-init-tools perl perl-XML-LibXML perl-libwww-perl screen smart syslinux -Requires: perl perl-XML-LibXML perl-libwww-perl screen coreutils +BuildRequires: module-init-tools perl perl-Net-Jabber perl-XML-LibXML perl-libwww-perl screen smart +%ifarch %ix86 x86_64 +BuildRequires: syslinux +%endif +Requires: perl perl-XML-LibXML perl-libwww-perl screen coreutils perl-Net-Jabber Summary: OpenSuSE - KIWI Image System Version: 1.64 -Release: 18 +Release: 21 Group: System/Management License: GPL v2 or later Source: kiwi.tar.bz2 @@ -26,7 +29,7 @@ %description The OpenSuSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for -virtualisation systems like Xen. +virtualization systems like Xen. @@ -326,6 +329,33 @@ %doc %{_datadir}/kiwi/image/oemboot/README %{_datadir}/kiwi/image/oemboot/suse* %changelog +* Tue Sep 25 2007 - ms@suse.de +- fixed ftp:// pattern requests (#328003) +- really fixed call of config-cdroot.sh if relative path is used +- added better error information for pattern downloads +* Tue Sep 25 2007 - ms@suse.de +- fixed build for x86_64 +- fixed call of config-cdroot.sh if relative path is used +* Tue Sep 25 2007 - ms@suse.de +- fixed spec file architecture build requirements +- fixed missing copy call of config-cdroot.sh +* Mon Sep 24 2007 - ms@suse.de +- fixed documentation typos (#327668) +- added config-cdroot.sh to be called if existent. The script is called + with access to the image environment and within the CD root directory. + The call takes place outside of a chroot because the CD root has no + accessable root tree with bash or other programs available (#327799) +- added better failed message if loop mount has failed +- added posbios as allowed tool in initrd +- allow tool parameter to suseStripInitrd() function to + prevent the given tools from being deleted +- added experimental jabber client to kiwi, which can be + configured in $HOME/.kiwirc + my $JabberServer = "server-name" + my $JabberUserName = "user-name" + my $JabberPassword = "password" + my $JabberRessource = "ressource-name" + my $JabberComponent = "component-name" * Fri Sep 21 2007 - ms@suse.de - pass allong $@ to init process (#327037) - fixed remote download of pattern files (#327096) ++++++ kiwi.tar.bz2 ++++++ Files old/kiwi/doc/kiwi.pdf and new/kiwi/doc/kiwi.pdf differ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWIConfig.sh new/kiwi/modules/KIWIConfig.sh --- old/kiwi/modules/KIWIConfig.sh 2007-09-20 17:37:50.000000000 +0200 +++ new/kiwi/modules/KIWIConfig.sh 2007-09-24 11:23:11.000000000 +0200 @@ -320,8 +320,9 @@ usleep parted mke2fs pvcreate vgcreate lvm resize2fs ln hdparm dmesg splash fbmngplay portmap start-statd sm-notify rpc.statd rpc.idmapd nbd-client mount.nfs mount.nfs4 eject - blockdev + blockdev posbios " + tools="$tools $1" for path in /sbin /usr/sbin /usr/bin /bin;do baseStripTools "$path" "$tools" done diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWIImage.pm new/kiwi/modules/KIWIImage.pm --- old/kiwi/modules/KIWIImage.pm 2007-09-20 17:37:50.000000000 +0200 +++ new/kiwi/modules/KIWIImage.pm 2007-09-25 19:17:43.000000000 +0200 @@ -805,20 +805,54 @@ #========================================== # Check for optional config-cdroot archive #------------------------------------------ - $kiwi -> info ("Integrating CD root information..."); my $cdrootData = $imageTree."/image/config-cdroot.tgz"; if (-f $cdrootData) { + $kiwi -> info ("Integrating CD root information..."); my $data = qx ( tar -C $main::RootTree/CD -xvf $cdrootData ); my $code = $? >> 8; if ($code != 0) { $kiwi -> failed (); $kiwi -> error ("Failed to integrate CD root data: $data"); $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + qx (rm -rf $imageTreeReadOnly); + } + return undef; + } + $kiwi -> done(); + } + #========================================== + # Check for optional config-cdroot.sh + #------------------------------------------ + $cdrootData = $imageTree."/image/config-cdroot.sh"; + if (-x $cdrootData) { + $kiwi -> info ("Calling CD root setup script..."); + my $pwd = qx (pwd); chomp $pwd; + my $cdrootEnv = $imageTree."/.profile"; + if ($cdrootEnv !~ /^\//) { + $cdrootEnv = $pwd."/".$cdrootEnv; + } + if ($cdrootData !~ /^\//) { + $cdrootData = $pwd."/".$cdrootData; + } + my $CCD = "$main::RootTree/CD"; + my $data = qx (cd $CCD && bash -c '. $cdrootEnv && . $cdrootData' 2>&1); + my $code = $? >> 8; + if ($code != 0) { + chomp $data; + $kiwi -> failed (); + $kiwi -> error ("Failed to call CD root script: $data"); + $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + qx (rm -rf $imageTreeReadOnly); + } return undef; } $kiwi -> done(); - } else { - $kiwi -> skipped(); } #========================================== # Installing second stage images @@ -873,6 +907,10 @@ $kiwi -> failed (); $kiwi -> error ("Copy failed: $data"); $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + } return undef; } $kiwi -> done (); @@ -894,6 +932,10 @@ $kiwi -> failed (); $kiwi -> error ("Copy failed: $data"); $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + } return undef; } $kiwi -> done (); @@ -912,6 +954,10 @@ if (! open (FD,">$main::RootTree/CD/config.isoclient")) { $kiwi -> error ("Couldn't create image boot configuration"); $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + } return undef; } print FD "IMAGE=/dev/ram1;$namecd\n"; @@ -931,6 +977,10 @@ $kiwi -> failed (); $kiwi -> error ("Failed to create ISO image: $data"); $kiwi -> failed (); + if (! -d $main::RootTree.$baseSystem) { + qx (rm -rf $main::RootTree); + qx (rm -rf $tmpdir); + } return undef; } if (! -d $main::RootTree.$baseSystem) { @@ -1645,6 +1695,7 @@ #========================================== # Calculate needed space #------------------------------------------ + $this -> cleanKernelFSMount(); my ($mbytesreal,$mbytes,$xmlsize) = $this -> getSize ($imageTree); if (! defined $quiet) { $kiwi -> info ("Image requires $mbytesreal MB, got $xmlsize MB"); @@ -1668,12 +1719,13 @@ # mount logical extend for data transfer #------------------------------------------ mkdir "$imageDest/mnt-$$"; - my $data = qx (mount $opts -oloop $imageDest/$name $imageDest/mnt-$$); + my $data = qx (mount $opts -oloop $imageDest/$name $imageDest/mnt-$$ 2>&1); my $code = $? >> 8; if ($code != 0) { - $kiwi -> error ("Couldn't mount image"); + chomp $data; + $kiwi -> error ("Image loop mount failed:"); $kiwi -> failed (); - $kiwi -> error ($data); + $kiwi -> error ("mount: $imageDest/$name -> $imageDest/mnt-$$: $data"); return undef; } return "$imageDest/mnt-$$"; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWILinuxRC.sh new/kiwi/modules/KIWILinuxRC.sh --- old/kiwi/modules/KIWILinuxRC.sh 2007-09-21 14:31:27.000000000 +0200 +++ new/kiwi/modules/KIWILinuxRC.sh 2007-09-25 20:26:40.000000000 +0200 @@ -1163,7 +1163,7 @@ then Echo "Checking filesystem for RW data on $rwDevice..." e2fsck -y -f $rwDevice >/dev/null 2>&1 - if ! mount $rwDevice $rwDir >/dev/null 2>&1;then + if test "$RELOAD_IMAGE" = "yes" || ! mount $rwDevice $rwDir >/dev/null 2>&1;then Echo "Creating filesystem for RW data on $rwDevice..." if ! mke2fs $rwDevice >/dev/null 2>&1;then Echo "Failed to create ext2 filesystem" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWILog.pm new/kiwi/modules/KIWILog.pm --- old/kiwi/modules/KIWILog.pm 2007-09-17 10:51:13.000000000 +0200 +++ new/kiwi/modules/KIWILog.pm 2007-09-24 17:54:16.000000000 +0200 @@ -19,6 +19,7 @@ # Modules #------------------------------------------ use strict; +use Net::Jabber qw(Client); use Carp qw (cluck); #========================================== @@ -43,6 +44,95 @@ $this->{channel} = \*STDOUT; $this->{errorOk} = 0; $this->{state} = "O"; + #============================================ + # kiwirc jabber data + #-------------------------------------------- + my $jstatus = 1; + if ( ! -f $main::ConfigFile ) { + $jstatus = 0; + } + #============================================ + # set local jabber variables + #-------------------------------------------- + my $JabberServer; # configurable jabber server + my $JabberPort; # configurable jabber port + my $JabberUserName; # configurable jabber user name + my $JabberPassword; # configurable jabber password + my $JabberRessource; # configurable jabber ressource + my $JabberComponent; # configurable jabber component + if (! defined $JabberPort) { + $JabberPort = 5223; + } + #============================================ + # Read $HOME/.kiwirc and setup jabber if ok + #-------------------------------------------- + if (($jstatus) && (! do $main::ConfigFile)) { + $this -> warning ("Invalid $main::ConfigFile file..."); + $this -> skipped (); + $jstatus = 0; + } + if (($jstatus) && + ((! defined $JabberServer) || (! defined $JabberUserName) || + (! defined $JabberPassword) || (! defined $JabberRessource) || + (! defined $JabberComponent)) + ) { + #$this -> warning ("Jabber setup skipped: Missing login data"); + #$this -> skipped (); + $jstatus = 0; + } + my $jclient; + my $jstatus; + my @jresult; + if ($jstatus) { + $this -> info ("Connecting to Jabber server: $JabberServer"); + $jclient = new Net::Jabber::Client; + $jstatus = $jclient -> Connect ( + hostname => $JabberServer, + port => $JabberPort + ); + if (! defined $jstatus) { + $this -> failed (); + $this -> error ("Server is not answering: $!"); + $this -> skipped (); + } else { + $this -> done(); + $this -> info ("Login to Jabber server: $JabberUserName"); + @jresult = $jclient -> AuthSend ( + username => $JabberUserName, + password => $JabberPassword, + resource => $JabberRessource + ); + if ($jresult[0] ne "ok") { + $this -> error ("Failed: $jresult[0] $jresult[1]"); + $this -> skipped (); + } else { + $this -> done (); + } + } + } + #========================================== + # Store object data + #------------------------------------------ + $this->{jcomponent}= $JabberComponent; + $this->{jclient} = $jclient; + return $this; +} + +#========================================== +# sendJabberMessage +#------------------------------------------ +sub sendJabberMessage { + my $this = shift; + my $message = shift; + my $jclient = $this->{jclient}; + my $jcomponent = $this->{jcomponent}; + if (defined $jclient) { + $jclient -> MessageSend ( + to => $jcomponent, + body => $message + ); + $jclient->Process(); + } return $this; } @@ -297,16 +387,22 @@ $this -> setOutputChannel(); if (($lglevel == 1) || ($lglevel == 2) || ($lglevel == 3)) { print $needcr,$date,$logdata; + $this -> sendJabberMessage ("$needcr,$date,$logdata"); if ($this->{errorOk}) { print EFD $needcr,$date,$logdata; } } elsif ($lglevel == 5) { print $needcr,$logdata; + $this -> sendJabberMessage ("$needcr,$logdata"); if ($this->{errorOk}) { print EFD $needcr,$logdata; } } else { - cluck $needcr,$date,$logdata; + print Carp::longmess("$needcr,$logdata"); + $this -> sendJabberMessage ("$needcr,$logdata"); + if ($this->{errorOk}) { + print EFD Carp::longmess("$needcr,$logdata"); + } } $this -> resetOutputChannel(); return $lglevel; @@ -451,7 +547,12 @@ # Destructor #------------------------------------------ sub DESTROY { + my $this = shift; + my $jclient = $this->{jclient}; close EFD; + if (defined $jclient) { + $jclient -> Disconnect(); + } } 1; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWIPattern.pm new/kiwi/modules/KIWIPattern.pm --- old/kiwi/modules/KIWIPattern.pm 2007-09-21 15:41:33.000000000 +0200 +++ new/kiwi/modules/KIWIPattern.pm 2007-09-25 20:13:55.000000000 +0200 @@ -116,6 +116,7 @@ my $content; foreach my $pat (@pattern) { my $result; + my @errors; my $printinfo = 0; if (! defined $this->{cache}{$pat}) { $printinfo = 1; @@ -124,11 +125,16 @@ $kiwi -> info ("$this->{infomessage}: $pat"); } foreach my $url (@urllist) { - $result .= $this -> downloadPattern ( $url,$pat ); + my @load = $this -> downloadPattern ( $url,$pat ); + $result .= $load[0]; push (@errors,$load[1]); } if (! $result) { if ($printinfo) { $kiwi -> failed (); + foreach my $error (@errors) { + $kiwi -> error ($error); + $kiwi -> failed (); + } } return (); } @@ -155,11 +161,19 @@ return $this->{cache}{$pattern}; } if ($url =~ /^\//) { + #========================================== + # local pattern check + #------------------------------------------ my $path = "$url//suse/setup/descr"; my @file = bsd_glob ("$path/$pattern-*.$arch.pat"); if (! @file) { @file = bsd_glob ("$path/$pattern-*.$arch.pat.gz"); } + if (! @file) { + return (undef, + "Couldn't find pat by glob: \<$path/$pattern-*.$arch.pat\>" + ); + } foreach my $file (@file) { # / FIXME / # The glob match will include the -32bit patterns in any @@ -167,16 +181,19 @@ # --- if ($file =~ /\.gz$/) { if (! open (FD,"cat $file | gzip -cd|")) { - return undef; + return (undef,"Couldn't uncompress pattern: $file: $!"); } } else { if (! open (FD,$file)) { - return undef; + return (undef,"Couldn't open pattern: $file: $!"); } } local $/; $content .= <FD>; close FD; } } else { + #========================================== + # remote pattern check + #------------------------------------------ my $urlHandler = new KIWIURL ($kiwi); my $publics_url = $url; my $highlvl_url = $urlHandler -> openSUSEpath ($publics_url); @@ -188,21 +205,25 @@ my $request = HTTP::Request->new (GET => $location); my $response = $browser -> request ( $request ); my $title = $response -> title (); - $content = $response -> content (); + $content = $response -> content (); if ((! defined $title) || ($title =~ /not found/i)) { $location = $publics_url."/suse/setup/descr"; $request = HTTP::Request->new (GET => $location); $response = $browser -> request ( $request ); $title = $response -> title (); $content = $response -> content (); - if ((! defined $title) || ($title =~ /not found/i)) { - return undef; + if ($title =~ /not found/i) { + return (undef,"Page not found: $location"); } } + #========================================== + # check for http pages first... + #------------------------------------------ my $pzip = 0; + my $perr = 0; if ($content !~ /\"($pattern-.*$arch\.pat)\"/) { if ($content !~ /\"($pattern-.*$arch\.pat\.gz)\"/) { - return undef; + $perr = 1; } else { $location = $location."/".$1; $pzip = 1; @@ -210,25 +231,51 @@ } else { $location = $location."/".$1; } + #========================================== + # check for ftp pages next... + #------------------------------------------ + if ($perr) { + my @plines = split (/\n/,$content); + foreach my $line (@plines) { + if ($line =~ / ($pattern-.*$arch\.pat\.gz)/) { + $location = $location."/".$1; + $pzip = 1; $perr = 0; + last; + } + if ($line =~ / ($pattern-.*$arch\.pat)/) { + $location = $location."/".$1; + $pzip = 0; $perr = 0; + last; + } + } + } + if ($perr) { + return (undef, + "Couldn't find pat by regexp: /$pattern-.*$arch\.pat/" + ); + } + #========================================== + # finally get the pattern + #------------------------------------------ $request = HTTP::Request->new (GET => $location); $response = $browser -> request ( $request ); $content = $response -> content (); if ($pzip) { my $tmpdir = qx ( mktemp -q -d /tmp/kiwipattern.XXXXXX ); - chomp $tmpdir; my $result = $? >> 8; + chomp $tmpdir; if ($result != 0) { - return undef; + return (undef,"Couldn't create tmpdir: $!"); } if (! open (FD,">$tmpdir/pattern")) { rmdir ($tmpdir); - return undef; + return (undef,"Couldn't create: $tmpdir/pattern: $!"); } print FD $content; close FD; if (! open (FD,"cat $tmpdir/pattern | gzip -cd|")) { unlink ($tmpdir."/pattern"); rmdir ($tmpdir); - return undef; + return (undef,"Couldn't uncompress pattern: $!"); } local $/; $content .= <FD>; close FD; unlink ($tmpdir."/pattern"); @@ -236,7 +283,7 @@ } } $this->{cache}{$pattern} = $content; - return $content; + return ($content,$this); } #========================================== diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/modules/KIWIRoot.pm new/kiwi/modules/KIWIRoot.pm --- old/kiwi/modules/KIWIRoot.pm 2007-09-19 18:46:00.000000000 +0200 +++ new/kiwi/modules/KIWIRoot.pm 2007-09-25 13:31:27.000000000 +0200 @@ -548,6 +548,7 @@ qx ( cp $imageDesc/config.xml $root/image 2>&1 ); qx ( cp $imageDesc/images.sh $root/image 2>&1 ); qx ( cp $imageDesc/config-cdroot.tgz $root/image 2>&1 ); + qx ( cp $imageDesc/config-cdroot.sh $root/image 2>&1 ); if (open (FD,">$root/image/main::Prepare")) { if ($imageDesc !~ /^\//) { my $pwd = qx ( pwd ); chomp $pwd; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/kiwi/.revision new/kiwi/.revision --- old/kiwi/.revision 2007-09-21 15:45:41.000000000 +0200 +++ new/kiwi/.revision 2007-09-25 20:31:19.000000000 +0200 @@ -1 +1 @@ -638 \ No newline at end of file +647 \ No newline at end of file ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de