Hello community, here is the log from the commit of package libzypp checked in at Fri Oct 24 17:15:18 CEST 2008. -------- --- libzypp/libzypp.changes 2008-10-24 13:35:28.000000000 +0200 +++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes 2008-10-24 16:16:18.629520000 +0200 @@ -1,0 +2,9 @@ +Fri Oct 24 16:07:45 CEST 2008 - ma@suse.de + +- Provide the /etc/products.d enties filename as Product::referenceFilename. + Use it to remove orphan products. (bnc #432932) +- Fix media exception handling in commit (bnc #395704) +- revision 11485 +- version 5.18.0 (17) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- libzypp-5.17.0.tar.bz2 New: ---- libzypp-5.18.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libzypp.spec ++++++ --- /var/tmp/diff_new_pack.b28827/_old 2008-10-24 17:15:05.000000000 +0200 +++ /var/tmp/diff_new_pack.b28827/_new 2008-10-24 17:15:05.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package libzypp (Version 5.17.0) +# spec file for package libzypp (Version 5.18.0) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -24,16 +24,16 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build AutoReqProv: on Summary: Package, Patch, Pattern, and Product Management -Version: 5.17.0 +Version: 5.18.0 Release: 1 -Source: libzypp-5.17.0.tar.bz2 +Source: libzypp-5.18.0.tar.bz2 Source1: libzypp-rpmlintrc Prefix: /usr Provides: yast2-packagemanager Obsoletes: yast2-packagemanager Recommends: logrotate BuildRequires: cmake -BuildRequires: libsatsolver-devel >= 0.12.0 openssl-devel +BuildRequires: libsatsolver-devel >= 0.12.1 openssl-devel BuildRequires: boost-devel curl-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel %if 0%{?suse_version} BuildRequires: hicolor-icon-theme rpm-devel update-desktop-files @@ -71,7 +71,7 @@ %package devel License: GPL v2 or later -Requires: libzypp == 5.17.0 +Requires: libzypp == 5.18.0 Requires: libxml2-devel curl-devel openssl-devel rpm-devel glibc-devel zlib-devel Requires: bzip2 popt-devel dbus-1-devel glib2-devel hal-devel boost-devel libstdc++-devel Requires: cmake libsatsolver-devel >= 0.10.14 @@ -228,6 +228,12 @@ %{_libdir}/pkgconfig/libzypp.pc %changelog +* Fri Oct 24 2008 ma@suse.de +- Provide the /etc/products.d enties filename as Product::referenceFilename. + Use it to remove orphan products. (bnc #432932) +- Fix media exception handling in commit (bnc #395704) +- revision 11485 +- version 5.18.0 (17) * Fri Oct 24 2008 schubi@suse.de - Taking "unlock" instead of setTransact(false) in the solutions (bnc #436923) - revision 11468 ++++++ libzypp-5.17.0.tar.bz2 -> libzypp-5.18.0.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/libzypp.spec.cmake new/libzypp-5.18.0/libzypp.spec.cmake --- old/libzypp-5.17.0/libzypp.spec.cmake 2008-10-24 13:24:50.000000000 +0200 +++ new/libzypp-5.18.0/libzypp.spec.cmake 2008-10-24 16:13:37.000000000 +0200 @@ -25,7 +25,7 @@ Obsoletes: yast2-packagemanager Recommends: logrotate BuildRequires: cmake -BuildRequires: libsatsolver-devel >= 0.12.0 openssl-devel +BuildRequires: libsatsolver-devel >= 0.12.1 openssl-devel BuildRequires: boost-devel curl-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel %if 0%{?suse_version} diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/package/libzypp.changes new/libzypp-5.18.0/package/libzypp.changes --- old/libzypp-5.17.0/package/libzypp.changes 2008-10-24 13:24:50.000000000 +0200 +++ new/libzypp-5.18.0/package/libzypp.changes 2008-10-24 16:13:38.000000000 +0200 @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Fri Oct 24 16:07:45 CEST 2008 - ma@suse.de + +- Provide the /etc/products.d enties filename as Product::referenceFilename. + Use it to remove orphan products. (bnc #432932) +- Fix media exception handling in commit (bnc #395704) +- revision 11485 +- version 5.18.0 (17) + +------------------------------------------------------------------- Fri Oct 24 10:29:19 CEST 2008 - schubi@suse.de - Taking "unlock" instead of setTransact(false) in the solutions (bnc #436923) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/VERSION.cmake new/libzypp-5.18.0/VERSION.cmake --- old/libzypp-5.17.0/VERSION.cmake 2008-10-24 13:24:50.000000000 +0200 +++ new/libzypp-5.18.0/VERSION.cmake 2008-10-24 16:13:37.000000000 +0200 @@ -60,9 +60,9 @@ # SET(LIBZYPP_MAJOR "5") SET(LIBZYPP_COMPATMINOR "17") -SET(LIBZYPP_MINOR "17") +SET(LIBZYPP_MINOR "18") SET(LIBZYPP_PATCH "0") # -# LAST RELEASED: 5.17.0 (17) +# LAST RELEASED: 5.18.0 (17) # (The number in parenthesis is LIBZYPP_COMPATMINOR) #======= diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/zypp/Product.cc new/libzypp-5.18.0/zypp/Product.cc --- old/libzypp-5.17.0/zypp/Product.cc 2008-10-24 13:24:51.000000000 +0200 +++ new/libzypp-5.18.0/zypp/Product.cc 2008-10-24 16:13:38.000000000 +0200 @@ -91,6 +91,9 @@ return sat::Solvable::noSolvable; } + std::string Product::referenceFilename() const + { return lookupStrAttribute( sat::SolvAttr::productReferenceFile ); } + Product::ReplacedProducts Product::replacedProducts() const { std::vector<constPtr> ret; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/zypp/Product.h new/libzypp-5.18.0/zypp/Product.h --- old/libzypp-5.17.0/zypp/Product.h 2008-10-24 13:24:51.000000000 +0200 +++ new/libzypp-5.18.0/zypp/Product.h 2008-10-24 16:13:39.000000000 +0200 @@ -43,6 +43,11 @@ */ sat::Solvable referencePackage() const; + /** For installed products the name of the coddesponding + * \c /etc/products.d entry. + .*/ + std::string referenceFilename() const; + public: /***/ typedef std::vector<constPtr> ReplacedProducts; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/zypp/sat/SolvAttr.cc new/libzypp-5.18.0/zypp/sat/SolvAttr.cc --- old/libzypp-5.17.0/zypp/sat/SolvAttr.cc 2008-10-24 13:24:51.000000000 +0200 +++ new/libzypp-5.18.0/zypp/sat/SolvAttr.cc 2008-10-24 16:13:38.000000000 +0200 @@ -98,6 +98,7 @@ const SolvAttr SolvAttr::extends ( SOLVABLE_EXTENDS ); // product + const SolvAttr SolvAttr::productReferenceFile ( PRODUCT_REFERENCEFILE ); const SolvAttr SolvAttr::productProductLine ( PRODUCT_PRODUCTLINE ); const SolvAttr SolvAttr::productShortlabel ( PRODUCT_SHORTLABEL ); const SolvAttr SolvAttr::productDistproduct ( PRODUCT_DISTPRODUCT ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/zypp/sat/SolvAttr.h new/libzypp-5.18.0/zypp/sat/SolvAttr.h --- old/libzypp-5.17.0/zypp/sat/SolvAttr.h 2008-10-24 13:24:51.000000000 +0200 +++ new/libzypp-5.18.0/zypp/sat/SolvAttr.h 2008-10-24 16:13:38.000000000 +0200 @@ -127,6 +127,7 @@ /** \name product */ //@{ + static const SolvAttr productReferenceFile; static const SolvAttr productProductLine; static const SolvAttr productShortlabel; static const SolvAttr productDistproduct; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-5.17.0/zypp/target/TargetImpl.cc new/libzypp-5.18.0/zypp/target/TargetImpl.cc --- old/libzypp-5.17.0/zypp/target/TargetImpl.cc 2008-10-24 13:24:51.000000000 +0200 +++ new/libzypp-5.18.0/zypp/target/TargetImpl.cc 2008-10-24 16:13:38.000000000 +0200 @@ -683,16 +683,16 @@ bool abort = false; std::vectorsat::Solvable successfullyInstalledPackages; - RepoProvidePackage repoProvidePackage( access, pool_r); // prepare the package cache. + RepoProvidePackage repoProvidePackage( access, pool_r ); CommitPackageCache packageCache( items_r.begin(), items_r.end(), root() / "tmp", repoProvidePackage ); - for (TargetImpl::PoolItemList::const_iterator it = items_r.begin(); it != items_r.end(); it++) + for ( TargetImpl::PoolItemList::const_iterator it = items_r.begin(); it != items_r.end(); it++ ) { - if (isKind<Package>(it->resolvable())) + if ( (*it)->isKind<Package>() ) { - Package::constPtr p = asKind<Package>(it->resolvable()); + Package::constPtr p = (*it)->asKind<Package>(); if (it->status().isToBeInstalled()) { ManagedFile localfile; @@ -706,15 +706,14 @@ WAR << "Skipping package " << p << " in commit" << endl; continue; } -#if 0 - // bnc #395704: missing catch causes abort. see if packageCache fails to handle - // errors correctly. catch ( const Exception &e ) { + // bnc #395704: missing catch causes abort. + // TODO see if packageCache fails to handle errors correctly. ZYPP_CAUGHT( e ); - SEC << e << endl; + INT << "Unexpected Error: Skipping package " << p << " in commit" << endl; + continue; } -#endif #warning Exception handling // create a installation progress report proxy @@ -813,15 +812,47 @@ progress.disconnect(); } } - else if (!policy_r.dryRun()) // other resolvables (non-Package) + else if ( ! policy_r.dryRun() ) // other resolvables (non-Package) { - if (it->buddy() == sat::Solvable()) - { - // Reset transaction only if this solvable has no buddy (Bug #417799) - // e.g. do not reset Products cause the concerning release package - // could not already be installed. - it->status().resetTransact( ResStatus::USER ); - } + // Status is changed as the buddy package buddy + // gets installed/deleted. Handle non-buddies only. + if ( ! it->buddy() ) + { + if ( (*it)->isKind<Product>() ) + { + Product::constPtr p = (*it)->asKind<Product>(); + if ( it->status().isToBeInstalled() ) + { + ERR << "Can't install orphan product without release-package! " << (*it) << endl; + } + else + { + // Deleting the corresponding product entry is all we con do. + // So the product will no longer be visible as installed. + std::string referenceFilename( p->referenceFilename() ); + if ( referenceFilename.empty() ) + { + ERR << "Can't remove orphan product without 'referenceFilename'! " << (*it) << endl; + } + else + { + PathInfo referenceFile( Pathname::assertprefix( _root, Pathname( "/etc/products.d" ) ) / referenceFilename ); + if ( ! referenceFile.isFile() || filesystem::unlink( referenceFile.path() ) != 0 ) + { + ERR << "Delete orphan product failed: " << referenceFile << endl; + } + } + } + } + else if ( (*it)->isKind<SrcPackage>() && it->status().isToBeInstalled() ) + { + // SrcPackage is install-only + SrcPackage::constPtr p = (*it)->asKind<SrcPackage>(); + installSrcPackage( p ); + } + + it->status().resetTransact( ResStatus::USER ); + } } // other resolvables } // for ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de