![](https://seccdn.libravatar.org/avatar/af22e20b6884acbc89be6d7736c43e92.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package autoyast2 checked in at Tue Oct 17 09:58:48 CEST 2006. -------- --- autoyast2/autoyast2.changes 2006-10-12 14:47:36.000000000 +0200 +++ /mounts/work_src_done/STABLE/autoyast2/autoyast2.changes 2006-10-17 09:58:09.000000000 +0200 @@ -1,0 +2,17 @@ +Tue Oct 17 09:27:03 CEST 2006 - ug@suse.de + +- autoyast2-utils dropped + (use inst-source-utils instead) +- 2.14.10 + +------------------------------------------------------------------- +Mon Oct 16 14:38:27 CEST 2006 - ug@suse.de + +- Signature checks turned off in UI + +------------------------------------------------------------------- +Fri Oct 13 16:48:34 CEST 2006 - ug@suse.de + +- dropped some useless code in autopart.ycp + +------------------------------------------------------------------- Old: ---- autoyast2-2.14.9.tar.bz2 New: ---- autoyast2-2.14.10.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ autoyast2.spec ++++++ --- /var/tmp/diff_new_pack.UgXhxk/_old 2006-10-17 09:58:41.000000000 +0200 +++ /var/tmp/diff_new_pack.UgXhxk/_new 2006-10-17 09:58:41.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package autoyast2 (Version 2.14.9) +# spec file for package autoyast2 (Version 2.14.10) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -12,12 +12,12 @@ Name: autoyast2 URL: http://www.suse.de/~ug -Version: 2.14.9 +Version: 2.14.10 Release: 1 License: GPL Group: System/YaST BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: autoyast2-2.14.9.tar.bz2 +Source0: autoyast2-2.14.10.tar.bz2 prefix: /usr BuildRequires: docbook-xsl-stylesheets fop java2-devel-packages libxslt perl-XML-Writer pkg-config sgml-skel update-desktop-files xorg-x11-libs yast2-bootloader yast2-devtools yast2-mouse yast2-testsuite yast2-transfer yast2-update Requires: yast2-core yast2-xml libxslt @@ -49,7 +49,7 @@ Anas Nashif %package installation -Version: 2.14.9 +Version: 2.14.10 Release: 1 Summary: YaST2 - Auto Installation Modules Group: System/YaST @@ -69,25 +69,8 @@ Uwe Gansert <ug@suse.de> Anas Nashif -%package utils -Version: 2.14.9 -Release: 1 -Summary: YaST2 - Auto Installation Utilities -Group: System/YaST -Requires: mkisofs - -%description utils -Utilities supporting autoinstallation and creation of customized -package sources. - - - -Authors: --------- - Uwe Gansert <ug@suse.de> - %prep -%setup -n autoyast2-2.14.9 +%setup -n autoyast2-2.14.10 %build %{prefix}/bin/y2tool y2autoconf @@ -228,12 +211,15 @@ %dir /var/lib/autoinstall %dir /var/lib/autoinstall/autoconf -%files utils -%defattr(-,root,root) -/usr/bin/create_package_descr -/usr/bin/create_update_source.sh - %changelog -n autoyast2 +* Tue Oct 17 2006 - ug@suse.de +- autoyast2-utils dropped + (use inst-source-utils instead) +- 2.14.10 +* Mon Oct 16 2006 - ug@suse.de +- Signature checks turned off in UI +* Fri Oct 13 2006 - ug@suse.de +- dropped some useless code in autopart.ycp * Thu Oct 12 2006 - ug@suse.de - 2.14.9 * Wed Oct 11 2006 - ug@suse.de ++++++ autoyast2-2.14.9.tar.bz2 -> autoyast2-2.14.10.tar.bz2 ++++++ ++++ 1636 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/VERSION new/autoyast2-2.14.10/VERSION --- old/autoyast2-2.14.9/VERSION 2006-10-12 14:41:33.000000000 +0200 +++ new/autoyast2-2.14.10/VERSION 2006-10-17 09:27:37.000000000 +0200 @@ -1 +1 @@ -2.14.9 +2.14.10 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/configure.in new/autoyast2-2.14.10/configure.in --- old/autoyast2-2.14.9/configure.in 2006-10-12 14:42:35.000000000 +0200 +++ new/autoyast2-2.14.10/configure.in 2006-10-17 09:27:45.000000000 +0200 @@ -3,7 +3,7 @@ dnl -- This file is generated by y2autoconf 2.13.18 - DO NOT EDIT! -- dnl (edit configure.in.in instead) -AC_INIT(autoyast2, 2.14.9, http://bugs.opensuse.org/, autoyast2) +AC_INIT(autoyast2, 2.14.10, http://bugs.opensuse.org/, autoyast2) dnl Check for presence of file 'RPMNAME' AC_CONFIG_SRCDIR([RPMNAME]) @@ -17,7 +17,7 @@ AM_INIT_AUTOMAKE(tar-ustar) dnl searches for some needed programs dnl Important YaST2 variables -VERSION="2.14.9" +VERSION="2.14.10" RPMNAME="autoyast2" MAINTAINER="Uwe Gansert <ug@suse.de>" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/scripts/Makefile.am new/autoyast2-2.14.10/scripts/Makefile.am --- old/autoyast2-2.14.9/scripts/Makefile.am 2005-11-09 16:28:42.000000000 +0100 +++ new/autoyast2-2.14.10/scripts/Makefile.am 2006-10-16 16:22:03.000000000 +0200 @@ -2,9 +2,6 @@ # Makefile.am for installation/scripts # startdir = ${sysconfdir}/init.d -bin_SCRIPTS = \ - create_package_descr \ - create_update_source.sh start_SCRIPTS = autoyast diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/scripts/create_package_descr new/autoyast2-2.14.10/scripts/create_package_descr --- old/autoyast2-2.14.9/scripts/create_package_descr 2006-04-19 15:37:20.000000000 +0200 +++ new/autoyast2-2.14.10/scripts/create_package_descr 1970-01-01 01:00:00.000000000 +0100 @@ -1,720 +0,0 @@ -#!/usr/bin/perl - -use File::stat; -use FileHandle; -use strict 'refs'; -#use RPMQ; # FIXME: a local copy of RPM.pm is here. - -sub filter_weak { - my ($r, $tn, $tf) = @_; - my @tf = @{$r->{$tf} || []}; - my @res; - for (@{$r->{$tn}}) { - push @res, $_ unless (shift @tf) & 0x8000000; - } - return @res; -} - -sub filter_strong { - my ($r, $tn, $tf) = @_; - my @tf = @{$r->{$tf} || []}; - my @res; - for (@{$r->{$tn}}) { - push @res, $_ if (shift @tf) & 0x8000000; - } - return @res; -} - -local (@DATADIRS,@LANGUAGES,%SEEN_PACKAGE,%IGNORE_PACKAGE); -my %lang_alias = ("czech"=>"cs","english"=>"en","french"=>"fr","german"=>"de","italian"=>"it","spanish"=>"es","hungarian"=>"hu" ); -my %tag_short = ("description"=>"Des","notice"=>"Ins","delnotice"=>"Del"); -my $ignored_packages = ""; -my $ignore_sources = "0"; -my $ignore_symlinks = "0"; -my $prefer_yastdescr = "0"; -my $add_licenses = "0"; -my $do_checksums = "0"; - -while ( $arg = shift ( @ARGV ) ) { - if ( $arg eq "-d" ) { push @DATADIRS , shift @ARGV ; } - elsif ( $arg eq "-l" ) { push @LANGUAGES , shift @ARGV ; } - elsif ( $arg eq "-p" ) { $pdb_data_dir = shift @ARGV ; } - elsif ( $arg eq "-x" ) { $extra_provides = shift @ARGV ; } - elsif ( $arg eq "-i" ) { $ignore_dir = shift @ARGV ; } - elsif ( $arg eq "-I" ) { $ignore_file = shift @ARGV ; } - elsif ( $arg eq "-o" ) { $output_dir = shift @ARGV ; } - elsif ( $arg eq "-Z" ) { $add_licenses = "1" ; } - elsif ( $arg eq "-S" ) { $ignore_sources = "1"; } - elsif ( $arg eq "-P" ) { $prefer_yastdescr = "1"; } - elsif ( $arg eq "-L" ) { $ignore_symlinks = "1"; } - elsif ( $arg eq "-C" ) { $do_checksums = "1"; } - else { - print "usage: create_package_descr\n"; - print " [-d DATADIR1 [-d DATADIR2 [... ] ] ] (default cwd)\n"; - print " [-p PDB_DATA_DIR ]\n"; - print " [-x EXTRA_PROV_FILE ]\n"; - print " [-i IGNORE_DIR ] [-I IGNORE_FILE ]\n"; - print " [-l LANG1 [-l LANG2 [... ] ] (default english)\n"; - print " [-o OUTPUT_DIR ] (default cwd/setup/descr)\n"; - print " [-Z ] (add_licenses)\n"; - print " [-S ] (ignore_sources)\n"; - print " [-P ] (prefer_yastdescr)\n"; - print " [-L ] (ignore_symlinks)\n"; - print " [-C ] (do_checksums)\n"; - die ("unknown parameter\n"); - } -} - -if ( $ignore_symlinks eq "1" ) { - $with_links = "-type f"; -} else { - $with_links = ""; -} - -push @DATADIRS , "." unless ( @DATADIRS ); -push @LANGUAGES , "english" unless ( @LANGUAGES ); -$output_dir = "./setup/descr/" unless ( $output_dir ); - -print "\n\nusing settings:\n"; -print "datadirs: ".join(",",@DATADIRS)."\n"; -print "languages: ".join(",",@LANGUAGES)."\n"; -print "output dir: $output_dir\n"; -if ( -d $pdb_data_dir ) { - print "pdb data: $pdb_data_dir\n"; -} else { - print "$pdb_data_dir is not a directory: ignoring\n"; - $pdb_data_dir = ""; -} - -unless ( -d $output_dir ) { - print "creating output directory $output_dir\n"; - mkdir_p($output_dir); -} - -if ( $extra_provides ) { - if ( -f $extra_provides ) { - print "extra_provides: $extra_provides\n"; - %xprovlist = %{ReadFileToHash( $extra_provides )}; - } else { - print "extra_provides: file $extra_provides not found!\n"; - } -} else { - print "extra_provides: not specified\n"; - print "WARNING: this means all provides like /bin/sh will be missing\n"; -} - -if ( $ignore_dir ) { - if ( -d $ignore_dir && opendir ( IGNDIR, "$ignore_dir") ) { - while ( $ign = readdir( IGNDIR ) ) { - next if ( $ign =~ /^\./ ); - $IGNORE_PACKAGE{$ign} = "yes"; - } - closedir ( IGNDIR ); - print "ignoring packages listed in dir $ignore_dir\n"; - } -} - -if ( $ignore_file ) { - if ( -f $ignore_file && open ( IGNFILE, "$ignore_file" ) ) { - while ( $ign = <IGNFILE> ) { - chomp ( $ign ); - $IGNORE_PACKAGE{$ign} = "yes"; - } - close ( IGNFILE ); - print "ignoring packages listed in file $ignore_file\n"; - } -} - -if ( $ignore_sources eq "1" ) { - print "WARNING: ignoring all source packages\n"; -} - -$pkg_main = OpenFileWrite ( "$output_dir/packages" ); -WriteSEntry( $pkg_main, "Ver", "2.0" ); -foreach $lang (@LANGUAGES) { - $pkg_lang{$lang} = OpenFileWrite ( "$output_dir/packages.$lang_alias{$lang}" ); - WriteSEntry( $pkg_lang{$lang}, "Ver", "2.0" ); -} -$pkg_du = OpenFileWrite ( "$output_dir/packages.DU" ); - -WriteSEntry( $pkg_du, "Ver", "2.0" ); - -$media_number = 0; -$dotcounter = 0; -$allcounter = 0; -foreach $datapath (@DATADIRS) { - $media_number++; - open ( FIND, "find $datapath $with_links -maxdepth 2 -name \"*.[rs]pm\" -print | sort |" ); - my @pkg_arr = (); - my @src_arr = (); - while ( <FIND> ) { - chomp ( $_ ); - if ( /\.spm$/ || /src\.rpm$/ ) { - push @src_arr, $_; - } else { - push @pkg_arr, $_; - } - } - close ( FIND ); - foreach my $package (@pkg_arr,@src_arr) { - #print "found $package\n"; - $dotcounter++; - $allcounter++; - if ( $dotcounter == 10 ) { - print "."; - $dotcounter = 0; - } - $filespec = $package; - chomp ( $filespec ); - $filespec =~ /\/([^\/]*)$/; - $filename = $1; - $filesize = stat($filespec)->size; - # name, version, release, arch, obsolete, requires, provides, - # conflicts, copyright, group, buildtime, size, sourcerpm - my %res = RPM::rpmq_many($package, 1000, 1001, 1002, 1022, - 1090, 1114, 1115, - 1047, 1112, 1113, - 1049, 1048, 1050, - 1054, 1053, 1055, - 1156, 1157, 1158, - 1159, 1160, 1161, - 1027, 1116, 1117, 1118, 1030, 1028, 1095, 1096, - 1014, 1016, 1006, 1009, 1044, 1004, 1005); - - my @depexcl = $res{1054}; - my @prereq = rpmq_add_req_flagsvers(\%res, 1049, 1048, 1050); # requires - RPM::rpmq_add_flagsvers(\%res, 1047, 1112, 1113); # provides - RPM::rpmq_add_flagsvers(\%res, 1090, 1114, 1115); # obsoletes - RPM::rpmq_add_flagsvers(\%res, 1054, 1053, 1055); # conflicts - RPM::rpmq_add_flagsvers(\%res, 1156, 1158, 1157); # suggests - RPM::rpmq_add_flagsvers(\%res, 1159, 1161, 1160); # enhances - $rpm_name = $res{1000}[0]; - if ( $IGNORE_PACKAGE{$rpm_name} && $IGNORE_PACKAGE{$rpm_name} eq "yes" ) { - $ignored_packages .= " $rpm_name"; - next; - } - my $checksum = ""; - my $dummy = ""; - ($checksum,$dummy) = split('\s+',`sha1sum $package`) if ($do_checksums eq "1"); - $srcrpm = $res{1044}[0]; - $srcrpm =~ s/^(.*)-([^-]*)-([^-]*)\.([^\.]*)\.rpm$/$1 $2 $3 $4/; - if ( $res{1044}[0] ) { - @DULIST = RpmToDulist(\%res, ''); - $file_arch = $res{1022}[0]; - } else { - next if ( $ignore_sources eq "1" ); - # has no source, so it is a source - if ( $filename =~ /\.spm$/ ) { - $file_arch = "src"; - } else { - $file_arch = $filename; - $file_arch =~ s/^.*\.([^\.]*)\.rpm$/$1/; - } - @DULIST = RpmToDulist(\%res, 'usr/src/packages/'); - } - if ( $xprovlist{"$rpm_name.$file_arch"} ) { - foreach $xprov (split('\s', $xprovlist{"$rpm_name.$file_arch"} )) { - push (@{$res{1047}},$xprov); - } - } - # should be else if, but merging both is needed right now - if ( $xprovlist{$rpm_name} ) { - foreach $xprov (split('\s', $xprovlist{$rpm_name} )) { - push (@{$res{1047}},$xprov); - } - } - - WriteSeparator( $pkg_main ); - WriteSEntry( $pkg_main, "Pkg", "$res{1000}[0] $res{1001}[0] $res{1002}[0] $file_arch"); - WriteSEntry( $pkg_main, "Cks", "SHA1 $checksum") if ($checksum); - if ( $res{1044}[0] ) { - # has src, so it's a binary package - WriteMEntry( $pkg_main, "Req", @{$res{1049}} ); - WriteMEntry( $pkg_main, "Prq", @prereq ); - WriteMEntry( $pkg_main, "Prv", @{$res{1047}} ); - WriteMEntry( $pkg_main, "Con", @{$res{1054}} ); - WriteMEntry( $pkg_main, "Obs", @{$res{1090}} ); - WriteMEntry( $pkg_main, "Rec", filter_strong(\%res, 1156, 1158)); - WriteMEntry( $pkg_main, "Sug", filter_weak(\%res, 1156, 1158)); - WriteMEntry( $pkg_main, "Sup", filter_strong(\%res, 1159, 1161)); - WriteMEntry( $pkg_main, "Enh", filter_weak(\%res, 1159, 1161)); - WriteSEntry( $pkg_main, "Grp", $res{1016}[0] ); - WriteSEntry( $pkg_main, "Lic", $res{1014}[0] ); - WriteSEntry( $pkg_main, "Src", $srcrpm ); - WriteSEntry( $pkg_main, "Tim", $res{1006}[0] ); - WriteSEntry( $pkg_main, "Loc", "$media_number $filename"); - } else { - WriteSEntry( $pkg_main, "Loc", "$media_number $filename $file_arch"); - } - WriteSEntry( $pkg_main, "Siz", "$filesize $res{1009}[0]" ); - - if ( $SEEN_PACKAGE{"$rpm_name $res{1001}[0] $res{1002}[0]"} ) { - $found_in = $SEEN_PACKAGE{"$rpm_name $res{1001}[0] $res{1002}[0]"}; - WriteSEntry( $pkg_main, "Shr", "$res{1000}[0] $res{1001}[0] $res{1002}[0] $found_in"); - } else { - if ( $pdb_data_dir ) { - my $pac_rpm_name = $rpm_name; - $pac_rpm_name =~ s/-debuginfo//; - $pac_rpm_name =~ s/-kmp-[^-]*$/-KMP/; - delete $INC{"$pdb_data_dir/$pac_rpm_name.pl"}; - if ( -f "$pdb_data_dir/$pac_rpm_name.pl") { - require "$pdb_data_dir/$pac_rpm_name.pl"; - } else { - # no pdb data for this package, use rpm summary - print "no pdb data for $pac_rpm_name found\n"; - $pacdata{$pac_rpm_name}{'english'}{"label"} = "$res{1004}[0]"; - } - if ( $pacdata{$pac_rpm_name}{'english'}{"label"} =~ /\n/ ) { - warn ("newline in summary for package $pac_rpm_name\n"); - $pacdata{$pac_rpm_name}{'english'}{"label"} =~ s/\n/ /g; - } - WriteMEntry( $pkg_main, "Aut", @{$pacdata{$pac_rpm_name}{"authorname"}} ); - foreach $lang (@LANGUAGES) { - WriteSeparator( $pkg_lang{$lang} ); - WriteSEntry( $pkg_lang{$lang}, "Pkg", "$res{1000}[0] $res{1001}[0] $res{1002}[0] $file_arch"); - if ( $pacdata{$pac_rpm_name}{$lang}{"label"} ) { - if ( $pacdata{$pac_rpm_name}{$lang}{"label"} =~ /\n/ ) { - warn ("newline in $lang summary for package $pac_rpm_name\n"); - $pacdata{$pac_rpm_name}{$lang}{"label"} =~ s/\n/ /g; - } - WriteSEntry( $pkg_lang{$lang}, "Sum", $pacdata{$pac_rpm_name}{$lang}{"label"} ); - } else { - WriteSEntry( $pkg_lang{$lang}, "Sum", $pacdata{$pac_rpm_name}{'english'}{"label"} ); - } - if ( $prefer_yastdescr eq "1" ) { - foreach $tag (keys (%tag_short)) { - if ( $pacdata{$pac_rpm_name}{$lang}{$tag._yast} ) { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{$lang}{$tag._yast}}); - } elsif ( $pacdata{$pac_rpm_name}{$lang}{$tag} ) { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{$lang}{$tag}}); - } elsif ( $pacdata{$pac_rpm_name}{'english'}{$tag._yast} ) { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{'english'}{$tag._yast}}); - } else { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{'english'}{$tag}}); - } - } - if ( $add_licenses eq "1" ) { - if ( $pacdata{$pac_rpm_name}{$lang}{'confirmlic_yast'} ) { - WriteMEntry( $pkg_lang{$lang}, "Eul", @{$pacdata{$pac_rpm_name}{$lang}{'confirmlic_yast'}}); - } elsif ( $pacdata{$pac_rpm_name}{'english'}{'confirmlic_yast'} ) { - WriteMEntry( $pkg_lang{$lang}, "Eul", @{$pacdata{$pac_rpm_name}{'english'}{'confirmlic_yast'}}); - } - } - } else { - foreach $tag (keys (%tag_short)) { - if ( $pacdata{$pac_rpm_name}{$lang}{$tag} ) { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{$lang}{$tag}}); - } else { - WriteMEntry( $pkg_lang{$lang}, $tag_short{$tag}, @{$pacdata{$pac_rpm_name}{'english'}{$tag}}); - } - } - } - } - } else { - foreach $lang (@LANGUAGES) { - WriteSeparator( $pkg_lang{$lang} ); - WriteSEntry( $pkg_lang{$lang}, "Pkg", "$res{1000}[0] $res{1001}[0] $res{1002}[0] $file_arch"); - WriteSEntry( $pkg_lang{$lang}, "Sum", "$res{1004}[0]" ); - WriteMEntry( $pkg_lang{$lang}, "Des", split('\n', $res{1005}[0] )); - } - } - } - WriteSeparator( $pkg_du ); - WriteSEntry( $pkg_du, "Pkg", "$res{1000}[0] $res{1001}[0] $res{1002}[0] $file_arch"); - WriteMEntry( $pkg_du, "Dir", @DULIST ); - $SEEN_PACKAGE{"$rpm_name $res{1001}[0] $res{1002}[0]"} = $file_arch unless $SEEN_PACKAGE{"$rpm_name $res{1001}[0] $res{1002}[0]"}; - } -} -print " done\nprocessed $allcounter packages\n"; -if ( $ignored_packages ) { - print "following packages were ignored: $ignored_packages\n"; -} - -close ( $pkg_main ); -foreach $lang (@LANGUAGES) { - close ( $pkg_lang{$lang} ); -} -close ( $pkg_du ); - -print "now recoding to UTF-8: "; -foreach $file ("packages","packages.DU") { - print "$file "; - system ( "recode ISO-8859-1...UTF-8 $output_dir/$file" ); -} -foreach $lang (@LANGUAGES) { - $file = "packages.$lang_alias{$lang}"; - print "$file "; - if ( $lang eq "czech" || $lang eq "hungarian" ) { - system ( "recode ISO-8859-2...UTF-8 $output_dir/$file" ); - } else { - system ( "recode ISO-8859-1...UTF-8 $output_dir/$file" ); - } -} -print "\n"; - -##################################################################### -##################################################################### - -sub mkdir_p { - my $dir = shift; - - return 1 if -d $dir; - if ($dir =~ /^(.*)\//) { - mkdir_p($1) || return undef; - } - return undef if !mkdir($dir, 0777); - return 1; -} - -sub OpenFileWrite { - my $filename = shift; - my ($FH) = new FileHandle; - open ($FH, ">$filename") || die "ERROR: can't write output file $filename"; - return $FH; -} - -sub OpenFileRead { - my $filename = shift; - my ($FH) = new FileHandle; - open ($FH, "<$filename") || die "ERROR: can't read input file $filename"; - return $FH; -} - -sub ReadFileToHash { - local ($filename) = @_; - local (%temp); - my $FH = OpenFileRead( $filename ); - while (<$FH>) { - chomp ($_); - last if ( $_ =~ /^:END/ ); - next if ( $_ =~ /^\#/ ); - next if ( $_ =~ /^\s$/ ); - local ($le,$ri) = split (/:/, $_, 2 ); - $le =~ s/^\s*(.*)\s*$/$1/; - $ri =~ s/^\s*(.*)\s*$/$1/; - $temp{$le}=$ri; - } - close ($FH); - \%temp; -} - -sub WriteSeparator { - my ($FH) = shift; - print $FH "##----------------------------------------\n"; -} - -sub WriteSEntry { - my ($FH,$tag,$value) = @_; - if ( $value ) { print $FH "=$tag: $value\n"; } -} - -sub WriteMEntry { - my ($FH,$tag,@value) = @_; - if ( @value && $value[0] ) { - print $FH "+$tag:\n"; - print $FH join("\n", @value)."\n"; - print $FH "-$tag:\n"; - } -} - -sub rpmq_add_req_flagsvers { - my $res = shift; - my $name = shift; - my $flags = shift; - my $vers = shift; - my @prereq = (); - return unless $res; - my @flags = @{$res->{$flags} || []}; - my @vers = @{$res->{$vers} || []}; - for (@{$res->{$name}}) { - if (@flags && ($flags[0] & 0xe) && @vers) { - $_ .= ' '; - $_ .= '<' if $flags[0] & 2; - $_ .= '>' if $flags[0] & 4; - $_ .= '=' if $flags[0] & 8; - $_ .= " $vers[0]"; - } - if ( $flags[0] & 64 ) { - push ( @prereq, $_ ); - } - shift @flags; - shift @vers; - } - return @prereq; -} - -sub RpmToDulist { - my $res = shift; - my $prefix = shift; - - if (!$res->{1027}) { - my @newfl = (); - my @di = @{$res->{1116} || []}; - for (@{$res->{1117} || []}) { - my $di = shift @di; - push @newfl, $res->{1118}->[$di] . $_; - } - $res->{1027} = [ @newfl ]; - } - my @modes = @{$res->{1030} || []}; - my @devs = @{$res->{1095} || []}; - my @inos = @{$res->{1096} || []}; - my @names = @{$res->{1027} || []}; - my @sizes = @{$res->{1028} || []}; - my %seen = (); - my %dirnum = (); - my %subdirnum = (); - my %dirsize = (); - my %subdirsize = (); - my ($name, $first); - for $name (@names) { - my $mode = shift @modes; - my $dev = shift @devs; - my $ino = shift @inos; - my $size = shift @sizes; - # check if regular file - next if ($mode & 0170000) != 0100000; - next if $seen{"$dev $ino"}; - $seen{"$dev $ino"} = 1; - $name =~ s/^\///; - $name = "$prefix$name"; - $first = 1; - $size = int ($size / 1024) + 1; - while ($name ne '') { - $name = '' unless $name =~ s/\/[^\/]*$//; - if ($first) { - $dirsize{"$name/"} += $size; - $dirnum{"$name/"} += 1; - $subdirsize{"$name/"} ||= 0; # so we get all keys - } else { - $subdirsize{"$name/"} += $size; - $subdirnum{"$name/"} += 1; - } - $first = 0; - } - } - my @dulist = (); - for $name (sort keys %subdirsize) { - next unless $dirsize{$name} || $subdirsize{$name}; - $dirsize{$name} ||= 0; - $subdirsize{$name} ||= 0; - $dirnum{$name} ||= 0; - $subdirnum{$name} ||= 0; - push @dulist, "$name $dirsize{$name} $subdirsize{$name} $dirnum{$name} $subdirnum{$name}"; - } - return @dulist; -} - -#sub RpmToDulist { -# local ($filename,$prefix) = @_; -# local (%dirsize, %subdirsize, %dirnum, %subdirnum, @dulist); -# local (%seen_node); -# open ( FILES, "rpm -qp --qf '[%{FILEMODES:perms} %{FILESIZES} %{FILEDEVICES} %{FILEINODES} %{FILENAMES}\n]' $filename |") || die "cant open infile $filename"; -# -# while (<FILES>) { -# # rights is not used, but start of $_ in the if below -# ($rights , $size, $f_dev, $f_node, $name ) = split( ' ', $_ ); -# $size = int ( $size / 1024 ) + 1; -# if ( $rights =~ /^\-/ ) { -# next if ( $seen_node{"$f_dev $f_node"} ); -# $seen_node{"$f_dev $f_node"} = "yes"; -# $name = $prefix.$name; -# @path = split ( '/', $name ); -# pop ( @path ); -# $rpath = join('/',@path) ; -# $dirsize{$rpath} += $size; -# $dirnum{$rpath} += 1; -# $subdirsize{$rpath} += 0; -# $subdirnum{$rpath} += 0; -# while (pop(@path)) { -# $rpath = join('/',@path) ; -# $subdirsize{$rpath} += $size; -# $subdirnum{$rpath} += 1; -# } -# } -# } -# close (FILES); -# -# foreach $dir ( sort ( keys (%subdirsize) ) ) { -# if ( $dirsize{$dir} || $subdirsize{$dir} ) { -# $prdir = $dir; -# $prdir =~ s/^\///; -# $curline = "$prdir/ "; -# $curline .= $dirsize{$dir} ? "$dirsize{$dir} " : "0 "; -# $curline .= $subdirsize{$dir} ? "$subdirsize{$dir} " : "0 "; -# $curline .= $dirnum{$dir} ? "$dirnum{$dir} " : "0 "; -# $curline .= $subdirnum{$dir} ? "$subdirnum{$dir} " : "0 "; -# push @dulist, $curline; -# } -# } -# return @dulist; -#} - -####################### copied from RPM.pm by mls ################################# -package RPM; - -sub rpmpq { - my $rpm = shift; - local *RPM; - - return undef unless open(RPM, "< $rpm"); - my $head; - if (sysread(RPM, $head, 75) < 11) { - close RPM; - return undef; - } - close RPM; - return unpack('@10Z65', $head); -} - -sub rpmq { - my $rpm = shift; - my $stag = shift; - - my %ret = rpmq_many($rpm, $stag); - return @{$ret{0+$stag} || [undef]}; -} - -sub rpmq_many { - my $rpm = shift; - my @stags = @_; - - my %stags = map {0+$_ => 1} @stags; - - my ($magic, $sigtype, $headmagic, $cnt, $cntdata, $lead, $head, $index, $data, $tag, $type, $offset, $count); - - local *RPM; - return () unless open(RPM, "<$rpm"); - if (read(RPM, $lead, 96) != 96) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - - ($magic, $sigtype) = unpack('N@78n', $lead); - if ($magic != 0xedabeedb || $sigtype != 5) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - - if (read(RPM, $head, 16) != 16) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); - if ($headmagic != 0x8eade801) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - if (read(RPM, $index, $cnt * 16) != $cnt * 16) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - $cntdata = ($cntdata + 7) & ~7; - if (read(RPM, $data, $cntdata) != $cntdata) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - - if (read(RPM, $head, 16) != 16) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - ($headmagic, $cnt, $cntdata) = unpack('N@8NN', $head); - if ($headmagic != 0x8eade801) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - if (read(RPM, $index, $cnt * 16) != $cnt * 16) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - if (read(RPM, $data, $cntdata) != $cntdata) { - warn("Bad rpm $rpm\n"); - close RPM; - return (); - } - close RPM; - - my %res = (); - while($cnt-- > 0) { - ($tag, $type, $offset, $count, $index) = unpack('N4a*', $index); - $tag = 0+$tag; - if ($stags{$tag}) { - eval { - if ($type == 0) { - $res{$tag} = [ '' ]; - } elsif ($type == 1) { - $res{$tag} = [ unpack("\@${offset}c$count", $data) ]; - } elsif ($type == 2) { - $res{$tag} = [ unpack("\@${offset}c$count", $data) ]; - } elsif ($type == 3) { - $res{$tag} = [ unpack("\@${offset}n$count", $data) ]; - } elsif ($type == 4) { - $res{$tag} = [ unpack("\@${offset}N$count", $data) ]; - } elsif ($type == 5) { - $res{$tag} = [ undef ]; - } elsif ($type == 6) { - $res{$tag} = [ unpack("\@${offset}Z*", $data) ]; - } elsif ($type == 7) { - $res{$tag} = [ unpack("\@${offset}a$count", $data) ]; - } elsif ($type == 8 || $type == 9) { - my $d = unpack("\@${offset}a*", $data); - my @res = split("\0", $d, $count + 1); - $res{$tag} = [ splice @res, 0, $count ]; - } else { - $res{$tag} = [ undef ]; - } - }; - if ($@) { - warn("Bad rpm $rpm: $@\n"); - return (); - } - } - } - return %res; -} - -sub rpmq_add_flagsvers { - my $res = shift; - my $name = shift; - my $flags = shift; - my $vers = shift; - - return unless $res; - my @flags = @{$res->{$flags} || []}; - my @vers = @{$res->{$vers} || []}; - for (@{$res->{$name}}) { - if (@flags && ($flags[0] & 0xe) && @vers) { - $_ .= ' '; - $_ .= '<' if $flags[0] & 2; - $_ .= '>' if $flags[0] & 4; - $_ .= '=' if $flags[0] & 8; - $_ .= " $vers[0]"; - } - shift @flags; - shift @vers; - } -} - -sub rpmq_provreq { - my $rpm = shift; - - my @prov = (); - my @req = (); - my $r; - my %res = rpmq_many($rpm, 1047, 1049, 1048, 1050, 1112, 1113); - rpmq_add_flagsvers(\%res, 1047, 1112, 1113); - rpmq_add_flagsvers(\%res, 1049, 1048, 1050); - return $res{1047}, $res{1049}; -} - -1; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/scripts/create_update_source.sh new/autoyast2-2.14.10/scripts/create_update_source.sh --- old/autoyast2-2.14.9/scripts/create_update_source.sh 2006-04-20 17:23:41.000000000 +0200 +++ new/autoyast2-2.14.10/scripts/create_update_source.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,205 +0,0 @@ -#!/bin/sh -# -# This script creates an additional source in an existing tree to accomodate -# update packages without changing the original product tree. -# The script will only create the directory structure and the needed meta files. -# -# After running this script, you have to copy the packages into -# -# <source>/updates/suse/<arch> -# -# and run the script -# -# /usr/bin/create_package_descr -x setup/descr/EXTRA_PROV \ -# -# in the data directory (<source>/updates/suse) -# after that do "cd setup/descr" and then: -# for i in *; do echo -n "META SHA1 "; sha1sum $i|awk '{ORS=""; print $1}'; echo -n " "; basename $i; done -# copy the output to the end of the updates/content file -# -# -# Anas Nashif -# Uwe Gansert (uwe.gansert@suse.de) -# -# Version 20060420 (uwe.gansert@suse.de) -# - suppress META SHA1 lines in the content file -# -# Version 20060418 (uwe.gansert@suse.de) -# - added support for add-on products of SLES10/SL10.1 -# -# Version 20051207 (uwe.gansert@suse.de) -# - added missing $SOURCE for the copy of the EXTRA_PROV file -# thanx to Ian Grant -# - -SOURCE=$1 -ECHO="" -UPDATES="$SOURCE/updates" -NAME="Updates" - -tmpcontent=`mktemp /var/tmp/content-XXXXXX` - -if [ -z "$SOURCE" ]; then - echo - echo "Argument missing, Provide the root of the installation source as" - echo "the first argument" - echo - exit 1 -fi - -echo "Creating $UPDATES.." -if test -d $UPDATES ; then - echo - echo "$UPDATES already exists, aborting"; - echo - exit 1 -fi - -function create_dy() { - - test -d $1 || return; - - for i in `ls $1` ; do - case $i in - *directory.yast) - continue - ;; - esac - if test -d "$1/$i" ; then - echo "$i/" - else - echo "$i" - fi - done > $1/directory.yast -} - - - - -if [ -f $SOURCE/content ] ; then - while read KEY VALUE ; do - case $KEY in - DATADIR) - DATADIR=$VALUE - echo $KEY $VALUE - ;; - PRODUCT) - echo $KEY $VALUE $NAME - ;; - DESCRDIR) - DESCRDIR=$VALUE - echo $KEY $VALUE - ;; - DISTPRODUCT) - DISTPRODUCT=$VALUE - echo "$KEY SuSE-Linux-Updates" - ;; - DISTVERSION) - DISTVERSION=$VALUE - ;; - META) - if ! [[ "$VALUE" =~ "SHA1" ]]; then - echo $KEY $VALUE - fi; - ;; - ARCH.*) - if test -z "$ARCH"; then - ARCH=$VALUE - fi - echo $KEY $VALUE - ;; - *) - echo $KEY $VALUE - esac - done < $SOURCE/content > $tmpcontent - - - DISTVERSION=`echo $DISTVERSION | tr '-' '#'` - DISTIDENT="$DISTPRODUCT-$DISTVERSION" - for i in $SOURCE/media.? ; do - test -d $i || continue - { - read VENDOR - read CREATIONDATE - } < $i/media - done -fi - - -$ECHO mkdir -p $UPDATES/$DATADIR -$ECHO mkdir -p $UPDATES/media.1 -for arch in $ARCH; do - $ECHO mkdir -p $UPDATES/$DATADIR/$arch -done - -$ECHO mkdir -p $UPDATES/$DESCRDIR - -if [ -f "$SOURCE/$DESCRDIR/EXTRA_PROV" ]; then - $ECHO cp $SOURCE/$DESCRDIR/EXTRA_PROV $UPDATES/$DESCRDIR -else - echo "$DESCRDIR/EXTRA_PROV not found, trying to find it elsewhere..." - find -name EXTRA_PROV -exec cp {} $UPDATES/$DESCRDIR \; -fi - - -$ECHO mkdir -p $UPDATES/media.1 -{ - echo "SuSE Linux AG" - date +%Y%m%d%H%M%S - echo 1 -} > $UPDATES/media.1/media - -{ - echo "/ $DISTPRODUCT-$NAME" -} > $UPDATES/media.1/products - -if [ -x /usr/bin/create_package_descr ]; then - create_package_descr -x $UPDATES/$DESCRDIR/EXTRA_PROV -d $UPDATES/$DATADIR \ - -o $UPDATES/$DESCRDIR -fi - -( - cd $UPDATES - create_dy . - for j in boot boot/loader $DESCRDIR media.1 ; do - create_dy $j - done - if [ -d $DESCRDIR/../slide ] ; then - for j in `find $DESCRDIR/../slide -type d ` ; do - create_dy $j - done - fi -) - - -mkdir -p $SOURCE/yast - - -updates=`basename $UPDATES` -if [ -f "$SOURCE/yast/order" ]; then - if grep -q $updates $SOURCE/yast/order ; then - echo - echo "order/instorder already in place, not touching them" - echo - else - CREATE_ORDER=1 - fi -else - CREATE_ORDER=1 -fi - - -if [ "$CREATE_ORDER" = 1 ]; then - echo "/$updates /$updates" >> $SOURCE/yast/order - echo "/" >> $SOURCE/yast/order - echo "/$updates" >> $SOURCE/yast/instorder - echo "/" >> $SOURCE/yast/instorder -fi - - -cp $tmpcontent $UPDATES/content -chmod a+r $UPDATES/content -rm -f $tmpcontent - - - diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/src/clients/autoyast.ycp new/autoyast2-2.14.10/src/clients/autoyast.ycp --- old/autoyast2-2.14.9/src/clients/autoyast.ycp 2006-05-12 14:51:27.000000000 +0200 +++ new/autoyast2-2.14.10/src/clients/autoyast.ycp 2006-10-16 14:39:00.000000000 +0200 @@ -3,7 +3,7 @@ * Summary: Main file for client call * Authors: Anas Nashif <nashif@suse.de> * - * $Id: autoyast.ycp 30888 2006-05-12 12:51:24Z ug $ + * $Id: autoyast.ycp 33426 2006-10-16 12:38:58Z ug $ */ { textdomain "autoinst"; @@ -32,6 +32,11 @@ return `abort; } + Pkg::CallbackImportGpgKey("AutoInstall::callbackTrue"); + Pkg::CallbackAcceptUnknownGpgKey("AutoInstall::callbackTrue"); + Pkg::CallbackAcceptFileWithoutChecksum("AutoInstall::callbackTrue"); + Pkg::CallbackAcceptUnsignedFile("AutoInstall::callbackTrue"); + symbol ret = (symbol)AutoSequence (); AddOnProduct::CleanModeConfigSources(); return ret; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/src/include/autopart.ycp new/autoyast2-2.14.10/src/include/autopart.ycp --- old/autoyast2-2.14.9/src/include/autopart.ycp 2006-09-05 11:33:36.000000000 +0200 +++ new/autoyast2-2.14.10/src/include/autopart.ycp 2006-10-13 16:22:47.000000000 +0200 @@ -1,7 +1,7 @@ /* -$Id: autopart.ycp 32699 2006-09-05 09:35:13Z ug $ +$Id: autopart.ycp 33409 2006-10-13 14:22:46Z ug $ */ { textdomain "autoinst"; @@ -184,157 +184,6 @@ y2milestone( "conf: %1", partitioning ); return( partitioning ); } - - - /** - * Read partition data from XML control file - * @return map flexible propsal map - */ - define map read_partition_xml_config(map automap) - ``{ - - map xmlflex = automap; - y2debug("xml input: %1", xmlflex ); - - map conf = $[]; - conf["prefer_remove"] = xmlflex["prefer_remove"]:true; - conf["remove_special_partitions"] = - xmlflex["remove_special_partitions"]:false; - - conf["keep_partition_id"] = []; - conf["keep_partition_num"] = []; - conf["keep_partition_fsys"] = []; - - foreach( string key, [ "keep_partition_id", "keep_partition_num"], ``{ - list num = []; - list<string> nlist = splitstring(xmlflex[key]:"", ","); - foreach( string n, nlist, ``{ num = union( num, [tointeger(n)] );}); - conf[key] = num; - }); - - list fsys = []; - list<string> nlist = splitstring( xmlflex["keep_partition_fsys"]:"" , "," ); - foreach( string n, nlist, - ``{ - symbol fs = FileSystems::FsToSymbol(n); - if( fs != `none ) - { - fsys = union( fsys, [ fs ] ); - } - }); - conf["keep_partition_fsys"] = fsys; - list partitions = []; - foreach(map p, xmlflex["partitions"]:[], - ``{ - map partition = $[]; - - if (p["disk"]:0 != 0) - { - partition["disk"] = p["disk"]:0; - } - if (p["id"]:0 != 0) - { - partition["id"] = p["id"]:0; - } - - if (p["fstopt"]:"" != "") - { - partition["fstopt"] = p["fstopt"]:""; - } - - if (p["formatopt"]:"" != "") - { - partition["fopt"] = p["formatopt"]:""; - } - - partition["increasable"] = p["increasable"]:false; - - if (p["mount"]:"" != "") - { - partition["mount"] = p["mount"]:""; - } - - if (p["percent"]:-1 != -1) - { - partition["pct"] = p["percent"]:100; - } - - if (p["label"]:"" != "") - { - partition["label"] = p["label"]:""; - } - - if (p["maxsize"]:"" != "") - { - partition["maxsize"] = kmgt_str_to_byte(p["maxsize"]:""); - } - - if (p["fsys"]:"" != "") - { - symbol fs = FileSystems::FsToSymbol(p["fsys"]:""); - if( fs != `none ) - { - partition["fsys"] = fs; - } - } - - if (p["size"]:"" != "") - { - string s = p["size"]:""; - if( tolower(s) == "auto" ) - { - partition["size"] = -1; - } - else if( tolower(s) == "max" ) - { - partition["size"] = 0; - } - else - { - partition["size"] = kmgt_str_to_byte( s ); - } - - } - - if( partition["size"]:0 == -1 && partition["mount"]:"" == "swap" ) - { - partition["size"] = 1024*1024*Partitions::SwapSizeMb(0); - } - if( partition["mount"]:"" == Partitions::BootMount() ) - { - if( partition["size"]:0 == -1 ) - partition["size"] = Partitions::MinimalNeededBootsize(); - - if( partition["fsys"]:`none == `none ) - partition["fsys"] = Partitions::DefaultBootFs(); - - if( partition["id"]:0 == 0 ) - partition["id"] = Partitions::FsidBoot(); - - partition["max_cyl"] = Partitions::BootCyl(); - } - - if( partition["size"]:0 == -1 ) - partition["size"] = 0; - - y2debug("partition: %1", partition); - if( size(partition["mount"]:"")>0 || partition["id"]:0 > 0 ) - { - partitions = add( partitions, partition ); - } - - - }); - conf["partitions"] = partitions; - if( size(partitions)==0 ) - conf = $[]; - else - conf["partitions"] = partitions; - - y2milestone( "conf %1", conf ); - return( conf ); - } - define map try_add_boot( map conf, map disk ) { boolean boot = @@ -369,181 +218,6 @@ return( tc ); } -/* - define map do_flexible_disk( string dev, map disk ) - ``{ - y2milestone( "dev %1", dev ); - map ret = $[]; - ret["ok"] = false; - map conf = read_partition_config( pinfo_name() ); - map solutions = $[]; - - if( size(conf)>0 && Storage::IsRealDisk( disk )) - { - y2milestone( "processing disk %1", dev ); - map tc = try_add_boot( conf, disk ); - cur_mode = `free; - map gap = get_gap_info( disk, false ); - tc = add_cylinder_info( tc, gap ); - map sol = get_perfect_list( tc["partitions"]:[], gap ); - if( size(sol)>0 ) - { - sol["disk"] = eval(disk); - ret["ok"] = true; - ret["disk"] = process_partition_data( dev, sol ); - } - } - y2milestone( "ret %1", ret["ok"]:false ); - if( ret["ok"]:false ) - { - y2milestone( "disk %1", ret["disk"]:[] ); - } - return( ret ); - } - -*/ - define map do_flexible( map<string,map> targetmap, map automap ) - ``{ - map ret = $[]; - ret["ok"] = false; - map conf = $[]; - conf = read_partition_xml_config(automap); - list<map> solutions = []; - - if( size(conf)>0 ) - { - // return list of available devices - list<string> ddev = maplist( string k, map e, - filter( string l, map f, targetmap, - ``(Storage::IsRealDisk( f ))), ``(k)); - // ["/dev/hda", "/dev/hdb"] - y2milestone( "available disks (ddev) %1", ddev ); - map tc = $[]; - map<integer,any> dtmp = $[]; - foreach( map p, conf["partitions"]:[], - ``{ - integer dprio = p["disk"]:0; - if( haskey( dtmp, dprio )) - { - dtmp[dprio] = add( dtmp[dprio]:[], p ); - } - else - { - dtmp[dprio] = [ p ]; - } - }); - - - // $[0:[$[..], $[...]], 1:[$[..], $[...]],2:[$[..], $[...]]] - - y2milestone( "disks and their partitions (dtmp) %1", dtmp ); - list dlist = maplist( integer k, any e, dtmp, ``(e) ); - - // [ [$[..], $[...]], [$[..], $[...]],.... ] - - y2milestone( "list of partition lists (dlist) %1", dlist ); - if( size(dlist)>size(ddev) ) - { - y2milestone("Some partitions are still not assigned to a disk"); - integer idx = size(ddev); - while( idx<size(dlist) ) - { - dlist[size(ddev)-1] = union( dlist[size(ddev)-1]:[], - dlist[idx]:[] ); - idx = idx+1; - } - while( size(dlist)>size(ddev) ) - { - dlist = remove( dlist, size(ddev) ); - } - y2milestone( "dlist %1", dlist ); - } - list save_dlist = (list) eval(dlist); - repeat - { - integer count = 0; - repeat - { - list<string> td = eval(ddev); - integer idx = 0; - y2milestone( "start while count %1", count ); - while( idx<size(dlist) && count<size(dlist) ) - { - y2milestone( "in while idx %1", idx ); - tc = (map) eval(conf); - tc["partitions"] = eval( dlist[idx]:[] ); - map md = find_matching_disk( td, targetmap, tc ); - y2milestone( "size(md) %1", size(md) ); - if( size(md)>0 ) - { - solutions = add( solutions, md ); - td = filter( string e, td, ``(e!=md["device"]:"")); - y2milestone( "new td %1", td ); - idx = idx+1; - } - else - { - y2milestone( "no solution" ); - idx = size(dlist); - td = eval(ddev); - solutions = []; - count = count + 1; - if( size(dlist)>1 ) - { - list tfi = dlist[0]:[]; - dlist = remove( dlist, 0 ); - dlist = add( dlist, tfi ); - y2milestone( "new rotated dlist %1", dlist ); - } - } - } - } - until( size(solutions)>0 || count>=size(dlist) ); - if( size(solutions)==0 && size(dlist)>1 ) - { - dlist = (list) eval(save_dlist); - dlist[size(dlist)-2] = union( dlist[size(dlist)-2]:[], - dlist[size(dlist)-1]:[] ); - dlist = remove( dlist, size(dlist)-1 ); - y2milestone( "new truncated dlist %1", dlist ); - save_dlist = (list)eval(dlist); - } - } - until( size(solutions)>0 || size(dlist)<=1 ); - if( size(solutions)==0 && - (size(conf["keep_partition_fsys"]:[])>0 || - size(conf["keep_partition_id"]:[])>0 || - size(conf["keep_partition_num"]:[])>0 || - !conf["prefer_remove"]:false)) - { - y2milestone( "desperate mode" ); - tc = (map) eval(conf); - cur_mode = `desparate; - tc["keep_partition_fsys"] = []; - tc["keep_partition_id"] = []; - tc["keep_partition_num"] = []; - tc["prefer_remove"] = true; - map md = find_matching_disk( ddev, targetmap, tc ); - if( size(md)>0 ) - { - solutions = add( solutions, md ); - } - } - if( size(solutions)>0 ) - { - foreach( map e, solutions, - ``{ - string disk = e["device"]:""; - targetmap[disk] = process_partition_data( disk, e ); - y2milestone( "solution disk %1 %2", disk, targetmap[disk]:$[] ); - }); - ret["ok"] = true; - ret["targetmap"] = Storage::SpecialBootHandling( targetmap ); - } - } - return( ret ); - } - /** * Find matching disk diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/src/modules/AutoinstClone.ycp new/autoyast2-2.14.10/src/modules/AutoinstClone.ycp --- old/autoyast2-2.14.9/src/modules/AutoinstClone.ycp 2006-08-16 14:54:12.000000000 +0200 +++ new/autoyast2-2.14.10/src/modules/AutoinstClone.ycp 2006-10-12 15:58:57.000000000 +0200 @@ -11,7 +11,7 @@ * Authors: * Anas Nashif <nashif@suse.de> * - * $Id: AutoinstClone.ycp 32377 2006-08-16 12:55:46Z ug $ + * $Id: AutoinstClone.ycp 33356 2006-10-12 13:58:55Z ug $ * * */ @@ -233,10 +233,10 @@ if( v["type"]:`CT_UNKNOWN==`CT_LVM) { drive["pesize"] = sformat("%1M", v["pesize"]:1 / (1024*1024) ); - drive["type"] = v["type"]:""; + drive["type"] = `CT_LVM; } else if( v["type"]:`CT_UNKNOWN==`CT_EVMS ) { drive["pesize"] = sformat("%1M", v["pesize"]:1 / (1024*1024) ); - drive["type"] = v["type"]:""; + drive["type"] = `CT_EVMS; integer index = findlastof( drive["device"]:"", "/" ); string vg_name = substring(drive["device"]:"", index); drive["device"] = "/dev"+vg_name; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/autoyast2-2.14.9/src/modules/AutoinstStorage.ycp new/autoyast2-2.14.10/src/modules/AutoinstStorage.ycp --- old/autoyast2-2.14.9/src/modules/AutoinstStorage.ycp 2006-09-04 15:44:55.000000000 +0200 +++ new/autoyast2-2.14.10/src/modules/AutoinstStorage.ycp 2006-10-13 12:05:58.000000000 +0200 @@ -4,7 +4,7 @@ * Summary: Storage * Authors: Anas Nashif <nashif@suse.de> * - * $Id: AutoinstStorage.ycp 32685 2006-09-04 13:46:30Z ug $ + * $Id: AutoinstStorage.ycp 33388 2006-10-13 10:05:55Z ug $ */ { module "AutoinstStorage"; @@ -413,6 +413,11 @@ return settings; } + /* + the resize option in the storage lib requires the new size in the + "region" format. That format is hardly configureable by humans, so I + do the translation here + */ global define list<map> region4resize( list<map> settings ) { // the storage lib requires the region to be set // we transform the size to the region here @@ -444,6 +449,10 @@ return settings; } + /* + the percentage must be calculated to an actual size. + This is done here + */ global define list<map> percent2size( list<map> settings ) { map <string, map> tm = Storage::GetTargetMap(); settings = maplist( map d, settings, ``{ @@ -472,6 +481,27 @@ return settings; } + /* + if partition type is primary but not set in the profile, set it now + */ + global define list<map> setPartitionType(list<map> settings) { + map <string, map> tm = Storage::GetTargetMap(); + settings = maplist( map d, settings, ``{ + if( d["type"]:`x == `CT_DISK ) { + integer mp = tm[ d["device"]:"xxx","max_primary" ]:0; + if( mp > 0 ) { + d["partitions"] = maplist(map pe, d["partitions"]:[], ``{ + if( haskey(pe, "partition_nr") && !haskey(pe,"partition_type") && pe["partition_nr"]:-1 <= mp ) + pe["partition_type"] = "primary"; + return pe; + }); + } + } + return d; + }); + y2milestone("after setPartitionType = %1",settings); + return settings; + } /** * Get all the configuration from a map. @@ -492,6 +522,7 @@ settings = mountBy(settings); settings = region4resize(settings); settings = percent2size(settings); + settings = setPartitionType(settings); AutoPartPlan = preprocess_partition_config(settings); AutoPartPlan = checkSizes(AutoPartPlan); } else { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org