Hello community,
here is the log from the commit of package autoyast2 for openSUSE:Factory
checked in at Thu Dec 24 15:46:32 CET 2009.
--------
--- autoyast2/autoyast2.changes 2009-10-16 12:31:34.000000000 +0200
+++ /mounts/work_src_done/STABLE/autoyast2/autoyast2.changes 2009-12-18 16:22:11.000000000 +0100
@@ -1,0 +2,62 @@
+Wed Dec 16 18:44:20 CET 2009 - aschnell@suse.de
+
+- adapted encryption password setting to new yast2-storage
+- 2.19.0
+
+-------------------------------------------------------------------
+Wed Nov 25 15:55:10 CET 2009 - ug@suse.de
+
+- mountby was not cloned correctly (bnc#557759)
+
+-------------------------------------------------------------------
+Wed Nov 25 14:37:27 CET 2009 - ug@suse.de
+
+- reusing of logical partitions can fail (bnc#557994)
+
+-------------------------------------------------------------------
+Fri Nov 20 11:48:30 CET 2009 - ug@suse.de
+
+- fix for conflicts in rule-dialogs
+
+-------------------------------------------------------------------
+Thu Nov 19 14:41:56 CET 2009 - ug@suse.de
+
+- set mode to config during cloning (bnc#520658)
+
+-------------------------------------------------------------------
+Wed Nov 18 13:22:46 CET 2009 - ug@suse.de
+
+- translation of Mouse -> "probe" fixed
+
+-------------------------------------------------------------------
+Tue Nov 17 11:35:10 CET 2009 - ug@suse.de
+
+- dialogs for rules added
+
+-------------------------------------------------------------------
+Wed Nov 11 10:39:13 CET 2009 - ug@suse.de
+
+- added CLI to clone_system
+
+-------------------------------------------------------------------
+Tue Nov 10 15:26:06 CET 2009 - ug@suse.de
+
+- autoyast=nfs:// falls back to nfs4 if nfs3 mounting fails
+
+-------------------------------------------------------------------
+Tue Nov 10 14:36:55 CET 2009 - ug@suse.de
+
+- check if cdrom is mounted when image should be searched on CD/DVD
+ thanx to Leonardo L. P. da Mata for a patch
+
+-------------------------------------------------------------------
+Tue Nov 10 11:49:52 CET 2009 - ug@suse.de
+
+- <location> can be CDATA now (bnc#546387)
+
+-------------------------------------------------------------------
+Tue Nov 10 11:16:37 CET 2009 - ug@suse.de
+
+- description for url's in SLP possible now
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
autoyast2-2.18.14.tar.bz2
New:
----
autoyast2-2.19.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ autoyast2.spec ++++++
--- /var/tmp/diff_new_pack.WGYHcS/_old 2009-12-24 15:46:16.000000000 +0100
+++ /var/tmp/diff_new_pack.WGYHcS/_new 2009-12-24 15:46:16.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package autoyast2 (Version 2.18.14)
+# spec file for package autoyast2 (Version 2.19.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,13 +19,13 @@
Name: autoyast2
-Version: 2.18.14
+Version: 2.19.0
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: autoyast2-2.18.14.tar.bz2
+Source0: autoyast2-2.19.0.tar.bz2
Prefix: /usr
Group: System/YaST
-License: GPL v2 or later
+License: GPLv2+
BuildRequires: docbook-xsl-stylesheets java2-devel-packages libxslt perl-XML-Writer pkg-config sgml-skel update-desktop-files xorg-x11-libs yast2-bootloader yast2-country yast2-devtools yast2-mouse yast2-slp yast2-testsuite yast2-transfer
# API for Disabled Modules (ProductControl)
BuildRequires: yast2 >= 2.16.36
@@ -54,8 +54,8 @@
installation sources.
%package installation
-License: GPL v2 or later
-Version: 2.18.14
+License: GPLv2+
+Version: 2.19.0
Release: 1
Summary: YaST2 - Auto Installation Modules
Group: System/YaST
@@ -72,7 +72,7 @@
generated with the autoyast2 package.
%prep
-%setup -n autoyast2-2.18.14
+%setup -n autoyast2-2.19.0
%build
%{prefix}/bin/y2tool y2autoconf
++++++ autoyast2-2.18.14.tar.bz2 -> autoyast2-2.19.0.tar.bz2 ++++++
++++ 8109 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.18.14/VERSION new/autoyast2-2.19.0/VERSION
--- old/autoyast2-2.18.14/VERSION 2009-10-16 12:27:50.000000000 +0200
+++ new/autoyast2-2.19.0/VERSION 2009-12-18 16:11:32.000000000 +0100
@@ -1 +1 @@
-2.18.14
+2.19.0
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.18.14/configure.in new/autoyast2-2.19.0/configure.in
--- old/autoyast2-2.18.14/configure.in 2009-10-16 12:28:04.000000000 +0200
+++ new/autoyast2-2.19.0/configure.in 2009-12-18 16:11:49.000000000 +0100
@@ -1,9 +1,9 @@
dnl configure.in for autoyast2
dnl
-dnl -- This file is generated by y2autoconf 2.18.9 - DO NOT EDIT! --
+dnl -- This file is generated by y2autoconf 2.18.11 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(autoyast2, 2.18.14, http://bugs.opensuse.org/, autoyast2)
+AC_INIT(autoyast2, 2.19.0, http://bugs.opensuse.org/, autoyast2)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="2.18.14"
+VERSION="2.19.0"
RPMNAME="autoyast2"
MAINTAINER="Uwe Gansert "
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.18.14/doc/Installation.xml new/autoyast2-2.19.0/doc/Installation.xml
--- old/autoyast2-2.18.14/doc/Installation.xml 2009-06-30 11:34:46.000000000 +0200
+++ new/autoyast2-2.19.0/doc/Installation.xml 2009-11-10 14:54:44.000000000 +0100
@@ -398,7 +398,7 @@
</row>
<row>
<entry>autoyast=slp (since openSUSE 11.2, not SLES 11)</entry>
- <entry>Query the location of the profile from an SLP server (service:autoyast:...)</entry>
+ <entry>Query the location of the profile from an SLP server (service:autoyast:...). Since openSUSE 11.3 you can add a "description=" attribute so you can "translate" the URL into something more readable</entry>
</row>
<row>
<entry>autoyast=cifs://<server>/<path> (since openSUSE 11.2, not SLES 11)</entry>
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.18.14/doc/RulesAndClasses.xml new/autoyast2-2.19.0/doc/RulesAndClasses.xml
--- old/autoyast2-2.18.14/doc/RulesAndClasses.xml 2009-07-17 12:32:20.000000000 +0200
+++ new/autoyast2-2.19.0/doc/RulesAndClasses.xml 2009-11-17 17:57:27.000000000 +0100
@@ -482,8 +482,146 @@
</tgroup>
</table>
</section>
+ <section id="rules_dialogs">
+ <title>Rules with Dialogs</title>
+ <para>
+ Since openSUSE 11.3 (not SLES11 SP1) you can use dialog popups where you can select which rules you want to match and which not by checkboxes.
+ </para>
+ <para>
+ The following elements must be between the <rules config:type="list"><rule><dialog> ... </dialog></rule></rules> tags in the rules.xml file.
+ </para>
+ <table frame='top'>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Attribute</entry>
+ <entry>Values</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>dialog_nr</entry>
+ <entry>all rules with the same dialog_nr are presented on the same popup dialog so the same dialog_nr can appear in multiple rules.
+ <para><screen><dialog_nr config:type="integer">3</dialog_nr></screen></para>
+ </entry>
+ <entry>This element is optional and the default for a missing dialog_nr is always "0". If you have one popup only anyway, you don't need to specify the dialog_nr</entry>
+ </row>
+ <row>
+ <entry>element</entry>
+ <entry>each element needs a uniq id. Even if you have more than one dialog, you must not use the same id twice like an id "1" on dialog 1 and and id "1" on dialog 2. That's different than with <ask> dialogs, where you can have the same <element> id on multiple dialogs.
+ <para><screen><element config:type="integer">3</element></screen></para>
+ </entry>
+ <entry>optional. If left out, autoyast adds his own id's internally but you can't use conflicts then (see below)</entry>
+ </row>
+ <row>
+ <entry>title</entry>
+ <entry>the caption of the popup dialog
+ <para><screen><title>Desktop Selection</title></screen></para>
+ </entry>
+ <entry>optional</entry>
+ </row>
+ <row>
+ <entry>question</entry>
+ <entry>the question text is shown in the popup behind the checkbox.
+ <para><screen><question>KDE Desktop</question></screen></para>
+ </entry>
+ <entry>optional. If you don't configure a text here, the name of the XML file that is triggered by this rule will be shown instead.</entry>
+ </row>
+ <row>
+ <entry>timeout</entry>
+ <entry>a timeout in seconds after which the dialog will automatically "press" the okay button. Useful for a non blocking installation in combination with rules-dialogs.
+ <para><screen><timeout config:type="integer">30</timeout></screen></para>
+ </entry>
+ <entry>optional. A missing timeout will stop the installation process until the dialog is confirmed by the user.</entry>
+ </row>
+ <row>
+ <entry>conflicts</entry>
+ <entry>a list of element id's (rules) that conflict with this rule. If this rule matches or is selected by the user, all conflicting rules are deselected and disabled in the popup. Take care that you don't create deadlocks.
+ <para><screen><conflicts config:type="list">
+ <element config:type="integer">1</element>
+ <element config:type="integer">5</element>
+ ...
+</conflicts></screen></para>
+ </entry>
+ <entry>optional</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ Here is an example of how to use dialogs with rules:
+ </para>
+ <para>
+ <screen>
+<![CDATA[
+ <rules config:type="list">
+ <rule>
+ <custom1>
+ <script>
+echo -n 100
+ </script>
+ <match>100</match>
+ <match_type>exact</match_type>
+ </custom1>
+ <result>
+ <profile>rules/kde.xml</profile>
+ <continue config:type="boolean">true</continue>
+ </result>
+ <dialog>
+ <element config:type="integer">0</element>
+ <question>KDE Desktop</question>
+ <title>Desktop Selection</title>
+ <conflicts config:type="list">
+ <element config:type="integer">1</element>
+ </conflicts>
+ <dialog_nr config:type="integer">0</dialog_nr>
+ </dialog>
+ </rule>
+ <rule>
+ <custom1>
+ <script>
+echo -n 100
+ </script>
+ <match>101</match>
+ <match_type>exact</match_type>
+ </custom1>
+ <result>
+ <profile>rules/gnome.xml</profile>
+ <continue config:type="boolean">true</continue>
+ </result>
+ <dialog>
+ <element config:type="integer">1</element>
+ <dialog_nr config:type="integer">0</dialog_nr>
+ <question>Gnome Desktop</question>
+ <conflicts config:type="list">
+ <element config:type="integer">0</element>
+ </conflicts>
+ </dialog>
+ </rule>
+ <rule>
+ <custom1>
+ <script>
+echo -n 100
+ </script>
+ <match>100</match>
+ <match_type>exact</match_type>
+ </custom1>
+ <result>
+ <profile>rules/all_the_rest.xml</profile>
+ <continue config:type="boolean">false</continue>
+ </result>
+ </rule>
+ </rules>
+]]>
+ </screen>
+ </para>
+ </section>
</section>
-
+
+
+
+
<section id="classes">
<title>Classes</title>
<para>
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.18.14/missing new/autoyast2-2.19.0/missing
--- old/autoyast2-2.18.14/missing 2009-10-16 12:28:07.000000000 +0200
+++ new/autoyast2-2.19.0/missing 2009-12-18 16:11:52.000000000 +0100
@@ -1,10 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2006-05-10.23
+scriptversion=2009-04-28.21; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see http://www.gnu.org/licenses/.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -89,6 +87,9 @@
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
Send bug reports to ."
exit $?
;;
@@ -106,15 +107,22 @@
esac
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
-# the program).
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
case $1 in
- lex|yacc)
+ lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
- tar)
+ tar*)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
@@ -138,7 +146,7 @@
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case $1 in
+case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -148,7 +156,7 @@
touch aclocal.m4
;;
- autoconf)
+ autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
@@ -157,7 +165,7 @@
touch configure
;;
- autoheader)
+ autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
@@ -187,7 +195,7 @@
while read f; do touch "$f"; done
;;
- autom4te)
+ autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
@@ -210,7 +218,7 @@
fi
;;
- bison|yacc)
+ bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
@@ -240,7 +248,7 @@
fi
;;
- lex|flex)
+ lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
@@ -263,7 +271,7 @@
fi
;;
- help2man)
+ help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
@@ -277,11 +285,11 @@
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
- exit 1
+ exit $?
fi
;;
- makeinfo)
+ makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -310,7 +318,7 @@
touch $file
;;
- tar)
+ tar*)
shift
# We have already tried tar in the generic part.
@@ -363,5 +371,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
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.18.14/src/clients/clone_system.ycp new/autoyast2-2.19.0/src/clients/clone_system.ycp
--- old/autoyast2-2.18.14/src/clients/clone_system.ycp 2009-05-04 14:29:04.000000000 +0200
+++ new/autoyast2-2.19.0/src/clients/clone_system.ycp 2009-11-13 12:21:08.000000000 +0100
@@ -6,7 +6,7 @@
* system.
*
* Changes: * initial - just do a simple clone
- * $Id: clone_system.ycp 57028 2009-04-29 10:58:09Z lslezak $
+ * $Id: clone_system.ycp 59490 2009-11-11 09:43:57Z ug $
*/
{
@@ -15,18 +15,72 @@
import "XML";
import "Popup";
import "ProductControl";
+ import "CommandLine";
+ import "Y2ModuleConfig";
+ import "Mode";
textdomain "autoinst";
- define void doClone () ``{
+ symbol GUI() {
+ Mode::SetUI("commandline");
+ CommandLine::Error(_("Empty parameter list"));
+ return `dummy;
+ }
+
+ define boolean doClone ( map options ) ``{
Popup::ShowFeedback( _("Cloning the system..."), _("The resulting autoyast profile can be found in /root/autoinst.xml.") );
- AutoinstClone::additional = ProductControl::clone_modules;
+ if( options["clone"]:"" != "" ) {
+ AutoinstClone::additional = splitstring( options["clone"]:"", "," );
+ } else {
+ AutoinstClone::additional = ProductControl::clone_modules;
+ }
AutoinstClone::Process();
-// Profile::checkProfile();
XML::YCPToXMLFile(`profile, Profile::current, "/root/autoinst.xml");
Popup::ClearFeedback();
+ return true;
}
- doClone();
+ string moduleList = "";
+
+ foreach(string def_resource, map resourceMap, Y2ModuleConfig::ModuleMap, ``{
+ boolean clonable = ( resourceMap["X-SuSE-YaST-AutoInstClonable"]:"false" == "true" );
+ if( clonable || def_resource == "bootloader" || def_resource == "partitioning" || def_resource == "software" ) {
+ moduleList = sformat("%1 %2", moduleList, def_resource);
+ }
+ });
+
+ map cmdline = $[
+ "id" : "clone_system",
+ "help" : _("Client for creating an AutoYaST profile based on the currently running system"),
+ "guihandler": GUI,
+ "actions" : $[
+ "modules" : $[
+ "handler" : doClone,
+ "help" : sformat( _("known modules: %1"), moduleList ),
+ "example" : "modules clone=software,partitioning" ]
+ ],
+ "options" : $[
+ "clone": $[
+ "type" : "string",
+ "help" : _("comma separated list of modules to clone")
+ ]
+ ],
+ "mappings" : $[
+ "modules" : ["clone"]
+ ]
+ ];
+
+
+ any ret = true;
+
+ if( size(WFM::Args()) == 0 )
+ doClone( $[] );
+ else
+ ret = CommandLine::Run( cmdline );
+ y2debug("ret = %1", ret);
+ y2milestone("----------------------------------------");
+ y2milestone("clone_system finished");
+
+// doClone();
}
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.18.14/src/include/autopart.ycp new/autoyast2-2.19.0/src/include/autopart.ycp
--- old/autoyast2-2.18.14/src/include/autopart.ycp 2009-05-18 16:04:18.000000000 +0200
+++ new/autoyast2-2.19.0/src/include/autopart.ycp 2009-12-16 18:45:54.000000000 +0100
@@ -1,7 +1,7 @@
/*
-$Id: autopart.ycp 57236 2009-05-18 14:04:17Z ug $
+$Id: autopart.ycp 60133 2009-12-16 17:46:51Z aschnell $
*/
{
textdomain "autoinst";
@@ -406,6 +406,8 @@
string mount = solution["partitions",pindex,"mount"]:"";
// integer fsid = Partitions::fsid_native;
integer fsid = disk["partitions",pindex,"fsid"]:Partitions::fsid_native;
+ if( disk["partitions",pindex,"type"]:`primary != `primary )
+ fsid = disk["partitions",pindex+1,"fsid"]:Partitions::fsid_native;
if( mount == "swap" )
{
fsid = Partitions::fsid_swap;
@@ -459,7 +461,7 @@
{
//p["loop_fs"] = solution["partitions",pindex,"crypt_fs"]:false;
p["enc_type"] = solution["partitions",pindex,"enc_type"]:`twofish;
- Storage::UpdateClassified( p["device"]:"",
+ Storage::SetCryptPwd( p["device"]:"",
solution["partitions",pindex,"crypt_key"]:"" );
//p["crypt"] = solution["partitions",pindex,"crypt"]:"twofish256";
}
@@ -580,7 +582,7 @@
{
//part["loop_fs"] = solution["partitions",pindex,"crypt_fs"]:false;
part["enc_type"] = solution["partitions",pindex,"enc_type"]:`twofish;
- Storage::UpdateClassified( part["device"]:"",
+ Storage::SetCryptPwd( part["device"]:"",
solution["partitions",pindex,"crypt_key"]:"" );
//part["crypt"] = solution["partitions",pindex,"crypt"]:"twofish256";
}
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.18.14/src/include/io.ycp new/autoyast2-2.19.0/src/include/io.ycp
--- old/autoyast2-2.18.14/src/include/io.ycp 2009-10-15 10:38:33.000000000 +0200
+++ new/autoyast2-2.19.0/src/include/io.ycp 2009-12-15 12:20:56.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: I/O
* Authors: Anas Nashif
*
- * $Id: io.ycp 59034 2009-10-15 08:38:32Z ug $
+ * $Id: io.ycp 60111 2009-12-15 11:02:03Z ug $
*/
{
textdomain "autoinst";
@@ -14,6 +14,7 @@
import "HTTP";
import "StorageDevices";
import "TFTP";
+ import "AutoinstConfig";
string GET_error = "";
@@ -23,10 +24,10 @@
* @return string basename
*/
define string basename (string filePath)
- ``{
- list pathComponents = splitstring(filePath, "/");
- string ret = pathComponents[size(pathComponents) -1 ]: "";
- return ( ret );
+ ``{
+ list pathComponents = splitstring(filePath, "/");
+ string ret = pathComponents[size(pathComponents) -1 ]: "";
+ return ( ret );
}
@@ -36,11 +37,11 @@
* @return string dirname
*/
define string dirname (string filePath)
- ``{
- list pathComponents = splitstring(filePath, "/");
- string last = pathComponents[size(pathComponents) -1]:"";
- string ret = substring(filePath, 0 , size(filePath) - size(last));
- return (ret);
+ ``{
+ list pathComponents = splitstring(filePath, "/");
+ string last = pathComponents[size(pathComponents) -1]:"";
+ string ret = substring(filePath, 0 , size(filePath) - size(last));
+ return (ret);
}
@@ -49,198 +50,211 @@
* @return boolean true on success
*/
define boolean Get(string Scheme,
- string Host,
- string Path,
- string Localfile)
- ``{
+ string Host,
+ string Path,
+ string Localfile)
+ ``{
GET_error = "";
- boolean ok = false;
- map res = $[];
- map toks = AutoinstConfig::urltok;
- toks["scheme"] = Scheme;
- toks["host"] = Host;
+ boolean ok = false;
+ map res = $[];
+ map toks = AutoinstConfig::urltok;
+ toks["scheme"] = Scheme;
+ toks["host"] = Host;
if (regexpsub(Path, "(.*)//(.*)", "\\1\/\\2")!= nil)
{
Path = regexpsub(Path, "(.*)//(.*)", "\\1\/\\2");
}
- toks["path"] = Path;
+ toks["path"] = Path;
string full_url = URL::Build(toks);
string tmp_dir = (string)WFM::Read(.local.tmpdir, []);
string mount_point = tmp_dir + "/tmp_mount";
WFM::Execute(.local.mkdir, mount_point );
- if ( Scheme == "http" || Scheme == "https" )
- {
+ if ( Scheme == "http" || Scheme == "https" )
+ {
HTTP::easySSL( true );
- res = HTTP::Get(full_url, Localfile);
- if (res["code"]:0 == 200)
- {
+ res = HTTP::Get(full_url, Localfile);
+ if (res["code"]:0 == 200)
+ {
GET_error = "";
- return (true);
- }
- else
- {
- y2error("Can't find URL: %1", full_url);
+ return (true);
+ }
+ else
+ {
+ y2error("Can't find URL: %1", full_url);
// autoyast tried to read a file but had no success.
GET_error = sformat(_("Cannot find URL '%1' via protocol HTTP(S). Server returned code %2."),full_url,res["code"]:0);
- return (false);
- }
- }
- if ( Scheme == "ftp" )
- {
- res = FTP::Get(full_url, Localfile);
- if ( ( res["code"]:-1 >= 200 && res["code"]:-1 < 300 ) && SCR::Read(.target.size, Localfile) > 0 )
- {
+ return (false);
+ }
+ }
+ if ( Scheme == "ftp" )
+ {
+ res = FTP::Get(full_url, Localfile);
+ if ( ( res["code"]:-1 >= 200 && res["code"]:-1 < 300 ) && SCR::Read(.target.size, Localfile) > 0 )
+ {
GET_error = "";
- return (true);
- }
- else
- {
- y2error("Can't find URL: %1", full_url);
+ return (true);
+ }
+ else
+ {
+ y2error("Can't find URL: %1", full_url);
// autoyast tried to read a file but had no success.
GET_error = sformat(_("Cannot find URL '%1' via protocol FTP. Server returned code %2."),full_url,res["code"]:0);
- return (false);
- }
- }
- else if (Scheme == "file")
- {
- string file = sformat("%1/%2", Installation::sourcedir, Path); // FIXME: I have doubts this will ever work. Too early.
- if (SCR::Read(.target.size, file) > 0 )
- {
- string cpcmd = sformat("cp %1 %2", file, Localfile);
- y2milestone("Copy profile: %1", cpcmd);
- SCR::Execute(.target.bash, cpcmd);
- }
- else
- {
+ return (false);
+ }
+ }
+ else if (Scheme == "file")
+ {
+ string file = sformat("%1/%2", Installation::sourcedir, Path); // FIXME: I have doubts this will ever work. Too early.
+ if (SCR::Read(.target.size, file) > 0 )
+ {
+ string cpcmd = sformat("cp %1 %2", file, Localfile);
+ y2milestone("Copy profile: %1", cpcmd);
+ SCR::Execute(.target.bash, cpcmd);
+ }
+ else
+ {
GET_error = GET_error + sformat(_("Reading file on %1/%2 failed.\n"), Installation::sourcedir, Path);
- string cpcmd = sformat("cp %1 %2", Path , Localfile);
- y2milestone("Copy profile: %1", cpcmd);
- SCR::Execute(.target.bash, cpcmd);
- }
+ string cpcmd = sformat("cp %1 %2", Path , Localfile);
+ y2milestone("Copy profile: %1", cpcmd);
+ SCR::Execute(.target.bash, cpcmd);
+ }
- if (SCR::Read(.target.size, Localfile) > 0 )
- {
- GET_error = "";
- ok = true;
- }
- else
- {
- GET_error = GET_error + sformat(_("Reading file on %1 failed.\n"), Path);
- y2milestone("Trying to find file on installation media: %1", Installation::boot ());
- if (Installation::boot () == "cd")
- {
- string cdrom = (string)SCR::Read (.etc.install_inf.Cdrom);
- if (!(boolean)WFM::Execute(.local.mount, ["/dev/" + cdrom,
- mount_point, Installation::mountlog] ))
- {
+ if (SCR::Read(.target.size, Localfile) > 0 )
+ {
+ GET_error = "";
+ ok = true;
+ } else {
+ GET_error = GET_error + sformat(_("Reading file on %1 failed.\n"), Path);
+ y2milestone("Trying to find file on installation media: %1", Installation::boot ());
+ if (Installation::boot () == "cd") {
+ string cdrom = (string)SCR::Read (.etc.install_inf.Cdrom);
+ string cdrom_device = "/dev/"+cdrom;
+ string already_mounted = "grep "+cdrom_device+" /proc/mounts ;";
+ map am = (map) SCR::Execute (.target.bash_output, already_mounted);
+
+ if (am["exit"]:-1 == 0 && size (am["stdout"]:"") > 0) {
+ y2warning ("%1 is already mounted, trying to bind mount...", cdrom_device);
+ string cmd = "mount -v --bind `grep "+cdrom_device+" /proc/mounts |cut -f 2 -d \\ ` "+mount_point+";";
+ map am1 = (map) SCR::Execute (.target.bash_output, cmd);
+ if (am1["exit"]:-1 == 0) {
+ ok=true;
+ } else {
+ y2warning ("can't bind mount %1 failing...", cdrom_device);
+ ok = false;
+ }
+
+ } else {
+ if (!(boolean)WFM::Execute(.local.mount, [cdrom_device, mount_point, Installation::mountlog] )) {
// autoyast tried to mount the CD but had no success.
GET_error = GET_error + sformat(_("Mounting %1 failed."), cdrom );
- y2warning("Mount failed");
- }
- else
- {
- string cpcmd = sformat("cp " + mount_point + "/%1 %2", Path , Localfile);
- y2milestone("Copy profile: %1", cpcmd);
- SCR::Execute(.target.bash, cpcmd);
- }
- WFM::Execute(.local.umount, mount_point);
- if (SCR::Read(.target.size, Localfile) > 0 )
- {
+ y2warning("Mount failed");
+ ok=false;
+ } else {
+ ok=true;
+ }
+ }
+ if (ok) {
+ string cpcmd = sformat("cp " + mount_point + "/%1 %2", Path , Localfile);
+ y2milestone("Copy profile: %1", cpcmd);
+ SCR::Execute(.target.bash, cpcmd);
+ WFM::Execute(.local.umount, mount_point);
+ if (SCR::Read(.target.size, Localfile) > 0 ) {
GET_error = "";
- return (true);
- }
- }
- // autoyast tried to read a file but had no success.
- GET_error = GET_error + sformat(_("Reading a file on CD failed. Path: %1/%2."),mount_point,Path);
- ok = false;
- }
- }
- else if (Scheme == "nfs") // NFS
- {
- if (Installation::boot () != "nfs")
- {
- y2milestone("Starting portmap: %1", SCR::Execute (.target.bash, "/sbin/portmap") );
- }
-
- if (!(boolean)SCR::Execute(.target.mount,
- [ Host + ":" + dirname(Path), mount_point ], "-o nolock" ))
- {
- y2warning("Mount failed");
+ return (true);
+ }
+ }
+ }
+ // autoyast tried to read a file but had no success.
+ GET_error = GET_error + sformat(_("Reading a file on CD failed. Path: %1/%2."),mount_point,Path);
+ ok = false;
+ }
+ }
+ else if (Scheme == "nfs") // NFS
+ {
+ if (Installation::boot () != "nfs")
+ {
+ y2milestone("Starting portmap: %1", SCR::Execute (.target.bash, "/sbin/portmap") );
+ }
+
+ if( !(boolean)SCR::Execute(.target.mount, [ Host + ":" + dirname(Path), mount_point ], "-o nolock" ) &&
+ !(boolean)SCR::Execute(.target.mount, [ Host + ":" + dirname(Path), mount_point ], "-t nfs4" ) )
+ {
+ y2warning("Mount failed");
// autoyast tried to mount a NFS directory which failed
GET_error = sformat(_("Mounting %1 failed."), Host + ":" + dirname(Path) );
- return (false);
- }
+ return (false);
+ }
string copyCmd = "/bin/cp " + mount_point + "/" + basename(Path) +
" " + Localfile;
y2milestone("Copy Command: %1", copyCmd);
- if (WFM::Execute (.local.bash, copyCmd ) == 0)
- {
+ if (WFM::Execute (.local.bash, copyCmd ) == 0)
+ {
GET_error = "";
- ok = true;
- }
- else
- {
+ ok = true;
+ }
+ else
+ {
// autoyast tried to copy a file via NFS which failed
GET_error = sformat(_("Remote file %1 cannot be retrieved"), mount_point + "/"+ basename(Path) );
- y2error("remote file %1 can't be retrieved", mount_point + "/"
+ y2error("remote file %1 can't be retrieved", mount_point + "/"
+ basename(Path));
- }
+ }
- WFM::Execute(.local.umount, mount_point);
+ WFM::Execute(.local.umount, mount_point);
- }
- else if (Scheme == "cifs") // CIFS
- {
- if (!(boolean)SCR::Execute(.target.mount,
+ }
+ else if (Scheme == "cifs") // CIFS
+ {
+ if (!(boolean)SCR::Execute(.target.mount,
[ "//" + Host + dirname(Path), mount_point ], "-t cifs -o guest,ro" ))
- {
- y2warning("Mount failed");
+ {
+ y2warning("Mount failed");
// autoyast tried to mount a NFS directory which failed
GET_error = sformat(_("Mounting %1 failed."), "//" + Host + dirname(Path) );
- return (false);
- }
+ return (false);
+ }
string copyCmd = "/bin/cp " + mount_point + "/" + basename(Path) +
" " + Localfile;
y2milestone("Copy Command: %1", copyCmd);
- if (WFM::Execute (.local.bash, copyCmd ) == 0)
- {
+ if (WFM::Execute (.local.bash, copyCmd ) == 0)
+ {
GET_error = "";
- ok = true;
- }
- else
- {
+ ok = true;
+ }
+ else
+ {
// autoyast tried to copy a file via NFS which failed
GET_error = sformat(_("Remote file %1 cannot be retrieved"), mount_point + "/"+ basename(Path) );
- y2error("remote file %1 can't be retrieved", mount_point + "/"
+ y2error("remote file %1 can't be retrieved", mount_point + "/"
+ basename(Path));
- }
+ }
+
+ WFM::Execute(.local.umount, mount_point);
- WFM::Execute(.local.umount, mount_point);
+ }
+ else if (Scheme == "floppy" || Scheme == "usb")
+ {
+ if (StorageDevices::FloppyReady() && Scheme == "floppy")
+ {
+ WFM::Execute(.local.mount, [StorageDevices::FloppyDevice(), mount_point]);
- }
- else if (Scheme == "floppy" || Scheme == "usb")
- {
- if (StorageDevices::FloppyReady() && Scheme == "floppy")
- {
- WFM::Execute(.local.mount, [StorageDevices::FloppyDevice(), mount_point]);
-
- if (WFM::Execute (.local.bash, "/bin/cp " + mount_point + "/" + Path + " " + Localfile) != 0)
- {
- y2error("file %1 can't be retrieved", mount_point + "/" + Path );
- }
- else
- {
+ if (WFM::Execute (.local.bash, "/bin/cp " + mount_point + "/" + Path + " " + Localfile) != 0)
+ {
+ y2error("file %1 can't be retrieved", mount_point + "/" + Path );
+ }
+ else
+ {
GET_error = "";
- ok = true;
- }
- SCR::Execute(.target.umount, mount_point);
- } else {
+ ok = true;
+ }
+ SCR::Execute(.target.umount, mount_point);
+ } else {
y2milestone("looking for %1 on USB", Path);
list<map> probe = (list<map>)SCR::Read(.probe.usb);
foreach( map d, probe, ``{
@@ -272,11 +286,11 @@
break;
});
}
- }
- else if (Scheme == "device") // Device
- {
- if ( Path != "")
- {
+ }
+ else if (Scheme == "device") // Device
+ {
+ if ( Path != "")
+ {
list<string> deviceList = [];
if( Host == "" ) {
list<map> disks = (list<map>)SCR::Read(.probe.disk);
@@ -347,28 +361,28 @@
break;
});
}
- }
- else if (Scheme == "tftp") // Device
- {
- if (TFTP::Get( Host, Path, Localfile ))
- {
+ }
+ else if (Scheme == "tftp") // Device
+ {
+ if (TFTP::Get( Host, Path, Localfile ))
+ {
GET_error = "";
- ok = true;
- }
- else
- {
+ ok = true;
+ }
+ else
+ {
GET_error = sformat(_("Cannot find URL '%1' via protocol TFTP."),Host+":"+Path);
- y2error("file %1 can't be found", Path );
- }
- }
- else
- {
+ y2error("file %1 can't be found", Path );
+ }
+ }
+ else
+ {
// the user wanted autoyast to fetch it's profile via an unknown protocol
GET_error = sformat(_("Unknown protocol %1."),Scheme);
- y2error("Protocol not supported");
- ok = false;
- }
- return ( ok );
+ y2error("Protocol not supported");
+ ok = false;
+ }
+ return ( ok );
}
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.18.14/src/include/xml.ycp new/autoyast2-2.19.0/src/include/xml.ycp
--- old/autoyast2-2.18.14/src/include/xml.ycp 2009-10-14 17:00:49.000000000 +0200
+++ new/autoyast2-2.19.0/src/include/xml.ycp 2009-11-10 14:54:44.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: XML handling
* Authors: Anas Nashif
*
- * $Id: xml.ycp 56202 2009-03-18 11:06:59Z ug $
+ * $Id: xml.ycp 59458 2009-11-10 10:51:32Z ug $
*/
{
@@ -99,7 +99,7 @@
"net-udev":"rule"
];
- doc["cdataSections"] = ["source", "info_file", "file_contents", "pxelinux-config", "media_url"];
+ doc["cdataSections"] = ["source", "info_file", "file_contents", "pxelinux-config", "media_url", "location"];
// doc["systemID"] = "/usr/share/autoinstall/dtd/profile.dtd";
doc["rootElement"] = "profile";
doc["nameSpace"] = "http://www.suse.com/1.0/yast2ns";
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.18.14/src/modules/AutoInstallRules.ycp new/autoyast2-2.19.0/src/modules/AutoInstallRules.ycp
--- old/autoyast2-2.18.14/src/modules/AutoInstallRules.ycp 2009-04-01 13:27:53.000000000 +0200
+++ new/autoyast2-2.19.0/src/modules/AutoInstallRules.ycp 2009-11-24 15:57:46.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Process Auto-Installation Rules
* Author: Anas Nashif
*
- * $Id: AutoInstallRules.ycp 56527 2009-04-01 11:27:30Z ug $
+ * $Id: AutoInstallRules.ycp 59733 2009-11-24 13:42:38Z ug $
*/
{
@@ -105,6 +105,7 @@
global list<string> tomerge = [];
+ map element2file = $[];
/**
@@ -569,10 +570,12 @@
}
else if ( rule == "result" )
{
+ string profile_name = ruledef["profile"]:"";
+ profile_name = SubVars(profile_name);
+ if( haskey( ruleset, "dialog" ) )
+ element2file[ ruleset["dialog","element"]:0 ] = profile_name;
if ( verifyrules() == 0 )
{
- string profile_name = ruledef["profile"]:"";
- profile_name = SubVars(profile_name);
y2milestone("Final Profile name: %1", profile_name
);
if (ruledef["match_with_base"]:true)
@@ -602,6 +605,120 @@
});
}
});
+
+ list<integer> dialogOrder = [];
+ y2milestone("element2file=%1", element2file);
+ foreach( map rule, rulelist, ``{
+ if( haskey(rule, "dialog") && ! contains( dialogOrder, rule["dialog","dialog_nr"]:0 ) )
+ dialogOrder = add( dialogOrder, rule["dialog","dialog_nr"]:0 );
+ });
+ dialogOrder = sort( dialogOrder );
+
+ integer dialogIndex = 0;
+ while( dialogIndex <= size(dialogOrder)-1 ) {
+ integer dialogNr = dialogOrder[dialogIndex]:0;
+ term dialog_term = `VBox();
+ integer element_nr = 0;
+ integer timeout = 0;
+ string title = "Choose XML snippets to merge";
+ map conflictsCounter = $[];
+ foreach ( map rule, rulelist, ``{
+ if( haskey( rule, "dialog" ) ) {
+ element_nr = rule["dialog","element"]:element_nr;
+ string file = element2file[element_nr]:"";
+ element_nr = element_nr + 1;
+ if( contains(tomerge, file) ) {
+ foreach( integer c, rule["dialog","conflicts"]:[], ``{
+ conflictsCounter[c] = conflictsCounter[c]:0 + 1;
+ });
+ }
+ }
+ });
+
+ foreach ( map rule, rulelist, ``{
+ if( haskey( rule, "dialog" ) && rule["dialog","dialog_nr"]:0 == dialogNr ) {
+ element_nr = rule["dialog","element"]:element_nr;
+ title = rule["dialog","title"]:title;
+ string file = element2file[element_nr]:"";
+ boolean on = ( contains(tomerge, file) ? true : false );
+ term button = `Left( `CheckBox(`id(element_nr), `opt(`notify), rule["dialog","question"]:file, on ) );
+ if( haskey( rule["dialog"]:$[], "timeout" ) )
+ timeout = rule["dialog","timeout"]:0;
+ dialog_term = add( dialog_term, button );
+ element_nr = element_nr + 1;
+ }
+ });
+
+ if( element_nr > 0 ) {
+ UI::OpenDialog( `opt( `decorated ),
+ `VBox(
+ `Label( title ),
+ `VSpacing(1),
+ dialog_term,
+ `VSpacing(1),
+ `HBox(
+ `HStretch(),
+ `PushButton(`id(`back), "Back" ),
+ `PushButton(`id(`ok), "Okay" )
+ )
+ )
+ );
+ if( dialogIndex == 0 )
+ UI::ChangeWidget(`id(`back) , `Enabled, false);
+ foreach( integer c, integer n, conflictsCounter, ``{
+ UI::ChangeWidget(`id(c) , `Enabled, n>0 ? false : true );
+ UI::ChangeWidget(`id(c) , `Value, n>0 ? false : true );
+ });
+ while (true) {
+ any ret = nil;
+ if( timeout == 0 )
+ ret = UI::UserInput();
+ else
+ ret = UI::TimeoutUserInput( timeout * 1000 );
+ timeout = 0;
+ element_nr = 0;
+ if( ret == `ok || ret == `timeout || ret == `back ) {
+ if( ret == `back )
+ dialogIndex = dialogIndex - 2;
+ break;
+ } else {
+ if( (boolean)(UI::QueryWidget(`id(ret), `Value)) ) {
+ tomerge = add( tomerge, element2file[tointeger(ret)]:"" );
+ } else {
+ string file = element2file[tointeger(ret)]:"";
+ tomerge = filter (string f , tomerge, { return file != f; });
+ }
+ list<integer> conflicts = [];
+ foreach( map r, rulelist, {
+ if( r["dialog","element"]:-1 == tointeger(ret) ) {
+ conflicts = r["dialog","conflicts"]:[];
+ break;
+ }
+ });
+ foreach( integer element, conflicts, ``{
+ if( (boolean)(UI::QueryWidget(`id(ret), `Value)) )
+ conflictsCounter[element] = conflictsCounter[element]:0 + 1;
+ else if( conflictsCounter[element]:0 > 0 )
+ conflictsCounter[element] = conflictsCounter[element]:0 - 1;
+ });
+ foreach( integer e, integer v, conflictsCounter, ``{
+ if( v > 0 ) {
+ UI::ChangeWidget(`id(e) , `Enabled, false);
+ UI::ChangeWidget(`id(e) , `Value, false );
+ } else {
+ UI::ChangeWidget(`id(e) , `Enabled, true);
+ }
+ });
+ }
+ y2milestone("tomerge is now = %1", tomerge);
+ y2milestone("conflictsCounter is now = %1", conflictsCounter);
+ }
+ UI::CloseDialog();
+ dialogIndex = dialogIndex + 1;
+ }
+ y2milestone("changing rules to merge to %1 because of user selection", tomerge);
+ }
+
return;
}
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.18.14/src/modules/AutoinstClone.ycp new/autoyast2-2.19.0/src/modules/AutoinstClone.ycp
--- old/autoyast2-2.18.14/src/modules/AutoinstClone.ycp 2009-05-19 16:30:18.000000000 +0200
+++ new/autoyast2-2.19.0/src/modules/AutoinstClone.ycp 2009-11-20 17:52:51.000000000 +0100
@@ -11,7 +11,7 @@
* Authors:
* Anas Nashif
*
- * $Id: AutoinstClone.ycp 57251 2009-05-19 14:30:18Z ug $
+ * $Id: AutoinstClone.ycp 59616 2009-11-19 13:42:28Z ug $
*
*
*/
@@ -215,6 +215,7 @@
y2debug("Additional resources: %1 %2", base, additional);
Profile::Reset();
Profile::prepare = true;
+ Mode::SetMode("autoinst_config");
foreach(string def_resource, map resourceMap, Y2ModuleConfig::ModuleMap, ``{
// Set resource name, if not using default value
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.18.14/src/modules/AutoinstConfig.ycp new/autoyast2-2.19.0/src/modules/AutoinstConfig.ycp
--- old/autoyast2-2.18.14/src/modules/AutoinstConfig.ycp 2009-10-15 16:20:38.000000000 +0200
+++ new/autoyast2-2.19.0/src/modules/AutoinstConfig.ycp 2009-11-10 14:54:44.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: This module handles the configuration for auto-installation
* Authors: Anas Nashif
*
- * $Id: AutoinstConfig.ycp 59048 2009-10-15 14:20:38Z ug $
+ * $Id: AutoinstConfig.ycp 59453 2009-11-10 10:19:56Z ug $
*/
{
module "AutoinstConfig";
@@ -209,13 +209,39 @@
list<map> slpData = SLP::FindSrvs( "autoyast", "");
if( size(slpData) > 1 ) {
list<any> dummy = [];
+ map comment2url = $[];
foreach( map m, slpData, ``{
- dummy = add( dummy, `item( substring( m["srvurl"]:"", 17), false) );
+ list<string> attrList = SLP::FindAttrs(m["srvurl"]:"");
+ if( size(attrList) > 0 ) {
+ string url = substring( m["srvurl"]:"", 17);
+ // FIXME: that's really lazy coding here but I allow only one attribute currently anyway
+ // so it's lazy but okay. No reason to be too strict here with the checks
+ // As soon as more than one attr is possible, I need to iterate over the attr list
+ //
+ string comment = attrList[0]:"";
+ // The line above needs to be fixed when we have more attributes
+
+ // comment will look like this: "(description=BLA BLA)"
+ integer startComment = findfirstof( comment, "=");
+ integer endComment = findlastof( comment, ")");
+ if( startComment != nil && endComment != nil && endComment-startComment-1 > 0 )
+ comment = substring( comment, startComment+1, endComment-startComment-1 );
+ else
+ comment = "";
+ if( size(comment) < 1 )
+ comment = sformat("bad description in SLP for %1", url);
+ dummy = add( dummy, `item( comment, false) );
+ comment2url[comment] = url;
+ } else {
+ string url = substring( m["srvurl"]:"", 17);
+ dummy = add( dummy, `item( url, false) );
+ comment2url[ url ] = url;
+ }
});
term dlg = `Left( `ComboBox( `id(`choose), _("Choose Profile"), dummy ) );
UI::OpenDialog( `VBox( dlg, `PushButton(`id(`ok), "Ok" )) );
UI::UserInput();
- cmdLine = (string)UI::QueryWidget(`id(`choose), `Value);
+ cmdLine = comment2url[ (string)UI::QueryWidget(`id(`choose), `Value) ]:"";
UI::CloseDialog ();
} else if( size(slpData) == 1 ) {
cmdLine = substring( slpData[0,"srvurl"]:"", 17);
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.18.14/src/modules/AutoinstGeneral.ycp new/autoyast2-2.19.0/src/modules/AutoinstGeneral.ycp
--- old/autoyast2-2.18.14/src/modules/AutoinstGeneral.ycp 2009-07-13 16:49:41.000000000 +0200
+++ new/autoyast2-2.19.0/src/modules/AutoinstGeneral.ycp 2009-11-18 17:31:48.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Configuration of general settings for autoyast
* Authors: Anas Nashif (nashif@suse.de)
*
- * $Id: AutoinstGeneral.ycp 58030 2009-07-13 14:49:41Z ug $
+ * $Id: AutoinstGeneral.ycp 59585 2009-11-18 12:23:31Z ug $
*/
{
@@ -83,7 +83,7 @@
}
else
{
- mouse_name = "probe";
+ mouse_name = _("probe");
}
string summary = "";
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.18.14/src/modules/AutoinstPartition.ycp new/autoyast2-2.19.0/src/modules/AutoinstPartition.ycp
--- old/autoyast2-2.18.14/src/modules/AutoinstPartition.ycp 2009-10-01 13:37:10.000000000 +0200
+++ new/autoyast2-2.19.0/src/modules/AutoinstPartition.ycp 2009-11-26 15:09:18.000000000 +0100
@@ -193,6 +193,7 @@
global define PartitionT
parsePartition( map part ){
PartitionT newPart = new( part["mount"]:"" );
+ newPart = set( newPart, "mountby", part["mountby"]:`device );
newPart = set( newPart, "create", part["create"]:true );
newPart = set( newPart, "crypt", part["crypt"]:"" );
newPart = set( newPart, "crypt_fs", part["crypt_fs"]:false);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org