Hello community,
here is the log from the commit of package yast2-update
checked in at Fri Feb 16 08:05:35 CET 2007.
--------
--- yast2-update/yast2-update.changes 2007-02-01 12:58:25.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-update/yast2-update.changes 2007-02-15 14:21:39.000000000 +0100
@@ -1,0 +2,18 @@
+Thu Feb 15 11:34:53 CET 2007 - locilka@suse.cz
+
+- Added two new functions into Update module:
+ SilentlyDowngradePackages and KeepInstalledPatches to control
+ upgrade process better (FATE #301990, Bugzilla #238488).
+- 2.15.3
+
+-------------------------------------------------------------------
+Tue Feb 13 18:19:43 CET 2007 - locilka@suse.cz
+
+- Client and desktop file 'vendor' has been moved to update from
+ installation to minimize RPM dependencies.
+- Fixed RootPart code handling the correctness of root partition
+ mentioned in /etc/fstab of the updated system. Using new
+ Storage::DeviceMatchFstab function from storage (#244117).
+- Updating RPM requirements.
+
+-------------------------------------------------------------------
Old:
----
yast2-update-2.15.2.tar.bz2
New:
----
yast2-update-2.15.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-update.spec ++++++
--- /var/tmp/diff_new_pack.Bo7446/_old 2007-02-16 07:58:21.000000000 +0100
+++ /var/tmp/diff_new_pack.Bo7446/_new 2007-02-16 07:58:21.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-update (Version 2.15.2)
+# spec file for package yast2-update (Version 2.15.3)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,21 +11,30 @@
# norootforbuild
Name: yast2-update
-Version: 2.15.2
+Version: 2.15.3
Release: 1
License: GNU General Public License (GPL)
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-update-2.15.2.tar.bz2
+Source0: yast2-update-2.15.3.tar.bz2
prefix: /usr
-BuildRequires: docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer sgml-skel update-desktop-files yast2 yast2-bootloader yast2-devtools yast2-mouse yast2-packager yast2-testsuite yast2-xml
-Requires: yast2 yast2-installation yast2-storage yast2-packager
+BuildRequires: docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer sgml-skel update-desktop-files yast2 yast2-devtools yast2-packager yast2-testsuite yast2-xml
+Requires: yast2
+Requires: yast2-installation
+Requires: yast2-packager
+# Storage::DeviceMatchFstab (#244117)
+Requires: yast2-storage >= 2.15.4
Provides: yast2-config-update y2c_update
Obsoletes: yast2-config-update y2c_update
Provides: yast2-trans-inst-update y2t_inst-update
Obsoletes: yast2-trans-inst-update y2t_inst-update
Provides: yast2-trans-update y2t_update
Obsoletes: yast2-trans-update y2t_update
+# moved into yast2-update from yast2-installation
+# to remove dependency on yast2-storage
+Provides: yast2-installation:/usr/share/YaST2/clients/vendor.ycp
+# Pkg::PkgUpdateAll (map conf)
+Conflicts: yast2-pkg-bindings < 2.15.11
Summary: YaST2 - Update
%description
@@ -40,7 +49,7 @@
Jiri Srain
%prep
-%setup -n yast2-update-2.15.2
+%setup -n yast2-update-2.15.3
%build
%{prefix}/bin/y2tool y2autoconf
@@ -75,6 +84,18 @@
%doc %{prefix}/share/doc/packages/yast2-update
%changelog -n yast2-update
+* Thu Feb 15 2007 - locilka@suse.cz
+- Added two new functions into Update module:
+ SilentlyDowngradePackages and KeepInstalledPatches to control
+ upgrade process better (FATE #301990, Bugzilla #238488).
+- 2.15.3
+* Tue Feb 13 2007 - locilka@suse.cz
+- Client and desktop file 'vendor' has been moved to update from
+ installation to minimize RPM dependencies.
+- Fixed RootPart code handling the correctness of root partition
+ mentioned in /etc/fstab of the updated system. Using new
+ Storage::DeviceMatchFstab function from storage (#244117).
+- Updating RPM requirements.
* Wed Jan 31 2007 - locilka@suse.cz
- Fixed update of system on EVMS: '/dev/abc/xyz' is the same
as '/dev/evms/lvm2/abc/xyz' (#237139).
++++++ yast2-update-2.15.2.tar.bz2 -> yast2-update-2.15.3.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/configure new/yast2-update-2.15.3/configure
--- old/yast2-update-2.15.2/configure 2007-01-04 16:02:38.000000000 +0100
+++ new/yast2-update-2.15.3/configure 2007-02-15 14:23:16.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for yast2-update 2.15.1.
+# Generated by GNU Autoconf 2.60 for yast2-update 2.15.3.
#
# Report bugs to http://bugs.opensuse.org/.
#
@@ -559,8 +559,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-update'
PACKAGE_TARNAME='yast2-update'
-PACKAGE_VERSION='2.15.1'
-PACKAGE_STRING='yast2-update 2.15.1'
+PACKAGE_VERSION='2.15.3'
+PACKAGE_STRING='yast2-update 2.15.3'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
ac_unique_file="RPMNAME"
@@ -1181,7 +1181,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures yast2-update 2.15.1 to adapt to many kinds of systems.
+\`configure' configures yast2-update 2.15.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1252,7 +1252,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-update 2.15.1:";;
+ short | recursive ) echo "Configuration of yast2-update 2.15.3:";;
esac
cat <<\_ACEOF
@@ -1330,7 +1330,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-update configure 2.15.1
+yast2-update configure 2.15.3
generated by GNU Autoconf 2.60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1344,7 +1344,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by yast2-update $as_me 2.15.1, which was
+It was created by yast2-update $as_me 2.15.3, which was
generated by GNU Autoconf 2.60. Invocation command line was
$ $0 $@
@@ -2145,7 +2145,7 @@
# Define the identity of the package.
PACKAGE='yast2-update'
- VERSION='2.15.1'
+ VERSION='2.15.3'
cat >>confdefs.h <<_ACEOF
@@ -2372,7 +2372,7 @@
-VERSION="2.15.1"
+VERSION="2.15.3"
RPMNAME="yast2-update"
MAINTAINER="Lukas Ocilka "
@@ -3260,7 +3260,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-update $as_me 2.15.1, which was
+This file was extended by yast2-update $as_me 2.15.3, which was
generated by GNU Autoconf 2.60. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3303,7 +3303,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-yast2-update config.status 2.15.1
+yast2-update config.status 2.15.3
configured by $0, generated by GNU Autoconf 2.60,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/configure.in new/yast2-update-2.15.3/configure.in
--- old/yast2-update-2.15.2/configure.in 2007-01-04 16:02:34.000000000 +0100
+++ new/yast2-update-2.15.3/configure.in 2007-02-15 14:23:10.000000000 +0100
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.14.0 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-update, 2.15.1, http://bugs.opensuse.org/, yast2-update)
+AC_INIT(yast2-update, 2.15.3, http://bugs.opensuse.org/, yast2-update)
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.15.1"
+VERSION="2.15.3"
RPMNAME="yast2-update"
MAINTAINER="Lukas Ocilka "
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/clients/update_proposal.ycp new/yast2-update-2.15.3/src/clients/update_proposal.ycp
--- old/yast2-update-2.15.2/src/clients/update_proposal.ycp 2007-01-04 14:35:32.000000000 +0100
+++ new/yast2-update-2.15.3/src/clients/update_proposal.ycp 2007-02-15 14:21:56.000000000 +0100
@@ -5,7 +5,7 @@
*
* Purpose: Let user choose update settings.
*
- * $Id: update_proposal.ycp 35065 2007-01-04 13:35:30Z locilka $
+ * $Id: update_proposal.ycp 36182 2007-02-15 13:21:54Z locilka $
*/
{
textdomain "update";
@@ -32,6 +32,27 @@
boolean rpm_db_existency_checked_already = false;
+ map GetUpdateConf () {
+ // 'nil' values are skipped, in that case, ZYPP uses own default values
+ map ret = $[];
+
+ if (Update::deleteOldPackages != nil) {
+ ret["delete_unmaintained"] = Update::deleteOldPackages;
+ }
+
+ if (Update::silentlyDowngradePackages != nil) {
+ ret["silent_downgrades"] = Update::silentlyDowngradePackages;
+ }
+
+ if (Update::keepInstalledPatches != nil) {
+ ret["keep_installed_patches"] = Update::keepInstalledPatches;
+ }
+
+ y2milestone ("Using update configuration: %1", ret);
+
+ return ret;
+ }
+
// bugzilla #148105
// Check the current RPM Database if exists
//
@@ -173,6 +194,9 @@
Update::GetProductName ();
}
+ // FATE #301990, Bugzilla #238488
+ // Set initial update-related (packages/patches) values from control file
+ Update::InitUpdate();
// some products are listed in media control file and at least one is compatible
// with system just being updated
@@ -266,8 +290,11 @@
Packages::SelectProduct();
Pkg::ActivateSelections (); // now go through all selected selections and select their packages
- map update_sum
- = Pkg::PkgUpdateAll (Update::deleteOldPackages);
+
+ // FATE #301990, Bugzilla #238488
+ // Control the upgrade process better
+ map update_sum
+ = Pkg::PkgUpdateAll (GetUpdateConf());
y2milestone ("Update summary: %1", update_sum);
Update::unknown_packages = update_sum[`ProblemListSze]:0;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/config/Makefile.am new/yast2-update-2.15.3/src/config/Makefile.am
--- old/yast2-update-2.15.2/src/config/Makefile.am 2006-10-09 15:55:02.000000000 +0200
+++ new/yast2-update-2.15.3/src/config/Makefile.am 2007-02-15 11:42:49.000000000 +0100
@@ -7,6 +7,6 @@
control_DATA = \
update.xml
-desktop_DATA = update.desktop
+desktop_DATA = update.desktop vendor.desktop
EXTRA_DIST = $(desktop_DATA) $(control_DATA)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/config/Makefile.in new/yast2-update-2.15.3/src/config/Makefile.in
--- old/yast2-update-2.15.2/src/config/Makefile.in 2007-01-04 16:02:39.000000000 +0100
+++ new/yast2-update-2.15.3/src/config/Makefile.in 2007-02-15 14:23:17.000000000 +0100
@@ -175,7 +175,7 @@
control_DATA = \
update.xml
-desktop_DATA = update.desktop
+desktop_DATA = update.desktop vendor.desktop
EXTRA_DIST = $(desktop_DATA) $(control_DATA)
all: all-am
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/config/vendor.desktop new/yast2-update-2.15.3/src/config/vendor.desktop
--- old/yast2-update-2.15.2/src/config/vendor.desktop 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-update-2.15.3/src/config/vendor.desktop 2007-02-15 11:42:49.000000000 +0100
@@ -0,0 +1,58 @@
+[Desktop Entry]
+Type=Application
+Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Misc;
+
+X-KDE-ModuleType=Library
+X-KDE-RootOnly=true
+X-KDE-HasReadOnlyMode=true
+X-KDE-Library=yast2
+X-SuSE-YaST-Call=vendor
+
+X-SuSE-YaST-Group=Misc
+X-SuSE-YaST-Argument=
+X-SuSE-YaST-RootOnly=true
+X-SuSE-YaST-AutoInst=
+X-SuSE-YaST-Geometry=
+X-SuSE-YaST-SortKey=
+X-SuSE-YaST-AutoInstResource=
+
+Icon=yast-vendor
+Exec=/sbin/yast2 vendor
+
+Name=Vendor Driver CD
+GenericName=Install a driver from a vendor-specific CD-ROM
+Name[cs]=Načíst CD s ovladačem od výrobce
+GenericName[cs]=Tento modul instaluje ovladače třetích stran z CD od výrobce.
+Name[de]=Treiber-CD des Händlers laden
+GenericName[de]=Dieses Modul dient dazu, keine SuSE-Treiber, sondern Treiber von einer Hersteller-spezifischen CD zu laden.
+Name[es]=Cargar CD de controladores del fabricante
+GenericName[es]=Este módulo instala drivers no-SuSE desde un CD del fabricante.
+Name[hu]=Meghajtó-CD betöltése
+GenericName[hu]=Ez a modul egy nem SuSE-s meghajtót telepít, melyet a hardver gyártótól CD-ROM-on kapott.
+Name[it]=Carica il CD dei driver del produttore
+GenericName[it]=Questo modulo installa un driver non SuSE da un CD-ROM specifico del produttore.
+Name[ko]=제조사 드라이버 CD 적재
+GenericName[ko]=이 모듈은 제조사 CD-ROM으로 부터 수세 드라이버가 아닌것을 설치합니다.
+Name[nl]=Laadt de fabrikant's driver-CD
+GenericName[nl]=Deze module installeert een niet-SuSE driver van een specifieke fabrikant CDROM.
+Name[pt]=Carregar CD de driver do fabricante
+GenericName[pt]=Este módulo instala um driver não-SuSE de um CD-ROM de fabricante.
+Name[sk]=Načítať CD s ovládačmi od výrobcu
+GenericName[sk]=Tento modul inštaluje ovládače z CD-ROM od výrobcu.
+Name[sv]=Ladda tillverkarens drivrutin-cd
+GenericName[sv]=Den här modulen installerar en icke-SuSE-drivrutin från tillverkarens cd-skiva.
+Name[bg]=Зареждане на CD от производителя
+GenericName[bg]=Този модул инсталира не-SuSE драйвер от CD на производителя.
+GenericName[da]=Dette modul installerer en ikke-SuSE driver fra en producentspecifik CD-ROM.
+Name[el]=Φόρτωση CD οδηγού κατασκευαστή
+GenericName[el]=Αυτή η μονάδα εγκαθιστά έναν μη-SuSE οδηγό από ένα συγκεκριμένο CD-ROM κατασκευαστή.
+Name[fr]= harger le CD pilote du constructeur
+GenericName[fr]=Ce module installe le pilote d'un constructeur spécifique ne faisant pas partie de la distribution SuSE.
+Name[ja]=メーカーのドライバ CD を読み込む
+GenericName[ja]=このモジュールは SuSE 社製以外のメーカのドライバをそのメーカーの CD からインストールします。
+GenericName[lt]=Šis modulis įdiegia ne SuSE sukurtas tvarkykles iš gamintojo CD-ROM'o.
+GenericName[ru]=Этот модуль устанавливает не-SuSE драйверы с CD-дисков поставщиков.
+Name[sl]=Naloži proizvajalčev CD z gonilniki
+GenericName[sl]=Modul namesti ne-SuSE gonilnik s CD-ROM-a proizvajalca.
+GenericName[tr]=Bu modül üreticiye özel CD-ROM'dan SuSE sürücüsü olmayan bir sürücü kurulumu yapar
+X-KDE-SubstituteUID=true
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/modules/RootPart.ycp new/yast2-update-2.15.3/src/modules/RootPart.ycp
--- old/yast2-update-2.15.2/src/modules/RootPart.ycp 2007-01-31 16:29:17.000000000 +0100
+++ new/yast2-update-2.15.3/src/modules/RootPart.ycp 2007-02-15 11:42:50.000000000 +0100
@@ -6,7 +6,7 @@
* Purpose: Responsible for searching of root partitions and
* mounting of target partitions.
*
- * $Id: RootPart.ycp 35745 2007-01-31 15:29:16Z locilka $
+ * $Id: RootPart.ycp 36121 2007-02-14 09:13:08Z locilka $
*/
{
module "RootPart";
@@ -446,13 +446,6 @@
}
}
- if (root["spec"]:"" != partition)
- {
- y2error ("root partition in fstab has wrong device");
- found_partition = root["spec"]:"";
- return false;
- }
-
return true;
}
@@ -1118,9 +1111,8 @@
symbol p_type = partition["type"]:`primary;
symbol p_detect_fs = partition["detected_fs"]:`unknown;
- if ((p_fsid == 131 || p_type == `lvm || p_type == `sw_raid) &&
- // possible root FS
- contains (possible_root_fs, p_detect_fs))
+ // possible root FS
+ if ( contains (possible_root_fs, p_detect_fs))
{
map mt_map = $[
`ext2: "ext2",
@@ -1143,6 +1135,7 @@
if (mount_type != "" && ! contains (non_modular_fs, mount_type))
SCR::Execute(.target.modprobe, mount_type, "" );
// mount (read-only) partition to Installation::destdir
+ Storage::RemoveDmMapsTo( p_dev );
if ((boolean) SCR::Execute (.target.mount, [p_dev, Installation::destdir,
Installation::mountlog], "-o ro"))
{
@@ -1151,6 +1144,15 @@
{
y2milestone ("found fstab on %1", partition);
+ list <map> fstab = [];
+ list <map> crtab = [];
+ read_fstab_and_cryptotab (fstab, crtab);
+ fstab = filter( map p, fstab, ``(p["file"]:""=="/"));
+ boolean ok = size(fstab[0,"spec"]:"")>0 &&
+ Storage::DeviceMatchFstab( p_dev,
+ fstab[0,"spec"]:"" );
+ freshman[`valid] = ok;
+
// Get installed release name
string release = SuSERelease::ReleaseInformation
(Installation::destdir);
@@ -1165,11 +1167,12 @@
freshman[`arch] = GetArchOfELF (Installation::destdir + "/bin/bash");
if (freshman[`arch]:"unknown" == GetArchOfELF ("/bin/bash"))
{
- freshman[`valid] = true;
+ freshman[`valid] = ok;
}
else
{
y2milestone ("Architecture for partition %1 is %2, upgrading %3", p_dev, freshman[`arch]:"unknown", GetArchOfELF ("/bin/bash"));
+ freshman[`valid] = false;
}
}
@@ -1212,6 +1215,7 @@
Storage::SetTargetMap ((map) SCR::Read (.target.yast2, "test_target_map.ycp"));
}
+ Storage::ActivateEvms();
map target_map = (map ) Storage::GetOndiskTarget ();
y2milestone ("target_map: %1", target_map);
// target_map = (map ) Storage::GetTargetMap ();
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/src/modules/Update.ycp new/yast2-update-2.15.3/src/modules/Update.ycp
--- old/yast2-update-2.15.2/src/modules/Update.ycp 2007-01-04 14:35:32.000000000 +0100
+++ new/yast2-update-2.15.3/src/modules/Update.ycp 2007-02-15 14:21:56.000000000 +0100
@@ -6,11 +6,13 @@
*
* Purpose: Update module
*
- * $Id: Update.ycp 35065 2007-01-04 13:35:30Z locilka $
+ * $Id: Update.ycp 36182 2007-02-15 13:21:54Z locilka $
*/
{
module "Update";
+ textdomain "update";
+
import "Installation";
import "Packages";
import "ProductFeatures";
@@ -36,6 +38,12 @@
// Flag is set true if the user decides to delete unmaintained packages
global boolean deleteOldPackages = nil;
+ // Flag is set to true when package downgrade is allowed
+ global boolean silentlyDowngradePackages = nil;
+
+ // Flag is set to true if installed packages should be kept
+ global boolean keepInstalledPatches = nil;
+
// don't allow upgrade only update
global boolean disallow_upgrade = false;
@@ -124,11 +132,14 @@
*/
global boolean DeleteOldPackages () {
// changes deleteOldPackages variable
- boolean default_dop = ProductFeatures::GetBooleanFeature ("software", "delete_old_packages");
- if (default_dop == nil) {
+ any default_dop_a = ProductFeatures::GetFeature ("software", "delete_old_packages");
+
+ boolean default_dop = nil;
+ if (default_dop_a == nil || default_dop_a == "") {
y2error ("software/delete_old_packages not defined");
return false;
}
+ if (is (default_dop_a, boolean)) default_dop = (boolean) default_dop_a;
string installed_system = SuSERelease::ReleaseInformation (Installation::destdir);
y2milestone ("Processing '%1' from '%2'", installed_system, Installation::destdir);
@@ -161,11 +172,14 @@
*/
global boolean OnlyUpdateInstalled () {
// changes onlyUpdateInstalled variable
- boolean default_ous = ProductFeatures::GetBooleanFeature ("software", "only_update_selected");
- if (default_ous == nil) {
+ any default_ous_a = ProductFeatures::GetFeature ("software", "only_update_selected");
+
+ boolean default_ous = nil;
+ if (default_ous_a == nil || default_ous_a == "") {
y2error ("software/only_update_selected not defined");
return false;
}
+ if (is (default_ous_a, boolean)) default_ous = (boolean) default_ous_a;
string installed_system = SuSERelease::ReleaseInformation (Installation::destdir);
y2milestone ("Processing '%1' from '%2'", installed_system, Installation::destdir);
@@ -190,6 +204,86 @@
return default_ous;
}
+
+ /**
+ * Returns whether upgrade process should silently downgrade packages if needed.
+ * 'true' means that packages might be downgraded, 'nil' is returned when
+ * the feature is not supported in the control file.
+ */
+ global boolean SilentlyDowngradePackages () {
+ // returns empty string if not defined, buggy GetBooleanFeature
+ any default_sdp_a = ProductFeatures::GetFeature ("software", "silently_downgrade_packages");
+
+ boolean default_sdp = nil;
+ if (default_sdp_a == nil || default_sdp_a == "") {
+ y2milestone ("software/silently_downgrade_packages not defined");
+ return nil;
+ }
+ if (is (default_sdp_a, boolean)) default_sdp = (boolean) default_sdp_a;
+
+ string installed_system = SuSERelease::ReleaseInformation (Installation::destdir);
+ y2milestone ("Processing '%1' from '%2'", installed_system, Installation::destdir);
+
+ if (installed_system == nil || installed_system == "") {
+ y2error ("Cannot find out installed system name");
+ return default_sdp;
+ }
+
+ any reverse_sdp_a = ProductFeatures::GetFeature ("software", "silently_downgrade_packages_reverse_list");
+ // No reverse rules defined
+ if (reverse_sdp_a == "") {
+ return default_sdp;
+ }
+ // not a list or empty list
+ list <string> reverse_sdp = (list <string>) reverse_sdp_a;
+ if (reverse_sdp == nil || reverse_sdp == []) return default_sdp;
+
+ if (ListOfRegexpsMatchesProduct (reverse_sdp, installed_system)) {
+ return (! default_sdp);
+ }
+
+ return default_sdp;
+ }
+
+ /**
+ * Returns whether upgrade process should keep installed patches.
+ * 'true' means that patches will be kept, 'nil' is returned when
+ * the feature is not supported in the control file.
+ */
+ global boolean KeepInstalledPatches () {
+ // returns empty string if not defined, buggy GetBooleanFeature
+ any default_kip_a = ProductFeatures::GetFeature ("software", "keep_installed_patches");
+
+ boolean default_kip = nil;
+ if (default_kip_a == nil || default_kip_a == "") {
+ y2milestone ("software/keep_installed_patches not defined");
+ return nil;
+ }
+ if (is (default_kip_a, boolean)) default_kip = (boolean) default_kip_a;
+
+ string installed_system = SuSERelease::ReleaseInformation (Installation::destdir);
+ y2milestone ("Processing '%1' from '%2'", installed_system, Installation::destdir);
+
+ if (installed_system == nil || installed_system == "") {
+ y2error ("Cannot find out installed system name");
+ return default_kip;
+ }
+
+ any reverse_kip_a = ProductFeatures::GetFeature ("software", "keep_installed_patches_reverse_list");
+ // No reverse rules defined
+ if (reverse_kip_a == "") {
+ return default_kip;
+ }
+ // not a list or empty list
+ list <string> reverse_kip = (list <string>) reverse_kip_a;
+ if (reverse_kip == nil || reverse_kip == []) return default_kip;
+
+ if (ListOfRegexpsMatchesProduct (reverse_kip, installed_system)) {
+ return (! default_kip);
+ }
+
+ return default_kip;
+ }
/**
* Returns whether the installed product is supported for upgrade.
@@ -303,16 +397,34 @@
}
/**
+ * Set initial values for variables that user can't change.
+ * They are defined in the control file.
+ */
+ global define void InitUpdate () {
+ y2milestone ("Calling: InitUpdate()");
+
+ silentlyDowngradePackages = SilentlyDowngradePackages();
+ y2milestone ("silentlyDowngradePackages: %1", silentlyDowngradePackages);
+
+ keepInstalledPatches = KeepInstalledPatches();
+ y2milestone ("keepInstalledPatches: %1", keepInstalledPatches);
+ }
+
+ /**
*
*/
global define void Reset ()
{
y2milestone ("Calling: UpdateReset()");
+ Update::InitUpdate();
+
deleteOldPackages = DeleteOldPackages();
y2milestone ("deleteOldPackages %1", deleteOldPackages);
+
onlyUpdateInstalled = OnlyUpdateInstalled();
y2milestone ("onlyUpdateInstalled %1", onlyUpdateInstalled);
+
disallow_upgrade = false;
manual_interaction = false;
@@ -590,4 +702,9 @@
did_init2 = false;
}
+ void TextsUsedInFuture () {
+ // TRANSLATORS: check-box, it might happen that we need to downgrade some packages during update
+ string aaa = _("Allow Package Downgrade");
+ }
+
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-update-2.15.2/VERSION new/yast2-update-2.15.3/VERSION
--- old/yast2-update-2.15.2/VERSION 2007-02-01 12:58:32.000000000 +0100
+++ new/yast2-update-2.15.3/VERSION 2007-02-15 14:20:48.000000000 +0100
@@ -1 +1 @@
-2.15.2
+2.15.3
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org