Hello community,
here is the log from the commit of package libzypp
checked in at Wed Aug 29 22:36:42 CEST 2007.
--------
--- libzypp/libzypp.changes 2007-08-28 19:03:28.000000000 +0200
+++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes 2007-08-29 18:22:12.615460000 +0200
@@ -1,0 +2,67 @@
+Wed Aug 29 18:09:29 CEST 2007 - kkaempf@suse.de
+
+- prevent progress report in destructor (#299680)
+- r6998
+
+-------------------------------------------------------------------
+Wed Aug 29 18:02:36 CEST 2007 - jkupec@suse.cz
+
+- treat non-filelists.xml <file> entries as file provides capabilities
+ in YUM parser (#304701)
+- r6992
+
+-------------------------------------------------------------------
+Wed Aug 29 16:32:01 CEST 2007 - kkaempf@suse.de
+
+- the media.1/media uniquely identifies a 'susetags' repo, not
+ the content file (#304200)
+
+-------------------------------------------------------------------
+Wed Aug 29 15:42:17 CEST 2007 - jkupec@suse.cz
+
+- fixed locale dir (#304649)
+- r6984
+
+-------------------------------------------------------------------
+Wed Aug 29 15:39:52 CEST 2007 - kkaempf@suse.de
+
+- don't treat normal package license as "license to confirm"
+ (#305906)
+
+-------------------------------------------------------------------
+Wed Aug 29 15:28:53 CEST 2007 - ma@suse.de
+
+- Fixed fix for #293039. Segfault due to uninitialzed data.
+- version 3.19.3
+- revision 6980
+
+-------------------------------------------------------------------
+Wed Aug 29 15:10:20 CEST 2007 - schubi@suse.de
+
+- reduced too much verbosed ResolverContext logging; Bug 303971
+- r 6977
+
+-------------------------------------------------------------------
+Wed Aug 29 13:55:28 CEST 2007 - ma@suse.de
+
+- Fixed PlainDir repositories to provide real disk usage data. For
+ repomd and others that do not provide any detailed disk usage info,
+ assume the packgage size is required below "/". Peviously they were
+ treated as being empy.
+- version 3.19.2
+- revision 6972
+
+-------------------------------------------------------------------
+Wed Aug 29 13:36:42 CEST 2007 - schubi@suse.de
+
+- Add a new solver solution in the case of running in a timeout:
+ ProblemSolutionDoubleTimeout.h
+ #Bug 302496
+- revision 6970
+
+-------------------------------------------------------------------
+Wed Aug 29 11:23:26 CEST 2007 - dmacvicar@suse.de
+
+- bug in fix for (#292986)
+
+-------------------------------------------------------------------
@@ -23 +90 @@
-- real fix for reading signature ids. (#390535).
+- real fix for reading signature ids. (#390535).
@@ -59 +126 @@
-- r 6901
+- r 6901
@@ -80 +147 @@
- (#302059)
+ (#302059)
@@ -85 +152 @@
-- Do not strip resolvables which have the same name but different kind
+- Do not strip resolvables which have the same name but different kind
@@ -88 +155 @@
-- r 6830
+- r 6830
Old:
----
libzypp-3.19.1.tar.bz2
New:
----
libzypp-3.20.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.N23508/_old 2007-08-29 22:36:01.000000000 +0200
+++ /var/tmp/diff_new_pack.N23508/_new 2007-08-29 22:36:01.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libzypp (Version 3.19.1)
+# spec file for package libzypp (Version 3.20.0)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -16,9 +16,9 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Autoreqprov: on
Summary: Package, Patch, Pattern, and Product Management
-Version: 3.19.1
+Version: 3.20.0
Release: 1
-Source: libzypp-3.19.1.tar.bz2
+Source: libzypp-3.20.0.tar.bz2
Source1: libzypp-rpmlintrc
Prefix: /usr
Provides: yast2-packagemanager
@@ -44,7 +44,7 @@
Ladislav Slezak
%package devel
-Requires: libzypp == 3.19.1
+Requires: libzypp == 3.20.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
@@ -125,6 +125,43 @@
%{_libdir}/pkgconfig/libzypp.pc
%changelog
+* Wed Aug 29 2007 - kkaempf@suse.de
+- prevent progress report in destructor (#299680)
+- r6998
+* Wed Aug 29 2007 - jkupec@suse.cz
+- treat non-filelists.xml <file> entries as file provides capabilities
+ in YUM parser (#304701)
+- r6992
+* Wed Aug 29 2007 - kkaempf@suse.de
+- the media.1/media uniquely identifies a 'susetags' repo, not
+ the content file (#304200)
+* Wed Aug 29 2007 - jkupec@suse.cz
+- fixed locale dir (#304649)
+- r6984
+* Wed Aug 29 2007 - kkaempf@suse.de
+- don't treat normal package license as "license to confirm"
+ (#305906)
+* Wed Aug 29 2007 - ma@suse.de
+- Fixed fix for #293039. Segfault due to uninitialzed data.
+- version 3.19.3
+- revision 6980
+* Wed Aug 29 2007 - schubi@suse.de
+- reduced too much verbosed ResolverContext logging; Bug 303971
+- r 6977
+* Wed Aug 29 2007 - ma@suse.de
+- Fixed PlainDir repositories to provide real disk usage data. For
+ repomd and others that do not provide any detailed disk usage info,
+ assume the packgage size is required below "/". Peviously they were
+ treated as being empy.
+- version 3.19.2
+- revision 6972
+* Wed Aug 29 2007 - schubi@suse.de
+- Add a new solver solution in the case of running in a timeout:
+ ProblemSolutionDoubleTimeout.h
+ [#]Bug 302496
+- revision 6970
+* Wed Aug 29 2007 - dmacvicar@suse.de
+- bug in fix for (#292986)
* Tue Aug 28 2007 - dmacvicar@suse.de
- (#297001) - libzypp: can't skip broken packages
- re enable importing zypp keyring from rpm.(#302379)
++++++ libzypp-3.19.1.tar.bz2 -> libzypp-3.20.0.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/devel/devel.ma/Parse.cc new/libzypp-3.20.0/devel/devel.ma/Parse.cc
--- old/libzypp-3.19.1/devel/devel.ma/Parse.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/devel/devel.ma/Parse.cc 2007-08-29 18:20:39.000000000 +0200
@@ -17,6 +17,7 @@
#include "zypp/Package.h"
#include "zypp/Pattern.h"
#include "zypp/Language.h"
+#include "zypp/Digest.h"
#include "zypp/PackageKeyword.h"
#include "zypp/NameKindProxy.h"
#include "zypp/pool/GetResolvablesToInsDel.h"
@@ -48,9 +49,9 @@
{
bool operator()( const PoolItem & obj_r )
{
- //handle( asKind<Package>( obj_r ) );
+ handle( asKind<Package>( obj_r ) );
//handle( asKind<Pattern>( obj_r ) );
- handle( asKind<Product>( obj_r ) );
+ //handle( asKind<Product>( obj_r ) );
return true;
}
@@ -59,7 +60,7 @@
if ( !p )
return;
- MIL << p->mediaNr() << endl;
+ //MIL << p->diskusage() << endl;
}
void handle( const Pattern_constPtr & p )
@@ -209,6 +210,52 @@
}
};
+///////////////////////////////////////////////////////////////////
+
+struct DigestReceive : public callback::ReceiveReport<DigestReport>
+{
+ DigestReceive()
+ {
+ connect();
+ }
+
+ virtual bool askUserToAcceptNoDigest( const zypp::Pathname &file )
+ {
+ USR << endl;
+ return false;
+ }
+ virtual bool askUserToAccepUnknownDigest( const Pathname &file, const std::string &name )
+ {
+ USR << endl;
+ return false;
+ }
+ virtual bool askUserToAcceptWrongDigest( const Pathname &file, const std::string &requested, const std::string &found )
+ {
+ USR << "fle " << PathInfo(file) << endl;
+ USR << "req " << requested << endl;
+ USR << "fnd " << found << endl;
+
+ waitForInput();
+
+ return false;
+ }
+};
+
+struct KeyRingSignalsReceive : public callback::ReceiveReport<KeyRingSignals>
+{
+ KeyRingSignalsReceive()
+ {
+ connect();
+ }
+ virtual void trustedKeyAdded( const PublicKey &/*key*/ )
+ {
+ USR << endl;
+ }
+ virtual void trustedKeyRemoved( const PublicKey &/*key*/ )
+ {
+ USR << endl;
+ }
+};
///////////////////////////////////////////////////////////////////
@@ -284,6 +331,9 @@
//zypp::base::LogControl::instance().logfile( "log.restrict" );
INT << "===[START]==========================================" << endl;
+ DigestReceive foo;
+ KeyRingSignalsReceive baa;
+
RepoManager repoManager( makeRepoManager( "/Local/ROOT" ) );
RepoInfoList repos = repoManager.knownRepositories();
SEC << repos << endl;
@@ -296,7 +346,7 @@
.setName( "Test Repo for factory." )
.setEnabled( true )
.setAutorefresh( false )
- .addBaseUrl( Url("ftp://dist.suse.de/install/stable-x86/") );
+ .addBaseUrl( Url("http://dist.suse.de/install/stable-x86/") );
repoManager.addRepository( nrepo );
SEC << "refreshMetadat" << endl;
@@ -318,7 +368,7 @@
if ( ! nrepo.enabled() )
continue;
- if ( ! repoManager.isCached( nrepo ) || 1 )
+ if ( ! repoManager.isCached( nrepo ) || 0 )
{
if ( repoManager.isCached( nrepo ) )
{
@@ -326,7 +376,7 @@
repoManager.cleanCache( nrepo );
}
SEC << "refreshMetadata" << endl;
- repoManager.refreshMetadata( nrepo );
+ repoManager.refreshMetadata( nrepo, RepoManager::RefreshForced );
SEC << "buildCache" << endl;
repoManager.buildCache( nrepo );
}
@@ -352,14 +402,7 @@
MIL << "Added target: " << pool << endl;
}
- Capability _cap( CapFactory().parse<Language>( "de" ) );
- SEC << "F" << endl;
- forEachMatchIn( pool, Dep::FRESHENS, _cap, Print() );
- SEC << "S" << endl;
- forEachMatchIn( pool, Dep::SUPPLEMENTS, _cap, Print() );
- SEC << "P" << endl;
- forEachMatchIn( pool, Dep::PROVIDES, _cap, Print() );
- SEC << endl;
+ INT << getZYpp()->diskUsage() << endl;
std::for_each( pool.begin(), pool.end(), Xprint() );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/devel/devel.ma/Tools.h new/libzypp-3.20.0/devel/devel.ma/Tools.h
--- old/libzypp-3.19.1/devel/devel.ma/Tools.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/devel/devel.ma/Tools.h 2007-08-29 18:20:39.000000000 +0200
@@ -13,6 +13,7 @@
#include
#include
+#include
#include
#include
#include
@@ -27,6 +28,15 @@
///////////////////////////////////////////////////////////////////
//
+void waitForInput()
+{
+ int i;
+ USR << "WAITING FOR INPUT!" << endl;
+ std::cin >> i;
+}
+
+///////////////////////////////////////////////////////////////////
+//
template<class _Condition>
struct SetTrue
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/package/libzypp.changes new/libzypp-3.20.0/package/libzypp.changes
--- old/libzypp-3.19.1/package/libzypp.changes 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/package/libzypp.changes 2007-08-29 18:20:39.000000000 +0200
@@ -1,4 +1,71 @@
-------------------------------------------------------------------
+Wed Aug 29 18:09:29 CEST 2007 - kkaempf@suse.de
+
+- prevent progress report in destructor (#299680)
+- r6998
+
+-------------------------------------------------------------------
+Wed Aug 29 18:02:36 CEST 2007 - jkupec@suse.cz
+
+- treat non-filelists.xml <file> entries as file provides capabilities
+ in YUM parser (#304701)
+- r6992
+
+-------------------------------------------------------------------
+Wed Aug 29 16:32:01 CEST 2007 - kkaempf@suse.de
+
+- the media.1/media uniquely identifies a 'susetags' repo, not
+ the content file (#304200)
+
+-------------------------------------------------------------------
+Wed Aug 29 15:42:17 CEST 2007 - jkupec@suse.cz
+
+- fixed locale dir (#304649)
+- r6984
+
+-------------------------------------------------------------------
+Wed Aug 29 15:39:52 CEST 2007 - kkaempf@suse.de
+
+- don't treat normal package license as "license to confirm"
+ (#305906)
+
+-------------------------------------------------------------------
+Wed Aug 29 15:28:53 CEST 2007 - ma@suse.de
+
+- Fixed fix for #293039. Segfault due to uninitialzed data.
+- version 3.19.3
+- revision 6980
+
+-------------------------------------------------------------------
+Wed Aug 29 15:10:20 CEST 2007 - schubi@suse.de
+
+- reduced too much verbosed ResolverContext logging; Bug 303971
+- r 6977
+
+-------------------------------------------------------------------
+Wed Aug 29 13:55:28 CEST 2007 - ma@suse.de
+
+- Fixed PlainDir repositories to provide real disk usage data. For
+ repomd and others that do not provide any detailed disk usage info,
+ assume the packgage size is required below "/". Peviously they were
+ treated as being empy.
+- version 3.19.2
+- revision 6972
+
+-------------------------------------------------------------------
+Wed Aug 29 13:36:42 CEST 2007 - schubi@suse.de
+
+- Add a new solver solution in the case of running in a timeout:
+ ProblemSolutionDoubleTimeout.h
+ #Bug 302496
+- revision 6970
+
+-------------------------------------------------------------------
+Wed Aug 29 11:23:26 CEST 2007 - dmacvicar@suse.de
+
+- bug in fix for (#292986)
+
+-------------------------------------------------------------------
Tue Aug 28 18:48:26 CEST 2007 - dmacvicar@suse.de
- (#297001) - libzypp: can't skip broken packages
@@ -20,7 +87,7 @@
-------------------------------------------------------------------
Tue Aug 28 11:27:53 CEST 2007 - dmacvicar@suse.de
-- real fix for reading signature ids. (#390535).
+- real fix for reading signature ids. (#390535).
- delete metadata when removing repo (#301037).
-------------------------------------------------------------------
@@ -56,7 +123,7 @@
* Changing of filesystem whithin a workflow, cause the solver results will
be reset if the filesystem dependencies have been changed
Bug 271912
-- r 6901
+- r 6901
-------------------------------------------------------------------
Sun Aug 26 15:49:27 CEST 2007 - kkaempf@suse.de
@@ -77,15 +144,15 @@
intsys mode (#297136)
- signature and checksum verification fixes. Still pending
problem ZYpp getting no output from gpg when running from zypper.
- (#302059)
+ (#302059)
-------------------------------------------------------------------
Thu Aug 23 13:51:41 CEST 2007 - schubi@suse.de
-- Do not strip resolvables which have the same name but different kind
+- Do not strip resolvables which have the same name but different kind
(ResolverInfo*)
- Flag info NEEDEDBY correctly if it will be used by freshen/supplement
-- r 6830
+- r 6830
-------------------------------------------------------------------
Wed Aug 22 18:58:44 CEST 2007 - mvidner@suse.cz
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/tests/zypp/data/KeyRing/la/repomd.xml.asc new/libzypp-3.20.0/tests/zypp/data/KeyRing/la/repomd.xml.asc
--- old/libzypp-3.19.1/tests/zypp/data/KeyRing/la/repomd.xml.asc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/tests/zypp/data/KeyRing/la/repomd.xml.asc 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.0.7 (GNU/Linux)
-
-iD8DBQBGyKpaOzARt2udZSMRAgqTAJ9HCea0aWyQ4kh6/qn4k03kTZK7pwCe
-IYNnvANI2W7Lm4YDck68InnF2Cc=
-=1JqC
------END PGP SIGNATURE-----
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/tools/migrate-sources/migrate-sources.cc new/libzypp-3.20.0/tools/migrate-sources/migrate-sources.cc
--- old/libzypp-3.19.1/tools/migrate-sources/migrate-sources.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/tools/migrate-sources/migrate-sources.cc 2007-08-29 18:20:39.000000000 +0200
@@ -35,7 +35,7 @@
static void migrate_sources( const Options &opt )
{
- if ( string(getenv("YAST_IS_RUNNING")) == "instsys" )
+ if ( getenv("YAST_IS_RUNNING") && (string(getenv("YAST_IS_RUNNING")) == "instsys" ))
{
MIL << "YaST is running in instsys. Not migrating old sources. YaST will do it." << endl;
return;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/VERSION.cmake new/libzypp-3.20.0/VERSION.cmake
--- old/libzypp-3.19.1/VERSION.cmake 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/VERSION.cmake 2007-08-29 18:20:39.000000000 +0200
@@ -45,6 +45,6 @@
#
SET(LIBZYPP_MAJOR "3")
-SET(LIBZYPP_MINOR "19")
-SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_MINOR "20")
+SET(LIBZYPP_COMPATMINOR "19")
+SET(LIBZYPP_PATCH "0")
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/capability/CapabilityImpl.cc new/libzypp-3.20.0/zypp/capability/CapabilityImpl.cc
--- old/libzypp-3.19.1/zypp/capability/CapabilityImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/capability/CapabilityImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -99,6 +99,16 @@
return *name_r.c_str() == '/';
}
+ bool isInterestingFileSpec( const std::string & name_r )
+ {
+ static str::smatch what;
+ static const str::regex filenameRegex(
+ "/(s?bin|lib(64)?|etc)/|^/usr/(games/|share/(dict/words|magic\\.mime)$)|^/opt/gnome/games/",
+ str::regex::optimize|str::regex::nosubs );
+
+ return str::regex_match( name_r, what, filenameRegex );
+ }
+
bool isSplitSpec( const std::string & name_r )
{
return name_r.find( ":/" ) != std::string::npos;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/capability/CapabilityImpl.h new/libzypp-3.20.0/zypp/capability/CapabilityImpl.h
--- old/libzypp-3.19.1/zypp/capability/CapabilityImpl.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/capability/CapabilityImpl.h 2007-08-29 18:20:40.000000000 +0200
@@ -173,6 +173,13 @@
/** Test for a FileCap. \a name_r starts with \c "/". */
bool isFileSpec( const std::string & name_r );
+ /** Test for a FileCap that is likely being REQUIRED.
+ * Files below \c /bin , \c /sbin , \c /lib etc. Scanning a
+ * packages filelist, an \e interesting FileCap might be worth
+ * being remembered in PROVIDES.
+ */
+ bool isInterestingFileSpec( const std::string & name_r );
+
/** Test for a SplitCap. \a name_r constains \c ":/". */
bool isSplitSpec( const std::string & name_r );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/capability/FileCap.h new/libzypp-3.20.0/zypp/capability/FileCap.h
--- old/libzypp-3.19.1/zypp/capability/FileCap.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/capability/FileCap.h 2007-08-29 18:20:40.000000000 +0200
@@ -22,13 +22,17 @@
{ /////////////////////////////////////////////////////////////////
DEFINE_PTR_TYPE(FileCap)
-
+
///////////////////////////////////////////////////////////////////
//
// CLASS NAME : FileCap
//
/** A \c filename matching if some Resolvable provides it.
*
+ * \see \ref capability::isInterestingFileSpec to test whether some
+ * filename is likely targeted by some requires, thus worth being
+ * provided.
+ *
* \todo Check whether we have to look into the Resolable filelist as well.
*/
class FileCap : public CapabilityImpl
@@ -37,7 +41,7 @@
typedef FileCap Self;
typedef FileCap_Ptr Ptr;
typedef FileCap_constPtr constPtr;
-
+
/** Ctor */
FileCap( const Resolvable::Kind & refers_r, const std::string & fname_r )
: CapabilityImpl( refers_r )
@@ -47,7 +51,7 @@
public:
std::string filename() const
{ return _fname; }
-
+
/** */
virtual const Kind & kind() const;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/CMakeLists.txt new/libzypp-3.20.0/zypp/CMakeLists.txt
--- old/libzypp-3.19.1/zypp/CMakeLists.txt 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/CMakeLists.txt 2007-08-29 18:20:40.000000000 +0200
@@ -2,7 +2,7 @@
# SOURCES #
####################################################################
-ADD_DEFINITIONS(-DLOCALEDIR=\\\"/usr/share/libzypp\\\" -DTEXTDOMAIN=\\\"zypp\\\" )
+ADD_DEFINITIONS(-DLOCALEDIR=\\\"${CMAKE_INSTALL_PREFIX}/share/locale\\\" -DTEXTDOMAIN=\\\"zypp\\\" )
ADD_EXECUTABLE(mkarray ${CMAKE_SOURCE_DIR}/zypp/cache/schema/mkarray.c )
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
@@ -602,6 +602,7 @@
solver/detail/ProblemSolutionUninstall.cc
solver/detail/ProblemSolutionUnlock.cc
solver/detail/ProblemSolutionAllBranches.cc
+ solver/detail/ProblemSolutionDoubleTimeout.cc
solver/detail/QueueItem.cc
solver/detail/QueueItemBranch.cc
solver/detail/QueueItemConflict.cc
@@ -640,6 +641,7 @@
solver/detail/ProblemSolutionUninstall.h
solver/detail/ProblemSolutionUnlock.h
solver/detail/ProblemSolutionAllBranches.h
+ solver/detail/ProblemSolutionDoubleTimeout.h
solver/detail/QueueItem.h
solver/detail/QueueItemBranch.h
solver/detail/QueueItemConflict.h
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/DiskUsage.h new/libzypp-3.20.0/zypp/DiskUsage.h
--- old/libzypp-3.19.1/zypp/DiskUsage.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/DiskUsage.h 2007-08-29 18:20:40.000000000 +0200
@@ -62,7 +62,7 @@
}
/**
- *
+ *
**/
const Entry & operator=( const Entry & rhs ) const {
return rhs;
@@ -106,6 +106,10 @@
add( Entry( dirname_r, size_r, files_r ) );
}
/**
+ * Whether there is no entry available.
+ */
+ bool empty() const { return _dirs.empty(); }
+ /**
* Number of entries
**/
unsigned size() const { return _dirs.size(); }
@@ -123,7 +127,7 @@
typedef EntrySet::iterator iterator;
typedef EntrySet::reverse_iterator reverse_iterator;
-
+
/**
* Forward iterator pointing to the first entry (if any)
**/
@@ -140,10 +144,10 @@
* Reverse iterator pointing before the first entry.
**/
reverse_iterator rend() { return _dirs.rend(); }
-
+
typedef EntrySet::const_iterator const_iterator;
typedef EntrySet::const_reverse_iterator const_reverse_iterator;
-
+
/**
* Forward const iterator pointing to the first entry (if any)
**/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/parser/plaindir/RepoParser.cc new/libzypp-3.20.0/zypp/parser/plaindir/RepoParser.cc
--- old/libzypp-3.19.1/zypp/parser/plaindir/RepoParser.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/parser/plaindir/RepoParser.cc 2007-08-29 18:20:40.000000000 +0200
@@ -45,10 +45,10 @@
ERR << "readdir " << dir << " failed" << endl;
return 0;
}
-
+
for (std::liststd::string::const_iterator it = dircontent.begin();
it != dircontent.end();
- ++it)
+ ++it)
{
Pathname dir_path = dir + *it;
if ( PathInfo(dir_path).isDir())
@@ -69,7 +69,7 @@
status.setChecksum(str::numstring(t));
return status;
}
-
+
data::Package_Ptr makePackageDataFromHeader( const RpmHeader::constPtr header,
set<string> * filerequires,
const Pathname & location, data::RecordId &repoid )
@@ -81,15 +81,10 @@
WAR << "Can't make Package from SourcePackage header" << endl;
return 0;
}
-
+
data::Package_Ptr pkg = new data::Package;
-
-// typedef std::setcapability::CapabilityImpl::Ptr DependencyList;
-// typedef std::map Dependencies;
+
pkg->name = header->tag_name();
-// impl->setRepository( repo );
-// if (!location.empty())
-// impl->setLocation( location );
try {
pkg->edition = Edition( header->tag_version(),
@@ -114,7 +109,7 @@
WAR << "Package " << pkg->name << " has bad architecture '" << header->tag_arch() << "'";
return 0;
}
-
+
pkg->deps[Dep::REQUIRES] = header->tag_requires( filerequires );
pkg->deps[Dep::PREREQUIRES] = header->tag_prerequires( filerequires );
pkg->deps[Dep::CONFLICTS] = header->tag_conflicts( filerequires );
@@ -126,53 +121,19 @@
pkg->buildTime = header->tag_buildtime();
pkg->summary = (TranslatedText)header->tag_summary();
pkg->description = (TranslatedText)header->tag_description();
- pkg->licenseToConfirm = (TranslatedText)header->tag_license();
-// Dependencies deps;
-
-// RecordId shareDataWith;
-// std::string vendor;
-// ByteCount installedSize;
-// Date buildTime;
-// DefaultIntegral installOnly;
-// TranslatedText summary;
-// TranslatedText description;
-// TranslatedText licenseToConfirm;
-// TranslatedText insnotify;
-// TranslatedText delnotify;
-// RecordId repository;
-
-// Location repositoryLocation;
-
- pkg->repositoryLocation = location;
-
-// std::string group;
-// std::setstd::string keywords;
-// Changelog changelog;
-// std::liststd::string authors;
-// std::string buildhost;
-// std::string distribution;
-// std::string license;
-// std::string packager;
-// std::string url;
-// std::string operatingSystem;
-// std::string prein;
-// std::string postin;
-// std::string preun;
-// std::string postun;
-//
+ pkg->repositoryLocation = location;
+
+ header->tag_du( pkg->diskusage );
list<string> filenames = header->tag_filenames();
pkg->deps[Dep::PROVIDES] = header->tag_provides ( filerequires );
- static str::smatch what;
- static const str::regex filenameRegex( "/(s?bin|lib(64)?|etc)/|^/usr/(games/|share/(dict/words|magic\\.mime)$)|^/opt/gnome/games/",
- str::regex::optimize|str::regex::nosubs );
for (list<string>::const_iterator filename = filenames.begin();
filename != filenames.end();
++filename)
{
- if ( str::regex_match( *filename, what, filenameRegex ) )
+ if ( capability::isInterestingFileSpec( *filename ) )
{
try {
pkg->deps[Dep::PROVIDES].insert(capability::buildFile( ResTraits<Package>::kind, *filename ));
@@ -188,7 +149,7 @@
return pkg;
}
-
+
/** RepoParser implementation.
* \todo Clean data on exeption.
*/
@@ -216,7 +177,7 @@
private: // these (and _ticks) are actually scoped per parse() run.
};
-///////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/parser/yum/FileReaderBaseImpl.cc new/libzypp-3.20.0/zypp/parser/yum/FileReaderBaseImpl.cc
--- old/libzypp-3.19.1/zypp/parser/yum/FileReaderBaseImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/parser/yum/FileReaderBaseImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -246,11 +246,16 @@
return true;
}
- //! \todo xpath: //format/file (*) figure out where to store this and what's it about (in regard to filelists.xml.gz)
+ // file entries listed outside of filelists.xml to be treated
+ // like rpm:provides
+ // xpath: //format/file (*)
if (reader_r->name() == "file")
{
- // file = reader_r.nodeText().asString();
- // type = reader_r->getAttribute("type").asString();
+ // insert file dependency into the list
+ package_ptr->deps[Dep::PROVIDES].insert(
+ zypp::capability::parse(
+ ResTraits<Package>::kind,
+ reader_r.nodeText().asString()));
return true;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/parser/yum/schema/rpm-ns.rnc new/libzypp-3.20.0/zypp/parser/yum/schema/rpm-ns.rnc
--- old/libzypp-3.19.1/zypp/parser/yum/schema/rpm-ns.rnc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/parser/yum/schema/rpm-ns.rnc 2007-08-29 18:20:40.000000000 +0200
@@ -135,6 +135,7 @@
supplements =
element-entry*
+# treat as 'provides' file capability
element-file =
element ns1:file { file }
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/parser/yum/schema/validate-repodata.sh new/libzypp-3.20.0/zypp/parser/yum/schema/validate-repodata.sh
--- old/libzypp-3.19.1/zypp/parser/yum/schema/validate-repodata.sh 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/parser/yum/schema/validate-repodata.sh 2007-08-29 18:20:40.000000000 +0200
@@ -1,5 +1,5 @@
#!/bin/sh
-# $Id$
+# $Id: validate-repodata.sh 5812 2007-06-20 13:30:06Z mvidner $
set -o errexit
USAGE=false
DO_xmllint=false
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/repo/cached/PackageImpl.cc new/libzypp-3.20.0/zypp/repo/cached/PackageImpl.cc
--- old/libzypp-3.19.1/zypp/repo/cached/PackageImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/repo/cached/PackageImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -197,6 +197,17 @@
// lazy init
_diskusage.reset( new DiskUsage );
_repository->resolvableQuery().queryDiskUsage( _id, *_diskusage );
+ if ( _diskusage->empty() )
+ {
+ // No info: Creating a faked entry distributing the
+ // total package size in assumed 200 files to "/ZYPP_NO_DU_INFO"
+ //
+ // Note: Less likely that some system has a mountpoint named
+ // ZYPP_NO_DU_INFO, so the size will be accounted to '/'.
+ // but adding a faked mountpoint entry an application is able
+ // to spot and handle these faked data in a different manner.
+ _diskusage->add( "/ZYPP_NO_DU_INFO", size(), 200 );
+ }
}
return *_diskusage;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/repo/cached/RepoImpl.cc new/libzypp-3.20.0/zypp/repo/cached/RepoImpl.cc
--- old/libzypp-3.19.1/zypp/repo/cached/RepoImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/repo/cached/RepoImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -64,7 +64,9 @@
RepoImpl::~RepoImpl()
{
+ _ticks.toMax();
MIL << "Destroying repo '" << info().alias() << "'" << endl;
+ _ticks.noSend();
}
void read_capabilities( sqlite3_connection &con,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/repo/cached/SrcPackageImpl.cc new/libzypp-3.20.0/zypp/repo/cached/SrcPackageImpl.cc
--- old/libzypp-3.19.1/zypp/repo/cached/SrcPackageImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/repo/cached/SrcPackageImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -118,6 +118,12 @@
// lazy init
_diskusage.reset( new DiskUsage );
_repository->resolvableQuery().queryDiskUsage( _id, *_diskusage );
+ if ( _diskusage->empty() )
+ {
+ // No info: Creating a faked entry distributing the
+ // total source package size in assumed 20 files to "/usr/src/packages"
+ _diskusage->add( "/usr/src/packages", size(), 20 );
+ }
}
return *_diskusage;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/repo/susetags/Downloader.cc new/libzypp-3.20.0/zypp/repo/susetags/Downloader.cc
--- old/libzypp-3.19.1/zypp/repo/susetags/Downloader.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/repo/susetags/Downloader.cc 2007-08-29 18:20:40.000000000 +0200
@@ -35,7 +35,9 @@
RepoStatus Downloader::status( MediaSetAccess &media )
{
Pathname content = media.provideFile( _path + "/content");
- return RepoStatus(content);
+ Pathname mediafile = media.provideFile( _path + "/media.1/media" );
+
+ return RepoStatus(content) && RepoStatus(mediafile);
}
void Downloader::download( MediaSetAccess &media,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/RepoManager.cc new/libzypp-3.20.0/zypp/RepoManager.cc
--- old/libzypp-3.19.1/zypp/RepoManager.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/RepoManager.cc 2007-08-29 18:20:40.000000000 +0200
@@ -327,7 +327,7 @@
case RepoType::YAST2_e :
{
- status = RepoStatus( rawpath + "/content");
+ status = (RepoStatus( rawpath + "/media.1/media") && RepoStatus( rawpath + "/content") );
}
break;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/RepoStatus.cc new/libzypp-3.20.0/zypp/RepoStatus.cc
--- old/libzypp-3.19.1/zypp/RepoStatus.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/RepoStatus.cc 2007-08-29 18:20:40.000000000 +0200
@@ -10,6 +10,7 @@
*
*/
#include <iostream>
+#include <sstream>
//#include "zypp/base/Logger.h"
#include "zypp/RepoStatus.h"
#include "zypp/PathInfo.h"
@@ -111,6 +112,19 @@
Date RepoStatus::timestamp() const
{ return _pimpl->timestamp; }
+ RepoStatus operator&&( const RepoStatus &lhs, const RepoStatus &rhs )
+ {
+ RepoStatus result;
+ string combinedcs = (lhs.checksum() + rhs.checksum());
+ stringstream ss(combinedcs);
+ CheckSum newcs(CheckSum::sha1(ss));
+ result.setChecksum(newcs.checksum());
+ result.setTimestamp(lhs.timestamp());
+ if ( rhs.timestamp() > lhs.timestamp() )
+ result.setTimestamp(rhs.timestamp());
+ return result;
+ }
+
/******************************************************************
**
** FUNCTION NAME : operator<<
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/RepoStatus.h new/libzypp-3.20.0/zypp/RepoStatus.h
--- old/libzypp-3.19.1/zypp/RepoStatus.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/RepoStatus.h 2007-08-29 18:20:40.000000000 +0200
@@ -107,6 +107,12 @@
/** \relates RepoStatus Stream output */
std::ostream & operator<<( std::ostream & str, const RepoStatus & obj );
+ /**
+ * combines 2 repostatus with a checksum based on both
+ * checksums and the newest timestamp
+ */
+ RepoStatus operator&&( const RepoStatus &lhs, const RepoStatus &rhs );
+
/////////////////////////////////////////////////////////////////
} // namespace zypp
///////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionAllBranches.cc new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionAllBranches.cc
--- old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionAllBranches.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionAllBranches.cc 2007-08-29 18:20:40.000000000 +0200
@@ -44,13 +44,21 @@
//---------------------------------------------------------------------------
-ProblemSolutionAllBranches::ProblemSolutionAllBranches( ResolverProblem_Ptr parent)
+ProblemSolutionAllBranches::ProblemSolutionAllBranches( ResolverProblem_Ptr parent,
+ const bool takeAll)
: ProblemSolution (parent, "", "")
+ ,all(takeAll)
{
- _description = _("Make a solver run with ALL possibilities.");
- _details = _("Regarding all resolvables with a compatible architecture.");
+ if (all) {
+ _description = _("Make a solver run with ALL possibilities.");
+ _details = _("Regarding all resolvables with a compatible architecture.");
+ addAction ( new TransactionSolutionAction (ALLBRANCHES_ON));
+ } else {
+ _description = _("Make a solver run with best architecture only.");
+ _details = _("Regarding resolvables with best architecture only.");
+ addAction ( new TransactionSolutionAction (ALLBRANCHES_OFF));
+ }
- addAction ( new TransactionSolutionAction (ALLBRANCHES));
}
///////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionAllBranches.h new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionAllBranches.h
--- old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionAllBranches.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionAllBranches.h 2007-08-29 18:20:40.000000000 +0200
@@ -43,12 +43,14 @@
**/
class ProblemSolutionAllBranches : public ProblemSolution
{
+ private:
+ bool all;
public:
/**
* Constructor.
**/
- ProblemSolutionAllBranches( ResolverProblem_Ptr parent);
+ ProblemSolutionAllBranches( ResolverProblem_Ptr parent, const bool takeAll = true);
};
///////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionDoubleTimeout.cc new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionDoubleTimeout.cc
--- old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionDoubleTimeout.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionDoubleTimeout.cc 2007-08-29 18:20:40.000000000 +0200
@@ -0,0 +1,64 @@
+
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* ProblemSolution.cc
+ *
+ * Easy-to use interface to the ZYPP dependency resolver
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <sstream>
+
+#include "zypp/base/String.h"
+#include "zypp/base/Gettext.h"
+#include "zypp/solver/detail/ProblemSolutionDoubleTimeout.h"
+
+using namespace std;
+
+/////////////////////////////////////////////////////////////////////////
+namespace zypp
+{ ///////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////
+ namespace solver
+ { /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+ namespace detail
+ { ///////////////////////////////////////////////////////////////////
+
+IMPL_PTR_TYPE(ProblemSolutionDoubleTimeout);
+
+//---------------------------------------------------------------------------
+
+ProblemSolutionDoubleTimeout::ProblemSolutionDoubleTimeout( ResolverProblem_Ptr parent)
+ : ProblemSolution (parent, "", "")
+{
+ _description = _("Double timeout");
+ _details = _("Start the next solver run with doubled timeout.");
+
+ addAction ( new TransactionSolutionAction (DOUBLETIMEOUT));
+}
+
+ ///////////////////////////////////////////////////////////////////
+ };// namespace detail
+ /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+ };// namespace solver
+ ///////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////
+};// namespace zypp
+/////////////////////////////////////////////////////////////////////////
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionDoubleTimeout.h new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionDoubleTimeout.h
--- old/libzypp-3.19.1/zypp/solver/detail/ProblemSolutionDoubleTimeout.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-3.20.0/zypp/solver/detail/ProblemSolutionDoubleTimeout.h 2007-08-29 18:20:40.000000000 +0200
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* Resolver_problems.cc
+ *
+ * Copyright (C) 2000-2002 Ximian, Inc.
+ * Copyright (C) 2005 SUSE Linux Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONDOUBLETIMEOUT_H
+#define ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONDOUBLETIMEOUT_H
+
+#include "zypp/ProblemSolution.h"
+#include "zypp/solver/detail/Types.h"
+
+/////////////////////////////////////////////////////////////////////////
+namespace zypp
+{ ///////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////
+ namespace solver
+ { /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+ namespace detail
+ { ///////////////////////////////////////////////////////////////////
+
+ /**
+ * Class representing one possible solution to one problem found during resolving
+ * Make the next solver with double timeout
+ *
+ **/
+ class ProblemSolutionDoubleTimeout : public ProblemSolution
+ {
+ public:
+
+ /**
+ * Constructor.
+ **/
+ ProblemSolutionDoubleTimeout( ResolverProblem_Ptr parent);
+ };
+
+ ///////////////////////////////////////////////////////////////////
+ };// namespace detail
+ /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+ };// namespace solver
+ ///////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////
+};// namespace zypp
+/////////////////////////////////////////////////////////////////////////
+
+#endif // ZYPP_SOLVER_DETAIL_PROBLEMSOLUTIONDOUBLETIMEOUT_H
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/Resolver.cc new/libzypp-3.20.0/zypp/solver/detail/Resolver.cc
--- old/libzypp-3.19.1/zypp/solver/detail/Resolver.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/Resolver.cc 2007-08-29 18:20:40.000000000 +0200
@@ -1339,6 +1339,8 @@
}
else {
+ MIL << "!!! Have NO solution !!!" << endl;
+#if 0 // It takes too much memory for logging. Do not use it !
MIL << "!!! Have NO solution !!! Additional solver information:" << endl;
int counter = 0;
for (ResolverQueueList::iterator iter = _invalid_queues.begin();
@@ -1347,10 +1349,11 @@
MIL << "-----------------------------------------------------------------" << endl;
MIL << counter++ << ". failed queue:" << endl;
ResolverQueue_Ptr invalid = *iter;
-// invalid->context()->spewInfo (); No additional information needed here
+ invalid->context()->spewInfo (); No additional information needed here
MIL << *invalid->context() << endl;
MIL << "-----------------------------------------------------------------" << endl;
}
+#endif
}
if (tryAllPossibilities) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/Resolver.h new/libzypp-3.20.0/zypp/solver/detail/Resolver.h
--- old/libzypp-3.19.1/zypp/solver/detail/Resolver.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/Resolver.h 2007-08-29 18:20:40.000000000 +0200
@@ -203,8 +203,8 @@
void setTimeout (int seconds) { _timeout_seconds = seconds; }
void setMaxSolverPasses (int count) { _maxSolverPasses = count; }
- int timeout () { return _timeout_seconds; }
- int maxSolverPasses () { return _maxSolverPasses; }
+ int timeout () const { return _timeout_seconds; }
+ int maxSolverPasses () const { return _maxSolverPasses; }
ResPool pool (void) const;
void setPool (const ResPool & pool) { _pool = pool; }
@@ -246,7 +246,7 @@
const bool preferHighestVersion() { return _preferHighestVersion; }
void setTryAllPossibilities (const bool tryAllPossibilities) { _tryAllPossibilities = tryAllPossibilities; }
- const bool tryAllPossibilities () { return _tryAllPossibilities; };
+ const bool tryAllPossibilities () const { return _tryAllPossibilities; };
bool verifySystem (bool considerNewHardware = false);
void establishState (ResolverContext_Ptr context = NULL);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/Resolver_problems.cc new/libzypp-3.20.0/zypp/solver/detail/Resolver_problems.cc
--- old/libzypp-3.19.1/zypp/solver/detail/Resolver_problems.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/Resolver_problems.cc 2007-08-29 18:20:40.000000000 +0200
@@ -32,6 +32,7 @@
#include "zypp/solver/detail/ProblemSolutionUnlock.h"
#include "zypp/solver/detail/ProblemSolutionKeep.h"
#include "zypp/solver/detail/ProblemSolutionAllBranches.h"
+#include "zypp/solver/detail/ProblemSolutionDoubleTimeout.h"
#include "zypp/solver/detail/ResolverInfoChildOf.h"
#include "zypp/solver/detail/ResolverInfoConflictsWith.h"
@@ -305,6 +306,8 @@
{
ResolverProblemList problems;
+ MIL << "Resolver::problems(" << (ignoreValidSolution ? "ignoreValidSolution": "") << ")" << endl;
+
if (_best_context && !ignoreValidSolution) {
MIL << "Valid solution found, no problems" << endl;
return problems;
@@ -316,6 +319,18 @@
if (invalid.empty()) {
WAR << "No solver problems, but there is also no valid solution." << endl;
+ if (!_best_context
+ && timeout() > 0) {
+ // This can be generated by a timout only
+ string what = str::form (_("No valid solution found within %d seconds"), timeout());
+ string details = _("The solver has reached a defined timout");
+ ResolverProblem_Ptr problem = new ResolverProblem (what, details);
+ problem->addSolution (new ProblemSolutionDoubleTimeout (problem));
+ if (tryAllPossibilities())
+ problem->addSolution (new ProblemSolutionAllBranches (problem,false));
+ problems.push_back (problem);
+ }
+
return problems;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/SolutionAction.cc new/libzypp-3.20.0/zypp/solver/detail/SolutionAction.cc
--- old/libzypp-3.19.1/zypp/solver/detail/SolutionAction.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/SolutionAction.cc 2007-08-29 18:20:40.000000000 +0200
@@ -67,7 +67,9 @@
case INSTALL: os << "Install"; break;
case REMOVE: os << "Remove"; break;
case UNLOCK: os << "Unlock"; break;
- case ALLBRANCHES: os << "All branches"; break;
+ case ALLBRANCHES_ON: os << "All branches on"; break;
+ case ALLBRANCHES_OFF: os << "All branches off"; break;
+ case DOUBLETIMEOUT: os << "Double timeout"; break;
}
os << " ";
os << _item;
@@ -160,9 +162,15 @@
ret = _item.status().setLock (false, ResStatus::USER);
if (!ret) ERR << "Cannot unlock " << _item << endl;
break;
- case ALLBRANCHES:
+ case ALLBRANCHES_ON:
resolver.setTryAllPossibilities (true);
break;
+ case ALLBRANCHES_OFF:
+ resolver.setTryAllPossibilities (false);
+ break;
+ case DOUBLETIMEOUT:
+ resolver.setTimeout (resolver.timeout()*2);
+ break;
default:
ERR << "Wrong TransactionKind" << endl;
ret = false;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/solver/detail/SolutionAction.h new/libzypp-3.20.0/zypp/solver/detail/SolutionAction.h
--- old/libzypp-3.19.1/zypp/solver/detail/SolutionAction.h 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/solver/detail/SolutionAction.h 2007-08-29 18:20:40.000000000 +0200
@@ -68,7 +68,9 @@
INSTALL,
REMOVE,
UNLOCK,
- ALLBRANCHES
+ ALLBRANCHES_ON,
+ ALLBRANCHES_OFF,
+ DOUBLETIMEOUT
} TransactionKind;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/target/rpm/RpmDb.cc new/libzypp-3.20.0/zypp/target/rpm/RpmDb.cc
--- old/libzypp-3.19.1/zypp/target/rpm/RpmDb.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/target/rpm/RpmDb.cc 2007-08-29 18:20:40.000000000 +0200
@@ -1215,15 +1215,11 @@
CapFactory capfactory;
insertCaps( dataCollect[Dep::PROVIDES], header->tag_provides( filerequires ), capfactory );
- static str::smatch what;
- static const str::regex filenameRegex( "/(s?bin|lib(64)?|etc)/|^/usr/(games/|share/(dict/words|magic\\.mime)$)|^/opt/gnome/games/",
- str::regex::optimize|str::regex::nosubs );
-
for (list<string>::const_iterator filename = filenames.begin();
filename != filenames.end();
++filename)
{
- if ( str::regex_match( *filename, what, filenameRegex ) )
+ if ( capability::isInterestingFileSpec( *filename ) )
{
try
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libzypp-3.19.1/zypp/zypp_detail/ZYppImpl.cc new/libzypp-3.20.0/zypp/zypp_detail/ZYppImpl.cc
--- old/libzypp-3.19.1/zypp/zypp_detail/ZYppImpl.cc 2007-08-28 19:03:01.000000000 +0200
+++ new/libzypp-3.20.0/zypp/zypp_detail/ZYppImpl.cc 2007-08-29 18:20:40.000000000 +0200
@@ -179,7 +179,13 @@
}
DiskUsageCounter::MountPointSet ZYppImpl::diskUsage()
- { return _disk_usage->disk_usage(pool()); }
+ {
+ if ( ! _disk_usage )
+ {
+ setPartitions( DiskUsageCounter::detectMountPoints() );
+ }
+ return _disk_usage->disk_usage(pool());
+ }
void ZYppImpl::setPartitions(const DiskUsageCounter::MountPointSet &mp)
{
@@ -420,7 +426,7 @@
{
// noop: Someone decided to let target() throw if the ptr is NULL ;(
}
-
+
int num=0;
PathInfo locksrc( locksrcPath );
if ( locksrc.isFile() )
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org