Hello community,
here is the log from the commit of package libzypp for openSUSE:11.4
checked in at Tue Mar 13 14:03:05 CET 2012.
--------
--- old-versions/11.4/UPDATES/all/libzypp/libzypp.changes 2011-10-13 13:18:13.000000000 +0200
+++ 11.4/libzypp/libzypp.changes 2012-03-02 11:02:02.000000000 +0100
@@ -1,0 +2,17 @@
+Thu Mar 1 18:31:03 CET 2012 - ma@suse.de
+
+- Apply soft locks by name and not per package (bnc#749418)
+- version 8.13.3 (10)
+
+-------------------------------------------------------------------
+Mon Jan 16 16:28:21 CET 2012 - ma@suse.de
+
+- CheckAccessDeleted: avoid duplicate entries for the same PID (bnc#716972)
+- version 8.13.2 (10)
+
+-------------------------------------------------------------------
+Tue Jan 10 18:41:02 CET 2012 - ma@suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
calling whatdependson for 11.4-i586
Old:
----
libzypp-8.13.1.tar.bz2
New:
----
libzypp-8.13.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.mbRZ5t/_old 2012-03-13 14:02:05.000000000 +0100
+++ /var/tmp/diff_new_pack.mbRZ5t/_new 2012-03-13 14:02:05.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libzypp
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
Group: System/Packages
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Package, Patch, Pattern, and Product Management
-Version: 8.13.1
+Version: 8.13.3
Release: 0.<RELEASE2>
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ libzypp-8.13.1.tar.bz2 -> libzypp-8.13.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-8.13.1/VERSION.cmake new/libzypp-8.13.3/VERSION.cmake
--- old/libzypp-8.13.1/VERSION.cmake 2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/VERSION.cmake 2012-03-02 09:26:25.000000000 +0100
@@ -45,24 +45,24 @@
# ==================================================
#=======
-# - Update version according to your changes,
-# but based on 'LAST RELEASED:' below. I.e
-# there's no need to increase LIBZYPP_MINOR
-# if it already differs from 'LAST RELEASED:'.
-#
# - MOST IMPORTANT:
-# Before you submitt to autobuild, rmember the
-# new version in 'LAST RELEASED:', and add a
-# note in the changes file.
+# - Before you submitt to git:
+# - Remember the new version in 'LAST RELEASED:'
+# - State the new version in the changes file by adding a line
+# "- version MAJOR.MINOR.PATCH (COMPATMINOR)"
+# - Commit changes and version files together in a separate
+# commit using -m 'changes MAJOR.MINOR.PATCH (COMPATMINOR)'
+# - Tag the above commit with 'MAJOR.MINOR.PATCH' using
+# -m "tagging MAJOR.MINOR.PATCH".
#
-# - Consider calling ./mkChangelog to edit the
-# changes file. See './mkChangelog -h' for help.
+# - Consider calling ./mkChangelog to assist you.
+# See './mkChangelog -h' for help.
#
SET(LIBZYPP_MAJOR "8")
SET(LIBZYPP_COMPATMINOR "10")
SET(LIBZYPP_MINOR "13")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_PATCH "3")
#
-# LAST RELEASED: 8.13.1 (10)
+# LAST RELEASED: 8.13.3 (10)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-8.13.1/mkChangelog new/libzypp-8.13.3/mkChangelog
--- old/libzypp-8.13.1/mkChangelog 2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/mkChangelog 2012-03-02 09:26:25.000000000 +0100
@@ -1,80 +1,42 @@
#! /bin/bash
-#
+
+function Recho() { echo -e "\e[0;31m""$@""\e[0m"; }
+function Gecho() { echo -e "\e[0;32m""$@""\e[0m"; }
+function Becho() { echo -e "\e[0;34m""$@""\e[0m"; }
function errexit() {
exec >&2
- echo "Error: $@"
+ Recho "Error: $@"
exit 1
}
-export LC_ALL=""
-EDITOR=${EDITOR:-vi}
-
-TDIR=$(dirname $0)
-test -n "$TDIR" && cd $TDIR
-
-CHANGESFILE=$(ls package/*.changes)
-test -f "$CHANGESFILE" || errexit "No changes file '$CHANGESFILE'"
-
-VERSIONFILE="VERSION.cmake"
-test -f "$VERSIONFILE" || errexit "No version file '$VERSIONFILE'"
-
-LANG="en"
-
-## Version.cmake tags in getversion() are still zypp specific.
-
function usage() {
exec >&2
-cat <&1-
-exec >$TMPFILE
-echo "-------------------------------------------------------------------"
-echo "$(date) - $EMAIL"
-echo ""
-echo "- "
-echo "$GOTVERSION"
-echo ""
-cat $CHANGESFILE
-exec >&3
+trap " [ -f \"$TMPFILE\" ] && /bin/rm -f -- \"$TMPFILE\" " 0 1 2 3 13 15
+{ newchangesentry; cat $CHANGESFILE; } >$TMPFILE
RES=e
while [ "$RES" == "e" ]; do
$EDITOR $TMPFILE
echo
- NEWREL=$(grep '#---delete-or-release---#' $TMPFILE)
- test -n "$NEWREL" && echo "$NEWREL"
- read -n 1 -p "(a)bort, (c)ontinue, (e)dit : " RES
- echo
+ awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $TMPFILE
+ read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (s)ubmitt, (e)dit : ")" RES
echo
case "$RES" in
[eE]*)
RES=e
;;
- [cC])
- test -n "$NEWREL" && {
- echo "Remember new release in $VERSIONFILE"
- sed -i 's/^.*#---delete-or-release---#.*RELEASE:/- version/' $TMPFILE
- NEWREL=$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# LAST RELEASED:/' <<<"$NEWREL")
- sed -i "s/^# LAST RELEASED:.*$/$NEWREL/" $VERSIONFILE
+ [cCsS])
+ Becho "!!! Store new $CHANGESFILE"
+ mv $TMPFILE $CHANGESFILE
+
+ test "$RES" == "s" && {
+ if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then
+ git add "$CHANGESFILE" && git commit -m "changes"
+ else
+ Becho "!!! Remember new version $THIS_RELEASE in $VERSIONFILE"
+ sed -i "s/^# LAST RELEASED:.*$/# LAST RELEASED: $THIS_RELEASE ($THIS_COMPAT)/" $VERSIONFILE
+ if git add "$CHANGESFILE" "$VERSIONFILE" \
+ && git commit -m "changes $THIS_RELEASE ($THIS_COMPAT)" \
+ && git tag -m "tagging $THIS_RELEASE" "$THIS_RELEASE" HEAD; then
+ Becho "!!!"
+ Becho "!!! Do not forget to push the commit and the tag: $(Gecho git push --tags origin HEAD)"
+ Becho "!!!"
+ else
+ Recho "!!!"
+ Recho "!!! Commit failed. Check manually. (git reset HEAD~)"
+ Recho "!!!"
+ exit 9
+ fi
+ fi
}
-
- echo "Store new $CHANGESFILE"
- cp $TMPFILE $CHANGESFILE
-
- echo "$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# CURRENT RELEASE:/' <<<"$GOTVERSION")"
- awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $CHANGESFILE
-
;;
*)
- echo "Leave $CHANGESFILE untouched"
+ Becho "!!! Leave $CHANGESFILE untouched"
;;
esac
done
-
-rm -f $TMPFILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-8.13.1/package/libzypp.changes new/libzypp-8.13.3/package/libzypp.changes
--- old/libzypp-8.13.1/package/libzypp.changes 2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/package/libzypp.changes 2012-03-02 09:26:25.000000000 +0100
@@ -1,4 +1,21 @@
-------------------------------------------------------------------
+Thu Mar 1 18:31:03 CET 2012 - ma@suse.de
+
+- Apply soft locks by name and not per package (bnc#749418)
+- version 8.13.3 (10)
+
+-------------------------------------------------------------------
+Mon Jan 16 16:28:21 CET 2012 - ma@suse.de
+
+- CheckAccessDeleted: avoid duplicate entries for the same PID (bnc#716972)
+- version 8.13.2 (10)
+
+-------------------------------------------------------------------
+Tue Jan 10 18:41:02 CET 2012 - ma@suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
Thu Oct 13 12:21:19 CEST 2011 - ma@suse.de
- Must not differ between type nfs and nfs4 when checking the mount
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-8.13.1/zypp/misc/CheckAccessDeleted.cc new/libzypp-8.13.3/zypp/misc/CheckAccessDeleted.cc
--- old/libzypp-8.13.1/zypp/misc/CheckAccessDeleted.cc 2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/zypp/misc/CheckAccessDeleted.cc 2012-03-02 09:26:25.000000000 +0100
@@ -12,6 +12,7 @@
#include <iostream>
#include "zypp/base/LogTools.h"
#include "zypp/base/String.h"
+#include "zypp/base/Tr1hash.h"
#include "zypp/base/Exception.h"
#include "zypp/PathInfo.h"
@@ -39,23 +40,27 @@
// (ftkn).filedescriptor type linkcount filename
//
/////////////////////////////////////////////////////////////////
+
+ /** lsof output line + files extracted so far for this PID */
+ typedef std::pairstd::string > CacheEntry;
+
/** Add \c cache to \c data if the process is accessing deleted files.
* \c pid string in \c cache is the proc line \c (pcuLR), \c iles
* are lready in place. Always clear the \c cache.files!
*/
- inline void addDataIf( std::vectorCheckAccessDeleted::ProcInfo & data_r, CheckAccessDeleted::ProcInfo & cache_r )
+ inline void addDataIf( std::vectorCheckAccessDeleted::ProcInfo & data_r, const CacheEntry & cache_r )
{
- if ( cache_r.files.empty() )
+ const std::tr1::unordered_setstd::string & filelist( cache_r.second );
+
+ if ( filelist.empty() )
return;
// at least one file access so keep it:
data_r.push_back( CheckAccessDeleted::ProcInfo() );
CheckAccessDeleted::ProcInfo & pinfo( data_r.back() );
+ pinfo.files.insert( pinfo.files.begin(), filelist.begin(), filelist.end() );
- std::string pline;
- cache_r.pid.swap( pline );
- cache_r.files.swap( pinfo.files ); // clears cache.files
-
+ const std::string & pline( cache_r.first );
for_( ch, pline.begin(), pline.end() )
{
switch ( *ch )
@@ -87,16 +92,16 @@
if ( ! command.empty() )
pinfo.command = command.basename();
}
-
//MIL << " Take " << pinfo << endl;
}
- /** Add line to cache if it refers to a deleted executable or library file:
+
+ /** Add file to cache if it refers to a deleted executable or library file:
* - Either the link count \c(k) is \c 0, or no link cout is present.
* - The type \c (t) is set to \c REG or \c DEL
* - The filedescriptor \c (f) is set to \c txt, \c mem or \c DEL
*/
- inline void addCacheIf( CheckAccessDeleted::ProcInfo & cache_r, const std::string & line_r, bool verbose_r )
+ inline void addCacheIf( CacheEntry & cache_r, const std::string & line_r, bool verbose_r )
{
const char * f = 0;
const char * t = 0;
@@ -159,12 +164,8 @@
return;
}
}
-
- if ( std::find( cache_r.files.begin(), cache_r.files.end(), n ) == cache_r.files.end() )
- {
- // Add if no duplicate
- cache_r.files.push_back( n );
- }
+ // Add if no duplicate
+ cache_r.second.insert( n );
}
/////////////////////////////////////////////////////////////////
} // namespace
@@ -173,7 +174,6 @@
CheckAccessDeleted::size_type CheckAccessDeleted::check( bool verbose_r )
{
_data.clear();
- std::vector<ProcInfo> data;
static const char* argv[] =
{
@@ -181,20 +181,22 @@
};
ExternalProgram prog( argv, ExternalProgram::Discard_Stderr );
- CheckAccessDeleted::ProcInfo cache;
+ // cachemap: PID => (deleted files)
+ std::map cachemap;
+ pid_t cachepid;
for( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() )
{
+ // NOTE: line contains '\0' separeated fields!
if ( line[0] == 'p' )
{
- addDataIf( data, cache );
- cache.pid = line; //
+ str::strtonum( line.c_str()+1, cachepid ); // line is "p<PID>\0...."
+ cachemap[cachepid].first.swap( line );
}
else
{
- addCacheIf( cache, line, verbose_r );
+ addCacheIf( cachemap[cachepid], line, verbose_r );
}
}
- addDataIf( data, cache );
int ret = prog.close();
if ( ret != 0 )
@@ -204,6 +206,11 @@
ZYPP_THROW( err );
}
+ std::vector<ProcInfo> data;
+ for_( it, cachemap.begin(), cachemap.end() )
+ {
+ addDataIf( data, (*it).second );
+ }
_data.swap( data );
return _data.size();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-8.13.1/zypp/solver/detail/SATResolver.cc new/libzypp-8.13.3/zypp/solver/detail/SATResolver.cc
--- old/libzypp-8.13.1/zypp/solver/detail/SATResolver.cc 2011-10-13 13:10:00.000000000 +0200
+++ new/libzypp-8.13.3/zypp/solver/detail/SATResolver.cc 2012-03-02 09:26:25.000000000 +0100
@@ -623,7 +623,7 @@
// Add rules for parallel installable resolvables with different versions
for_( it, sat::Pool::instance().multiversionBegin(), sat::Pool::instance().multiversionEnd() )
{
- queue_push( &(_jobQueue), SOLVER_NOOBSOLETES | SOLVABLE_NAME );
+ queue_push( &(_jobQueue), SOLVER_NOOBSOLETES | SOLVER_SOLVABLE_NAME );
queue_push( &(_jobQueue), it->id() );
}
@@ -1385,7 +1385,7 @@
void SATResolver::setLocks()
{
- for (PoolItemList::const_iterator iter = _items_to_lock.begin(); iter != _items_to_lock.end(); iter++) {
+ for (PoolItemList::const_iterator iter = _items_to_lock.begin(); iter != _items_to_lock.end(); ++iter) {
sat::detail::SolvableIdType ident( (*iter)->satSolvable().id() );
if (iter->status().isInstalled()) {
MIL << "Lock installed item " << *iter << endl;
@@ -1398,16 +1398,20 @@
}
}
- for (PoolItemList::const_iterator iter = _items_to_keep.begin(); iter != _items_to_keep.end(); iter++) {
- sat::detail::SolvableIdType ident( (*iter)->satSolvable().id() );
+ std::set<IdString> unifiedByName;
+ for (PoolItemList::const_iterator iter = _items_to_keep.begin(); iter != _items_to_keep.end(); ++iter) {
if (iter->status().isInstalled()) {
MIL << "Keep installed item " << *iter << endl;
- queue_push( &(_jobQueue), SOLVER_INSTALL_SOLVABLE | SOLVER_WEAK);
- queue_push( &(_jobQueue), ident );
+ queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE | SOLVER_WEAK );
+ queue_push( &(_jobQueue), (*iter)->satSolvable().id() );
} else {
- MIL << "Keep NOT installed item " << *iter << ident << endl;
- queue_push( &(_jobQueue), SOLVER_ERASE_SOLVABLE | SOLVER_WEAK | MAYBE_CLEANDEPS );
- queue_push( &(_jobQueue), ident );
+ IdString ident( (*iter)->satSolvable().ident() );
+ MIL << "Keep NOT installed name " << ident << " (" << *iter << ")" << endl;
+ if ( unifiedByName.insert( ident ).second )
+ {
+ queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_NAME | SOLVER_WEAK | MAYBE_CLEANDEPS );
+ queue_push( &(_jobQueue), ident.id() );
+ }
}
}
}
@@ -1417,13 +1421,13 @@
CapabilitySet system_requires = SystemCheck::instance().requiredSystemCap();
CapabilitySet system_conflicts = SystemCheck::instance().conflictSystemCap();
- for (CapabilitySet::const_iterator iter = system_requires.begin(); iter != system_requires.end(); iter++) {
+ for (CapabilitySet::const_iterator iter = system_requires.begin(); iter != system_requires.end(); ++iter) {
queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_PROVIDES );
queue_push( &(_jobQueue), iter->id() );
MIL << "SYSTEM Requires " << *iter << endl;
}
- for (CapabilitySet::const_iterator iter = system_conflicts.begin(); iter != system_conflicts.end(); iter++) {
+ for (CapabilitySet::const_iterator iter = system_conflicts.begin(); iter != system_conflicts.end(); ++iter) {
queue_push( &(_jobQueue), SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES | MAYBE_CLEANDEPS );
queue_push( &(_jobQueue), iter->id() );
MIL << "SYSTEM Conflicts " << *iter << endl;
@@ -1440,7 +1444,7 @@
if ( (*it)->isSystem() )
{
Capability archrule( (*it)->arch(), rpm.c_str(), Capability::PARSED );
- queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVABLE_NAME | SOLVER_ESSENTIAL );
+ queue_push( &(_jobQueue), SOLVER_INSTALL | SOLVER_SOLVABLE_NAME | SOLVER_ESSENTIAL );
queue_push( &(_jobQueue), archrule.id() );
}
continue with "q"...
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org