Hello community, here is the log from the commit of package yast2-packager for openSUSE:Factory checked in at Thu Jan 7 13:06:03 CET 2010. -------- --- yast2-packager/yast2-packager.changes 2009-12-14 15:28:44.000000000 +0100 +++ /mounts/work_src_done/STABLE/yast2-packager/yast2-packager.changes 2010-01-06 20:11:15.000000000 +0100 @@ -1,0 +2,12 @@ +Wed Jan 6 17:48:18 UTC 2010 - lslezak@suse.cz + +- do not reselect patterns which have been deselected by user + (bnc#450786, bnc#471340) +- 2.19.2 + +------------------------------------------------------------------- +Mon Jan 4 16:18:08 CET 2010 - locilka@suse.cz + +- Fixed accepting/declining the multilicense agreement. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- yast2-packager-2.19.1.tar.bz2 New: ---- yast2-packager-2.19.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-packager.spec ++++++ --- /var/tmp/diff_new_pack.aPiSSG/_old 2010-01-07 13:05:57.000000000 +0100 +++ /var/tmp/diff_new_pack.aPiSSG/_new 2010-01-07 13:05:57.000000000 +0100 @@ -1,7 +1,7 @@ # -# spec file for package yast2-packager (Version 2.19.1) +# spec file for package yast2-packager (Version 2.19.2) # -# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,10 +19,10 @@ Name: yast2-packager -Version: 2.19.1 +Version: 2.19.2 Release: 1 BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-packager-2.19.1.tar.bz2 +Source0: yast2-packager-2.19.2.tar.bz2 Prefix: /usr Group: System/YaST License: GPLv2+ @@ -79,7 +79,7 @@ (webpin) and installing them via OneClickInstall %prep -%setup -n yast2-packager-2.19.1 +%setup -n yast2-packager-2.19.2 %build %{prefix}/bin/y2tool y2autoconf ++++++ yast2-packager-2.19.1.tar.bz2 -> yast2-packager-2.19.2.tar.bz2 ++++++ ++++ 5453 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/yast2-packager-2.19.1/VERSION new/yast2-packager-2.19.2/VERSION --- old/yast2-packager-2.19.1/VERSION 2009-12-08 14:00:14.000000000 +0100 +++ new/yast2-packager-2.19.2/VERSION 2010-01-06 20:09:39.000000000 +0100 @@ -1 +1 @@ -2.19.1 +2.19.2 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/yast2-packager-2.19.1/configure.in new/yast2-packager-2.19.2/configure.in --- old/yast2-packager-2.19.1/configure.in 2009-07-31 12:53:46.000000000 +0200 +++ new/yast2-packager-2.19.2/configure.in 2010-01-06 20:10:38.000000000 +0100 @@ -1,9 +1,9 @@ dnl configure.in for yast2-packager 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(yast2-packager, 2.18.9, http://bugs.opensuse.org/, yast2-packager) +AC_INIT(yast2-packager, 2.19.2, http://bugs.opensuse.org/, yast2-packager) 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.9" +VERSION="2.19.2" RPMNAME="yast2-packager" MAINTAINER="Ladislav Slezak <lslezak@suse.cz>" 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/yast2-packager-2.19.1/missing new/yast2-packager-2.19.2/missing --- old/yast2-packager-2.19.1/missing 2009-07-31 12:53:51.000000000 +0200 +++ new/yast2-packager-2.19.2/missing 2010-01-06 20:10:43.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 <pinard@iro.umontreal.ca>, 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 <bug-automake@gnu.org>." 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/yast2-packager-2.19.1/src/clients/inst_kickoff.ycp new/yast2-packager-2.19.2/src/clients/inst_kickoff.ycp --- old/yast2-packager-2.19.1/src/clients/inst_kickoff.ycp 2009-06-24 12:53:07.000000000 +0200 +++ new/yast2-packager-2.19.2/src/clients/inst_kickoff.ycp 2010-01-05 13:45:45.000000000 +0100 @@ -5,7 +5,7 @@ * * Purpose: Do various tasks before starting with installation of rpms. * - * $Id: inst_kickoff.ycp 52946 2008-11-05 16:17:47Z locilka $ + * $Id: inst_kickoff.ycp 60099 2009-12-14 15:44:01Z aschnell $ * */ @@ -317,10 +317,6 @@ } } - // special logging function for Rendivm - void eat2minestrone (string entry) { - y2milestone (entry); - } /** * Load all network modules. The package sysconfig requires this during 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/yast2-packager-2.19.1/src/modules/Packages.ycp new/yast2-packager-2.19.2/src/modules/Packages.ycp --- old/yast2-packager-2.19.1/src/modules/Packages.ycp 2009-06-24 12:53:07.000000000 +0200 +++ new/yast2-packager-2.19.2/src/modules/Packages.ycp 2010-01-06 20:10:26.000000000 +0100 @@ -3,7 +3,7 @@ * Package: Package selections * Authors: Anas Nashif <nashif@suse.de> * - * $Id: Packages.ycp 56846 2009-04-20 10:21:38Z locilka $ + * $Id: Packages.ycp 60245 2010-01-06 19:10:25Z lslezak $ */ { @@ -1649,7 +1649,15 @@ { y2milestone ("Selecting system patterns %1", system_patterns); foreach (string p, system_patterns, { - Pkg::ResolvableInstall (p, `pattern); + map prop = Pkg::ResolvableProperties(p, `pattern, "")[0]:$[]; + if (prop["status"]:nil == `available && prop["transact_by"]:nil == `user) + { + y2milestone("Ignoring deselected pattern '%1'", p); + } + else + { + Pkg::ResolvableInstall (p, `pattern); + } }); } else 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/yast2-packager-2.19.1/src/modules/ProductLicense.ycp new/yast2-packager-2.19.2/src/modules/ProductLicense.ycp --- old/yast2-packager-2.19.1/src/modules/ProductLicense.ycp 2009-12-14 15:27:57.000000000 +0100 +++ new/yast2-packager-2.19.2/src/modules/ProductLicense.ycp 2010-01-05 13:45:45.000000000 +0100 @@ -139,7 +139,7 @@ return license_file; } -global term GetLicenseContent (string lic_lang, map <string, string> & licenses) { +global term GetLicenseContent (string lic_lang, map <string, string> & licenses, string id) { string license_file = WhichLicenceFile (lic_lang, licenses); string license_text = (string) SCR::Read(.target.string, license_file); @@ -152,13 +152,13 @@ // License is HTML (or RichText) if (regexpmatch(license_text, "</.*>")) - rt = `MinWidth (80, `RichText(`id (`welcome_text), + rt = `MinWidth (80, `RichText(`id (sformat("welcome_text_%1", id)), license_text )); // License is plain text // details in BNC #449188 else - rt = `MinWidth (80, `RichText(`id (`welcome_text), + rt = `MinWidth (80, `RichText(`id (sformat("welcome_text_%1", id)), "<pre>" + String::EscapeTags (license_text) + "</pre>" )); @@ -171,7 +171,7 @@ term GetLicenseDialogTerm (list<string> languages, string license_language, map <string, string> & licenses, string id) { string license_text = ""; - term rt = GetLicenseContent (license_language, licenses); + term rt = GetLicenseContent (license_language, licenses, id); // bug #204791, no more "languages.ycp" client map<string,list> lang_names_orig = Language::GetLanguagesMap (false); @@ -285,29 +285,22 @@ } } -/** - * Displays License with Help and ( ) Yes / ( ) No radio buttons - * @param string file with the license - */ -void DisplayLicenseDialog (list<string> languages, boolean back, string license_language, map <string, string> & licenses, string id) { +term GetLicenseDialog (list<string> languages, string license_language, map <string, string> & licenses, string id, boolean spare_space) { map display = UI::GetDisplayInfo(); integer space = display["TextMode"]:true ? 1 : 3; - // dialog caption - string caption = _("License Agreement"); - term license_buttons = `VBox ( - `VSpacing (2), - `RadioButtonGroup(`id(`eula), + `VSpacing ((spare_space ? 0:2)), + `RadioButtonGroup(`id (sformat ("eula_%1", id)), `HBox( `HSpacing (2*space), `VBox( - `Left(`RadioButton(`id(`yes), + `Left(`RadioButton(`id (sformat("yes_%1", id)), `opt(`notify), // radio button _("&Yes, I Agree to the License Agreement") )), - `Left(`RadioButton(`id(`no), + `Left(`RadioButton(`id (sformat("no_%1", id)), `opt(`notify), // radio button _("N&o, I Do Not Agree") @@ -318,8 +311,8 @@ ) ); - term contents = `VBox ( - `VSpacing (1), + return `VBox ( + `VSpacing ((spare_space ? 0:1)), `HBox ( `HSpacing (2*space), GetLicenseDialogTerm (languages, license_language, licenses, id), @@ -333,7 +326,7 @@ : `Empty() ), - `VSpacing(1), + `VSpacing((spare_space ? 0.5 : 1)), `HBox ( `HSpacing (2*space), (license_file_print != nil ? @@ -351,22 +344,35 @@ ), `HSpacing (2*space) ), - `VSpacing (1) + `VSpacing ((spare_space ? 0:1)) ); +} +string GetLicenseDialogHelp () { // help text - string help = _("<p>Read the license agreement carefully and select + return _("<p>Read the license agreement carefully and select one of the available options. If you do not agree to the license agreement, the configuration will be aborted.</p> "); +} + +/** + * Displays License with Help and ( ) Yes / ( ) No radio buttons + * @param string file with the license + */ +void DisplayLicenseDialog (list<string> languages, boolean back, string license_language, map <string, string> & licenses, string id) { + // dialog caption + string caption = _("License Agreement"); + + term contents = GetLicenseDialog (languages, license_language, licenses, id, false); // If acceptance is not needed, there's no need to disable the button // by default boolean default_next_button_state = (AcceptanceNeeded (id) ? false : true); - Wizard::SetContents(caption, contents, help, + Wizard::SetContents(caption, contents, GetLicenseDialogHelp(), back, default_next_button_state); - + Wizard::SetTitleIcon ("yast-license"); Wizard::SetFocusToNextButton(); } @@ -771,7 +777,7 @@ lic_lang = (string) UI::QueryWidget (`id (sformat ("license_language_%1", id)), `Value); term rp_id = `id (sformat ("license_contents_rp_%1", id)); if (UI::WidgetExists (rp_id)) { - UI::ReplaceWidget (rp_id, GetLicenseContent (lic_lang, licenses)); + UI::ReplaceWidget (rp_id, GetLicenseContent (lic_lang, licenses, id)); } else { y2error ("No such widget: %1", rp_id); } @@ -784,8 +790,10 @@ string eula_id = nil; foreach (string one_license_id, license_ids, { - if (AcceptanceNeeded (one_license_id)) + if (AcceptanceNeeded (one_license_id) != true) { + y2milestone ("License %1 does not need to be accepted", one_license_id); return; + } eula_id = sformat ("eula_%1", one_license_id); if ((boolean) UI::WidgetExists (`id (eula_id)) != true) { @@ -794,7 +802,10 @@ } // All licenses have to be accepted - if ((symbol) UI::QueryWidget(`id (eula_id), `CurrentButton) != `yes) { + string license_accepted = (string) UI::QueryWidget (`id (eula_id), `CurrentButton); + y2milestone ("License %1 accepted: %2", eula_id, license_accepted); + + if (! regexpmatch (license_accepted, "^yes_")) { accepted = false; break; } @@ -816,9 +827,9 @@ y2error ("Widget %1 does not exist", eula_id); } - symbol current_button = (symbol) UI::QueryWidget(`id (eula_id), `CurrentButton); + string current_button = (string) UI::QueryWidget(`id (eula_id), `CurrentButton); // license have to be accepted or declined - if (current_button != `yes && current_button != `no) { + if (current_button == nil) { y2warning ("License %1 hasn't been accepted or declined", eula_id); ret = false; break; @@ -840,7 +851,7 @@ ret = `language; // bugzilla #303828 // disabled next button unless yes/no is selected - } else if (ret == `yes || ret == `no) { + } else if (is (ret, string) && (regexpmatch (tostring(ret), "^yes_") || regexpmatch (tostring(ret), "^no_"))) { if (AllLicensesAcceptedOrDeclined()) Wizard::EnableNextButton(); } @@ -1017,6 +1028,129 @@ return ret; } +/** + * Ask user to confirm license agreement + * @param src_id integer repository to get the license from. + * If set to 'nil', the license is considered to belong to a base product + * @param list <string> dirs - directories to look for the licenses + * @param patterns a list of patterns for the files, regular expressions + * with %1 for the language + * @param boolean enable_back sets the back_button status + * @param boolean base_product defines whether it is a base or add-on product + * true means base product, false add-on product + * @param require_agreement means that even if the license (or the very same license) + * has been already accepetd, ask user to accept it again (because of 'going back' + * in the installation proposal). + */ +global symbol AskLicensesAgreement (list <string> dirs, + list<string> patterns, string action, boolean enable_back, + boolean base_product, boolean require_agreement) +{ + if (dirs == nil || dirs == []) { + y2error ("No directories: %1", dirs); + // error message + Report::Error ("Internal Error: No license to show"); + return `auto; + } + + symbol init_ret = nil; + + if (init_ret == `auto || init_ret == `accepted) { + y2milestone ("Returning %1", init_ret); + return init_ret; + } + + boolean created_new_dialog = false; + + // #459391 + // If a progress is running open another dialog + if (Progress::IsRunning()) { + y2milestone ("Some progress is running, opening new dialog for license..."); + Wizard::OpenNextBackDialog(); + created_new_dialog = true; + } + + // dialog caption + string caption = _("License Agreement"); + + list <string> license_idents = []; + + // initial loop + symbol ret = nil; + + list <map <string, string> > licenses = []; + integer counter = -1; + term contents = `VBox(); + // If acceptance is not needed, there's no need to disable the button + // by default + boolean default_next_button_state = true; + + foreach (string dir, dirs, { + counter = counter + 1; + licenses[counter] = $[]; + + lic_lang = ""; + list <string> available_langs = []; + string license_ident = ""; + map <string, string> tmp_licenses = $[]; + + symbol init_ret = InitLicenseData (nil, dir, tmp_licenses, available_langs, require_agreement, license_ident, dir); + + if (license_ident != nil) + license_idents = add (license_idents, license_ident); + + term license_term = GetLicenseDialog (available_langs, lic_lang, tmp_licenses, dir, true); + if (license_term == nil) { + y2error ("Oops, license term is: %1", license_term); + } else { + contents = add (contents, license_term); + } + + // Display info as a popup if exists + if (info_file != nil) + InstShowInfo::show_info_txt (info_file); + + licenses[counter] = tmp_licenses; + + if (AcceptanceNeeded (dir)) + default_next_button_state = false; + }); + + SCR::Write (.target.ycp, "/tmp/a", contents); + Wizard::SetContents(caption, contents, GetLicenseDialogHelp(), + enable_back, default_next_button_state); + + Wizard::SetTitleIcon ("yast-license"); + Wizard::SetFocusToNextButton(); + + // set timeout for autoinstallation + // bugzilla #206706 + if (Mode::autoinst()) { + y2milestone("AutoYaST: License has been accepted automatically"); + ret = `accepted; + } else { + map <string, string> tmp_licenses = $[]; + ret = HandleLicenseDialogRet (tmp_licenses, base_product, action); + y2milestone ("Dialog ret: %1", ret); + } + + // store already accepted license IDs + if (ret == `accepted) { + foreach (string license_ident, license_idents, { + LicenseHasBeenAccepted (license_ident); + }); + } + + CleanUpLicense (tmpdir); + + // bugzilla #303922 + if (created_new_dialog || !Stage::initial()) { + Wizard::CloseDialog(); + } + + return ret; +} + global symbol AskAddOnLicenseAgreement (integer src_id) { return AskLicenseAgreement (src_id, "", license_patterns, @@ -1091,7 +1225,7 @@ symbol init_ret = InitLicenseData (nil /* base product */, "", licenses, available_langs, true, license_ident, tostring (src_id)); - term rt = GetLicenseContent (lic_lang, licenses); + term rt = GetLicenseContent (lic_lang, licenses, tostring (src_id)); UI::ReplaceWidget (`id (replace_point_ID), rt); string id = tostring (src_id); @@ -1109,11 +1243,15 @@ return true; } -global symbol AskInstalledLicenseAgreement (string directory, - list<string> patterns, string action, string id) -{ - return AskLicenseAgreement (nil, directory, patterns, action, false, true, false, id); +global symbol AskInstalledLicenseAgreement (string directory, string action) { + // patterns are hard-coded + return AskLicenseAgreement (nil, directory, [], action, false, true, false, directory); } +// FATE #306295: More licenses in one dialog +global symbol AskInstalledLicensesAgreement (list <string> directories, string action) { + // patterns are hard-coded + return AskLicensesAgreement (directories, [], action, false, true, false); +} } // EOF ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org