Hello community,
here is the log from the commit of package yast2-pkg-bindings for openSUSE:Factory checked in at 2012-04-12 09:58:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-pkg-bindings (Old)
and /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-pkg-bindings", Maintainer is "lslezak@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-pkg-bindings/yast2-pkg-bindings.changes 2012-01-24 12:24:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new/yast2-pkg-bindings.changes 2012-04-12 10:00:01.000000000 +0200
@@ -1,0 +2,37 @@
+Wed Apr 11 14:45:19 UTC 2012 - lslezak@suse.cz
+
+- 2.22.2
+
+-------------------------------------------------------------------
+Wed Apr 11 15:53:52 CEST 2012 - tgoettlicher@suse.de
+
+- license update: GPL-2.0
+ Numerous GPL-2.0 files in the package (see e.g. src/Arch.cc)
+
+-------------------------------------------------------------------
+Tue Mar 27 16:56:58 UTC 2012 - lslezak@suse.cz
+
+- removed libxcrypt-devel from buildrequires (aschnell)
+- dropped build support for openSUSE-11.x
+- 2.22.1
+
+-------------------------------------------------------------------
+Thu Mar 8 08:16:23 UTC 2012 - lslezak@suse.cz
+
+- added Pkg::ResolvableUpdate() to avoid downgrading resolvables
+ (bnc#751147)
+
+-------------------------------------------------------------------
+Tue Jan 3 16:58:42 UTC 2012 - lslezak@suse.cz
+
+- check if downloading optional file really succeeded (bnc#736693)
+ (fixes HA add-on installation)
+
+-------------------------------------------------------------------
+Fri Dec 9 12:54:54 UTC 2011 - lslezak@suse.cz
+
+- fixed downloading optional files - pass the optional flag to
+ libzypp to skip media change callback for optional files
+ (bnc#735340)
+
+-------------------------------------------------------------------
Old:
----
openSUSE-11.3.diff
openSUSE-11.4.diff
yast2-pkg-bindings-2.22.0.tar.bz2
New:
----
yast2-pkg-bindings-2.22.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-pkg-bindings-devel-doc.spec ++++++
--- /var/tmp/diff_new_pack.S9fj9y/_old 2012-04-12 10:00:02.000000000 +0200
+++ /var/tmp/diff_new_pack.S9fj9y/_new 2012-04-12 10:00:02.000000000 +0200
@@ -18,10 +18,10 @@
Name: yast2-pkg-bindings-devel-doc
-Version: 2.22.0
+Version: 2.22.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-pkg-bindings-2.22.0.tar.bz2
+Source0: yast2-pkg-bindings-2.22.2.tar.bz2
Prefix: %_prefix
# same as in the main package (because we use the same configure.in.in)
@@ -31,7 +31,6 @@
BuildRequires: gcc-c++
BuildRequires: libgcrypt-devel
BuildRequires: libtool
-BuildRequires: libxcrypt-devel
BuildRequires: libxslt
BuildRequires: libzypp-devel
BuildRequires: perl-XML-Writer
++++++ yast2-pkg-bindings.spec ++++++
--- /var/tmp/diff_new_pack.S9fj9y/_old 2012-04-12 10:00:02.000000000 +0200
+++ /var/tmp/diff_new_pack.S9fj9y/_new 2012-04-12 10:00:02.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings
-Version: 2.22.0
+Version: 2.22.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -29,7 +29,6 @@
BuildRequires: gcc-c++
BuildRequires: libgcrypt-devel
BuildRequires: libtool
-BuildRequires: libxcrypt-devel
BuildRequires: libxslt
BuildRequires: libzypp-devel >= 6.10.0
BuildRequires: perl-XML-Writer
@@ -44,14 +43,6 @@
License: GPL-2.0
Group: System/YaST
-%if 0%{?suse_version} == 1130
-Patch113: openSUSE-11.3.diff
-%endif
-
-%if 0%{?suse_version} == 1140
-Patch114: openSUSE-11.4.diff
-%endif
-
%description
This package contains a name space for accessing the package manager
library in YaST2.
@@ -61,13 +52,6 @@
# build only the library, ignore documentation (it is in devel-doc package)
echo "src" > SUBDIRS
-%if 0%{?suse_version} == 1130
-%patch113 -p0
-%endif
-%if 0%{?suse_version} == 1140
-%patch114 -p0
-%endif
-
%build
%{_prefix}/bin/y2tool y2autoconf
%{_prefix}/bin/y2tool y2automake
++++++ yast2-pkg-bindings-2.22.0.tar.bz2 -> yast2-pkg-bindings-2.22.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-2.22.0/VERSION new/yast2-pkg-bindings-2.22.2/VERSION
--- old/yast2-pkg-bindings-2.22.0/VERSION 2011-12-06 16:25:32.000000000 +0100
+++ new/yast2-pkg-bindings-2.22.2/VERSION 2012-04-11 16:45:10.000000000 +0200
@@ -1 +1 @@
-2.22.0
+2.22.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-2.22.0/src/PkgFunctions.h new/yast2-pkg-bindings-2.22.2/src/PkgFunctions.h
--- old/yast2-pkg-bindings-2.22.0/src/PkgFunctions.h 2011-09-23 16:28:20.000000000 +0200
+++ new/yast2-pkg-bindings-2.22.2/src/PkgFunctions.h 2012-03-21 17:06:22.000000000 +0100
@@ -19,7 +19,7 @@
*/
/*
- File: $Id: PkgFunctions.h 66007 2011-09-23 14:28:19Z lslezak $
+ File: $Id: PkgFunctions.h 67611 2012-03-08 17:32:50Z lslezak $
Author: Ladislav Slezák
Summary: Handles Pkg::function (list_of_arguments) calls
Namespace: Pkg
@@ -234,6 +234,17 @@
// a helper function to add or remove an upgrade repository
YCPValue AddRemoveUpgradeRepo(const YCPInteger &repo, bool add);
+
+ // action for a resolvable
+ enum ResolvableAction
+ {
+ Install,
+ Remove,
+ Update
+ };
+
+ // helper for installing/removing/upgrading a resolvable
+ bool ResolvableUpdateInstallOrDelete(const YCPString& name_r, const YCPSymbol& kind_r, ResolvableAction action);
public:
// general
@@ -694,6 +705,8 @@
/* TYPEINFO: boolean(string,symbol,integer)*/
YCPValue ResolvableInstallRepo( const YCPString& name_r, const YCPSymbol& kind_r, const YCPInteger& repo_r );
/* TYPEINFO: boolean(string,symbol)*/
+ YCPValue ResolvableUpdate( const YCPString& name_r, const YCPSymbol& kind_r );
+ /* TYPEINFO: boolean(string,symbol)*/
YCPValue ResolvableRemove( const YCPString& name_r, const YCPSymbol& kind_r );
/* TYPEINFO: boolean(string,symbol,boolean)*/
YCPValue ResolvableNeutral( const YCPString& name_r, const YCPSymbol& kind_r, const YCPBoolean& force_r );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-2.22.0/src/Resolvable_Install.cc new/yast2-pkg-bindings-2.22.2/src/Resolvable_Install.cc
--- old/yast2-pkg-bindings-2.22.0/src/Resolvable_Install.cc 2011-09-22 15:13:43.000000000 +0200
+++ new/yast2-pkg-bindings-2.22.2/src/Resolvable_Install.cc 2012-03-21 17:06:22.000000000 +0100
@@ -19,7 +19,7 @@
*/
/*
- File: $Id: Resolvable_Install.cc 57028 2009-04-29 10:58:09Z lslezak $
+ File: $Id: Resolvable_Install.cc 67611 2012-03-08 17:32:50Z lslezak $
Author: Ladislav Slezák
Summary: Install or remove resolvables
Namespace: Pkg
@@ -236,7 +236,7 @@
return YCPBoolean(ret);
}
-bool ResolvableInstallOrDelete(const YCPString& name_r, const YCPSymbol& kind_r, bool install)
+bool PkgFunctions::ResolvableUpdateInstallOrDelete(const YCPString& name_r, const YCPSymbol& kind_r, ResolvableAction action)
{
zypp::Resolvable::Kind kind;
@@ -275,9 +275,68 @@
if (s)
{
- y2milestone("%s: %s:%s ", install ? "Installing" : "Removing", req_kind.c_str(), name.c_str());
- return install ? s->setToInstall(zypp::ResStatus::APPL_HIGH):
- s->setToDelete(zypp::ResStatus::APPL_HIGH);
+ if (action == Install)
+ {
+ y2milestone("Installing %s %s ", req_kind.c_str(), name.c_str());
+ return s->setToInstall(zypp::ResStatus::APPL_HIGH);
+ }
+ else if (action == Remove)
+ {
+ y2milestone("Removing %s %s ", req_kind.c_str(), name.c_str());
+ return s->setToDelete(zypp::ResStatus::APPL_HIGH);
+ }
+ else if (action == Update)
+ {
+ y2milestone("Updating %s %s ", req_kind.c_str(), name.c_str());
+
+ // update candidate
+ zypp::PoolItem update = s->updateCandidateObj();
+
+ // installed version
+ zypp::PoolItem installed;
+ if (zypp::traits::isPseudoInstalled(s->kind()))
+ {
+ for_(it, s->availableBegin(), s->availableEnd())
+ // this is OK also for patches - isSatisfied() excludes !isRelevant()
+ if (it->status().isSatisfied()
+ && (!installed || installed->edition() < (*it)->edition()))
+ installed = *it;
+ }
+ else
+ {
+ installed = s->installedObj();
+ }
+
+ if (!installed)
+ {
+ y2milestone("%s is not installed, nothing to update", name.c_str());
+ return false;
+ }
+
+ if (!update)
+ {
+ y2milestone("Update for %s is not available, no change", name.c_str());
+ return false;
+ }
+
+ if (update->edition() > installed->edition())
+ {
+ y2milestone("Updating %s from %s.%s to %s.%s", name.c_str(), installed->edition().asString().c_str(),
+ installed->arch().asString().c_str(), update->edition().asString().c_str(), update->arch().asString().c_str());
+ return update.status().setToBeInstalled(whoWantsIt);
+ }
+ else
+ {
+ y2milestone("%s %s: installed version (%s) is higher than available update (%s), no change",
+ req_kind.c_str(), name.c_str(), installed->edition().asString().c_str(), update->edition().asString().c_str());
+ return false;
+ }
+ }
+ else
+ {
+ y2internal("Unknown resolvable action");
+ return false;
+ }
}
else
{
@@ -298,12 +357,27 @@
YCPValue
PkgFunctions::ResolvableInstall( const YCPString& name_r, const YCPSymbol& kind_r )
{
- // true = install
- return YCPBoolean(ResolvableInstallOrDelete(name_r, kind_r, true));
+ return YCPBoolean(ResolvableUpdateInstallOrDelete(name_r, kind_r, Install));
}
// ------------------------
/**
+ @builtin ResolvableUpgrade
+ @short Install all resolvables with selected name and kind
+ @param name_r name of the resolvable
+ @param kind_r kind of resolvable, can be `product, `patch, `package, `srcpackage or `pattern
+ @return boolean true if upgrade candidate was selected, false if the highest version is already installed or if there is no upgrade candidate
+ *
+*/
+YCPValue
+PkgFunctions::ResolvableUpdate( const YCPString& name_r, const YCPSymbol& kind_r )
+{
+ return YCPBoolean(ResolvableUpdateInstallOrDelete(name_r, kind_r, Update));
+}
+
+
+// ------------------------
+/**
@builtin ResolvableRemove
@short Removes all resolvables with selected name and kind
@param name_r name of the resolvable
@@ -314,7 +388,7 @@
PkgFunctions::ResolvableRemove ( const YCPString& name_r, const YCPSymbol& kind_r )
{
// false = remove
- return YCPBoolean(ResolvableInstallOrDelete(name_r, kind_r, false));
+ return YCPBoolean(ResolvableUpdateInstallOrDelete(name_r, kind_r, Remove));
}
// ------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-2.22.0/src/Source_Download.cc new/yast2-pkg-bindings-2.22.2/src/Source_Download.cc
--- old/yast2-pkg-bindings-2.22.0/src/Source_Download.cc 2011-09-23 14:49:51.000000000 +0200
+++ new/yast2-pkg-bindings-2.22.2/src/Source_Download.cc 2012-01-03 18:29:09.000000000 +0100
@@ -19,7 +19,7 @@
*/
/*
- File: $Id: Source_Download.cc 65991 2011-09-23 12:49:50Z lslezak $
+ File: $Id: Source_Download.cc 67090 2012-01-03 17:29:07Z lslezak $
Author: Ladislav Slezák
Summary: Functions for downloading files from a repository
Namespace: Pkg
@@ -96,8 +96,7 @@
}
zypp::OnMediaLocation mloc(media_path, mid->value());
- // the file is never optional for zypp (it cannot tell whether an optional file failed)
- mloc.setOptional(false);
+ mloc.setOptional(optional);
// create the tmpdir in <_download_area>/var/tmp
zypp::filesystem::TmpDir tmpdir(_download_area / zypp::filesystem::TmpDir::defaultLocation());
@@ -144,6 +143,26 @@
if (found)
{
+ // check if the file really exists
+ struct stat buf;
+ int status = ::stat(path.asString().c_str(), &buf);
+
+ y2debug("File: %s, status: %d", path.asString().c_str(), status);
+
+ if (status != 0)
+ {
+ if (errno == ENOENT)
+ {
+ y2milestone("File not found: %s, download failed", path.asString().c_str());
+ }
+ else
+ {
+ y2error("Cannot check status of the downloaded file: %s", strerror(errno));
+ }
+
+ return YCPVoid();
+ }
+
return YCPString(path.asString());
}
else
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org