Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory
checked in at Tue Nov 10 10:15:09 CET 2009.
--------
--- libzypp/libzypp.changes 2009-11-02 20:30:03.000000000 +0100
+++ /mounts/work_src_done/STABLE/libzypp/libzypp.changes 2009-11-06 22:39:14.000000000 +0100
@@ -1,0 +2,13 @@
+Fri Nov 6 22:16:10 CET 2009 - ma@suse.de
+
+- dup: Process drop list only if product actually changes. (bnc #552180)
+- Selectable: Consider allowed arch/noarch changes when comuting candiadates.
+- version 6.22.0 (19)
+
+-------------------------------------------------------------------
+Mon Nov 2 21:33:40 CET 2009 - ma@suse.de
+
+- Enhance interface for zypper. (bnc #551956)
+- version 6.21.4 (19)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
libzypp-6.21.3.tar.bz2
New:
----
libzypp-6.22.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.j0t9gV/_old 2009-11-10 10:12:25.000000000 +0100
+++ /var/tmp/diff_new_pack.j0t9gV/_new 2009-11-10 10:12:25.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package libzypp (Version 6.21.3)
+# spec file for package libzypp (Version 6.22.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -24,7 +24,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
AutoReqProv: on
Summary: Package, Patch, Pattern, and Product Management
-Version: 6.21.3
+Version: 6.22.0
Release: 1
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ libzypp-6.21.3.tar.bz2 -> libzypp-6.22.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/Ex.cc new/libzypp-6.22.0/devel/devel.ma/Ex.cc
--- old/libzypp-6.21.3/devel/devel.ma/Ex.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/Ex.cc 2009-11-06 22:19:29.000000000 +0100
@@ -18,7 +18,6 @@
#include "zypp/Language.h"
#include "zypp/Digest.h"
#include "zypp/PackageKeyword.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/pool/GetResolvablesToInsDel.h"
#include "zypp/parser/TagParser.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/FakePool.h new/libzypp-6.22.0/devel/devel.ma/FakePool.h
--- old/libzypp-6.21.3/devel/devel.ma/FakePool.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/FakePool.h 2009-11-06 22:19:29.000000000 +0100
@@ -16,7 +16,6 @@
#include "zypp/ZYppFactory.h"
#include "zypp/ResPool.h"
#include "zypp/ResPoolProxy.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/CapFactory.h"
#include "zypp/Atom.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/Main.cc new/libzypp-6.22.0/devel/devel.ma/Main.cc
--- old/libzypp-6.21.3/devel/devel.ma/Main.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/Main.cc 2009-11-06 22:19:29.000000000 +0100
@@ -6,7 +6,7 @@
///////////////////////////////////////////////////////////////////
//static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" );
-static const Pathname sysRoot( "/tmp/ToolScanRepos" );
+static const Pathname sysRoot( "/" );
///////////////////////////////////////////////////////////////////
@@ -71,41 +71,23 @@
dumpRange( USR, satpool.reposBegin(), satpool.reposEnd() ) << endl;
USR << "pool: " << pool << endl;
- sat::AttrMatcher matches( "^aaa_base$", Match::REGEX );
-
- getZYpp()->resolver()->addRequire( Capability("aaa_base") );
-
- solve();
- for_( it, make_filter_beginresfilter::ByTransact(pool), make_filter_endresfilter::ByTransact(pool) )
- {
- USR << *it << " " << (*it)->repoInfo().name() << endl;
- if ( matches( (*it)->name() ) )
- {
- SEC << *it << " " << (*it)->repoInfo().name() << endl;
- }
- }
-
- std::vectorstd::string words;
- str::split( "3ddiag ConsoleKit-x11 FZFangSong FZKaiTiB IPAGothic ImageMagick MozillaFirefox MozillaFirefox-branding-Moblin MozillaFirefox-translations NetworkManager OpenOffice_org OpenOffice_org-LanguageTool OpenOffice_org-LanguageTool-de OpenOffice_org-LanguageTool-en OpenOffice_org-LanguageTool-es OpenOffice_org-LanguageTool-fr OpenOffice_org-LanguageTool-it OpenOffice_org-LanguageTool-nl OpenOffice_org-LanguageTool-pl OpenOffice_org-LanguageTool-sv OpenOffice_org-base OpenOffice_org-base-extensions OpenOffice_org-branding-SLED OpenOffice_org-calc OpenOffice_org-calc-extensions OpenOffice_org-components OpenOffice_org-draw OpenOffice_org-draw-extensions OpenOffice_org-filters OpenOffice_org-filters-optional OpenOffice_org-gnome OpenOffice_org-hyphen OpenOffice_org-icon-themes OpenOffice_org-impress OpenOffice_org-impress-extensions OpenOffice_org-l10n-de OpenOffice_org-l10n-el OpenOffice_org-l10n-en-GB OpenOffice_org-l10n-es OpenOffice_org-l10n-extras OpenOffice_org-l10n-fi OpenOffice_org-l10n-fr OpenOffice_org-l10n-it OpenOffice_org-l10n-ja OpenOffice_org-l10n-ko OpenOffice_org-l10n-nl OpenOffice_org-l10n-pl OpenOffice_org-l10n-pt OpenOffice_org-l10n-pt-BR OpenOffice_org-l10n-ru OpenOffice_org-l10n-sv OpenOffice_org-l10n-zh-CN OpenOffice_org-l10n-zh-TW OpenOffice_org-libs-core OpenOffice_org-libs-extern OpenOffice_org-libs-gui OpenOffice_org-math OpenOffice_org-openclipart OpenOffice_org-templates-en OpenOffice_org-templates-labels-a4 OpenOffice_org-templates-labels-letter OpenOffice_org-templates-presentation-layouts OpenOffice_org-thesaurus-de OpenOffice_org-thesaurus-en OpenOffice_org-thesaurus-es OpenOffice_org-thesaurus-fr OpenOffice_org-thesaurus-pl OpenOffice_org-thesaurus-pt OpenOffice_org-thesaurus-ru OpenOffice_org-thesaurus-sk OpenOffice_org-thesaurus-sv OpenOffice_org-ure OpenOffice_org-writer OpenOffice_org-writer-extensions PackageKit PolicyKit PolicyKit-gnome SDL SDL_image SDL_mixer SDL_net SDL_ttf SuSEfirewall2 WorldOfGooDemo a2ps aaa_base acct acl acpid acroread agfa-fonts alsa alsa-tools amavisd-new anerley anjal ash at atk attr audit-libs autoyast2-installation avahi backup-manager baekmuk-ttf banshee-1 banshee-1-backend-engine-gstreamer banshee-1-backend-platform-gnome banshee-1-backend-platform-unix banshee-1-extensions-default banshee-1-novell-aac bash bc bind-libs bind-utils binutils bisho bitstream-vera blt bluez bluez-alsa bluez-cups bluez-firmware bluez-gnome bluez-gstreamer bootchart bootsplash-branding-SLED branding-SLED brasero bzip2 cabextract cairo cdrkit-cdrtools-compat checkmedia cheese cifs-mount clutter-mozembed compat convmv coreutils cpio cpp cpufrequtils cracklib cracklib-dict-full cron cryptconfig csync cubano cups cups-autoconfig cups-backends cups-client cups-drivers cups-libs curl cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-plain dalston dates db-utils dbus-1 dbus-1-glib dbus-1-x11 dejavu deltarpm desktop-file-utils desktop-translations device-mapper dhcpcd dialog diffutils dirmngr dmraid dos2unix dosfstools e2fsprogs ed eject elfutils empathy ethtool evince evolution evolution-pilot expat extreme-tuxracer f-spot fbset file file-roller filesystem fillup filters findutils finger flash-player fontconfig fonts-config foomatic-filters freeglut freetype freetype2 fribidi frozen-bubble gammu gawk gcalctool gconf2-branding-SLED gdb gdbm gdm gdm-branding-upstream gedit geoclue gettext-runtime gftp gfxboot-branding-SLED ghostscript-fonts-other ghostscript-fonts-std ghostscript-library ghostscript-x11 giflib gimp glib glib2 glib2-branding-Moblin glibc glibc-locale gnome-audio gnome-control-center gnome-desktop gnome-games gnome-icon-theme gnome-keyring gnome-keyring-pam gnome-media gnome-menus gnome-mime-data gnome-mount gnome-packagekit gnome-panel gnome-pilot gnome-session gnome-spell2 gnome-system-monitor gnome-terminal gnome-themes gnome-utils gnome-vfs2 gnome-web-photo gpart gpg2 gpgme gphoto gpm gpsd grep groff grub gstreamer-0_10 gstreamer-0_10-plugins-base gstreamer-0_10-plugins-farsight gstreamer-0_10-plugins-good gstreamer-0_10-schroedinger gstreamer-0_10-utils gsynaptics gtk gtk2 gtk2-branding-SLED gtk2-engines gtk2-theme-SLED gtk2-themes gtkhtml2 gtkspell gutenprint gvfs-backends gypsy gzip hal hdparm hornsey hwinfo ifplugd imlib info initviocons inkscape insserv iproute2 iptables iputils ipw-firmware ispell ispell-american ispell_english_dictionary iw iwl3945-ucode iwl4965-ucode iwl5000-ucode jana java-1_6_0-sun java-1_6_0-sun-plugin json-glib kernel-default kernel-default-base kernel-default-extra kernel-firmware klogd krb5 ksymoops laptop-mode-tools lcms less libQtWebKit4 libacl libattr libblocxx6 libbluetooth3 libclutter-box2d-0_10-0 libclutter-glx-1_0-0 libclutter-gst-1_0-0 libclutter-gtk-1_0-0 libclutter-qt-1_0-0 libdb-4_5 libevent-1_4-2 libfakekey0 libfprint0 libgcc43 libgcrypt11 libgimpprint libgpg-error0 libgsf-gnome libjpeg libmikmod libmng libmoon0 libnetpbm10 libnscd libopensync-plugin-file libpcap0 libpng12-0 libproxy-tools libproxy0 libproxy0-gnome libproxy0-mozjs libproxy0-networkmanager libreadline5 librpcsecgss libsmbios-bin libstdc++33 libstdc++43 libtiff3 libusbpp-0_1-4 libxcrypt libxml2 libxslt libzio libzypp lilo limal limal-perl linux-atm-lib login logrotate lsof lukemftp m4 mailx make man man-pages manufacturer-PPDs master-boot-code mdadm meerkat metacity metamail microcode_ctl mingetty mkinitrd moblin-branding-Samsung moblin-gtk-engine moblin-icon-theme moblin-menus moblin-registration moblin-release moblin-sound-theme moblin-ux-settings moblin-web-browser module-init-tools mojito monsoon moonlight-plugin moonshine moonshine-plugin mousetweaks mozilla-filesystem mozilla-xulrunner190 mtools mutter mutter-moblin myspell-american myspell-british myspell-dutch myspell-french myspell-german myspell-greek myspell-italian myspell-polish myspell-portuguese myspell-russian myspell-spanish myspell-swedish nautilus nautilus-cd-burner nautilus-eiciel nautilus-open-terminal nautilus-sendto nautilus-share nbtk ncurses-utils net-tools netcat netcfg network-manager-netbook neverball nfsidmap notification-daemon novell-ipsec-tools novell-ldapext novell-nortelplugins nscd nspluginwrapper nss_ldap ntfs-3g ntfsprogs ntp numlockx openclipart-svg openldap2-client openmotif-libs openobex opensc openslp openssh openssh-askpass openssl padevchooser pam pam-config pam-modules pam_csync pam_krb5 pam_ldap pam_p11 pam_pkcs11 pam_radius pam_smb pam_ssh paman paprefs parted pavucontrol pavumeter pciutils pcmciautils pcre pcsc-lite perl perl-Bootloader perl-Config-Crontab perl-Crypt-SmbHash perl-Digest-MD4 perl-Digest-SHA1 perl-Parse-RecDescent perl-TermReadKey perl-X500-DN perl-XML-XPath perl-base perl-gettext perl-satsolver permissions pinentry-gtk2 planner plymouth-lite pmtools polkit-default-privs popt postfix ppp pptp preload procinfo procmail procps psmisc pulseaudio-esound-compat pulseaudio-module-bluetooth pulseaudio-module-gconf pulseaudio-module-lirc pulseaudio-module-x11 pulseaudio-module-zeroconf pulseaudio-utils pwdutils python python-gnome python-gtk python-numeric python-qt python-tk python-xml rdesktop recode reiserfs release-notes-sled rest rpm rsh rsync rsyslog rtc-tzset samba samba-client sample-media-images samsung-icon-theme samsung-manual sash sax2 sax2-gui sax2-ident sax2-libsax sax2-libsax-perl sax2-tools scim scim-bridge scim-bridge-clutter scim-bridge-gtk scim-bridge-qt scim-chewing scim-m17n scim-pinyin scim-tables scim-tables-zh screen seahorse sed setserial sg3_utils shared-mime-info sled-manuals_en sled-moblinquick_en sled-moblinquick_en-pdf splashy splashy-branding-SLED sqlite3 sreadahead star startup-notification strace sudo supportutils suse-build-key suse-sam suseRegister susehelp susehelp_en suspend syncevolution sysconfig sysfsutils syslinux system-config-printer sysvinit tango-icon-theme tar tcl-devel tcpd tcsh telnet terminfo tightvnc timezone tk-devel translation-update tsclient turnpike twitter-glib udev ulimit unrar unzip usbutils utempter util-linux uxlaunch vbetool vim vim-data vte w3m wdiff wget wimax-tools wireless-tools wol words wpa_supplicant wvdial wvstreams x11-input-synaptics x11-tools x86info xchat xdmbgrd xfsprogs xkeyboard-config xorg-x11 xorg-x11-Xvnc xorg-x11-driver-input xorg-x11-driver-video xorg-x11-fonts xorg-x11-libX11-ccache xorg-x11-libs xorg-x11-server xorg-x11-server-extra xorg-x11-xauth xpdf-tools xterm xtermset xulrunner yast2 yast2-bootloader yast2-branding-SLED yast2-control-center-gnome yast2-core yast2-country yast2-firewall yast2-firstboot yast2-gtk yast2-hardware-detection yast2-installation yast2-kerberos-client yast2-ldap yast2-ldap-client yast2-metapackage-handler yast2-mouse yast2-ncurses yast2-ncurses-pkg yast2-network yast2-ntp-client yast2-online-update yast2-online-update-frontend yast2-packager yast2-pam yast2-perl-bindings yast2-pkg-bindings yast2-qt yast2-qt-pkg yast2-rdp yast2-registration yast2-registration-branding-SLE yast2-repair yast2-runlevel yast2-samba-client yast2-schema yast2-security yast2-slp yast2-sound yast2-storage yast2-storage-lib yast2-support yast2-sysconfig yast2-theme-SLE yast2-trans-en_GB yast2-trans-en_US yast2-trans-es yast2-trans-fi yast2-trans-fr yast2-trans-ja yast2-trans-ko yast2-trans-pt_BR yast2-trans-stats yast2-trans-sv yast2-trans-zh_CN yast2-trans-zh_TW yast2-transfer yast2-tune yast2-update yast2-users yast2-wagon yast2-x11 yast2-xml yelp youtube-player zenity zip zlib",
- std::back_inserter(words) );
- for_( it, words.begin(), words.end() )
{
- getZYpp()->resolver()->addRequire( Capability(*it) );
+ PoolQuery q;
+ q.addAttribute( sat::SolvAttr::name, "yast2-samba-server" );
+ MIL << dump(q) << endl;
+ }
+ {
+ PoolQuery q;
+ q.addAttribute( sat::SolvAttr::name, "yast2-samba-server" );
+ q.addKind( ResKind::patch );
+ MIL << dump(q) << endl;
+ }
+ {
+ PoolQuery q;
+ q.addAttribute( sat::SolvAttr::name, "patch:yast2-samba-server" );
+ MIL << dump(q) << endl;
}
- getZYpp()->resolver()->addRequire( Capability("aaa_base > 11-6.2") );
-
- solve();
- for_( it, make_filter_beginresfilter::ByTransact(pool), make_filter_endresfilter::ByTransact(pool) )
- {
- USR << *it << " " << (*it)->repoInfo().name() << endl;
- if ( matches( (*it)->name() ) )
- {
- SEC << *it << " " << (*it)->repoInfo().name() << endl;
- }
- }
-
-
if ( 0 )
{
getZYpp()->resolver()->addRequire( Capability("emacs") );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/MaTest.cc new/libzypp-6.22.0/devel/devel.ma/MaTest.cc
--- old/libzypp-6.21.3/devel/devel.ma/MaTest.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/MaTest.cc 2009-11-06 22:19:29.000000000 +0100
@@ -24,7 +24,6 @@
#include "zypp/PackageKeyword.h"
#include "zypp/TmpPath.h"
#include "zypp/ManagedFile.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/pool/GetResolvablesToInsDel.h"
#include "zypp/RepoManager.h"
@@ -219,28 +218,6 @@
{}
};
-inline bool g( const NameKindProxy & nkp, Arch arch = Arch() )
-{
- if ( nkp.availableEmpty() )
- {
- ERR << "No Item to select: " << nkp << endl;
- return false;
- ZYPP_THROW( Exception("No Item to select") );
- }
-
- if ( arch != Arch() )
- {
- typeof( nkp.availableBegin() ) it = nkp.availableBegin();
- for ( ; it != nkp.availableEnd(); ++it )
- {
- if ( (*it)->arch() == arch )
- return (*it).status().setTransact( true, ResStatus::USER );
- }
- }
-
- return nkp.availableBegin()->status().setTransact( true, ResStatus::USER );
-}
-
///////////////////////////////////////////////////////////////////
bool solve()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/NewPool.cc new/libzypp-6.22.0/devel/devel.ma/NewPool.cc
--- old/libzypp-6.21.3/devel/devel.ma/NewPool.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/NewPool.cc 2009-11-06 22:19:29.000000000 +0100
@@ -25,7 +25,6 @@
#include "zypp/TmpPath.h"
#include "zypp/ManagedFile.h"
#include "zypp/MediaSetAccess.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/pool/GetResolvablesToInsDel.h"
#include "zypp/RepoManager.h"
@@ -226,28 +225,6 @@
{}
};
-inline bool g( const NameKindProxy & nkp, Arch arch = Arch() )
-{
- if ( nkp.availableEmpty() )
- {
- ERR << "No Item to select: " << nkp << endl;
- return false;
- ZYPP_THROW( Exception("No Item to select") );
- }
-
- if ( arch != Arch() )
- {
- typeof( nkp.availableBegin() ) it = nkp.availableBegin();
- for ( ; it != nkp.availableEnd(); ++it )
- {
- if ( (*it)->arch() == arch )
- return (*it).status().setTransact( true, ResStatus::USER );
- }
- }
-
- return nkp.availableBegin()->status().setTransact( true, ResStatus::USER );
-}
-
///////////////////////////////////////////////////////////////////
bool solve()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/devel/devel.ma/Parse.cc new/libzypp-6.22.0/devel/devel.ma/Parse.cc
--- old/libzypp-6.21.3/devel/devel.ma/Parse.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/devel/devel.ma/Parse.cc 2009-11-06 22:19:29.000000000 +0100
@@ -19,7 +19,6 @@
#include "zypp/Digest.h"
#include "zypp/PackageKeyword.h"
#include "zypp/ManagedFile.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/pool/GetResolvablesToInsDel.h"
#include "zypp/parser/TagParser.h"
@@ -203,28 +202,6 @@
{}
};
-inline bool g( const NameKindProxy & nkp, Arch arch = Arch() )
-{
- if ( nkp.availableEmpty() )
- {
- ERR << "No Item to select: " << nkp << endl;
- return false;
- ZYPP_THROW( Exception("No Item to select") );
- }
-
- if ( arch != Arch() )
- {
- typeof( nkp.availableBegin() ) it = nkp.availableBegin();
- for ( ; it != nkp.availableEnd(); ++it )
- {
- if ( (*it)->arch() == arch )
- return (*it).status().setTransact( true, ResStatus::USER );
- }
- }
-
- return nkp.availableBegin()->status().setTransact( true, ResStatus::USER );
-}
-
///////////////////////////////////////////////////////////////////
bool solve( bool establish = false )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/package/libzypp.changes new/libzypp-6.22.0/package/libzypp.changes
--- old/libzypp-6.21.3/package/libzypp.changes 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/package/libzypp.changes 2009-11-06 22:19:29.000000000 +0100
@@ -1,4 +1,17 @@
-------------------------------------------------------------------
+Fri Nov 6 22:16:10 CET 2009 - ma@suse.de
+
+- dup: Process drop list only if product actually changes. (bnc #552180)
+- Selectable: Consider allowed arch/noarch changes when comuting candiadates.
+- version 6.22.0 (19)
+
+-------------------------------------------------------------------
+Mon Nov 2 21:33:40 CET 2009 - ma@suse.de
+
+- Enhance interface for zypper. (bnc #551956)
+- version 6.21.4 (19)
+
+-------------------------------------------------------------------
Mon Nov 2 20:03:31 CET 2009 - ma@suse.de
- CIFS/SMB: Support mountoption 'noguest' to prevent passing 'guest' option
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tests/data/TCSelectable/RepoHIGH.xml new/libzypp-6.22.0/tests/data/TCSelectable/RepoHIGH.xml
--- old/libzypp-6.21.3/tests/data/TCSelectable/RepoHIGH.xml 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tests/data/TCSelectable/RepoHIGH.xml 2009-11-06 22:19:29.000000000 +0100
@@ -10,11 +10,48 @@
</package>
<package>
<name>candidate</name>
- <vendor>unkown</vendor>
+ <vendor>unknown</vendor>
<history><update>
<arch>i586</arch>
<version>4</version>
<release>1</release>
</update></history>
+</package>
+
+<package>
+ <name>candidatenoarch</name>
+ <vendor>unknown</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>5</version>
+ <release>1</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>unknown</vendor>
+ <history><update>
+ <arch>x86_64</arch>
+ <version>4</version>
+ <release>1</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>unknown</vendor>
+ <history><update>
+ <arch>i586</arch>
+ <version>4</version>
+ <release>1</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>unknown</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>4</version>
+ <release>1</release>
+ </update></history>
</package>
</subchannel></channel>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tests/data/TCSelectable/RepoMID.xml new/libzypp-6.22.0/tests/data/TCSelectable/RepoMID.xml
--- old/libzypp-6.21.3/tests/data/TCSelectable/RepoMID.xml 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tests/data/TCSelectable/RepoMID.xml 2009-11-06 22:19:29.000000000 +0100
@@ -17,4 +17,41 @@
<release>1</release>
</update></history>
</package>
+
+<package>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>2</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>x86_64</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>i586</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>openSUSE</vendor>
+ <history><update>
+ <arch>noarch</arch>
+ <version>0</version>
+ <release>1</release>
+ </update></history>
+</package>
</subchannel></channel>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tests/data/TCSelectable/solver-system.xml new/libzypp-6.22.0/tests/data/TCSelectable/solver-system.xml
--- old/libzypp-6.21.3/tests/data/TCSelectable/solver-system.xml 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tests/data/TCSelectable/solver-system.xml 2009-11-06 22:19:29.000000000 +0100
@@ -8,4 +8,13 @@
<release>1</release>
</update></history>
</package>
+<package>
+ <name>candidatenoarch</name>
+ <vendor>unknown</vendor>
+ <history><update>
+ <arch>i586</arch>
+ <version>1</version>
+ <release>1</release>
+ </update></history>
+</package>
</subchannel></channel>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tests/sat/Solvable_test.cc new/libzypp-6.22.0/tests/sat/Solvable_test.cc
--- old/libzypp-6.21.3/tests/sat/Solvable_test.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tests/sat/Solvable_test.cc 2009-11-06 22:19:29.000000000 +0100
@@ -103,3 +103,42 @@
#endif
}
+BOOST_AUTO_TEST_CASE(SplitIdent)
+{
+ sat::Solvable::SplitIdent split;
+ BOOST_CHECK_EQUAL( split.ident(), IdString() );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind() );
+ BOOST_CHECK_EQUAL( split.name(), IdString() );
+
+ // kind defaults to package
+ split = sat::Solvable::SplitIdent( "foo" );
+ BOOST_CHECK_EQUAL( split.ident(), "foo" );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind::package );
+ BOOST_CHECK_EQUAL( split.name(), "foo" );
+
+ // kind package and srcpackage do not have namespaced ident
+ split = sat::Solvable::SplitIdent( "package:foo" );
+ BOOST_CHECK_EQUAL( split.ident(), "foo" );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind::package );
+ BOOST_CHECK_EQUAL( split.name(), "foo" );
+
+ split = sat::Solvable::SplitIdent( "srcpackage:foo" );
+ BOOST_CHECK_EQUAL( split.ident(), "foo" );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind::srcpackage );
+ BOOST_CHECK_EQUAL( split.name(), "foo" );
+
+ // all other kinds do have namespaced ident
+ split = sat::Solvable::SplitIdent( "patch:foo" );
+ BOOST_CHECK_EQUAL( split.ident(), "patch:foo" );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind::patch );
+ BOOST_CHECK_EQUAL( split.name(), "foo" );
+
+ // all other kinds do have namespaced ident
+ split = sat::Solvable::SplitIdent( "unknownkind:foo" );
+ BOOST_CHECK_EQUAL( split.ident(), "unknownkind:foo" );
+ BOOST_CHECK_EQUAL( split.kind(), ResKind("unknownkind") );
+ BOOST_CHECK_EQUAL( split.name(), "foo" );
+
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tests/zypp/Selectable_test.cc new/libzypp-6.22.0/tests/zypp/Selectable_test.cc
--- old/libzypp-6.21.3/tests/zypp/Selectable_test.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tests/zypp/Selectable_test.cc 2009-11-06 22:19:29.000000000 +0100
@@ -29,7 +29,7 @@
// U__s_(2)candidate-4-1.x86_64(RepoHIGH)(unkown)
// U__s_(3)candidate-4-1.i586(RepoHIGH)(unkown)
// U__s_(6)candidate-0-1.x86_64(RepoMID)(SUSE)
- // U__s_(7)candidate-0-1.i586(RepoMID)(SUSE) <- candidate (highrst prio matching arch and vendor)
+ // U__s_(7)candidate-0-1.i586(RepoMID)(SUSE) <- candidate (highest prio matching arch and vendor)
// U__s_(4)candidate-2-1.x86_64(RepoLOW)(openSUSE)
// U__s_(5)candidate-2-1.i586(RepoLOW)(openSUSE)
// }
@@ -39,3 +39,28 @@
// no updateCandidate due to low version
BOOST_CHECK_EQUAL( s->updateCandidateObj(), PoolItem() );
}
+
+BOOST_AUTO_TEST_CASE(candiadatenoarch)
+{
+ ResPoolProxy poolProxy( test.poolProxy() );
+ ui::Selectable::Ptr s( poolProxy.lookup( ResKind::package, "candidatenoarch" ) );
+/*[package]candidatenoarch: S_KeepInstalled
+ (I 1) {
+ I__s_(17)candidatenoarch-1-1.i586(@System)
+} (A 8) {
+ C U__s_(4)candidatenoarch-5-1.noarch(RepoHIGH) <- candidate (arch/noarch change)
+ U__s_(5)candidatenoarch-4-1.x86_64(RepoHIGH)
+ U__s_(6)candidatenoarch-4-1.i586(RepoHIGH)
+ U__s_(7)candidatenoarch-4-1.noarch(RepoHIGH)
+ U__s_(12)candidatenoarch-0-2.noarch(RepoMID)
+ U__s_(13)candidatenoarch-0-1.x86_64(RepoMID)
+ U__s_(14)candidatenoarch-0-1.i586(RepoMID)
+ U__s_(15)candidatenoarch-0-1.noarch(RepoMID)
+} */
+ std::cout << dump(s) << endl;
+ BOOST_CHECK_EQUAL( s->candidateObj()->repoInfo().alias(), "RepoHIGH" );
+ BOOST_CHECK_EQUAL( s->candidateObj()->edition(), Edition("5-1") );
+ BOOST_CHECK_EQUAL( s->candidateObj()->arch(), Arch_noarch );
+ // no updateCandidate due to low version
+ BOOST_CHECK_EQUAL( s->updateCandidateObj(), s->candidateObj() );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tools/DumpSelectable.cc new/libzypp-6.22.0/tools/DumpSelectable.cc
--- old/libzypp-6.21.3/tools/DumpSelectable.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-6.22.0/tools/DumpSelectable.cc 2009-11-06 22:19:29.000000000 +0100
@@ -0,0 +1,138 @@
+#define INCLUDE_TESTSETUP_WITHOUT_BOOST
+#include "zypp/../tests/lib/TestSetup.h"
+#undef INCLUDE_TESTSETUP_WITHOUT_BOOST
+
+#include <algorithm>
+#include
+
+static std::string appname( "DumpSelectable" );
+
+#define message cout
+using std::flush;
+
+int errexit( const std::string & msg_r = std::string(), int exit_r = 100 )
+{
+ if ( ! msg_r.empty() )
+ {
+ cerr << endl << msg_r << endl << endl;
+ }
+ return exit_r;
+}
+
+int usage( const std::string & msg_r = std::string(), int exit_r = 100 )
+{
+ if ( ! msg_r.empty() )
+ {
+ cerr << endl << msg_r << endl << endl;
+ }
+ cerr << "Usage: " << appname << " [--root ROOTDIR] [OPTIONS] NAME..." << endl;
+ cerr << " Load all enabled repositories (no refresh) and search for" << endl;
+ cerr << " Selectables names NAME" << endl;
+ cerr << " --root Load repos from the system located below ROOTDIR. If ROOTDIR" << endl;
+ cerr << " denotes a sover testcase, the testcase is loaded." << endl;
+ cerr << "" << endl;
+ return exit_r;
+}
+
+/******************************************************************
+**
+** FUNCTION NAME : main
+** FUNCTION TYPE : int
+*/
+int main( int argc, char * argv[] )
+{
+ INT << "===[START]==========================================" << endl;
+ appname = Pathname::basename( argv[0] );
+ --argc,++argv;
+
+ if ( ! argc )
+ {
+ return usage();
+ }
+
+ ///////////////////////////////////////////////////////////////////
+
+ ZConfig::instance();
+ Pathname sysRoot("/");
+ sat::Pool satpool( sat::Pool::instance() );
+
+ if ( (*argv) == std::string("--root") )
+ {
+ --argc,++argv;
+ if ( ! argc )
+ return errexit("--root requires an argument.");
+
+ if ( ! PathInfo( *argv ).isDir() )
+ return errexit("--root requires a directory.");
+
+ sysRoot = *argv;
+ --argc,++argv;
+ }
+
+ if ( TestSetup::isTestcase( sysRoot ) )
+ {
+ message << str::form( "*** Load Testcase from '%s'", sysRoot.c_str() ) << endl;
+ TestSetup test;
+ test.loadTestcaseRepos( sysRoot );
+ }
+ else if ( TestSetup::isTestSetup( sysRoot ) )
+ {
+ message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl;
+ TestSetup test( sysRoot, Arch_x86_64 );
+ test.loadRepos();
+ }
+ else
+ {
+ // a system
+ message << str::form( "*** Load system at '%s'", sysRoot.c_str() ) << endl;
+ if ( true )
+ {
+ message << "*** load target '" << Repository::systemRepoAlias() << "'\t" << endl;
+ getZYpp()->initializeTarget( sysRoot );
+ getZYpp()->target()->load();
+ message << satpool.systemRepo() << endl;
+ }
+
+ if ( true )
+ {
+ RepoManager repoManager( sysRoot );
+ RepoInfoList repos = repoManager.knownRepositories();
+ for_( it, repos.begin(), repos.end() )
+ {
+ RepoInfo & nrepo( *it );
+
+ if ( ! nrepo.enabled() )
+ continue;
+
+ if ( ! repoManager.isCached( nrepo ) )
+ {
+ message << str::form( "*** omit uncached repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl;
+ continue;
+ }
+
+ message << str::form( "*** load repo '%s'\t", nrepo.name().c_str() ) << flush;
+ try
+ {
+ repoManager.loadFromCache( nrepo );
+ message << satpool.reposFind( nrepo.alias() ) << endl;
+ }
+ catch ( const Exception & exp )
+ {
+ message << exp.asString() + "\n" + exp.historyAsString() << endl;
+ message << str::form( "*** omit broken repo '%s' (do 'zypper refresh')", nrepo.name().c_str() ) << endl;
+ continue;
+ }
+ }
+ }
+ }
+
+ ///////////////////////////////////////////////////////////////////
+
+ for ( ; argc; --argc,++argv )
+ {
+ message << dump( ui::Selectable::get( IdString( *argv ) ) ) << endl;
+ }
+
+ INT << "===[END]============================================" << endl << endl;
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/tools/zypp-CheckAccessDeleted.cc new/libzypp-6.22.0/tools/zypp-CheckAccessDeleted.cc
--- old/libzypp-6.21.3/tools/zypp-CheckAccessDeleted.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/tools/zypp-CheckAccessDeleted.cc 2009-11-06 22:19:29.000000000 +0100
@@ -76,12 +76,12 @@
const std::string & files_r ) const
{
printf( "%*s %*s %*s %-*s %-*s %-*s %-s\n",
- pid.size, pid_r.c_str(),
- ppid.size, ppid_r.c_str(),
- puid.size, puid_r.c_str(),
- login.size, login_r.c_str(),
- command.size, command_r.c_str(),
- service.size, (service_r.empty() ? " -" : service_r.c_str()),
+ (int)pid.size, pid_r.c_str(),
+ (int)ppid.size, ppid_r.c_str(),
+ (int)puid.size, puid_r.c_str(),
+ (int)login.size, login_r.c_str(),
+ (int)command.size, command_r.c_str(),
+ (int)service.size, (service_r.empty() ? " -" : service_r.c_str()),
files_r.c_str() );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/VERSION.cmake new/libzypp-6.22.0/VERSION.cmake
--- old/libzypp-6.21.3/VERSION.cmake 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/VERSION.cmake 2009-11-06 22:19:29.000000000 +0100
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "6")
SET(LIBZYPP_COMPATMINOR "19")
-SET(LIBZYPP_MINOR "21")
-SET(LIBZYPP_PATCH "3")
+SET(LIBZYPP_MINOR "22")
+SET(LIBZYPP_PATCH "0")
#
-# LAST RELEASED: 6.21.3 (19)
+# LAST RELEASED: 6.22.0 (19)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/base/String.cc new/libzypp-6.22.0/zypp/base/String.cc
--- old/libzypp-6.21.3/zypp/base/String.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/base/String.cc 2009-11-06 22:19:29.000000000 +0100
@@ -64,6 +64,7 @@
|| t == "yes"
|| t == "true"
|| t == "on"
+ || t == "+"
|| strtonum<long long>( str )
);
}
@@ -80,6 +81,7 @@
|| t == "no"
|| t == "false"
|| t == "off"
+ || t == "-"
);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/base/String.h new/libzypp-6.22.0/zypp/base/String.h
--- old/libzypp-6.21.3/zypp/base/String.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/base/String.h 2009-11-06 22:19:29.000000000 +0100
@@ -108,6 +108,12 @@
/**
* Global asString() that works with std::string too
*/
+ inline std::string asString( const std::string &t )
+ { return t; }
+
+ inline std::string asString( const char * t )
+ { return t; }
+
template<class _T>
inline std::string asString( const _T &t )
{ return t.asString(); }
@@ -121,8 +127,8 @@
{ return p->asString(); }
template<>
- inline std::string asString( const std::string &t )
- { return t; }
+ inline std::string asString( const bool &t )
+ { return t ? "+" : "-"; }
///////////////////////////////////////////////////////////////////
/** Printf style construction of std::string. */
@@ -203,6 +209,17 @@
inline std::string numstring( unsigned long n, int w = 0 ) { return form( "%*lu", w, n ); }
inline std::string numstring( long long n, int w = 0 ) { return form( "%*lld", w, n ); }
inline std::string numstring( unsigned long long n, int w = 0 ) { return form( "%*llu", w, n ); }
+
+ template<> inline std::string asString( const char & t ) { return numstring( t ); }
+ template<> inline std::string asString( const unsigned char & t ) { return numstring( t ); }
+ template<> inline std::string asString( const short & t ) { return numstring( t ); }
+ template<> inline std::string asString( const unsigned short & t ) { return numstring( t ); }
+ template<> inline std::string asString( const int & t ) { return numstring( t ); }
+ template<> inline std::string asString( const unsigned & t ) { return numstring( t ); }
+ template<> inline std::string asString( const long & t ) { return numstring( t ); }
+ template<> inline std::string asString( const unsigned long & t ) { return numstring( t ); }
+ template<> inline std::string asString( const long long & t ) { return numstring( t ); }
+ template<> inline std::string asString( const unsigned long long & t ) { return numstring( t ); }
//@}
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/CMakeLists.txt new/libzypp-6.22.0/zypp/CMakeLists.txt
--- old/libzypp-6.21.3/zypp/CMakeLists.txt 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/CMakeLists.txt 2009-11-06 22:19:29.000000000 +0100
@@ -33,7 +33,6 @@
Locks.cc
MediaProducts.cc
MediaSetAccess.cc
- NameKindProxy.cc
OnMediaLocation.cc
Package.cc
Patch.cc
@@ -122,7 +121,6 @@
ManagedFile.h
MediaProducts.h
MediaSetAccess.h
- NameKindProxy.h
Vendor.h
OnMediaLocation.h
Package.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/media/MediaAria2c.cc new/libzypp-6.22.0/zypp/media/MediaAria2c.cc
--- old/libzypp-6.21.3/zypp/media/MediaAria2c.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/media/MediaAria2c.cc 2009-11-06 22:19:29.000000000 +0100
@@ -156,6 +156,7 @@
}
else
{
+ MIL << "Passing " << url.getScheme() << " credentials '" << s.username() << ':' << (s.password().empty() ? "" : "PASSWORD")<< "'" << endl;
if ( url.getScheme() == "ftp" )
file_options.push_back(str::form("ftp-user=%s", s.username().c_str() ));
else if ( url.getScheme() == "http" ||
@@ -177,6 +178,7 @@
args.push_back(str::form("--http-proxy=%s", s.proxy().c_str() ));
if ( ! s.proxyUsername().empty() )
{
+ MIL << "Passing " << /*url.getScheme()*/"http" << "-proxy credentials '" << s.proxyUsername() << ':' << (s.proxyPassword().empty() ? "" : "PASSWORD")<< "'" << endl;
file_options.push_back(str::form("http-proxy-user=%s", s.proxyUsername().c_str() ));
if ( ! s.proxyPassword().empty() )
file_options.push_back(str::form("http-proxy-passwd=%s", s.proxyPassword().c_str() ));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/NameKindProxy.cc new/libzypp-6.22.0/zypp/NameKindProxy.cc
--- old/libzypp-6.21.3/zypp/NameKindProxy.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/NameKindProxy.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,97 +0,0 @@
-/*---------------------------------------------------------------------\
-| ____ _ __ __ ___ |
-| |__ / \ / / . \ . \ |
-| / / \ V /| _/ _/ |
-| / /__ | | | | | | |
-| /_____||_| |_| |_| |
-| |
-\---------------------------------------------------------------------*/
-/** \file zypp/NameKindProxy.cc
- *
-*/
-#include <iostream>
-
-#include "zypp/base/Easy.h"
-#include "zypp/NameKindProxy.h"
-
-using std::endl;
-
-///////////////////////////////////////////////////////////////////
-namespace zypp
-{ /////////////////////////////////////////////////////////////////
-
- namespace
- {
- /** \todo Move it to base/IOStream.h */
- template<class _Tp>
- struct PrintOn : public std::unary_function<_Tp, bool>
- {
- bool operator()( const _Tp & obj )
- {
- _str << _prfx << obj << std::endl;
- return true;
- }
-
- PrintOn( std::ostream & str, const std::string & prfx = std::string() )
- : _str( str )
- , _prfx( prfx )
- {}
- std::ostream & _str;
- std::string _prfx;
- };
- }
-
- ///////////////////////////////////////////////////////////////////
- //
- // CLASS NAME : NameKindProxy
- //
- ///////////////////////////////////////////////////////////////////
-
- ///////////////////////////////////////////////////////////////////
- //
- // METHOD NAME : NameKindProxy::NameKindProxy
- // METHOD TYPE : Ctor
- //
- NameKindProxy::NameKindProxy( ResPool pool_r, const C_Str & name_r, Resolvable::Kind kind_r )
- : _kind( kind_r )
- , _name( name_r )
- {
- for_( it, pool_r.byIdentBegin( kind_r, _name ), pool_r.byIdentEnd( kind_r, _name ) )
- {
- if ( it->status().isInstalled() )
- _installed.insert( *it ) ;
- else
- _available.insert( *it );
- }
- }
-
- NameKindProxy::NameKindProxy( ResPool pool_r, IdString name_r, Resolvable::Kind kind_r )
- : _kind( kind_r )
- , _name( name_r )
- {
- for_( it, pool_r.byIdentBegin( kind_r, _name ), pool_r.byIdentEnd( kind_r, _name ) )
- {
- if ( it->status().isInstalled() )
- _installed.insert( *it ) ;
- else
- _available.insert( *it );
- }
- }
-
- /******************************************************************
- **
- ** FUNCTION NAME : operator<<
- ** FUNCTION TYPE : std::ostream &
- */
- std::ostream & operator<<( std::ostream & str, const NameKindProxy & obj )
- {
- str << "[" << obj.kind() << "] " << obj.name()
- << " {" << obj.installedSize() << "/" << obj.availableSize() << "}" << endl;
- std::for_each( obj.installedBegin(), obj.installedEnd(), PrintOn<PoolItem>(str," ") );
- std::for_each( obj.availableBegin(), obj.availableEnd(), PrintOn<PoolItem>(str," ") );
- return str;
- }
-
- /////////////////////////////////////////////////////////////////
-} // namespace zypp
-///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/NameKindProxy.h new/libzypp-6.22.0/zypp/NameKindProxy.h
--- old/libzypp-6.21.3/zypp/NameKindProxy.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/NameKindProxy.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,165 +0,0 @@
-/*---------------------------------------------------------------------\
-| ____ _ __ __ ___ |
-| |__ / \ / / . \ . \ |
-| / / \ V /| _/ _/ |
-| / /__ | | | | | | |
-| /_____||_| |_| |_| |
-| |
-\---------------------------------------------------------------------*/
-/** \file zypp/NameKindProxy.h
- *
-*/
-#ifndef ZYPP_NAMEKINDPROXY_H
-#define ZYPP_NAMEKINDPROXY_H
-
-#include <iosfwd>
-#include <set>
-
-#include "zypp/ResPool.h"
-
-///////////////////////////////////////////////////////////////////
-namespace zypp
-{ /////////////////////////////////////////////////////////////////
-
- namespace name_kind_proxy_details
- {
- struct IOrder : public std::binary_function
- {
- // NOTE: operator() provides LESS semantics to order the set.
- // So LESS means 'prior in set'. We want the last item installed
- // first.
- /** \todo let ResObject provide installtime */
- bool operator()( const PoolItem & lhs, const PoolItem & rhs ) const
- {
- // top should be installtime!
-
- int res = lhs->arch().compare( rhs->arch() );
- if ( res )
- return res > 0;
- res = lhs->edition().compare( rhs->edition() );
- if ( res )
- return res > 0;
-
- // no more criteria, still equal:
- // use the ResObject::constPtr (the poiner value)
- // (here it's arbitrary whether < or > )
- return lhs.resolvable() < rhs.resolvable();
- }
- };
-
- struct AOrder : public std::binary_function
- {
- // NOTE: operator() provides LESS semantics to order the set.
- // So LESS means 'prior in set'. We want 'better' archs and
- // 'better' editions at the beginning of the set. So we return
- // TRUE if (lhs > rhs)!
- //
- bool operator()( const PoolItem & lhs, const PoolItem & rhs ) const
- {
- int res = lhs->arch().compare( rhs->arch() );
- if ( res )
- return res > 0;
- res = lhs->edition().compare( rhs->edition() );
- if ( res )
- return res > 0;
-
- // no more criteria, still equal:
- // use the ResObject::constPtr (the poiner value)
- // (here it's arbitrary whether < or > )
- return lhs.resolvable() < rhs.resolvable();
- }
- };
- }
-
- ///////////////////////////////////////////////////////////////////
- //
- // CLASS NAME : NameKindProxy
- //
- /** Retrieve and maintain PoolItem of a certain name and kind.
- *
- * Installed PoolItems are sorted according to their installtime
- * (last installed first).
- *
- * Available PoolItems are sorted 'best first'.
- *
- * \todo provide status query and manipulation methods
- */
- class NameKindProxy
- {
- typedef name_kind_proxy_details::IOrder IOrder;
- typedef name_kind_proxy_details::AOrder AOrder;
- public:
- typedef std::set InstalledSet;
- typedef InstalledSet::iterator Installed_iterator;
- typedef InstalledSet::const_iterator Installed_const_iterator;
- typedef InstalledSet::size_type Installed_size_type;
-
- typedef std::set AvailableSet;
- typedef AvailableSet::iterator Available_iterator;
- typedef AvailableSet::const_iterator Available_const_iterator;
- typedef AvailableSet::size_type Available_size_type;
-
- public:
- NameKindProxy( ResPool pool_r, IdString name_r, ResKind kind_r );
- NameKindProxy( ResPool pool_r, const C_Str & name_r, ResKind kind_r );
-
- public:
- ResKind kind() const
- { return _kind; }
-
- IdString name() const
- { return _name; }
-
- public:
- Installed_size_type installedSize() const
- { return _installed.size(); }
-
- bool installedEmpty() const
- { return _installed.empty(); }
-
- Installed_const_iterator installedBegin() const
- { return _installed.begin(); }
-
- Installed_const_iterator installedEnd() const
- { return _installed.end(); }
-
- public:
- Available_size_type availableSize() const
- { return _available.size(); }
-
- bool availableEmpty() const
- { return _available.empty(); }
-
- Available_const_iterator availableBegin() const
- { return _available.begin(); }
-
- Available_const_iterator availableEnd() const
- { return _available.end(); }
-
- public:
-
- // status query and manip stuff...
-
- private:
- ResKind _kind;
- IdString _name;
- InstalledSet _installed;
- AvailableSet _available;
- };
- ///////////////////////////////////////////////////////////////////
-
- /** \relates NameKindProxy Stream output. */
- std::ostream & operator<<( std::ostream & str, const NameKindProxy & obj );
-
- /** \relates NameKindProxy Convenience construction. */
- template<class _Res>
- inline NameKindProxy nameKindProxy( ResPool pool_r, IdString name_r )
- { return NameKindProxy( pool_r, name_r, ResTraits<_Res>::kind ); }
- template<class _Res>
- inline NameKindProxy nameKindProxy( ResPool pool_r, const C_Str & name_r )
- { return NameKindProxy( pool_r, name_r, ResTraits<_Res>::kind ); }
-
- /////////////////////////////////////////////////////////////////
-} // namespace zypp
-///////////////////////////////////////////////////////////////////
-#endif // ZYPP_NAMEKINDPROXY_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/PoolQuery.cc new/libzypp-6.22.0/zypp/PoolQuery.cc
--- old/libzypp-6.21.3/zypp/PoolQuery.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/PoolQuery.cc 2009-11-06 22:19:29.000000000 +0100
@@ -1337,6 +1337,9 @@
ostream & operator<<( ostream & str, const PoolQuery & obj )
{ return str << obj.asString(); }
+ std::ostream & dumpOn( std::ostream & str, const PoolQuery & obj )
+ { return dumpRange( str << obj, obj.begin(), obj.end() ); }
+
bool PoolQuery::operator==( const PoolQuery & rhs ) const
{ return *_pimpl == *rhs._pimpl; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/PoolQuery.h new/libzypp-6.22.0/zypp/PoolQuery.h
--- old/libzypp-6.21.3/zypp/PoolQuery.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/PoolQuery.h 2009-11-06 22:19:29.000000000 +0100
@@ -468,6 +468,9 @@
/** \relates PoolQuery Stream output. */
std::ostream & operator<<( std::ostream & str, const PoolQuery & obj );
+ /** \relates PoolQuery Detailed stream output. */
+ std::ostream & dumpOn( std::ostream & str, const PoolQuery & obj );
+
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/RepoInfo.cc new/libzypp-6.22.0/zypp/RepoInfo.cc
--- old/libzypp-6.21.3/zypp/RepoInfo.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/RepoInfo.cc 2009-11-06 22:19:29.000000000 +0100
@@ -382,6 +382,9 @@
if (!metadataPath().empty())
str << "- metadataPath: " << metadataPath() << std::endl;
+ if (!packagesPath().empty())
+ str << "- packagesPath: " << packagesPath() << std::endl;
+
return str;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/RepoManager.cc new/libzypp-6.22.0/zypp/RepoManager.cc
--- old/libzypp-6.21.3/zypp/RepoManager.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/RepoManager.cc 2009-11-06 22:19:29.000000000 +0100
@@ -1352,6 +1352,9 @@
tosave.dumpAsIniOn(file);
tosave.setFilepath(repofile);
+ tosave.setMetadataPath( metadataPath( tosave ) );
+ tosave.setPackagesPath( packagesPath( tosave ) );
+
_pimpl->repos.insert(tosave);
progress.set(90);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/Repository.cc new/libzypp-6.22.0/zypp/Repository.cc
--- old/libzypp-6.21.3/zypp/Repository.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/Repository.cc 2009-11-06 22:19:29.000000000 +0100
@@ -9,6 +9,7 @@
/** \file zypp/sat/Repository.cc
*
*/
+#include <climits>
#include <iostream>
#include "zypp/base/Logger.h"
@@ -63,6 +64,19 @@
std::string Repository::name() const
{ return info().name(); }
+ int Repository::satInternalPriority() const
+ {
+ NO_REPOSITORY_RETURN( INT_MIN );
+ return _repo->priority;
+ }
+
+ int Repository::satInternalSubPriority() const
+ {
+ NO_REPOSITORY_RETURN( INT_MIN );
+ return _repo->subpriority;
+ }
+
+
zypp::Date Repository::generatedTimestamp() const
{
NO_REPOSITORY_RETURN( 0 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/Repository.h new/libzypp-6.22.0/zypp/Repository.h
--- old/libzypp-6.21.3/zypp/Repository.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/Repository.h 2009-11-06 22:19:29.000000000 +0100
@@ -262,6 +262,17 @@
::_Repo * get() const;
/** Expert backdoor. */
IdType id() const { return _id; }
+ /** satsolver internal priorities.
+ * Unlike the \ref RepoInfo priority which tries to be YUM conform
+ * (H[1-99]L), this one is the solvers internal priority representation.
+ * It is type \c int and as one might expect it, the higher the value
+ * the higher the priority. Subpriority is currently used to express
+ * media preferences (\see \ref MediaPriority).
+ */
+ //{@
+ int satInternalPriority() const;
+ int satInternalSubPriority() const;
+ //*}
private:
#ifndef SWIG // Swig treats it as syntax error
friend base::SafeBool<Repository>::operator bool_type() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/sat/detail/PoolImpl.cc new/libzypp-6.22.0/zypp/sat/detail/PoolImpl.cc
--- old/libzypp-6.21.3/zypp/sat/detail/PoolImpl.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/sat/detail/PoolImpl.cc 2009-11-06 22:19:29.000000000 +0100
@@ -357,7 +357,7 @@
// satsolver priority is based on '<', while yum's repoinfo
// uses 1(highest)->99(lowest). Thus we use -info_r.priority.
- if ( repo->priority != -info_r.priority() )
+ if ( repo->priority != int(-info_r.priority()) )
{
repo->priority = -info_r.priority();
dirty = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/sat/Solvable.cc new/libzypp-6.22.0/zypp/sat/Solvable.cc
--- old/libzypp-6.21.3/zypp/sat/Solvable.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/sat/Solvable.cc 2009-11-06 22:19:29.000000000 +0100
@@ -35,45 +35,62 @@
namespace sat
{ /////////////////////////////////////////////////////////////////
- Solvable::SplitIdent::SplitIdent( IdString ident_r )
- : _ident( ident_r )
+ namespace
{
- if ( ! ident_r )
- return;
+ void _doSplit( IdString & _ident, ResKind & _kind, IdString & _name )
+ {
+ if ( ! _ident )
+ return;
- const char * ident = ident_r.c_str();
- const char * sep = ::strchr( ident, ':' );
+ const char * ident = _ident.c_str();
+ const char * sep = ::strchr( ident, ':' );
- // no ':' in package names (hopefully)
- if ( ! sep )
- {
- _kind = ResKind::package;
- _name = ident_r;
- return;
- }
+ // no ':' in package names (hopefully)
+ if ( ! sep )
+ {
+ _kind = ResKind::package;
+ _name = _ident;
+ return;
+ }
- // save name
- _name = IdString( sep+1 );
- // quick check for well known kinds
- if ( sep-ident >= 4 )
- {
- switch ( ident[3] )
+ // save name
+ _name = IdString( sep+1 );
+
+ // Quick check for well known kinds.
+ // NOTE: kind package and srcpackage do not
+ // have namespaced ident!
+ if ( sep-ident >= 4 )
{
+ switch ( ident[3] )
+ {
#define OUTS(K,S) if ( !::strncmp( ident, ResKind::K.c_str(), S ) ) _kind = ResKind::K
// ----v
- case 'c': OUTS( patch, 5 ); return; break;
- case 'd': OUTS( product, 7 ); return; break;
- case 'k': OUTS( package, 7 ); return; break;
- case 'p': OUTS( srcpackage, 10 ); return; break;
- case 't': OUTS( pattern, 7 ); return; break;
+ case 'c': OUTS( patch, 5 ); return; break;
+ case 'd': OUTS( product, 7 ); return; break;
+ case 'k': OUTS( package, 7 ); _ident = _name; return; break;
+ case 'p': OUTS( srcpackage, 10 ); _ident = _name; return; break;
+ case 't': OUTS( pattern, 7 ); return; break;
#undef OUTS
+ }
}
- }
- // an unknown kind
- _kind = ResKind( std::string( ident, sep-ident ) );
+ // an unknown kind
+ _kind = ResKind( std::string( ident, sep-ident ) );
+ }
}
+ Solvable::SplitIdent::SplitIdent( IdString ident_r )
+ : _ident( ident_r )
+ { _doSplit( _ident, _kind, _name ); }
+
+ Solvable::SplitIdent::SplitIdent( const char * ident_r )
+ : _ident( ident_r )
+ { _doSplit( _ident, _kind, _name ); }
+
+ Solvable::SplitIdent::SplitIdent( const std::string & ident_r )
+ : _ident( ident_r )
+ { _doSplit( _ident, _kind, _name ); }
+
Solvable::SplitIdent::SplitIdent( ResKind kind_r, IdString name_r )
: _kind( kind_r )
, _name( name_r )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/sat/Solvable.h new/libzypp-6.22.0/zypp/sat/Solvable.h
--- old/libzypp-6.21.3/zypp/sat/Solvable.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/sat/Solvable.h 2009-11-06 22:19:29.000000000 +0100
@@ -251,6 +251,8 @@
public:
SplitIdent() {}
SplitIdent( IdString ident_r );
+ SplitIdent( const char * ident_r );
+ SplitIdent( const std::string & ident_r );
SplitIdent( ResKind kind_r, IdString name_r );
SplitIdent( ResKind kind_r, const C_Str & name_r );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/solver/detail/InstallOrder.cc new/libzypp-6.22.0/zypp/solver/detail/InstallOrder.cc
--- old/libzypp-6.21.3/zypp/solver/detail/InstallOrder.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/solver/detail/InstallOrder.cc 2009-11-06 22:19:29.000000000 +0100
@@ -36,7 +36,6 @@
#include "zypp/ResFilters.h"
#include "zypp/ResStatus.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/sat/Pool.h"
#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/solver/detail/SATResolver.cc new/libzypp-6.22.0/zypp/solver/detail/SATResolver.cc
--- old/libzypp-6.21.3/zypp/solver/detail/SATResolver.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/solver/detail/SATResolver.cc 2009-11-06 22:19:29.000000000 +0100
@@ -629,8 +629,8 @@
if ( (*it)->onSystem() ) // (to install) or (not to delete)
{
Product::constPtr prodCand( (*it)->candidateAsKind<Product>() );
- if ( ! prodCand )
- continue; // product no longer available
+ if ( ! prodCand || (*it)->identicalInstalledCandidate() )
+ continue; // product no longer available or unchanged
CapabilitySet droplist( prodCand->droplist() );
dumpRangeLine( MIL << "Droplist for " << (*it)->candidateObj() << ": " << droplist.size() << " ", droplist.begin(), droplist.end() ) << endl;
@@ -1251,7 +1251,7 @@
PoolItem poolItem = _pool.find (s);
if (poolItem) {
problemSolution->addSingleAction (poolItem, LOCK); // for solver reason: NOT weak lock.
- string description = str::form (_("keep %s"), s.asString().c_str());
+ string description = str::form (_("keep obsolete %s"), s.asString().c_str());
MIL << description << endl;
problemSolution->addDescription (description);
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/ui/Selectable.h new/libzypp-6.22.0/zypp/ui/Selectable.h
--- old/libzypp-6.21.3/zypp/ui/Selectable.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/ui/Selectable.h 2009-11-06 22:19:29.000000000 +0100
@@ -313,6 +313,10 @@
bool unmodified() const
{ return fate() == UNMODIFIED; }
+ /** True if locked (subclass of unmodified). */
+ bool locked() const
+ { Status st( status() ); return( st == S_Protected || st == S_Taboo ); }
+
/** True if either to delete or to install */
bool toModify() const
{ return fate() != UNMODIFIED; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/ui/SelectableImpl.h new/libzypp-6.22.0/zypp/ui/SelectableImpl.h
--- old/libzypp-6.21.3/zypp/ui/SelectableImpl.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/ui/SelectableImpl.h 2009-11-06 22:19:29.000000000 +0100
@@ -154,8 +154,9 @@
|| VendorAttr::instance().equivalent( _defaultCandidate->vendor(), installed->vendor() ) ) )
return PoolItem();
- // check arch change
- if ( _defaultCandidate->arch() != installed->arch() )
+ // check arch change (arch noarch changes are allowed)
+ if ( _defaultCandidate->arch() != installed->arch()
+ && ! ( _defaultCandidate->arch() == Arch_noarch || installed->arch() == Arch_noarch ) )
return PoolItem();
// check greater edition
@@ -280,11 +281,12 @@
for ( installed_const_iterator iit = installedBegin();
iit != installedEnd(); ++iit )
{
- PoolItem sameArch; // in case there's no same vendor at least stay with same arch
+ PoolItem sameArch; // in case there's no same vendor at least stay with same arch.
for ( available_const_iterator it = availableBegin();
it != availableEnd(); ++it )
{
- if ( (*iit)->arch() == (*it)->arch() )
+ // 'same arch' includes allowed changes to/from noarch.
+ if ( (*iit)->arch() == (*it)->arch() || (*iit)->arch() == Arch_noarch || (*it)->arch() == Arch_noarch )
{
if ( ! solver_allowVendorChange )
{
@@ -345,14 +347,43 @@
inline std::ostream & dumpOn( std::ostream & str, const Selectable::Impl & obj )
{
str << '[' << obj.kind() << ']' << obj.name() << ": " << obj.status() << endl;
- if ( obj.candidateObj() )
- str << "(C " << obj.candidateObj() << ")" << endl;
- else
- str << "(C NONE )" << endl;
- dumpRange( str << " (I " << obj.installedSize() << ") ", obj.installedBegin(), obj.installedEnd() );
+
if ( obj.installedEmpty() )
- str << endl << " ";
- dumpRange( str << " (A " << obj.availableSize() << ") ", obj.availableBegin(), obj.availableEnd() ) << endl;
+ str << " (I 0) {}" << endl << " ";
+ else
+ {
+ str << " (I " << obj.installedSize() << ") {" << endl;
+ for_( it, obj.installedBegin(), obj.installedEnd() )
+ {
+ str << " " << *it << endl;
+ }
+ str << "} ";
+ }
+
+ if ( obj.availableEmpty() )
+ {
+ str << "(A 0) {}";
+ }
+ else
+ {
+ PoolItem cand( obj.candidateObj() );
+ PoolItem up( obj.updateCandidateObj() );
+ str << "(A " << obj.availableSize() << ") {" << endl;
+ for_( it, obj.availableBegin(), obj.availableEnd() )
+ {
+ char t = ' ';
+ if ( *it == cand )
+ {
+ t = *it == up ? 'C' : 'c';
+ }
+ else if ( *it == up )
+ {
+ t = 'u';
+ }
+ str << " " << t << " " << *it << endl;
+ }
+ str << "} ";
+ }
return str;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/ui/SelectableTraits.h new/libzypp-6.22.0/zypp/ui/SelectableTraits.h
--- old/libzypp-6.21.3/zypp/ui/SelectableTraits.h 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/ui/SelectableTraits.h 2009-11-06 22:19:29.000000000 +0100
@@ -34,7 +34,7 @@
{
/** Oder on AvailableItemSet.
* \li repository priority
- * \li best Arch
+ * \li best Arch (arch/noarch changes are ok)
* \li best Edition
* \li ResObject::constPtr as fallback.
*/
@@ -47,21 +47,30 @@
//
bool operator()( const PoolItem & lhs, const PoolItem & rhs ) const
{
- unsigned lprio = lhs->satSolvable().repository().info().priority();
- unsigned rprio = rhs->satSolvable().repository().info().priority();
+ int lprio = lhs->satSolvable().repository().satInternalPriority();
+ int rprio = rhs->satSolvable().repository().satInternalPriority();
if ( lprio != rprio )
- return( lprio < rprio ); // lower value meands higher priority :(
- int res = lhs->arch().compare( rhs->arch() );
- if ( res )
- return res > 0;
- res = lhs->edition().compare( rhs->edition() );
+ return( lprio > rprio );
+
+ // arch/noarch changes are ok.
+ if ( lhs->arch() != Arch_noarch && rhs->arch() != Arch_noarch )
+ {
+ int res = lhs->arch().compare( rhs->arch() );
+ if ( res )
+ return res > 0;
+ }
+
+ int res = lhs->edition().compare( rhs->edition() );
if ( res )
return res > 0;
- // no more criteria, still equal:
- // use the ResObject::constPtr (the poiner value)
- // (here it's arbitrary whether < or > )
- return lhs.resolvable() < rhs.resolvable();
+ lprio = lhs->satSolvable().repository().satInternalSubPriority();
+ rprio = rhs->satSolvable().repository().satInternalSubPriority();
+ if ( lprio != rprio )
+ return( lprio > rprio );
+
+ // no more criteria, still equal: sort by id
+ return lhs.satSolvable().id() < rhs.satSolvable().id();
}
};
@@ -90,10 +99,8 @@
if ( ldate != rdate )
return( ldate > rdate );
- // no more criteria, still equal:
- // use the ResObject::constPtr (the poiner value)
- // (here it's arbitrary whether < or > )
- return lhs.resolvable() < rhs.resolvable();
+ // no more criteria, still equal: sort by id
+ return lhs.satSolvable().id() < rhs.satSolvable().id();
}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-6.21.3/zypp/zypp_detail/ZYppImpl.cc new/libzypp-6.22.0/zypp/zypp_detail/ZYppImpl.cc
--- old/libzypp-6.21.3/zypp/zypp_detail/ZYppImpl.cc 2009-11-02 20:13:08.000000000 +0100
+++ new/libzypp-6.22.0/zypp/zypp_detail/ZYppImpl.cc 2009-11-06 22:19:29.000000000 +0100
@@ -20,7 +20,6 @@
#include "zypp/target/TargetImpl.h"
#include "zypp/ZYpp.h"
#include "zypp/DiskUsageCounter.h"
-#include "zypp/NameKindProxy.h"
#include "zypp/ZConfig.h"
#include "zypp/sat/Pool.h"
#include "zypp/PoolItem.h"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org