Hello community, here is the log from the commit of package kiwi for openSUSE:Factory checked in at Wed Mar 16 10:58:08 CET 2011.
-------- --- kiwi/kiwi.changes 2011-03-14 17:56:28.000000000 +0100 +++ /mounts/work_src_done/STABLE/kiwi/kiwi.changes 2011-03-15 18:14:35.000000000 +0100 @@ -1,0 +2,69 @@ +Tue Mar 15 18:06:03 CET 2011 - [email protected] + +- fixed device map cleanup. The cleanup happened to early + because the installBootLoader() code accesses the device + map under certain circumstances but the original device + was already freed. In that case the installBootLoader() + code re-adds the mapping but that could lead to a different + device name compared to the one stored in the device + mapping table + +------------------------------------------------------------------- +Tue Mar 15 16:56:52 CET 2011 - [email protected] + +- prevent the use of File::Path qw(make_path remove_tree) because + it's not compatible to File::Path qw(mkpath rmtree) in older + perl versions + +------------------------------------------------------------------- +Tue Mar 15 11:50:21 CET 2011 - [email protected] + +- fixed race condition in CD device search, missing udevPending +- fixed wrong mountCalled variable setup, the return code of the + mount call was not checked. So even if the mount failed the + variable was set to 'yes' which leads to an umount of the root + filesystem before the root filesystem was activated + +------------------------------------------------------------------- +Tue Mar 15 09:54:36 CET 2011 - [email protected] + +- removed local sle11 repo assigned to 11.4 net|oemboot boot image + description. This was to pull in busybox but I don't want sle + busybox in 11.4 to avoid compatibility problems (bnc #679659) + +------------------------------------------------------------------- +Tue Mar 15 09:46:29 CET 2011 - [email protected] + +- removed busybox from boot image descriptions for 11.4. It's + not distributed with the 11.4 media anymore (bnc #679660) + +------------------------------------------------------------------- +Tue Mar 15 09:38:08 CET 2011 - [email protected] + +- added new consistency check to assure that all credentials + used with any specified "https" repository are the same. Further + the consistency check verifies that the username and password + attributes are always used together. + +------------------------------------------------------------------- +Tue Mar 15 09:36:01 CET 2011 - [email protected] + +- added support for https repositories for zypper with username + and password. Here is an example specification: + + <repository type="rpm-md" username="UNAME" password="PASS"> + <source path="https://..."/> + </repository> + + kiwi now writes a credentials file and takes advantage of + the zypper support for this file. This patch also addresses + the problem that in the current implementation we end up using + the build system zypper configuration file "zypper.conf" + as zypper is called without the "--config" option. + +------------------------------------------------------------------- +Tue Mar 15 09:29:30 CET 2011 - [email protected] + +- DB: update documentation, https support added for zypper + +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.7AYk5I/_old 2011-03-16 10:55:27.000000000 +0100 +++ /var/tmp/diff_new_pack.7AYk5I/_new 2011-03-16 10:55:27.000000000 +0100 @@ -66,7 +66,7 @@ %endif Summary: OpenSuSE - KIWI Image System Version: 4.81 -Release: 1 +Release: 2 Group: System/Management License: GPLv2 Source: %{name}.tar.bz2 ++++++ kiwi-docu.tar.bz2 ++++++ kiwi/kiwi-docu.tar.bz2 /mounts/work_src_done/STABLE/kiwi/kiwi-docu.tar.bz2 differ: char 11, line 1 ++++++ kiwi.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision --- old/kiwi/.revision 2011-03-11 15:47:36.000000000 +0100 +++ new/kiwi/.revision 2011-03-11 15:47:36.000000000 +0100 @@ -1 +1 @@ -ea7388d2a0c22024e9b23763764e63a63df6da1f +2c6b1b34d7616364a657482c9a1db49eeb01a383 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/Makefile new/kiwi/Makefile --- old/kiwi/Makefile 2011-02-21 15:15:25.000000000 +0100 +++ new/kiwi/Makefile 2011-03-15 12:07:25.000000000 +0100 @@ -164,6 +164,7 @@ #-------------------------------------------- tests/unit/cleanup.sh for i in `find tests/unit -name "*.t"`;do \ + echo $$i ;\ perl $$i ;\ done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIBoot.pm new/kiwi/modules/KIWIBoot.pm --- old/kiwi/modules/KIWIBoot.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIBoot.pm 2011-03-15 18:10:36.000000000 +0100 @@ -84,7 +84,7 @@ # create log object if not done #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # check initrd file parameter @@ -2226,13 +2226,6 @@ main::umount(); $kiwi -> done(); #========================================== - # cleanup device maps and part mount - #------------------------------------------ - if ($lvm) { - qxx ("vgchange -an $this->{lvmgroup} 2>&1"); - } - $this -> cleanLoopMaps(); - #========================================== # Install boot loader on disk #------------------------------------------ my $bootdevice = $diskname; @@ -2244,6 +2237,13 @@ return undef; } #========================================== + # cleanup device maps and part mount + #------------------------------------------ + if ($lvm) { + qxx ("vgchange -an $this->{lvmgroup} 2>&1"); + } + $this -> cleanLoopMaps(); + #========================================== # cleanup temp directory #------------------------------------------ qxx ("rm -rf $tmpdir"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWICommandLine.pm new/kiwi/modules/KIWICommandLine.pm --- old/kiwi/modules/KIWICommandLine.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWICommandLine.pm 2011-03-15 12:07:25.000000000 +0100 @@ -49,7 +49,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # Object initialize object member data diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfigure.pm new/kiwi/modules/KIWIConfigure.pm --- old/kiwi/modules/KIWIConfigure.pm 2011-02-21 15:15:26.000000000 +0100 +++ new/kiwi/modules/KIWIConfigure.pm 2011-03-15 12:07:25.000000000 +0100 @@ -49,7 +49,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } if (! defined $xml) { $kiwi -> error ("No XML reference specified"); 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 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIImage.pm 2011-03-15 12:07:25.000000000 +0100 @@ -70,7 +70,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } if (! defined $xml) { $kiwi -> error ("No XML reference specified"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIImageFormat.pm new/kiwi/modules/KIWIImageFormat.pm --- old/kiwi/modules/KIWIImageFormat.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIImageFormat.pm 2011-03-15 12:07:25.000000000 +0100 @@ -57,7 +57,7 @@ my $code; my $data; if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # check image file 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 2011-03-14 17:52:23.000000000 +0100 +++ new/kiwi/modules/KIWILinuxRC.sh 2011-03-15 12:07:25.000000000 +0100 @@ -2804,6 +2804,7 @@ sleep 1 fi count=`expr $count + 1` + udevPending done echo if [ -z "$cddev" ];then @@ -7107,12 +7108,13 @@ # according to the different boot-up situations # ---- #====================================== - # mount boot partition of required + # mount boot partition if required #-------------------------------------- local mountCalled=no - if [ -e "$imageRWDevice" ] && blkid $imageRWDevice;then - kiwiMount $imageRWDevice "/mnt" - mountCalled=yes + if [ -e "$imageBootDevice" ] && blkid $imageBootDevice;then + if kiwiMount $imageBootDevice "/mnt";then + mountCalled=yes + fi fi #====================================== # Change to boot directory @@ -7164,9 +7166,6 @@ umount /mnt fi } - -#FIXME - #====================================== # initialize #-------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWILocator.pm new/kiwi/modules/KIWILocator.pm --- old/kiwi/modules/KIWILocator.pm 2011-02-25 13:03:46.000000000 +0100 +++ new/kiwi/modules/KIWILocator.pm 2011-03-15 12:07:25.000000000 +0100 @@ -50,7 +50,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # Store object data 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 2010-11-19 15:29:38.000000000 +0100 +++ new/kiwi/modules/KIWILog.pm 2011-03-15 18:10:36.000000000 +0100 @@ -106,7 +106,7 @@ my $level = $this->{level}; my $date = $this->{date}; if (! defined $smem) { - if ($this->trace()) { + if (($this->trace()) && ($main::TT)) { $main::BT.=eval { Carp::longmess ($main::TT.$main::TL++) }; } return undef; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIManager.pm new/kiwi/modules/KIWIManager.pm --- old/kiwi/modules/KIWIManager.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIManager.pm 2011-03-15 18:10:36.000000000 +0100 @@ -24,6 +24,7 @@ use File::Basename; use Config::IniFiles; use KIWILog; +use KIWILocator; use KIWIQX; #========================================== @@ -36,11 +37,12 @@ # Exports #------------------------------------------ our %packageManager; -$packageManager{smart} = "/usr/bin/smart"; -$packageManager{zypper} = "/usr/bin/zypper"; -$packageManager{ensconce}= "/usr/bin/ensconce"; -$packageManager{yum} = "/usr/bin/yum"; -$packageManager{default} = "smart"; +my $locator = new KIWILocator(); +$packageManager{smart} = $locator -> getExecPath('smart'); +$packageManager{zypper} = $locator -> getExecPath('zypper'); +$packageManager{ensconce}= $locator -> getExecPath('ensconce'); +$packageManager{yum} = $locator -> getExecPath('yum'); +$packageManager{default} = 'smart'; #========================================== # Constructor @@ -70,7 +72,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } if (! defined $xml) { $kiwi -> error ("Missing XML description pointer"); @@ -91,26 +93,64 @@ if (! defined $manager) { $manager = $packageManager{default}; } + if (defined $targetArch && $manager ne 'zypper') { + $kiwi -> warning ("Target architecture not supported for $manager"); + $kiwi -> skipped (); + } + #========================================== + # Clean out any potential previous data + #------------------------------------------ my $dataDir = "/var/cache/kiwi/$manager"; if (! -d $dataDir) { qxx ("mkdir -p $dataDir"); } - my $zyppConf = "/var/cache/kiwi/zypp.conf.$$"; - qxx ("rm -f /var/cache/kiwi/zypp.conf*"); - qxx ("echo '[main]' > $zyppConf"); - $ENV{ZYPP_CONF} = $zyppConf; - my $zconfig = new Config::IniFiles ( - -file => $zyppConf, -allowedcommentchars => '#' - ); - if (defined $targetArch) { - if ($manager eq "zypper") { + qxx ("rm -rf $dataDir/*"); + my $zyppConf; # Configuration file for libzypp + my $zypperConf; # Configuration file for zypper + my $zconfig; + #========================================== + # Create package manager conf files + #------------------------------------------ + if ($manager eq "zypper") { + $zypperConf = "$dataDir/zypper.conf.$$"; + $zyppConf = "$dataDir/zypp.conf.$$"; + qxx ("echo '[main]' > $zypperConf"); + qxx ("echo '[main]' > $zyppConf"); + $ENV{ZYPP_CONF} = $zyppConf; + # /.../ + # Bug in aria2c causes loss of credentials, thus download will not + # work. Disable aria2c and use curl instead. curl is the default for + # SLES 11 and openSUSE 11.4 + # ---- + $ENV{ZYPP_ARIA2C} = 0; + $zconfig = new Config::IniFiles ( + -file => $zyppConf, -allowedcommentchars => '#' + ); + my ($uname, $pass) = $xml->getHttpsRepositoryCredentials(); + if ($uname) { + $kiwi -> info ('Creating credentials data'); + my $credDir = "$dataDir/credentials.d"; + mkdir $credDir; + $zconfig->newval('main', 'credentials.global.dir', $credDir); + $zconfig->RewriteConfig(); + open my $credFile, '>'. "$credDir/kiwiRepoCredentials"; + if (!$credFile) { + my $msg = 'Unable to open credetials file for write ' + . "in $credDir"; + $kiwi -> error ($msg); + $kiwi -> failed(); + return undef; + } + print $credFile "username=$uname\n"; + print $credFile "password=$pass\n"; + close $credFile; + $kiwi -> done(); + } + if (defined $targetArch) { $kiwi -> info ("Setting target architecture to: $targetArch"); $zconfig->newval('main', 'arch', $targetArch); - $zconfig->RewriteConfig; + $zconfig->RewriteConfig(); $kiwi -> done (); - } else { - $kiwi -> warning ("Target architecture not supported for $manager"); - $kiwi -> skipped (); } } my @channelList = (); @@ -145,7 +185,8 @@ "--no-gpg-checks", "--reposd-dir $dataDir", "--cache-dir $dataDir", - "--raw-cache-dir $dataDir" + "--raw-cache-dir $dataDir", + "--config $zypperConf" ]; $this->{ensconce} = [ $packageManager{ensconce}, @@ -746,6 +787,14 @@ if ($val =~ /^'\//) { $val =~ s/^'(.*)'$/"file:\/\/$1"/ } + if ($val =~ /^'https:/) { + my ($uname, $pass) = $this->{xml} + ->getHttpsRepositoryCredentials(); + if ($uname) { + chop $val; + $val .= "?credentials=kiwiRepoCredentials'"; + } + } push (@zopts,$val); } #========================================== @@ -1152,6 +1201,7 @@ print $fd "export ZYPP_MODALIAS_SYSFS=/tmp\n"; print $fd "export YAST_IS_RUNNING=true\n"; print $fd "export ZYPP_CONF=".$this->{zyppconf}."\n"; + print $fd "export ZYPP_ARIA2C=0\n"; print $fd "@kchroot @zypper install "; print $fd "@installOpts @addonPackages &\n"; print $fd "SPID=\$!;wait \$SPID\n"; @@ -1286,6 +1336,7 @@ print $fd "export ZYPP_MODALIAS_SYSFS=/tmp\n"; print $fd "export YAST_IS_RUNNING=true\n"; print $fd "export ZYPP_CONF=".$this->{zyppconf}."\n"; + print $fd "export ZYPP_ARIA2C=0\n"; print $fd "@kchroot @zypper remove "; print $fd "@installOpts @removePackages || true &\n"; print $fd "SPID=\$!;wait \$SPID\n"; @@ -1444,6 +1495,7 @@ print $fd "export ZYPP_MODALIAS_SYSFS=/tmp\n"; print $fd "export YAST_IS_RUNNING=true\n"; print $fd "export ZYPP_CONF=".$this->{zyppconf}."\n"; + print $fd "export ZYPP_ARIA2C=0\n"; if (defined $delPacks) { my @removePackages = @{$delPacks}; if (@removePackages) { @@ -1896,6 +1948,7 @@ print $fd "export ZYPP_MODALIAS_SYSFS=/tmp\n"; print $fd "export YAST_IS_RUNNING=true\n"; print $fd "export ZYPP_CONF=".$root."/".$this->{zyppconf}."\n"; + print $fd "export ZYPP_ARIA2C=0\n"; if (@newprods) { print $fd "@zypper --root $root install "; print $fd "@installOpts -t product @newprods &\n"; @@ -1961,6 +2014,7 @@ print $fd "export ZYPP_MODALIAS_SYSFS=/tmp\n"; print $fd "export YAST_IS_RUNNING=true\n"; print $fd "export ZYPP_CONF=".$this->{zyppconf}."\n"; + print $fd "export ZYPP_ARIA2C=0\n"; if (@newprods) { print $fd "@kchroot @zypper install "; print $fd "@installOpts -t product @newprods &\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIMigrate.pm new/kiwi/modules/KIWIMigrate.pm --- old/kiwi/modules/KIWIMigrate.pm 2011-01-20 09:19:55.000000000 +0100 +++ new/kiwi/modules/KIWIMigrate.pm 2011-03-15 12:07:25.000000000 +0100 @@ -67,7 +67,7 @@ my $code; my $data; if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } if (! defined $name) { $kiwi -> failed (); 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 2011-03-02 10:57:51.000000000 +0100 +++ new/kiwi/modules/KIWIRoot.pm 2011-03-15 12:07:25.000000000 +0100 @@ -62,7 +62,7 @@ #------------------------------------------ my $code; if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } if (($imageDesc !~ /\//) && (! -d $imageDesc)) { $imageDesc = $main::System."/".$imageDesc; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIRuntimeChecker.pm new/kiwi/modules/KIWIRuntimeChecker.pm --- old/kiwi/modules/KIWIRuntimeChecker.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIRuntimeChecker.pm 2011-03-15 12:07:25.000000000 +0100 @@ -72,7 +72,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } $this->{cmdArgs} = $cmdArgs; $this->{locator} = new KIWILocator($kiwi); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWISharedMem.pm new/kiwi/modules/KIWISharedMem.pm --- old/kiwi/modules/KIWISharedMem.pm 2011-02-25 13:03:46.000000000 +0100 +++ new/kiwi/modules/KIWISharedMem.pm 2011-03-15 12:07:25.000000000 +0100 @@ -50,7 +50,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } my $key = shmget(IPC_PRIVATE, MAXBUF, S_IRWXU); if (! defined $key) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIURL.pm new/kiwi/modules/KIWIURL.pm --- old/kiwi/modules/KIWIURL.pm 2011-02-21 15:15:26.000000000 +0100 +++ new/kiwi/modules/KIWIURL.pm 2011-03-15 12:07:25.000000000 +0100 @@ -50,7 +50,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # Store object data diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIXML.pm new/kiwi/modules/KIWIXML.pm --- old/kiwi/modules/KIWIXML.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIXML.pm 2011-03-15 12:07:26.000000000 +0100 @@ -94,7 +94,7 @@ #------------------------------------------ my $arch = qxx ("uname -m"); chomp $arch; if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # Check pre condition @@ -1789,6 +1789,30 @@ } #========================================== +# getHttpsRepositoryCredentials +#------------------------------------------ +sub getHttpsRepositoryCredentials { + # ... + # If any repository is configered with credentials return the username + # and password + # --- + my $this = shift; + my @repoNodes = $this->{repositNodeList} -> get_nodelist(); + for my $repo (@repoNodes) { + my $uname = $repo -> getAttribute('username'); + my $pass = $repo -> getAttribute('password'); + if ($uname) { + my @sources = $repo -> getElementsByTagName ('source'); + my $path = $sources[0] -> getAttribute('path'); + if ( $path =~ /^https:/) { + return ($uname, $pass); + } + } + } + return undef; +} + +#========================================== # ignoreRepositories #------------------------------------------ sub ignoreRepositories { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIXMLValidator.pm new/kiwi/modules/KIWIXMLValidator.pm --- old/kiwi/modules/KIWIXMLValidator.pm 2011-03-11 15:36:06.000000000 +0100 +++ new/kiwi/modules/KIWIXMLValidator.pm 2011-03-15 12:07:26.000000000 +0100 @@ -56,7 +56,7 @@ # Constructor setup #------------------------------------------ if (! defined $kiwi) { - $kiwi = new KIWILog(); + $kiwi = new KIWILog("tiny"); } #========================================== # Check pre-conditions @@ -305,6 +305,68 @@ } #========================================== +# __checkHttpsCredentialsrConsistent +#------------------------------------------ +sub __checkHttpsCredentialsConsistent { + # ... + # username and password attributes for all repositories configured + # as https: must have the same value. Any repository that has a + # username attribute must also have a password attribute. + # --- + my $this = shift; + my $kiwi = $this -> {kiwi}; + my @repoNodes = $this->{systemTree} -> getElementsByTagName('repository'); + my $uname; + my $passwd; + my $numRep = @repoNodes; + for my $repoNode (@repoNodes) { + my $user = $repoNode -> getAttribute('username'); + my $pass = $repoNode -> getAttribute('password'); + if (! $user && $pass) { + my $msg = 'Specified password without username on repository'; + $kiwi -> error ($msg); + $kiwi -> failed(); + return undef; + } + if ($user && (! $pass)) { + my $msg = 'Specified username without password on repository'; + $kiwi -> error ($msg); + $kiwi -> failed(); + return undef; + } + if ($user && $pass) { + my @sources = $repoNode -> getElementsByTagName ('source'); + my $path = $sources[0] -> getAttribute('path'); + if ($path !~ /^https:/) { + next; + } + if (! $uname) { + $uname = $user; + $passwd = $pass; + next; + } + if ($user ne $uname) { + my $msg = "Specified username, $user, for https repository " + . "does not match previously specified name, $uname. " + . 'All credentials for https repositories must be equal.'; + $kiwi -> error ($msg); + $kiwi -> failed(); + return undef; + } + if ($pass ne $passwd) { + my $msg = "Specified password, $pass, for https repository " + . "does not match previously specified password, $passwd. " + . 'All credentials for https repositories must be equal.'; + $kiwi -> error ($msg); + $kiwi -> failed(); + return undef; + } + } + } + return 1; +} + +#========================================== # __checkPatternTypeAttrConsistent #------------------------------------------ sub __checkPatternTypeAttrConsistent { @@ -755,6 +817,9 @@ if (! $this -> __checkFilesysSpec()) { return undef; } + if (! $this -> __checkHttpsCredentialsConsistent()) { + return undef; + } if (! $this -> __checkPatternTypeAttrUse()) { return undef; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/netboot/suse-11.4/config.xml new/kiwi/system/boot/ix86/netboot/suse-11.4/config.xml --- old/kiwi/system/boot/ix86/netboot/suse-11.4/config.xml 2011-03-14 14:50:38.000000000 +0100 +++ new/kiwi/system/boot/ix86/netboot/suse-11.4/config.xml 2011-03-15 12:07:26.000000000 +0100 @@ -143,9 +143,6 @@ <repository type="yast2" status="replaceable"> <source path="/image/CDs/full-11.4-i386"/> </repository> - <repository type="rpm-dir" status="fixed"> - <source path="/usr/share/kiwi/repo/suse-repo/suse-sle11-repo"/> - </repository> <packages type="image" profiles="std"> <package name="kernel-default"/> </packages> @@ -172,7 +169,6 @@ <package name="psmisc"/> <package name="iputils"/> <package name="atftp"/> - <package name="busybox"/> <package name="bind-libs"/> <package name="bind-utils"/> <package name="dhcpcd"/> @@ -206,7 +202,6 @@ <package name="clicfs"/> <package name="iputils"/> <package name="atftp"/> - <package name="busybox"/> <package name="dhcpcd"/> <package name="file"/> <package name="hwinfo"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/oemboot/suse-11.4/config.xml new/kiwi/system/boot/ix86/oemboot/suse-11.4/config.xml --- old/kiwi/system/boot/ix86/oemboot/suse-11.4/config.xml 2011-03-14 14:50:38.000000000 +0100 +++ new/kiwi/system/boot/ix86/oemboot/suse-11.4/config.xml 2011-03-15 12:07:26.000000000 +0100 @@ -84,9 +84,6 @@ <repository type="yast2" status="replaceable"> <source path="/image/CDs/full-i386"/> </repository> - <repository type="rpm-dir" status="fixed"> - <source path="/usr/share/kiwi/repo/suse-repo/suse-sle11-repo"/> - </repository> <packages type="image" profiles="std"> <package name="kernel-default"/> </packages> @@ -109,7 +106,6 @@ <packages type="image"> <package name="curl"/> <package name="atftp"/> - <package name="busybox"/> <package name="parted"/> <package name="adaptec-firmware"/> <package name="dialog"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_1.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_1.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_1.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_2.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_2.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_2.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_2.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_3.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_3.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_3.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_3.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="someoneelse" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_4.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_4.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_4.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_4.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="itsme" password="another"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_5.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_5.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_5.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_5.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <repository type="rpm-dir" username="another"> + <source path="smb://myshare"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_6.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_6.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_6.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsInvalid_6.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <repository type="rpm-dir" password="another"> + <source path="smb://myshare"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_1.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_1.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_1.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="heythere" password="any"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_2.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_2.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_2.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_2.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_3.xml new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_3.xml --- old/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_3.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/tests/unit/data/xmlValidator/httpsRepoCredentialsValid_3.xml 2011-03-15 12:07:26.000000000 +0100 @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<image schemaversion="4.9" name="suse-11.3-oem-preload"> + <description type="system"> + <author>Robert Schweikert</author> + <contact>[email protected]</contact> + <specification>test missing filesystem attr</specification> + </description> + <preferences> + <type image="oem" filesystem="ext3" boot="oemboot/suse-11.3" installiso="true" installboot="install"> + <oemconfig> + <oem-reboot>true</oem-reboot> + <oem-swap>false</oem-swap> + <oem-unattended>true</oem-unattended> + </oemconfig> + </type> + <version>1.0.0</version> + <packagemanager>zypper</packagemanager> + <rpm-check-signatures>false</rpm-check-signatures> + <rpm-force>true</rpm-force> + <locale>en_US</locale> + <keytable>us.map.gz</keytable> + </preferences> + <users group="root"> + <user pwd="linux" pwdformat="plain" home="/root" name="root"/> + </users> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Updates/sle-11-x86_64"/> + </repository> + <repository type="rpm-md" username="itsme" password="heythere"> + <source path="https://nu.novell.com/repo/$RCE/SLES11-SP1-Pool/sle-11-x86_64"/> + </repository> + <repository type="rpm-dir" username="someoneelse" password="another"> + <source path="smb://myshare"/> + </repository> + <packages type="image" patternType="plusRecommended"> + <package name="bootsplash-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="gfxboot-branding-openSUSE" bootinclude="true" bootdelete="true"/> + <package name="kernel-default"/> + <package name="vi"/> + <opensusePattern name="default"/> + </packages> + <packages type="bootstrap"> + <package name="filesystem"/> + <package name="glibc-locale"/> + </packages> +</image> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/lib/Test/xmlValidator.pm new/kiwi/tests/unit/lib/Test/xmlValidator.pm --- old/kiwi/tests/unit/lib/Test/xmlValidator.pm 2011-03-11 15:36:07.000000000 +0100 +++ new/kiwi/tests/unit/lib/Test/xmlValidator.pm 2011-03-15 12:07:26.000000000 +0100 @@ -296,6 +296,52 @@ } #========================================== +# test_httpsRepoCredentials +#------------------------------------------ +sub test_httpsRepoCredentials { + # ... + # Test proper enforcement of the credential rules for repositories. + # Repositories with username attribute must have password attribute and + # vice versa + # All https repositories must have the same credentials. + # --- + my $this = shift; + my @invalidConfigs = $this -> __getInvalidFiles('httpsRepoCredentials'); + my $expectedMsg; + for my $iConfFile (@invalidConfigs) { + my $validator = $this -> __getValidator($iConfFile); + $validator -> validate(); + my $kiwi = $this -> {kiwi}; + my $msg = $kiwi -> getMessage(); + if ($iConfFile =~ /httpsRepoCredentialsInvalid_1|5.xml/) { + $expectedMsg = 'Specified username without password on repository'; + + } elsif ($iConfFile =~ /httpsRepoCredentialsInvalid_2|6.xml/) { + $expectedMsg = 'Specified password without username on repository'; + } elsif ($iConfFile =~ /httpsRepoCredentialsInvalid_3.xml/) { + $expectedMsg = 'Specified username, someoneelse, for https ' + . 'repository does not match previously specified name, itsme. ' + . 'All credentials for https repositories must be equal.'; + } elsif ($iConfFile =~ /httpsRepoCredentialsInvalid_4.xml/) { + $expectedMsg = 'Specified password, another, for https repository ' + . 'does not match previously specified password, heythere. All ' + . 'credentials for https repositories must be equal.'; + } else { + $expectedMsg = 'Should not get here.'; + } + $this -> assert_str_equals($expectedMsg, $msg); + my $msgT = $kiwi -> getMessageType(); + $this -> assert_str_equals('error', $msgT); + my $state = $kiwi -> getState(); + $this -> assert_str_equals('failed', $state); + # Test this condition last to get potential error messages + $this -> assert_not_null($validator); + } + my @validConfigs = $this -> __getValidFiles('httpsRepoCredentials'); + $this -> __verifyValid(@validConfigs); +} + +#========================================== # test_missingFilesysAttr #------------------------------------------ sub test_missingFilesysAttr { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
