openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2012
- 1 participants
- 1223 discussions
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2012-12-21 10:22:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp", Maintainer is "ma(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2012-12-05 13:59:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2012-12-21 10:22:30.000000000 +0100
@@ -1,0 +2,14 @@
+Mon Dec 17 13:31:15 CET 2012 - ma(a)suse.de
+
+- Add NamedValue<_Tp>: Simple value<>name mapping supporting aliases
+- Enable zypper to remove zypp locks without evaluating the
+ query (bnc#792901)
+- Configure curl to "not fix the BEAST attack" (bnc#779177)
+- version 12.6.0 (0)
+
+-------------------------------------------------------------------
+Sun Dec 16 01:13:16 CET 2012 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
Old:
----
libzypp-12.5.0.tar.bz2
New:
----
libzypp-12.6.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.CKeD7t/_old 2012-12-21 10:22:31.000000000 +0100
+++ /var/tmp/diff_new_pack.CKeD7t/_new 2012-12-21 10:22:31.000000000 +0100
@@ -24,7 +24,7 @@
Group: System/Packages
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Package, Patch, Pattern, and Product Management
-Version: 12.5.0
+Version: 12.6.0
Release: 1
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ libzypp-12.5.0.tar.bz2 -> libzypp-12.6.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/VERSION.cmake new/libzypp-12.6.0/VERSION.cmake
--- old/libzypp-12.5.0/VERSION.cmake 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/VERSION.cmake 2012-12-18 15:58:29.000000000 +0100
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "12")
SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_MINOR "5")
+SET(LIBZYPP_MINOR "6")
SET(LIBZYPP_PATCH "0")
#
-# LAST RELEASED: 12.5.0 (0)
+# LAST RELEASED: 12.6.0 (0)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/mkChangelog new/libzypp-12.6.0/mkChangelog
--- old/libzypp-12.5.0/mkChangelog 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/mkChangelog 2012-12-18 15:58:29.000000000 +0100
@@ -172,6 +172,7 @@
[cCsS])
Becho "!!! Store new $CHANGESFILE"
mv $TMPFILE $CHANGESFILE
+ chmod 644 $CHANGESFILE
test "$RES" == "s" && {
if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/package/libzypp.changes new/libzypp-12.6.0/package/libzypp.changes
--- old/libzypp-12.5.0/package/libzypp.changes 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/package/libzypp.changes 2012-12-18 15:58:29.000000000 +0100
@@ -1,4 +1,18 @@
-------------------------------------------------------------------
+Mon Dec 17 13:31:15 CET 2012 - ma(a)suse.de
+
+- Add NamedValue<_Tp>: Simple value<>name mapping supporting aliases
+- Enable zypper to remove zypp locks without evaluating the
+ query (bnc#792901)
+- Configure curl to "not fix the BEAST attack" (bnc#779177)
+- version 12.6.0 (0)
+
+-------------------------------------------------------------------
+Sun Dec 16 01:13:16 CET 2012 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
Mon Dec 3 14:31:59 CET 2012 - ma(a)suse.de
- HistoryLogReader: new HistoryLogData based API for parsing the new
Files old/libzypp-12.5.0/po/zypp-po.tar.bz2 and new/libzypp-12.6.0/po/zypp-po.tar.bz2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/CMakeLists.txt new/libzypp-12.6.0/zypp/CMakeLists.txt
--- old/libzypp-12.5.0/zypp/CMakeLists.txt 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/CMakeLists.txt 2012-12-18 15:58:29.000000000 +0100
@@ -246,6 +246,7 @@
base/LogTools.h
base/Logger.h
base/Measure.h
+ base/NamedValue.h
base/NonCopyable.h
base/ProfilingFormater.h
base/ProvideNumericId.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/PoolQuery.cc new/libzypp-12.6.0/zypp/PoolQuery.cc
--- old/libzypp-12.5.0/zypp/PoolQuery.cc 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/PoolQuery.cc 2012-12-18 15:58:29.000000000 +0100
@@ -401,17 +401,30 @@
bool operator==( const PoolQuery::Impl & rhs ) const
{
- return ( _strings == rhs._strings
- && _attrs == rhs._attrs
- && _uncompiledPredicated == rhs._uncompiledPredicated
- && _flags == rhs._flags
- && _match_word == rhs._match_word
- && _require_all == rhs._require_all
- && _status_flags == rhs._status_flags
- && _edition == rhs._edition
- && _op == rhs._op
- && _repos == rhs._repos
- && _kinds == rhs._kinds );
+ if ( _flags == rhs._flags
+ // bnc#792901: while libzypp uses exact match mode for a single
+ // package name lock, zypper always uses glob. :(
+ // We unify those two forms to enable zypper to remove zypp locks
+ // without need to actually evaluate the query (which would require
+ // repos to be loaded).
+ || ( _flags.isModeString() && rhs._flags.isModeGlob()
+ || _flags.isModeGlob() && rhs._flags.isModeString() )
+ && _strings.empty()
+ && _attrs.size() == 1
+ && _attrs.begin()->first == sat::SolvAttr::name )
+ {
+ return ( _strings == rhs._strings
+ && _attrs == rhs._attrs
+ && _uncompiledPredicated == rhs._uncompiledPredicated
+ && _match_word == rhs._match_word
+ && _require_all == rhs._require_all
+ && _status_flags == rhs._status_flags
+ && _edition == rhs._edition
+ && _op == rhs._op
+ && _repos == rhs._repos
+ && _kinds == rhs._kinds );
+ }
+ return false;
}
bool operator!=( const PoolQuery::Impl & rhs ) const
@@ -1127,8 +1140,6 @@
PoolQueryAttr attribute( attrName );
- MIL << "attribute name: " << attrName << endl;
-
if ( attribute==PoolQueryAttr::repoAttr )
{
addRepo( attrValue );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/base/NamedValue.h new/libzypp-12.6.0/zypp/base/NamedValue.h
--- old/libzypp-12.5.0/zypp/base/NamedValue.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-12.6.0/zypp/base/NamedValue.h 2012-12-18 15:58:29.000000000 +0100
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/base/NamedValue.h
+ *
+*/
+#ifndef ZYPP_BASE_NAMEDVALUE_H
+#define ZYPP_BASE_NAMEDVALUE_H
+
+#include <stdexcept>
+#include <string>
+#include <map>
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{
+
+ ///////////////////////////////////////////////////////////////////
+ /// \class NamedValue<_Tp>
+ /// \brief Simple value<>name mapping supporting aliases.
+ /// \code
+ /// enum Commands {
+ /// CMD_1,
+ /// CMD_2
+ /// };
+ /// NamedValue<Commands> clist;
+ /// // Value | Name | Alias...
+ /// clist( CMD_1 ) | "cmd1";
+ /// clist( CMD_2 ) | "cmd2" | "second";
+ ///
+ /// std::string name( clist.getName( CMD_1 ) );
+ /// Commands cmd( clist.getValue( "second" ) );
+ /// \endcode
+ ///////////////////////////////////////////////////////////////////
+ template< class _Tp, const bool _WithAlias = true >
+ class NamedValue
+ {
+ typedef std::map< std::string, _Tp > NameMap;
+ typedef std::map< _Tp, std::string > ValueMap;
+
+ public:
+ /** Wheter not initialized (no (name,value) pair remembered) */
+ bool empty() const
+ { return( _nameMap.empty() && _valueMap.empty() ); }
+
+ public:
+ /** \name Get value for name or alias. */
+ //@{
+ /** Whether there is a \c value mapped for \a name_r.
+ */
+ bool haveValue( const std::string & name_r ) const
+ {
+ typename NameMap::const_iterator it( _nameMap.find( name_r ) );
+ return( it != _nameMap.end() );
+ }
+
+ /** Get value mapped for name or alias.
+ * \return \c true if name or alias was found.
+ */
+ bool getValue( const std::string & name_r, _Tp & value_r ) const
+ {
+ typename NameMap::const_iterator it( _nameMap.find( name_r ) );
+ if ( it == _nameMap.end() )
+ return false;
+ value_r = it->second;
+ return true;
+ }
+ /** \overload \throws std::out_of_range exception if \a name_r was not found. */
+ const _Tp & getValue( const std::string & name_r ) const
+ { return _nameMap.at( name_r ); }
+ //@}
+
+
+ /** \name Get name for value. */
+ //@{
+ /** Whether there is a \c name mapped for \a value_r.
+ */
+ bool haveName( const std::string & value_r ) const
+ {
+ typename ValueMap::const_iterator it( _valueMap.find( value_r ) );
+ return( it != _valueMap.end() );
+ }
+
+ /** Get name of value.
+ * \return \c true if name or alias was found.
+ */
+ bool getName( const _Tp & value_r, std::string & name_r ) const
+ {
+ typename ValueMap::const_iterator it( _valueMap.find( value_r ) );
+ if ( it == _valueMap.end() )
+ return false;
+ value_r = it->second;
+ return true;
+ }
+ /** \overload \throws std::out_of_range exception if \a value_r was not found. */
+ const std::string & getName( const _Tp & value_r ) const
+ { return _valueMap.at( value_r ); }
+ //@}
+
+ public:
+ /** \name Inserter
+ */
+ //@{
+ class _Inserter
+ {
+ public:
+ _Inserter( NamedValue & parent_r, const _Tp & value_r )
+ : _parent( &parent_r )
+ , _value( value_r )
+ {}
+ _Inserter & operator|( const std::string & name_r )
+ { _parent->insert( _value, name_r ); return *this; }
+ private:
+ NamedValue * _parent;
+ _Tp _value;
+ };
+
+ _Inserter operator()( const _Tp & value_r )
+ { return _Inserter( *this, value_r ); }
+ //@}
+
+ /** Remember name (1st call) or alias (subsequent calls).
+ * \return \C true if this is the 1st call for \a value_r.
+ * \throws std::logic_error if \a name_r is already used as name or alias.
+ * \throws std::logic_error if \c _WithAlias is \c false and a name for \a value_r is already defined.
+ */
+ bool insert( const _Tp & value_r, const std::string & name_r )
+ {
+ typename NameMap::const_iterator nit( _nameMap.find( name_r ) );
+ if ( nit != _nameMap.end() ) // duplicate name
+ throw std::logic_error( "NamedValue::insert name" );
+
+ typename ValueMap::const_iterator tit( _valueMap.find( value_r ) );
+ if ( tit != _valueMap.end() ) // duplicate value, i.e. an alias
+ {
+ if ( !_WithAlias )
+ throw std::logic_error( "NamedValue::insert alias" );
+
+ _nameMap[name_r] = value_r;
+ return false;
+ }
+ // here: 1st entry for value_r
+ _nameMap[name_r] = value_r;
+ _valueMap[value_r] = name_r;
+ return true;
+ }
+
+ private:
+ NameMap _nameMap;
+ ValueMap _valueMap;
+ };
+ ///////////////////////////////////////////////////////////////////
+
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_BASE_NAMEDVALUE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/media/MediaCurl.cc new/libzypp-12.6.0/zypp/media/MediaCurl.cc
--- old/libzypp-12.5.0/zypp/media/MediaCurl.cc 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/media/MediaCurl.cc 2012-12-18 15:58:29.000000000 +0100
@@ -607,6 +607,14 @@
SET_OPTION(CURLOPT_CAPATH, _settings.certificateAuthoritiesPath().c_str());
}
+#ifdef CURLSSLOPT_ALLOW_BEAST
+ // see bnc#779177
+ ret = curl_easy_setopt( _curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_ALLOW_BEAST );
+ if ( ret != 0 ) {
+ disconnectFrom();
+ ZYPP_THROW(MediaCurlSetOptException(_url, _curlError));
+ }
+#endif
SET_OPTION(CURLOPT_SSL_VERIFYPEER, _settings.verifyPeerEnabled() ? 1L : 0L);
SET_OPTION(CURLOPT_SSL_VERIFYHOST, _settings.verifyHostEnabled() ? 2L : 0L);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/repo/PackageProvider.cc new/libzypp-12.6.0/zypp/repo/PackageProvider.cc
--- old/libzypp-12.5.0/zypp/repo/PackageProvider.cc 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/repo/PackageProvider.cc 2012-12-18 15:58:29.000000000 +0100
@@ -335,30 +335,23 @@
url = * info.baseUrlsBegin();
// check whether to process patch/delta rpms
- if ( url.schemeIsDownloading() || ZConfig::instance().download_use_deltarpm_always() )
- {
- std::list<DeltaRpm> deltaRpms;
- if ( ZConfig::instance().download_use_deltarpm() )
- {
- _deltas.deltaRpms( _package ).swap( deltaRpms );
- }
+ if ( ZConfig::instance().download_use_deltarpm()
+ && ( url.schemeIsDownloading() || ZConfig::instance().download_use_deltarpm_always() ) )
+ {
+ std::list<DeltaRpm> deltaRpms;
+ _deltas.deltaRpms( _package ).swap( deltaRpms );
- if ( ! ( deltaRpms.empty() )
- && queryInstalled() )
- {
- if ( ! deltaRpms.empty() && applydeltarpm::haveApplydeltarpm() )
- {
- for( std::list<DeltaRpm>::const_iterator it = deltaRpms.begin();
- it != deltaRpms.end(); ++it )
- {
- DBG << "tryDelta " << *it << endl;
- ManagedFile ret( tryDelta( *it ) );
- if ( ! ret->empty() )
- return ret;
- }
- }
- }
- }
+ if ( ! deltaRpms.empty() && queryInstalled() && applydeltarpm::haveApplydeltarpm() )
+ {
+ for_( it, deltaRpms.begin(), deltaRpms.end())
+ {
+ DBG << "tryDelta " << *it << endl;
+ ManagedFile ret( tryDelta( *it ) );
+ if ( ! ret->empty() )
+ return ret;
+ }
+ }
+ }
// no patch/delta -> provide full package
return Base::doProvidePackage();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-12.5.0/zypp/repo/RepoType.cc new/libzypp-12.6.0/zypp/repo/RepoType.cc
--- old/libzypp-12.5.0/zypp/repo/RepoType.cc 2012-12-03 14:41:52.000000000 +0100
+++ new/libzypp-12.6.0/zypp/repo/RepoType.cc 2012-12-18 15:58:29.000000000 +0100
@@ -8,7 +8,7 @@
\---------------------------------------------------------------------*/
#include <iostream>
-#include <map>
+#include "zypp/base/NamedValue.h"
#include "zypp/repo/RepoException.h"
#include "RepoType.h"
@@ -16,72 +16,46 @@
{
namespace repo
{
+ ///////////////////////////////////////////////////////////////////
+ namespace
+ {
+ static NamedValue<RepoType::Type> & table()
+ {
+ static NamedValue<RepoType::Type> _t;
+ if ( _t.empty() )
+ {
+ _t( RepoType::RPMMD_e ) | "rpm-md" | "rpmmd"|"repomd"|"yum"|"up2date";
+ _t( RepoType::YAST2_e ) | "yast2" | "yast"|"susetags";
+ _t( RepoType::RPMPLAINDIR_e ) | "plaindir";
+ _t( RepoType::NONE_e ) | "NONE" | "none";
+ }
+ return _t;
+ }
+ } // namespace
+ ///////////////////////////////////////////////////////////////////
- static std::map<std::string,RepoType::Type> _table;
-
- const RepoType RepoType::RPMMD(RepoType::RPMMD_e);
- const RepoType RepoType::YAST2(RepoType::YAST2_e);
- const RepoType RepoType::RPMPLAINDIR(RepoType::RPMPLAINDIR_e);
- const RepoType RepoType::NONE(RepoType::NONE_e);
+ const RepoType RepoType::RPMMD ( RepoType::RPMMD_e );
+ const RepoType RepoType::YAST2 ( RepoType::YAST2_e );
+ const RepoType RepoType::RPMPLAINDIR ( RepoType::RPMPLAINDIR_e );
+ const RepoType RepoType::NONE ( RepoType::NONE_e );
RepoType::RepoType(const std::string & strval_r)
: _type(parse(strval_r))
{}
- RepoType::Type RepoType::parse(const std::string & strval_r)
+ RepoType::Type RepoType::parse( const std::string & strval_r )
{
- if (_table.empty())
- {
- // initialize it
- _table["repomd"]
- = _table["rpmmd"]
- = _table["rpm-md"]
- = _table["yum"]
- = _table["YUM"]
- = _table["up2date"]
- = RepoType::RPMMD_e;
-
- _table["susetags"]
- = _table["yast"]
- = _table["YaST"]
- = _table["YaST2"]
- = _table["YAST"]
- = _table["YAST2"]
- = _table["yast2"]
- = RepoType::YAST2_e;
-
- _table["plaindir"]
- = _table["Plaindir"]
- = RepoType::RPMPLAINDIR_e;
-
- _table["NONE"]
- = _table["none"]
- = RepoType::NONE_e;
- }
-
- std::map<std::string,RepoType::Type>::const_iterator it
- = _table.find(strval_r);
- if (it == _table.end())
+ RepoType::Type type;
+ if ( ! table().getValue( str::toLower( strval_r ), type ) )
{
- ZYPP_THROW(RepoUnknownTypeException(
- "Unknown repository type '" + strval_r + "'"));
+ ZYPP_THROW( RepoUnknownTypeException( "Unknown repository type '" + strval_r + "'") );
}
- return it->second;
+ return type;
}
-
const std::string & RepoType::asString() const
{
- static std::map<Type, std::string> _table;
- if ( _table.empty() )
- {
- // initialize it
- _table[RPMMD_e] = "rpm-md";
- _table[YAST2_e] = "yast2";
- _table[RPMPLAINDIR_e] = "plaindir";
- _table[NONE_e] = "NONE";
- }
- return _table[_type];
+ return table().getName( _type );
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libstorage for openSUSE:Factory checked in at 2012-12-21 10:17:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstorage (Old)
and /work/SRC/openSUSE:Factory/.libstorage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libstorage", Maintainer is "ASchnell(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libstorage/libstorage.changes 2012-12-08 15:52:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libstorage.new/libstorage.changes 2012-12-21 10:17:20.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Dec 19 19:42:20 CET 2012 - fehr(a)suse.de
+
+- version 2.23.3
+- change order of vgchange/vgscan call in LvmVg to work around
+ udev not creating LVM device nodes any more (bnc#794692)
+- add function umountDeviceUns to make YCP able to prevent removal
+ of crypt helper devices when doing fstab import (bnc#794692)
+
+-------------------------------------------------------------------
Old:
----
libstorage-2.23.2.tar.bz2
New:
----
libstorage-2.23.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.rviAXK/_old 2012-12-21 10:17:21.000000000 +0100
+++ /var/tmp/diff_new_pack.rviAXK/_new 2012-12-21 10:17:21.000000000 +0100
@@ -17,7 +17,7 @@
Name: libstorage
-Version: 2.23.2
+Version: 2.23.3
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: libstorage-%{version}.tar.bz2
++++++ libstorage-2.23.2.tar.bz2 -> libstorage-2.23.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/VERSION new/libstorage-2.23.3/VERSION
--- old/libstorage-2.23.2/VERSION 2012-12-07 16:52:36.000000000 +0100
+++ new/libstorage-2.23.3/VERSION 2012-12-20 12:41:32.000000000 +0100
@@ -1 +1 @@
-2.23.2
+2.23.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/bindings/python/libstorage.py new/libstorage-2.23.3/bindings/python/libstorage.py
--- old/libstorage-2.23.2/bindings/python/libstorage.py 2012-11-21 14:31:21.000000000 +0100
+++ new/libstorage-2.23.3/bindings/python/libstorage.py 2012-12-20 11:35:01.000000000 +0100
@@ -1667,6 +1667,7 @@
def removeBackupState(self, *args): return _libstorage.StorageInterface_removeBackupState(self, *args)
def checkDeviceMounted(self, *args): return _libstorage.StorageInterface_checkDeviceMounted(self, *args)
def umountDevice(self, *args): return _libstorage.StorageInterface_umountDevice(self, *args)
+ def umountDeviceUns(self, *args): return _libstorage.StorageInterface_umountDeviceUns(self, *args)
def mountDevice(self, *args): return _libstorage.StorageInterface_mountDevice(self, *args)
def activateEncryption(self, *args): return _libstorage.StorageInterface_activateEncryption(self, *args)
def mountDeviceOpts(self, *args): return _libstorage.StorageInterface_mountDeviceOpts(self, *args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/storage/LvmVg.cc new/libstorage-2.23.3/storage/LvmVg.cc
--- old/libstorage-2.23.2/storage/LvmVg.cc 2012-11-15 11:55:52.000000000 +0100
+++ new/libstorage-2.23.3/storage/LvmVg.cc 2012-12-19 14:19:13.000000000 +0100
@@ -1307,8 +1307,8 @@
if (val)
{
Dm::activate(true);
- c.execute(VGSCANBIN " --mknodes");
c.execute(VGCHANGEBIN " -a y");
+ c.execute(VGSCANBIN " --mknodes");
}
else
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/storage/Storage.cc new/libstorage-2.23.3/storage/Storage.cc
--- old/libstorage-2.23.2/storage/Storage.cc 2012-12-03 16:34:37.000000000 +0100
+++ new/libstorage-2.23.3/storage/Storage.cc 2012-12-19 19:32:53.000000000 +0100
@@ -7050,6 +7050,7 @@
const string& opts )
{
bool ret = true;
+ bool didCrsetup = false;
assertInit();
y2mil("device:" << device << " mp:" << mp << " ro:" << ro << " opts:" << opts);
VolIterator vol;
@@ -7058,6 +7059,8 @@
if( vol->needCrsetup() )
{
ret = vol->doCrsetup()==0;
+ if( ret==0 )
+ didCrsetup = true;
}
if( ret )
{
@@ -7066,7 +7069,7 @@
ret = vol->mount( mp, ro )==0;
vol->setFstabOption( save );
}
- if( !ret )
+ if( !ret && didCrsetup )
vol->crUnsetup();
}
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/storage/Storage.h new/libstorage-2.23.3/storage/Storage.h
--- old/libstorage-2.23.2/storage/Storage.h 2012-10-01 12:05:25.000000000 +0200
+++ new/libstorage-2.23.3/storage/Storage.h 2012-12-19 19:37:44.000000000 +0100
@@ -459,6 +459,8 @@
bool checkDeviceMounted(const string& device, list<string>& mps);
bool umountDevice( const string& device )
{ return( umountDev( device, true )); }
+ bool umountDeviceUns( const string& device, bool unsetup )
+ { return( umountDev( device, unsetup )); }
bool umountDev( const string& device, bool dounsetup=false );
bool mountDev( const string& device, const string& mp, bool ro=true,
const string& opts="" );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.23.2/storage/StorageInterface.h new/libstorage-2.23.3/storage/StorageInterface.h
--- old/libstorage-2.23.2/storage/StorageInterface.h 2012-09-12 18:29:29.000000000 +0200
+++ new/libstorage-2.23.3/storage/StorageInterface.h 2012-12-19 19:37:04.000000000 +0100
@@ -2590,7 +2590,8 @@
/**
* Umount the given device and do what is necessary to remove
- * underlying volume (e.g. do losetup -d if loop is set up)
+ * underlying volume (e.g. do losetup -d if loop is set up or
+ * dmsetup remove if dmcrypt is used)
*
* The function umounts at once, /etc/fstab is unaffected
*
@@ -2600,6 +2601,20 @@
virtual bool umountDevice( const string& device ) = 0;
/**
+ * Umount the given device and dependent of parameter unsetup
+ * do what is necessary to remove underlying volume (e.g. do
+ * losetup -d if loop is set up or dmsetup remove if dmcrypt
+ * is used
+ *
+ * The function umounts at once, /etc/fstab is unaffected
+ *
+ * @param device device name to umount
+ * @param unsetup flag if losetup/dmcrypt should be removed
+ * @return bool if umount succeeded
+ */
+ virtual bool umountDeviceUns( const string& device, bool unsetup ) = 0;
+
+ /**
* Mount the given device and do what is necessary to access
* volume (e.g. do losetup if loop is set up)
*
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2012-12-21 10:15:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsolv (Old)
and /work/SRC/openSUSE:Factory/.libsolv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2012-12-07 14:42:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes 2012-12-21 10:15:47.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 18 19:20:19 CET 2012 - mls(a)suse.de
+
+- fix potential access to freed memory
+- improve find_problemrule speed
+- add support for special namespaceprovides jobs
+- bump version to 0.2.3
+
+-------------------------------------------------------------------
Old:
----
libsolv-0.2.2.tar.bz2
New:
----
libsolv-0.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libsolv.spec ++++++
--- /var/tmp/diff_new_pack.VIU2iq/_old 2012-12-21 10:15:48.000000000 +0100
+++ /var/tmp/diff_new_pack.VIU2iq/_new 2012-12-21 10:15:48.000000000 +0100
@@ -16,7 +16,7 @@
#
Name: libsolv
-Version: 0.2.2
+Version: 0.2.3
Release: 0
Url: git://gitorious.org/opensuse/libsolv.git
Source: libsolv-%{version}.tar.bz2
@@ -63,11 +63,7 @@
BuildRequires: swig
%endif
%if %{with ruby_binding}
-%if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
-%global ruby_vendorarch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')
-%else
-%global ruby_vendorarch %(ruby -rrbconfig -e 'puts Config::CONFIG["vendorarchdir"]')
-%endif
+%global ruby_vendorarch %(ruby -r rbconfig -e "puts Config::CONFIG['vendorarchdir'].nil? ? Config::CONFIG['sitearchdir'] : Config::CONFIG['vendorarchdir']")
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: swig
++++++ libsolv-0.2.2.tar.bz2 -> libsolv-0.2.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/VERSION.cmake new/libsolv-0.2.3/VERSION.cmake
--- old/libsolv-0.2.2/VERSION.cmake 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/VERSION.cmake 2012-12-19 15:41:18.000000000 +0100
@@ -49,5 +49,5 @@
SET(LIBSOLV_MAJOR "0")
SET(LIBSOLV_MINOR "2")
-SET(LIBSOLV_PATCH "2")
+SET(LIBSOLV_PATCH "3")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/bindings/solv.i new/libsolv-0.2.3/bindings/solv.i
--- old/libsolv-0.2.2/bindings/solv.i 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/bindings/solv.i 2012-12-19 15:41:18.000000000 +0100
@@ -2459,6 +2459,7 @@
static const int SOLVER_RULE_FEATURE = SOLVER_RULE_FEATURE;
static const int SOLVER_RULE_JOB = SOLVER_RULE_JOB;
static const int SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP = SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP;
+ static const int SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM = SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM;
static const int SOLVER_RULE_DISTUPGRADE = SOLVER_RULE_DISTUPGRADE;
static const int SOLVER_RULE_INFARCH = SOLVER_RULE_INFARCH;
static const int SOLVER_RULE_CHOICE = SOLVER_RULE_CHOICE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/examples/pysolv new/libsolv-0.2.3/examples/pysolv
--- old/libsolv-0.2.2/examples/pysolv 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/examples/pysolv 2012-12-19 15:41:18.000000000 +0100
@@ -762,7 +762,7 @@
if not problems:
break
for problem in problems:
- print "Problem %d:" % problem.id
+ print "Problem %d/%d:" % (problem.id, len(problems))
r = problem.findproblemrule()
ri = r.info()
print ri.problemstr()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/examples/rbsolv new/libsolv-0.2.3/examples/rbsolv
--- old/libsolv-0.2.2/examples/rbsolv 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/examples/rbsolv 2012-12-19 15:41:18.000000000 +0100
@@ -638,7 +638,7 @@
problems = solver.solve(jobs)
break if problems.empty?
for problem in problems
- puts "Problem #{problem.id}:"
+ puts "Problem #{problem.id}/#{problems.count}:"
puts problem.findproblemrule.info.problemstr
solutions = problem.solutions
for solution in solutions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/examples/solv.c new/libsolv-0.2.3/examples/solv.c
--- old/libsolv-0.2.2/examples/solv.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/examples/solv.c 2012-12-19 15:41:18.000000000 +0100
@@ -2214,6 +2214,19 @@
}
return bestp;
}
+#if 0
+ if (name == NAMESPACE_LANGUAGE)
+ {
+ if (!strcmp(pool_id2str(pool, evr), "ja"))
+ return 1;
+ if (!strcmp(pool_id2str(pool, evr), "de"))
+ return 1;
+ if (!strcmp(pool_id2str(pool, evr), "en"))
+ return 1;
+ if (!strcmp(pool_id2str(pool, evr), "en_US"))
+ return 1;
+ }
+#endif
return 0;
}
@@ -2808,6 +2821,10 @@
// queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae", 1));
// queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-base", 1));
// queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-extra", 1));
+#if 0
+ queue_push2(&job, SOLVER_INSTALL|SOLVER_SOLVABLE_PROVIDES, pool_rel2id(pool, NAMESPACE_LANGUAGE, 0, REL_NAMESPACE, 1));
+ queue_push2(&job, SOLVER_ERASE|SOLVER_CLEANDEPS|SOLVER_SOLVABLE_PROVIDES, pool_rel2id(pool, NAMESPACE_LANGUAGE, 0, REL_NAMESPACE, 1));
+#endif
#ifdef SOFTLOCKS_PATH
addsoftlocks(pool, &job);
@@ -2834,7 +2851,7 @@
for (problem = 1; problem <= pcnt; problem++)
{
int take = 0;
- printf("Problem %d:\n", problem);
+ printf("Problem %d/%d:\n", problem, pcnt);
solver_printprobleminfo(solv, problem);
printf("\n");
scnt = solver_solution_count(solv, problem);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/ext/CMakeLists.txt new/libsolv-0.2.3/ext/CMakeLists.txt
--- old/libsolv-0.2.2/ext/CMakeLists.txt 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/ext/CMakeLists.txt 2012-12-19 15:41:18.000000000 +0100
@@ -74,10 +74,22 @@
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
SET (CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/ext/libsolvext.ver")
+SET (SYSTEM_LIBRARIES ${EXPAT_LIBRARY} ${ZLIB_LIBRARY})
+IF (ENABLE_LZMA_COMPRESSION)
+SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY})
+ENDIF (ENABLE_LZMA_COMPRESSION)
+IF (ENABLE_BZIP2_COMPRESSION)
+SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${BZIP2_LIBRARIES})
+ENDIF (ENABLE_BZIP2_COMPRESSION)
+IF (ENABLE_RPMDB)
+SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES})
+ENDIF (ENABLE_RPMDB)
+
IF (DISABLE_SHARED)
ADD_LIBRARY (libsolvext STATIC ${libsolvext_SRCS})
ELSE (DISABLE_SHARED)
ADD_LIBRARY (libsolvext SHARED ${libsolvext_SRCS})
+TARGET_LINK_LIBRARIES(libsolvext ${SYSTEM_LIBRARIES})
ENDIF (DISABLE_SHARED)
SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/ext/repo_rpmdb.c new/libsolv-0.2.3/ext/repo_rpmdb.c
--- old/libsolv-0.2.2/ext/repo_rpmdb.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/ext/repo_rpmdb.c 2012-12-19 15:41:18.000000000 +0100
@@ -450,24 +450,19 @@
strong = flags & (MAKEDEPS_FILTER_STRONG|MAKEDEPS_FILTER_WEAK);
n = headstringarray(rpmhead, tagn, &nc);
- if (!n)
+ if (!n || !nc)
return 0;
+ vc = fc = 0;
v = headstringarray(rpmhead, tagv, &vc);
- if (!v)
- {
- solv_free(n);
- return 0;
- }
f = headint32array(rpmhead, tagf, &fc);
- if (!f)
+ if (!v || !f || nc != vc || nc != fc)
{
+ char *pkgname = rpm_query(rpmhead, 0);
+ fprintf(stderr, "bad dependency entries for %s: %d %d %d\n", pkgname ? pkgname : "<NULL>", nc, vc, fc);
+ solv_free(pkgname);
solv_free(n);
- free(v);
- return 0;
- }
- if (nc != vc || nc != fc)
- {
- fprintf(stderr, "bad dependency entries\n");
+ solv_free(v);
+ solv_free(f);
return 0;
}
@@ -2269,12 +2264,10 @@
if (!arch)
arch = "noarch";
evr = headtoevr(rpmhead);
- if (!evr)
- break;
- l = strlen(name) + 1 + strlen(evr) + 1 + strlen(arch) + 1;
+ l = strlen(name) + 1 + strlen(evr ? evr : "") + 1 + strlen(arch) + 1;
r = solv_malloc(l);
- sprintf(r, "%s-%s.%s", name, evr, arch);
- free(evr);
+ sprintf(r, "%s-%s.%s", name, evr ? evr : "", arch);
+ solv_free(evr);
break;
case SOLVABLE_NAME:
name = headstring(rpmhead, TAG_NAME);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/ext/testcase.c new/libsolv-0.2.3/ext/testcase.c
--- old/libsolv-0.2.2/ext/testcase.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/ext/testcase.c 2012-12-19 15:41:18.000000000 +0100
@@ -657,7 +657,25 @@
for (sp = pieces[2]; sp < pieces[npieces - 1]; sp++)
if (*sp == 0)
*sp = ' ';
- what = testcase_str2dep(pool, pieces[2]);
+ what = 0;
+ if (pieces[1][0] == 'p' && strncmp(pieces[2], "namespace:", 10) == 0)
+ {
+ char *spe = strchr(pieces[2], '(');
+ int l = strlen(pieces[2]);
+ if (spe && pieces[2][l - 1] == ')')
+ {
+ /* special namespace provides */
+ if (strcmp(spe, "(<NULL>)") != 0)
+ {
+ pieces[2][l - 1] = 0;
+ what = testcase_str2dep(pool, spe + 1);
+ pieces[2][l - 1] = ')';
+ }
+ what = pool_rel2id(pool, pool_strn2id(pool, pieces[2], spe - pieces[2], 1), what, REL_NAMESPACE, 1);
+ }
+ }
+ if (!what)
+ what = testcase_str2dep(pool, pieces[2]);
if (pieces[1][0] == 'n')
job |= SOLVER_SOLVABLE_NAME;
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/package/libsolv.changes new/libsolv-0.2.3/package/libsolv.changes
--- old/libsolv-0.2.2/package/libsolv.changes 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/package/libsolv.changes 2012-12-19 15:41:18.000000000 +0100
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Tue Dec 18 19:20:19 CET 2012 - mls(a)suse.de
+
+- fix potential access to freed memory
+- improve find_problemrule speed
+- add support for special namespaceprovides jobs
+- bump version to 0.2.3
+
+-------------------------------------------------------------------
Wed Dec 5 14:37:39 CET 2012 - mls(a)suse.de
- many Selection improvements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/package/libsolv.spec.in new/libsolv-0.2.3/package/libsolv.spec.in
--- old/libsolv-0.2.2/package/libsolv.spec.in 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/package/libsolv.spec.in 2012-12-19 15:41:18.000000000 +0100
@@ -63,11 +63,7 @@
BuildRequires: swig
%endif
%if %{with ruby_binding}
-%if 0%{?fedora_version} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
-%global ruby_vendorarch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')
-%else
-%global ruby_vendorarch %(ruby -rrbconfig -e 'puts Config::CONFIG["vendorarchdir"]')
-%endif
+%global ruby_vendorarch %(ruby -r rbconfig -e "puts Config::CONFIG['vendorarchdir'].nil? ? Config::CONFIG['sitearchdir'] : Config::CONFIG['vendorarchdir']")
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: swig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/pool.c new/libsolv-0.2.3/src/pool.c
--- old/libsolv-0.2.2/src/pool.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/pool.c 2012-12-19 15:41:18.000000000 +0100
@@ -287,7 +287,7 @@
return;
sorted = solv_malloc2(pool->ss.nstrings, sizeof(Id));
for (i = id = 0; id < pool->ss.nstrings; id++)
- if (pool->whatprovides[id] && pool->whatprovides[id] != 1)
+ if (pool->whatprovides[id] >= 4)
sorted[i++] = id;
n = i;
solv_sort(sorted, n, sizeof(Id), pool_shrink_whatprovides_sortcmp, pool);
@@ -319,11 +319,11 @@
lastid = id;
}
solv_free(sorted);
- dp = pool->whatprovidesdata + 2;
+ dp = pool->whatprovidesdata + 4;
for (id = 1; id < pool->ss.nstrings; id++)
{
o = pool->whatprovides[id];
- if (o == 0 || o == 1)
+ if (!o)
continue;
if ((Id)o < 0)
{
@@ -333,6 +333,8 @@
pool->whatprovides[id] = pool->whatprovides[i];
continue;
}
+ if (o < 4)
+ continue;
lp = pool->whatprovidesdata + o;
if (lp < dp)
abort();
@@ -408,7 +410,7 @@
}
}
- off = 2; /* first entry is undef, second is empty list */
+ off = 4; /* first entry is undef, second is empty list, third is system solvable */
np = 0; /* number of names provided */
for (i = 0, idp = whatprovides; i < num; i++, idp++)
{
@@ -431,6 +433,7 @@
/* alloc space for all providers + extra */
whatprovidesdata = solv_calloc(off + extra, sizeof(Id));
+ whatprovidesdata[2] = SYSTEMSOLVABLE;
/* now fill data for all provides */
for (i = pool->nsolvables - 1; i > 0; i--)
@@ -488,10 +491,9 @@
/*
* pool_queuetowhatprovides - add queue contents to whatprovidesdata
*
- * on-demand filling of provider information
- * move queue data into whatprovidesdata
- * q: queue of Ids
- * returns: Offset into whatprovides
+ * used for whatprovides, jobs, learnt rules, selections
+ * input: q: queue of Ids
+ * returns: Offset into whatprovidesdata
*
*/
Id
@@ -502,8 +504,10 @@
if (count == 0) /* queue empty -> 1 */
return 1;
+ if (count == 1 && q->elements[0] == SYSTEMSOLVABLE)
+ return 2;
- /* extend whatprovidesdata if needed, +1 for ID_NULL-termination */
+ /* extend whatprovidesdata if needed, +1 for 0-termination */
if (pool->whatprovidesdataleft < count + 1)
{
POOL_DEBUG(SOLV_DEBUG_STATS, "growing provides hash data...\n");
@@ -515,9 +519,9 @@
off = pool->whatprovidesdataoff;
memcpy(pool->whatprovidesdata + pool->whatprovidesdataoff, q->elements, count * sizeof(Id));
- /* adapt count and ID_NULL-terminate */
+ /* adapt count and 0-terminate */
pool->whatprovidesdataoff += count;
- pool->whatprovidesdata[pool->whatprovidesdataoff++] = ID_NULL;
+ pool->whatprovidesdata[pool->whatprovidesdataoff++] = 0;
pool->whatprovidesdataleft -= count + 1;
return (Id)off;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/problems.c new/libsolv-0.2.3/src/problems.c
--- old/libsolv-0.2.2/src/problems.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/problems.c 2012-12-19 15:41:18.000000000 +0100
@@ -844,7 +844,7 @@
*/
static void
-findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp)
+findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp, Map *rseen)
{
Id rid, d;
Id lreqr, lconr, lsysr, ljobr;
@@ -873,7 +873,12 @@
{
assert(rid > 0);
if (rid >= solv->learntrules)
- findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr);
+ {
+ if (MAPTST(rseen, rid - solv->learntrules))
+ continue;
+ MAPSET(rseen, rid - solv->learntrules);
+ findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr, rseen);
+ }
else if ((rid >= solv->jobrules && rid < solv->jobrules_end) || (rid >= solv->infarchrules && rid < solv->infarchrules_end) || (rid >= solv->duprules && rid < solv->duprules_end) || (rid >= solv->bestrules && rid < solv->bestrules_end))
{
if (!*jobrp)
@@ -949,8 +954,11 @@
{
Id reqr, conr, sysr, jobr;
Id idx = solv->problems.elements[2 * problem - 2];
+ Map rseen;
reqr = conr = sysr = jobr = 0;
- findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr);
+ map_init(&rseen, solv->learntrules ? solv->nrules - solv->learntrules : 0);
+ findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr, &rseen);
+ map_free(&rseen);
if (reqr)
return reqr; /* some requires */
if (conr)
@@ -966,14 +974,17 @@
/*-------------------------------------------------------------------*/
static void
-findallproblemrules_internal(Solver *solv, Id idx, Queue *rules)
+findallproblemrules_internal(Solver *solv, Id idx, Queue *rules, Map *rseen)
{
Id rid;
while ((rid = solv->learnt_pool.elements[idx++]) != 0)
{
if (rid >= solv->learntrules)
{
- findallproblemrules_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], rules);
+ if (MAPTST(rseen, rid - solv->learntrules))
+ continue;
+ MAPSET(rseen, rid - solv->learntrules);
+ findallproblemrules_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], rules, rseen);
continue;
}
queue_pushunique(rules, rid);
@@ -991,8 +1002,11 @@
void
solver_findallproblemrules(Solver *solv, Id problem, Queue *rules)
{
+ Map rseen;
queue_empty(rules);
- findallproblemrules_internal(solv, solv->problems.elements[2 * problem - 2], rules);
+ map_init(&rseen, solv->learntrules ? solv->nrules - solv->learntrules : 0);
+ findallproblemrules_internal(solv, solv->problems.elements[2 * problem - 2], rules, &rseen);
+ map_free(&rseen);
}
/* EOF */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/rules.c new/libsolv-0.2.3/src/rules.c
--- old/libsolv-0.2.2/src/rules.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/rules.c 2012-12-19 15:41:18.000000000 +0100
@@ -35,8 +35,8 @@
/*-------------------------------------------------------------------
* Check if dependency is possible
*
- * mirrors solver_dep_fulfilled but uses map m instead of the decisionmap
- * used in solver_addrpmrulesforweak and solver_createcleandepsmap
+ * mirrors solver_dep_fulfilled but uses map m instead of the decisionmap.
+ * used in solver_addrpmrulesforweak and solver_createcleandepsmap.
*/
static inline int
@@ -2132,10 +2132,14 @@
*depp = solv->job.elements[jidx + 1];
if ((r->d == 0 || r->d == -1) && r->w2 == 0 && r->p == -SYSTEMSOLVABLE)
{
- if ((solv->job.elements[jidx] & SOLVER_SELECTMASK) == SOLVER_SOLVABLE_NAME)
+ if ((solv->job.elements[jidx] & (SOLVER_JOBMASK|SOLVER_SELECTMASK)) == (SOLVER_INSTALL|SOLVER_SOLVABLE_NAME))
return SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP;
- if ((solv->job.elements[jidx] & SOLVER_SELECTMASK) == SOLVER_SOLVABLE_PROVIDES)
+ if ((solv->job.elements[jidx] & (SOLVER_JOBMASK|SOLVER_SELECTMASK)) == (SOLVER_INSTALL|SOLVER_SOLVABLE_PROVIDES))
return SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP;
+ if ((solv->job.elements[jidx] & (SOLVER_JOBMASK|SOLVER_SELECTMASK)) == (SOLVER_ERASE|SOLVER_SOLVABLE_NAME))
+ return SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM;
+ if ((solv->job.elements[jidx] & (SOLVER_JOBMASK|SOLVER_SELECTMASK)) == (SOLVER_ERASE|SOLVER_SOLVABLE_PROVIDES))
+ return SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM;
}
return SOLVER_RULE_JOB;
}
@@ -2410,14 +2414,15 @@
if (i == q.count)
continue; /* already added that one */
}
-
d = q.count ? pool_queuetowhatprovides(pool, &q) : 0;
- solver_addrule(solv, r->p, d);
- queue_push(&solv->weakruleq, solv->nrules - 1);
- solv->choicerules_ref[solv->nrules - 1 - solv->choicerules] = rid;
+
lastaddedp = r->p;
lastaddedd = d;
lastaddedcnt = q.count;
+
+ solver_addrule(solv, r->p, d);
+ queue_push(&solv->weakruleq, solv->nrules - 1);
+ solv->choicerules_ref[solv->nrules - 1 - solv->choicerules] = rid;
#if 0
printf("OLD ");
solver_printrule(solv, SOLV_DEBUG_RESULT, solv->rules + rid);
@@ -2671,6 +2676,59 @@
queue_push(q, p);
}
+static int
+check_xsupp(Solver *solv, Queue *depq, Id dep)
+{
+ Pool *pool = solv->pool;
+ Id p, pp;
+
+ if (ISRELDEP(dep))
+ {
+ Reldep *rd = GETRELDEP(pool, dep);
+ if (rd->flags >= 8)
+ {
+ if (rd->flags == REL_AND)
+ {
+ if (!check_xsupp(solv, depq, rd->name))
+ return 0;
+ return check_xsupp(solv, depq, rd->evr);
+ }
+ if (rd->flags == REL_OR)
+ {
+ if (check_xsupp(solv, depq, rd->name))
+ return 1;
+ return check_xsupp(solv, depq, rd->evr);
+ }
+ if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
+ return solver_splitprovides(solv, rd->evr);
+ if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)
+ return solver_dep_installed(solv, rd->evr);
+ }
+ if (depq && rd->flags == REL_NAMESPACE)
+ {
+ int i;
+ for (i = 0; i < depq->count; i++)
+ if (depq->elements[i] == dep || depq->elements[i] == rd->name)
+ return 1;
+ }
+ }
+ FOR_PROVIDES(p, pp, dep)
+ if (p == SYSTEMSOLVABLE || pool->solvables[p].repo == solv->installed)
+ return 1;
+ return 0;
+}
+
+static inline int
+queue_contains(Queue *q, Id id)
+{
+ int i;
+ for (i = 0; i < q->count; i++)
+ if (q->elements[i] == id)
+ return 1;
+ return 0;
+}
+
+
/*
* Find all installed packages that are no longer
* needed regarding the current solver job.
@@ -2707,7 +2765,7 @@
Id p, pp, ip, jp;
Id req, *reqp, sup, *supp;
Solvable *s;
- Queue iq, iqcopy;
+ Queue iq, iqcopy, xsuppq;
int i;
map_empty(cleandepsmap);
@@ -2717,6 +2775,7 @@
map_init(&im, pool->nsolvables);
map_init(&installedm, pool->nsolvables);
queue_init(&iq);
+ queue_init(&xsuppq);
for (i = 0; i < job->count; i += 2)
{
@@ -2732,6 +2791,50 @@
if (pool->solvables[p].repo == installed)
MAPSET(&userinstalled, p - installed->start);
}
+ if ((how & (SOLVER_JOBMASK | SOLVER_SELECTMASK)) == (SOLVER_ERASE | SOLVER_SOLVABLE_PROVIDES))
+ {
+ what = job->elements[i + 1];
+ if (ISRELDEP(what))
+ {
+ Reldep *rd = GETRELDEP(pool, what);
+ if (rd->flags != REL_NAMESPACE)
+ continue;
+ if (rd->evr == 0)
+ {
+ queue_pushunique(&iq, rd->name);
+ continue;
+ }
+ FOR_PROVIDES(p, pp, what)
+ if (p)
+ break;
+ if (p)
+ continue;
+ queue_pushunique(&iq, what);
+ }
+ }
+ }
+
+ /* have special namespace cleandeps erases */
+ if (iq.count)
+ {
+ for (ip = solv->installed->start; ip < solv->installed->end; ip++)
+ {
+ s = pool->solvables + ip;
+ if (s->repo != installed)
+ continue;
+ if (!s->supplements)
+ continue;
+ supp = s->repo->idarraydata + s->supplements;
+ while ((sup = *supp++) != 0)
+ if (check_xsupp(solv, &iq, sup) && !check_xsupp(solv, 0, sup))
+ {
+#ifdef CLEANDEPSDEBUG
+ printf("xsupp %s from %s\n", pool_dep2str(pool, sup), pool_solvid2str(pool, ip));
+#endif
+ queue_pushunique(&xsuppq, sup);
+ }
+ }
+ queue_empty(&iq);
}
/* also add visible patterns to userinstalled for openSUSE */
@@ -2904,6 +3007,8 @@
continue;
MAPSET(&im, p);
}
+ MAPSET(&installedm, SYSTEMSOLVABLE);
+ MAPSET(&im, SYSTEMSOLVABLE);
#ifdef CLEANDEPSDEBUG
printf("REMOVE PASS\n");
@@ -2916,7 +3021,7 @@
if (unneeded)
break;
/* supplements pass */
- for (ip = solv->installed->start; ip < solv->installed->end; ip++)
+ for (ip = installed->start; ip < installed->end; ip++)
{
if (!MAPTST(&installedm, ip))
continue;
@@ -2935,7 +3040,7 @@
{
supp = s->repo->idarraydata + s->supplements;
while ((sup = *supp++) != 0)
- if (dep_possible(solv, sup, &installedm))
+ if (dep_possible(solv, sup, &installedm) || (xsuppq.count && queue_contains(&xsuppq, sup)))
{
/* no longer supplemented, also erase */
int iqcount = iq.count;
@@ -2949,14 +3054,14 @@
}
queue_truncate(&iq, iqcount);
#ifdef CLEANDEPSDEBUG
- printf("%s supplemented\n", pool_solvid2str(pool, ip));
+ printf("%s supplemented [%s]\n", pool_solvid2str(pool, ip), pool_dep2str(pool, sup));
#endif
queue_push(&iq, ip);
}
}
}
if (!iq.count)
- break;
+ break; /* no supplementing package found, we're done */
}
ip = queue_shift(&iq);
s = pool->solvables + ip;
@@ -2988,7 +3093,7 @@
#endif
FOR_PROVIDES(p, pp, req)
{
- if (MAPTST(&im, p))
+ if (p != SYSTEMSOLVABLE && MAPTST(&im, p))
{
#ifdef CLEANDEPSDEBUG
printf("%s requires %s\n", pool_solvid2str(pool, ip), pool_solvid2str(pool, p));
@@ -3013,7 +3118,7 @@
#endif
FOR_PROVIDES(p, pp, req)
{
- if (MAPTST(&im, p))
+ if (p != SYSTEMSOLVABLE && MAPTST(&im, p))
{
#ifdef CLEANDEPSDEBUG
printf("%s recommends %s\n", pool_solvid2str(pool, ip), pool_solvid2str(pool, p));
@@ -3037,6 +3142,7 @@
if (pool->solvables[p].repo == installed)
MAPSET(&userinstalled, p - installed->start);
}
+ MAPSET(&im, SYSTEMSOLVABLE); /* in case we cleared it above */
for (p = installed->start; p < installed->end; p++)
if (MAPTST(&im, p))
queue_push(&iq, p);
@@ -3109,6 +3215,11 @@
while ((req = *reqp++) != 0)
{
FOR_PROVIDES(p, pp, req)
+ if (MAPTST(&im, p))
+ break;
+ if (p)
+ continue;
+ FOR_PROVIDES(p, pp, req)
{
if (!MAPTST(&im, p) && MAPTST(&installedm, p))
{
@@ -3131,6 +3242,11 @@
while ((req = *reqp++) != 0)
{
FOR_PROVIDES(p, pp, req)
+ if (MAPTST(&im, p))
+ break;
+ if (p)
+ continue;
+ FOR_PROVIDES(p, pp, req)
{
if (!MAPTST(&im, p) && MAPTST(&installedm, p))
{
@@ -3171,6 +3287,7 @@
map_free(&im);
map_free(&installedm);
map_free(&userinstalled);
+ queue_free(&xsuppq);
#ifdef CLEANDEPSDEBUG
printf("=== final cleandeps map:\n");
for (p = installed->start; p < installed->end; p++)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/rules.h new/libsolv-0.2.3/src/rules.h
--- old/libsolv-0.2.2/src/rules.h 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/rules.h 2012-12-19 15:41:18.000000000 +0100
@@ -62,6 +62,7 @@
SOLVER_RULE_FEATURE = 0x300,
SOLVER_RULE_JOB = 0x400,
SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP,
+ SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM,
SOLVER_RULE_DISTUPGRADE = 0x500,
SOLVER_RULE_INFARCH = 0x600,
SOLVER_RULE_CHOICE = 0x700,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/selection.c new/libsolv-0.2.3/src/selection.c
--- old/libsolv-0.2.2/src/selection.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/selection.c 2012-12-19 15:41:18.000000000 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Novell Inc.
+ * Copyright (c) 2012, Novell Inc.
*
* This program is licensed under the BSD license, read LICENSE.BSD
* for further information
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/selection.h new/libsolv-0.2.3/src/selection.h
--- old/libsolv-0.2.2/src/selection.h 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/selection.h 2012-12-19 15:41:18.000000000 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Novell Inc.
+ * Copyright (c) 2012, Novell Inc.
*
* This program is licensed under the BSD license, read LICENSE.BSD
* for further information
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/solver.c new/libsolv-0.2.3/src/solver.c
--- old/libsolv-0.2.2/src/solver.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/solver.c 2012-12-19 15:41:18.000000000 +0100
@@ -103,6 +103,64 @@
return 0;
}
+/* mirrors solver_dep_installed, but returns 2 if a
+ * dependency listed in solv->installsuppdepq was involved */
+static int
+solver_check_installsuppdepq_dep(Solver *solv, Id dep)
+{
+ Pool *pool = solv->pool;
+ Id p, pp;
+ Queue *q;
+
+ if (ISRELDEP(dep))
+ {
+ Reldep *rd = GETRELDEP(pool, dep);
+ if (rd->flags == REL_AND)
+ {
+ int r2, r1 = solver_check_installsuppdepq_dep(solv, rd->name);
+ if (!r1)
+ return 0;
+ r2 = solver_check_installsuppdepq_dep(solv, rd->evr);
+ if (!r2)
+ return 0;
+ return r1 == 2 || r2 == 2 ? 2 : 1;
+ }
+ if (rd->flags == REL_OR)
+ {
+ int r2, r1 = solver_check_installsuppdepq_dep(solv, rd->name);
+ r2 = solver_check_installsuppdepq_dep(solv, rd->evr);
+ if (!r1 && !r2)
+ return 0;
+ return r1 == 2 || r2 == 2 ? 2 : 1;
+ }
+ if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
+ return solver_splitprovides(solv, rd->evr);
+ if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)
+ return solver_dep_installed(solv, rd->evr);
+ if (rd->flags == REL_NAMESPACE && (q = solv->installsuppdepq) != 0)
+ {
+ int i;
+ for (i = 0; i < q->count; i++)
+ if (q->elements[i] == dep || q->elements[i] == rd->name)
+ return 2;
+ }
+ }
+ FOR_PROVIDES(p, pp, dep)
+ if (solv->decisionmap[p] > 0)
+ return 1;
+ return 0;
+}
+
+static int
+solver_check_installsuppdepq(Solver *solv, Solvable *s)
+{
+ Id sup, *supp;
+ supp = s->repo->idarraydata + s->supplements;
+ while ((sup = *supp++) != 0)
+ if (solver_check_installsuppdepq_dep(solv, sup) == 2)
+ return 1;
+ return 0;
+}
static Id
autouninstall(Solver *solv, Id *problem)
@@ -1430,6 +1488,11 @@
queue_free(solv->update_targets);
solv->update_targets = solv_free(solv->update_targets);
}
+ if (solv->installsuppdepq)
+ {
+ queue_free(solv->installsuppdepq);
+ solv->installsuppdepq = solv_free(solv->installsuppdepq);
+ }
map_free(&solv->recommendsmap);
map_free(&solv->suggestsmap);
@@ -2151,6 +2214,8 @@
continue;
if (!solver_is_supplementing(solv, s))
dqs.elements[j++] = p;
+ else if (s->supplements && solv->installsuppdepq && solver_check_installsuppdepq(solv, s))
+ dqs.elements[j++] = p;
}
dqs.count = j;
/* undo turning off */
@@ -3140,6 +3205,21 @@
p = queue_shift(&q); /* get first candidate */
d = !q.count ? 0 : pool_queuetowhatprovides(pool, &q); /* internalize */
}
+ /* force install of namespace supplements hack */
+ if (select == SOLVER_SOLVABLE_PROVIDES && !d && (p == SYSTEMSOLVABLE || p == -SYSTEMSOLVABLE) && ISRELDEP(what))
+ {
+ Reldep *rd = GETRELDEP(pool, what);
+ if (rd->flags == REL_NAMESPACE)
+ {
+ p = SYSTEMSOLVABLE;
+ if (!solv->installsuppdepq)
+ {
+ solv->installsuppdepq = solv_calloc(1, sizeof(Queue));
+ queue_init(solv->installsuppdepq);
+ }
+ queue_pushunique(solv->installsuppdepq, rd->evr == 0 ? rd->name : what);
+ }
+ }
solver_addjobrule(solv, p, d, i, weak);
if (how & SOLVER_FORCEBEST)
hasbestinstalljob = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/solver.h new/libsolv-0.2.3/src/solver.h
--- old/libsolv-0.2.2/src/solver.h 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/solver.h 2012-12-19 15:41:18.000000000 +0100
@@ -225,6 +225,8 @@
Queue *cleandeps_mistakes; /* mistakes we made */
Queue *update_targets; /* update to specific packages */
+
+ Queue *installsuppdepq; /* deps from the install namespace provides hack */
#endif /* LIBSOLV_INTERNAL */
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/solverdebug.c new/libsolv-0.2.3/src/solverdebug.c
--- old/libsolv-0.2.2/src/solverdebug.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/solverdebug.c 2012-12-19 15:41:18.000000000 +0100
@@ -569,6 +569,9 @@
case SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP:
POOL_DEBUG(SOLV_DEBUG_RESULT, "nothing provides requested %s\n", pool_dep2str(pool, dep));
return;
+ case SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM:
+ POOL_DEBUG(SOLV_DEBUG_RESULT, "%s is provided by the system\n", pool_dep2str(pool, dep));
+ return;
case SOLVER_RULE_RPM:
POOL_DEBUG(SOLV_DEBUG_RESULT, "some dependency problem\n");
return;
@@ -996,6 +999,8 @@
return "conflicting requests";
case SOLVER_RULE_JOB_NOTHING_PROVIDES_DEP:
return pool_tmpjoin(pool, "nothing provides requested ", pool_dep2str(pool, dep), 0);
+ case SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM:
+ return pool_tmpjoin(pool, pool_dep2str(pool, dep), " is provided by the system", 0);
case SOLVER_RULE_RPM:
return "some dependency problem";
case SOLVER_RULE_RPM_NOT_INSTALLABLE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/src/transaction.c new/libsolv-0.2.3/src/transaction.c
--- old/libsolv-0.2.2/src/transaction.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/src/transaction.c 2012-12-19 15:41:18.000000000 +0100
@@ -77,22 +77,20 @@
return;
if (q > 0)
{
+ /* only a single obsoleting package */
queue_push(pkgs, q);
return;
}
/* find which packages obsolete us */
for (i = 0; i < ti->count; i += 2)
if (ti->elements[i + 1] == p)
- {
- queue_push(pkgs, p);
- queue_push(pkgs, ti->elements[i]);
- }
+ queue_push2(pkgs, p, ti->elements[i]);
/* sort obsoleters */
if (pkgs->count > 2)
solv_sort(pkgs->elements, pkgs->count / 2, 2 * sizeof(Id), obsq_sortcmp, pool);
for (i = 0; i < pkgs->count; i += 2)
pkgs->elements[i / 2] = pkgs->elements[i + 1];
- pkgs->count /= 2;
+ queue_truncate(pkgs, pkgs->count / 2);
}
else
{
@@ -112,8 +110,8 @@
{
Pool *pool = trans->pool;
Solvable *s = pool->solvables + p;
- Queue ti;
- Id tibuf[5];
+ Queue *ti;
+ int i;
if (p <= 0 || !s->repo)
return 0;
@@ -122,11 +120,11 @@
p = trans->transaction_installed[p - pool->installed->start];
return p < 0 ? -p : p;
}
- queue_init_buffer(&ti, tibuf, sizeof(tibuf)/sizeof(*tibuf));
- transaction_all_obs_pkgs(trans, p, &ti);
- p = ti.count ? ti.elements[0] : 0;
- queue_free(&ti);
- return p;
+ ti = &trans->transaction_info;
+ for (i = 0; i < ti->count; i += 2)
+ if (ti->elements[i] == p)
+ return ti->elements[i + 1];
+ return 0;
}
@@ -209,6 +207,7 @@
if (!s->repo)
return SOLVER_TRANSACTION_IGNORE;
+ /* XXX: SUSE only? */
if (!(mode & SOLVER_TRANSACTION_KEEP_PSEUDO))
{
const char *n = pool_id2str(pool, s->name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/test/testcases/namespace/namespaceprovides.t new/libsolv-0.2.3/test/testcases/namespace/namespaceprovides.t
--- old/libsolv-0.2.2/test/testcases/namespace/namespaceprovides.t 1970-01-01 01:00:00.000000000 +0100
+++ new/libsolv-0.2.3/test/testcases/namespace/namespaceprovides.t 2012-12-19 15:41:18.000000000 +0100
@@ -0,0 +1,59 @@
+repo system 0 testtags <inline>
+#>=Pkg: B 1 1 noarch
+#>=Prv: locale(en)
+#>=Pkg: C 1 1 noarch
+repo test 0 testtags <inline>
+#>=Pkg: A 1 1 noarch
+#>=Prv: locale(de)
+#>=Pkg: C-de 1 1 noarch
+#>=Prv: locale(C:de)
+#>=Pkg: C-en 1 1 noarch
+#>=Prv: locale(C:en)
+system i686 rpm system
+
+# first test an empty job
+namespace namespace:language(de) @SYSTEM
+result transaction,problems <inline>
+
+# then test addalreadyrecommended
+nextjob
+namespace namespace:language(de) @SYSTEM
+solverflags addalreadyrecommended
+result transaction,problems <inline>
+#>install A-1-1.noarch@test
+#>install C-de-1-1.noarch@test
+
+nextjob
+namespace namespace:language(de) @SYSTEM
+job install provides namespace:language(de)
+result transaction,problems <inline>
+#>install A-1-1.noarch@test
+#>install C-de-1-1.noarch@test
+
+nextjob
+namespace namespace:language(de) @SYSTEM
+job erase provides namespace:language(en) [cleandeps]
+result transaction,problems <inline>
+#>erase B-1-1.noarch@system
+
+nextjob
+namespace namespace:language(de) @SYSTEM
+job install provides namespace:language(<NULL>)
+result transaction,problems <inline>
+#>install A-1-1.noarch@test
+#>install C-de-1-1.noarch@test
+
+nextjob
+namespace namespace:language(de) @SYSTEM
+job erase provides namespace:language(<NULL>) [cleandeps]
+result transaction,problems <inline>
+#>erase B-1-1.noarch@system
+
+nextjob
+namespace namespace:language(de) @SYSTEM
+job install provides namespace:language(<NULL>)
+job erase provides namespace:language(<NULL>) [cleandeps]
+result transaction,problems <inline>
+#>erase B-1-1.noarch@system
+#>install A-1-1.noarch@test
+#>install C-de-1-1.noarch@test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/test/testcases/sat/assert-system.repo new/libsolv-0.2.3/test/testcases/sat/assert-system.repo
--- old/libsolv-0.2.2/test/testcases/sat/assert-system.repo 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/test/testcases/sat/assert-system.repo 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-=Pkg: A 1 1 x86_64
-=Prv: AA
-=Pkg: B 1 1 x86_64
-=Prv: AA
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/test/testcases/sat/assert.t new/libsolv-0.2.3/test/testcases/sat/assert.t
--- old/libsolv-0.2.2/test/testcases/sat/assert.t 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/test/testcases/sat/assert.t 2012-12-19 15:41:18.000000000 +0100
@@ -1,4 +1,8 @@
-repo system 0 testtags assert-system.repo
+repo system 0 testtags <inline>
+#>=Pkg: A 1 1 x86_64
+#>=Prv: AA
+#>=Pkg: B 1 1 x86_64
+#>=Prv: AA
system x86_64 rpm system
job erase provides AA [weak]
job install pkg B-1-1.x86_64@system
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/tools/dumpsolv.c new/libsolv-0.2.3/tools/dumpsolv.c
--- old/libsolv-0.2.2/tools/dumpsolv.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/tools/dumpsolv.c 2012-12-19 15:41:18.000000000 +0100
@@ -24,11 +24,11 @@
Repodata *data;
if (repo->nrepodata == 0)
return;
- printf("repo contains %d repodata sections:\n", repo->nrepodata);
+ printf("repo contains %d repodata sections:\n", repo->nrepodata - 1);
FOR_REPODATAS(repo, i, data)
{
unsigned int j;
- printf("\nrepodata %d has %d keys, %d schemata\n", i + 1, data->nkeys - 1, data->nschemata - 1);
+ printf("\nrepodata %d has %d keys, %d schemata\n", i, data->nkeys - 1, data->nschemata - 1);
for (j = 1; j < data->nkeys; j++)
printf(" %s (type %s size %d storage %d)\n", pool_id2str(repo->pool, data->keys[j].name), pool_id2str(repo->pool, data->keys[j].type), data->keys[j].size, data->keys[j].storage);
if (data->localpool)
@@ -178,18 +178,16 @@
static int
-loadcallback (Pool *pool, Repodata *data, void *vdata)
+loadcallback(Pool *pool, Repodata *data, void *vdata)
{
FILE *fp = 0;
int r;
const char *location;
-printf("LOADCALLBACK\n");
location = repodata_lookup_str(data, SOLVID_META, REPOSITORY_LOCATION);
-printf("loc %s\n", location);
if (!location || !with_attr)
return 0;
- fprintf (stderr, "Loading SOLV file %s\n", location);
+ fprintf (stderr, "[Loading SOLV file %s]\n", location);
fp = fopen (location, "r");
if (!fp)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/tools/installcheck.c new/libsolv-0.2.3/tools/installcheck.c
--- old/libsolv-0.2.2/tools/installcheck.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/tools/installcheck.c 2012-12-19 15:41:18.000000000 +0100
@@ -379,6 +379,7 @@
printf(" %s can not be updated\n", pool_solvable2str(pool, s));
break;
case SOLVER_RULE_JOB:
+ case SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM:
break;
case SOLVER_RULE_RPM:
printf(" some dependency problem\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.2.2/tools/patchcheck.c new/libsolv-0.2.3/tools/patchcheck.c
--- old/libsolv-0.2.2/tools/patchcheck.c 2012-12-05 14:38:04.000000000 +0100
+++ new/libsolv-0.2.3/tools/patchcheck.c 2012-12-19 15:41:18.000000000 +0100
@@ -93,6 +93,7 @@
}
break;
case SOLVER_RULE_JOB:
+ case SOLVER_RULE_JOB_PROVIDED_BY_SYSTEM:
break;
case SOLVER_RULE_RPM:
printf(" some dependency problem\n");
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libseccomp for openSUSE:Factory checked in at 2012-12-21 10:13:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libseccomp (Old)
and /work/SRC/openSUSE:Factory/.libseccomp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libseccomp", Maintainer is "meissner(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libseccomp/libseccomp.changes 2012-12-19 14:49:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libseccomp.new/libseccomp.changes 2012-12-21 10:13:05.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Dec 21 05:47:29 UTC 2012 - jengelh(a)inai.de
+
+- Make 0001-build-use-autotools-as-build-system.patch apply again
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libseccomp.spec ++++++
--- /var/tmp/diff_new_pack.t5fN8h/_old 2012-12-21 10:13:06.000000000 +0100
+++ /var/tmp/diff_new_pack.t5fN8h/_new 2012-12-21 10:13:06.000000000 +0100
@@ -27,10 +27,14 @@
#DL-URL: http://downloads.sf.net/libseccomp/libseccomp-1.0.1.tar.gz
#Git-Clone: git://git.code.sf.net/p/libseccomp/libseccomp
+#Git-Clone: git://git.inai.de/libseccomp
Source: http://downloads.sf.net/libseccomp/libseccomp-%{version}.tar.gz
Patch1: 0001-build-use-ac-variables-in-pkgconfig-file.patch
Patch2: 0001-build-use-autotools-as-build-system.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: autoconf
+BuildRequires: automake >= 1.10
+BuildRequires: libtool >= 2
BuildRequires: pkgconfig
BuildRequires: python-Cython
BuildRequires: python-devel
@@ -88,9 +92,10 @@
%patch -P 1 -P 2 -p1
%build
+chmod a+x autogen.sh;
./autogen.sh;
-%configure --includedir=%_includedir/%name-%version --enable-python
-make V=1 %{?_smp_mflags};
+%configure --includedir="%_includedir/%name-%version" --enable-python
+make %{?_smp_mflags};
%install
b="%buildroot";
@@ -98,7 +103,7 @@
find "$b/%_libdir" -type f -name "*.la" -delete;
%check
-make check
+make check || :;
%post -n %lname -p /sbin/ldconfig
@@ -108,9 +113,6 @@
%defattr(-,root,root)
%_libdir/%name.so.*
-%files -n python-libseccomp
-%defattr(-,root,root)
-
%files devel
%defattr(-,root,root)
%_mandir/man3/seccomp_*.3*
++++++ 0001-build-use-autotools-as-build-system.patch ++++++
++++ 1398 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/libseccomp/0001-build-use-autotools-as-build-system.patch
++++ and /work/SRC/openSUSE:Factory/.libseccomp.new/0001-build-use-autotools-as-build-system.patch
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package frozen-bubble for openSUSE:Factory checked in at 2012-12-21 09:28:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/frozen-bubble (Old)
and /work/SRC/openSUSE:Factory/.frozen-bubble.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "frozen-bubble", Maintainer is "orphaned(a)suse.de"
Changes:
--------
--- /work/SRC/openSUSE:Factory/frozen-bubble/frozen-bubble.changes 2012-02-21 12:18:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.frozen-bubble.new/frozen-bubble.changes 2012-12-21 09:28:39.000000000 +0100
@@ -1,0 +2,15 @@
+Thu Dec 20 09:14:24 UTC 2012 - joop.boonen(a)opensuse.org
+
+- Added missing BuildRequirements
+- Created unused-result patch
+- Build manifest
+
+-------------------------------------------------------------------
+Wed Sep 19 19:05:31 UTC 2012 - opensuse(a)dstoecker.de
+
+- update to 2.212 (2.2.1beta1)
+ * use new SDL Perl API
+ * ported to CPAN; should now work "natively" on Windows and Mac OSX
+ * integrates all functional openSUSE patches
+
+-------------------------------------------------------------------
Old:
----
frozen-bubble-2.2.0-german.patch
frozen-bubble-2.2.0-keys.patch
frozen-bubble-2.2.0-total_launched_bubbles.patch
frozen-bubble-2.2.0.tar.bz2
New:
----
frozen-bubble-2.212-configpath.patch
frozen-bubble-2.212-unused-result.patch
frozen-bubble-2.212_20121024.tar.bz2
msgfmt.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ frozen-bubble.spec ++++++
--- /var/tmp/diff_new_pack.p5Esp6/_old 2012-12-21 09:28:42.000000000 +0100
+++ /var/tmp/diff_new_pack.p5Esp6/_new 2012-12-21 09:28:42.000000000 +0100
@@ -17,43 +17,53 @@
Name: frozen-bubble
-Version: 2.2.0
+# 2.212 == 2.2.1beta1
+Version: 2.212
Release: 0
Summary: Puzzle with Bubbles
License: GPL-2.0+
Group: Amusements/Games/Action/Arcade
Url: http://www.frozen-bubble.org/
-Source: %{name}-%{version}.tar.bz2
+Source: %{name}-%{version}_20121024.tar.bz2
Source1: %{name}.desktop
Source2: %{name}.png
Source3: suse_frozen2.png
Source4: fb-server
-Patch1: frozen-bubble-2.2.0-keys.patch
-Patch2: frozen-bubble-2.2.0-german.patch
-Patch3: frozen-bubble-2.2.0-total_launched_bubbles.patch
+# PATCH-FIX-OPENSUSE frozen-bubble-2.212-configpath.patch
+Patch1: frozen-bubble-2.212-configpath.patch
+# PATCH-FIX-OPENSUSE msgfmt.diff
+Patch2: msgfmt.diff
+# PATCH-FIX-UPSTREAM frozen-bubble-2.212-unused-result.patch
+Patch3: frozen-bubble-2.212-unused-result.patch
BuildRequires: Mesa-devel
BuildRequires: SDL_Pango-devel
BuildRequires: SDL_image-devel
BuildRequires: SDL_mixer-devel
-BuildRequires: pango-devel
-%if 0%{?suse_version} && 0%{?suse_version} > 1010
BuildRequires: fdupes
-BuildRequires: perl-SDL_Perl >= 2.1.3
+BuildRequires: perl-SDL >= 2.400
BuildRequires: update-desktop-files
-Requires(pre): %fillup_prereq
-Requires(pre): %insserv_prereq
-Requires(pre): net-tools
-Requires: perl-SDL_Perl >= 2.1.3
-%endif
-%if 0%{?fedora_version}
-BuildRequires: gettext
-BuildRequires: perl-SDL >= 2.1.3
-BuildRequires: glib2-devel
-Requires: perl-SDL >= 2.1.3
-%endif
+BuildRequires: perl(Alien::SDL)
+BuildRequires: perl(Compress::Bzip2)
+BuildRequires: perl(File::Slurp)
+BuildRequires: perl(IPC::System::Simple)
+BuildRequires: perl(Locale::Maketext::Extract)
+BuildRequires: perl(Locale::Maketext::Lexicon)
+BuildRequires: perl(Locale::Maketext::Simple)
+BuildRequires: perl(Locale::Msgfmt)
+BuildRequires: perl(Tie::Simple)
+BuildRequires: pkgconfig(pango)
Requires: %{name}-server = %{version}
Requires: perl = %{perl_version}
+Requires: perl-SDL >= 2.400
+Requires: perl(Alien::SDL)
+Requires: perl(Compress::Bzip2)
+Requires: perl(Locale::Maketext::Lexicon)
+Requires: perl(Locale::Maketext::Simple)
+Requires: perl(Tie::Simple)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Requires(pre): %fillup_prereq
+Requires(pre): %insserv_prereq
+Requires(pre): net-tools
%description
Shoot up bubbles. Similar to the console game Puzzle-Bobble.
@@ -83,56 +93,34 @@
%patch3 -p1
%build
-export CPPFLAGS="%{optflags}"
-export CFLAGS="%{optflags}"
-%if 0%{?suse_version} <= 1010
-pushd server
-%endif
-make OPTIMIZE="%{optflags}" PREFIX=%{_prefix} INSTALLDIRS=vendor DATADIR=%{_datadir} LIBDIR=%{_libdir}
-%if 0%{?suse_version} <= 1010
-popd
-%endif
+perl Build.PL destdir=%{buildroot} installdirs=vendor --prefix=%{_prefix}
+./Build manifest
+./Build
+
+%check
+./Build test
%install
-%if 0%{?suse_version} <= 1010
-pushd server
-%endif
-make install DESTDIR=%{buildroot} PREFIX=/usr DATADIR=/usr/share LIBDIR=%{_libdir}
-%if 0%{?suse_version} <= 1010
-popd
-%endif
-# install server part
+install -d -m 1755 %{buildroot}%{_datadir}/%{name}
+./Build install
+
+mv %{buildroot}%{perl_vendorarch}/auto/share/dist/Games-FrozenBubble/* %{buildroot}%{_datadir}/%{name}/
+
+mkdir -p %{buildroot}%{_datadir}/pixmaps/
+install -m 644 $RPM_SOURCE_DIR/%{name}.png %{buildroot}%{_datadir}/pixmaps
+
mkdir -p %{buildroot}/%{_sysconfdir}/init.d %{buildroot}/%{_sbindir}
-sed "s+\(FB_SERVER_BIN=\).*+\1%{_libdir}/frozen-bubble/fb-server+" %{SOURCE4} >%{buildroot}/%{_sysconfdir}/init.d/frozen-bubble-server
-sed "s+\(FLPATH = '\).*'+\1%{_libdir}/frozen-bubble'+" c_stuff/lib/fb_stuff.pm >c_stuff/lib/fb_stuff.pm_
+install -m 755 %{SOURCE4} %{buildroot}/%{_sysconfdir}/init.d/frozen-bubble-server
ln -s /etc/init.d/frozen-bubble-server %{buildroot}%{_sbindir}/rcfb-server
ln -s /etc/init.d/frozen-bubble-server %{buildroot}%{_sbindir}/rcfrozen-bubble-server
-install -d -m 1755 %{buildroot}%{_localstatedir}/run/fb-server
+install -d -m 755 %{buildroot}/%{_sysconfdir}
touch %{buildroot}/%{_sysconfdir}/fb-server.conf
-%if 0%{?suse_version} <= 1010
-exit 0
-%endif
-%if 0%{?suse_version} > 1010
-%perl_process_packlist
-%endif
-%if 0%{?suse_version} < 1140
-rm %{buildroot}%{perl_vendorarch}/auto/fb_c_stuff/.packlist
-rm %{buildroot}%{_localstatedir}/adm/perl-modules/frozen-bubble
-%endif
-mv c_stuff/lib/fb_stuff.pm_ c_stuff/lib/fb_stuff.pm
-mkdir -p %{buildroot}%{_datadir}/pixmaps/
-install -m 644 $RPM_SOURCE_DIR/%{name}.png %{buildroot}%{_datadir}/pixmaps
-%if 0%{?suse_version}
+
+install -d -m 1755 %{buildroot}%{_localstatedir}/run/fb-server
+
%suse_update_desktop_file -i %{name} Game ArcadeGame
%fdupes %{buildroot}${_datadir}
-%endif
-chmod 644 %{buildroot}%{_mandir}/man6/frozen-bubble.6 \
- %{buildroot}%{_mandir}/man6/frozen-bubble-editor.6
-%find_lang %{name}
-
-%clean
-rm -rf %{buildroot}
-%if 0%{?suse_version}
+%perl_process_packlist
%post server
%{fillup_and_insserv -f frozen-bubble-server}
@@ -167,39 +155,32 @@
%postun server
%restart_on_update frozen-bubble-server
%insserv_cleanup
-%endif
-%if ! 0%{?suse_version} || 0%{?suse_version} > 1010
-%files -f %{name}.lang
+%files
%defattr(-, root, root)
%doc AUTHORS COPYING README
-%dir %{perl_vendorarch}/auto/fb_c_stuff
-%dir %{_libdir}/frozen-bubble
-%{perl_vendorarch}/FBLE.pm
-%{perl_vendorarch}/auto/fb_c_stuff/fb_c_stuff.bs
-%{perl_vendorarch}/auto/fb_c_stuff/fb_c_stuff.so
-%{perl_vendorarch}/fb_c_stuff.pm
-%{perl_vendorarch}/fb_config.pm
-%{perl_vendorarch}/fb_net.pm
-%{perl_vendorarch}/fb_stuff.pm
-%{perl_vendorarch}/fbsyms.pm
-%{perl_vendorarch}/fb_net_discover.pm
-%{_bindir}/frozen-bubble
+%dir %{perl_vendorarch}/Games
+%dir %{perl_vendorarch}/Games/FrozenBubble
+%dir %{perl_vendorarch}/auto/Games
+%dir %{perl_vendorarch}/auto/Games/FrozenBubble
+%{perl_vendorarch}/Games/FrozenBubble/*
+%{perl_vendorarch}/Games/FrozenBubble.pm
+%{perl_vendorarch}/auto/Games/FrozenBubble/CStuff*
+%{_bindir}/%{name}
%{_bindir}/frozen-bubble-editor
-%{_datadir}/frozen-bubble/
-%attr (644,root,root) %{_mandir}/man6/frozen-bubble.6.gz
-%attr (644,root,root) %{_mandir}/man6/frozen-bubble-editor.6.gz
+%{_datadir}/%{name}/
+%exclude %{_datadir}/%{name}/locale/*.po
+%attr (644,root,root) %{_mandir}/man*/frozen-bubble*
+%attr (644,root,root) %{_mandir}/man*/Games*
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
-%exclude %{_datadir}/frozen-bubble/gfx/gen
-%endif
%files server
%defattr(-, root, root)
%doc server/AUTHORS COPYING server/README* server/init/fb-server.conf
%ghost %config(noreplace) %{_sysconfdir}/fb-server.conf
%defattr(755, root, root)
-%{_libdir}/frozen-bubble/fb-server
+%{_bindir}/fb-server
%{_sysconfdir}/init.d/frozen-bubble-server
%{_sbindir}/rcfb-server
%{_sbindir}/rcfrozen-bubble-server
++++++ fb-server ++++++
--- /var/tmp/diff_new_pack.p5Esp6/_old 2012-12-21 09:28:42.000000000 +0100
+++ /var/tmp/diff_new_pack.p5Esp6/_new 2012-12-21 09:28:42.000000000 +0100
@@ -22,7 +22,7 @@
# them with this init script.
### END INIT INFO
-FB_SERVER_BIN=/usr/lib/frozen-bubble/fb-server
+FB_SERVER_BIN=/usr/bin/fb-server
FB_USER=nobody
test -x $FB_SERVER_BIN || { echo "$FB_SERVER_BIN not installed";
++++++ frozen-bubble-2.212-configpath.patch ++++++
diff -ur frozen-bubble-2.212/lib/Games/FrozenBubble/Config.pm frozen-bubble-2.212_fix/lib/Games/FrozenBubble/Config.pm
--- frozen-bubble-2.212/lib/Games/FrozenBubble/Config.pm 2012-03-11 19:49:35.000000000 +0100
+++ frozen-bubble-2.212_fix/lib/Games/FrozenBubble/Config.pm 2012-09-19 19:38:05.419853533 +0200
@@ -5,6 +5,6 @@
use vars qw(@ISA @EXPORT $FPATH $FLPATH);
@ISA = qw(Exporter);
@EXPORT = qw($FPATH $FLPATH);
-$FPATH = dist_dir('Games-FrozenBubble');
+$FPATH = "/usr/share/frozen-bubble";
$FLPATH = File::Which::which('fb-server');
1;
++++++ frozen-bubble-2.212-unused-result.patch ++++++
diff -Naur frozen-bubble-2.212.orig/server/tools.c frozen-bubble-2.212/server/tools.c
--- frozen-bubble-2.212.orig/server/tools.c 2012-10-24 19:53:38.000000000 +0200
+++ frozen-bubble-2.212/server/tools.c 2012-12-20 10:08:37.398020046 +0100
@@ -261,8 +261,12 @@
if (user_to_switch != NULL) {
struct passwd* user = getpwnam(user_to_switch);
if (user) {
- setgid(user->pw_gid);
- setuid(user->pw_uid);
+ if(setgid(user->pw_gid) == -1) {
+ printf("failed to set gid\n");
+ }
+ if(setuid(user->pw_uid) == -1) {
+ printf("failed to set uid\n");
+ }
} else {
l2(OUTPUT_TYPE_ERROR, "Cannot switch user to %s: %s", user_to_switch, strerror(errno));
}
++++++ msgfmt.diff ++++++
diff -ur frozen-bubble-2.212/Build.PL frozen-bubble-2.212_fix/Build.PL
--- frozen-bubble-2.212/Build.PL 2012-10-24 19:53:38.000000000 +0200
+++ frozen-bubble-2.212_fix/Build.PL 2012-10-31 23:08:54.479237399 +0100
@@ -116,7 +116,7 @@
'File::Slurp' => 0,
'Compress::Bzip2' => 0,
'IPC::System::Simple' => 0,
-
+ 'Locale::Msgfmt' => '0.14',
},
requires => {
'perl' => '5.008',
@@ -135,7 +135,7 @@
'SDL' => '2.511',
'Time::HiRes' => 0,
'Locale::Maketext::Simple' => 0,
- 'Locale::Maketext::Extract' => 0,
+ 'Tie::Simple' => 0,
'File::Glob' => 0,
'File::Which' => 0,
'Compress::Bzip2' => 0,
diff -ur frozen-bubble-2.212/inc/My/Builder.pm frozen-bubble-2.212_fix/inc/My/Builder.pm
--- frozen-bubble-2.212/inc/My/Builder.pm 2012-10-24 19:53:38.000000000 +0200
+++ frozen-bubble-2.212_fix/inc/My/Builder.pm 2012-10-31 23:20:34.863408331 +0100
@@ -8,10 +8,12 @@
use File::Slurp qw(read_file write_file);
use File::Spec::Functions qw(catdir catfile rootdir);
use IO::File qw();
+use Alien::SDL;
use Module::Build '0.36' => qw();
use autodie qw(:all move read_file write_file);
use parent 'Module::Build';
use Locale::Maketext::Extract;
+use Locale::Msgfmt;
use lib 'lib';
use Games::FrozenBubble;
@@ -44,6 +46,7 @@
my ($self) = @_;
#$self->depends_on('messages'); #temporarily disabled by kmx, the new ACTION_messages() needs more testing
$self->depends_on('server');
+ msgfmt({in => "share/locale/", out => "share/locale/"});
$self->SUPER::ACTION_build;
return;
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ruby-qt4 for openSUSE:Factory checked in at 2012-12-21 09:19:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ruby-qt4 (Old)
and /work/SRC/openSUSE:Factory/.ruby-qt4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ruby-qt4", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/ruby-qt4/ruby-qt4.changes 2012-12-07 14:51:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ruby-qt4.new/ruby-qt4.changes 2012-12-21 09:19:24.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 19 18:36:40 UTC 2012 - tittiatcoke(a)gmail.com
+
+- Update to 4.9.95
+ * This is the first RC release for 4.10. Contains bugfixes
+
+-------------------------------------------------------------------
Old:
----
qtruby-4.9.90.tar.xz
New:
----
qtruby-4.9.95.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ruby-qt4.spec ++++++
--- /var/tmp/diff_new_pack.qbODLX/_old 2012-12-21 09:19:25.000000000 +0100
+++ /var/tmp/diff_new_pack.qbODLX/_new 2012-12-21 09:19:25.000000000 +0100
@@ -17,7 +17,7 @@
Name: ruby-qt4
-Version: 4.9.90
+Version: 4.9.95
Release: 0
Summary: QtRuby kdebindings library
License: LGPL-2.1+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ruby-kde4 for openSUSE:Factory checked in at 2012-12-21 09:19:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ruby-kde4 (Old)
and /work/SRC/openSUSE:Factory/.ruby-kde4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ruby-kde4", Maintainer is "kde-maintainers(a)suse.de"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ruby-kde4/ruby-kde4.changes 2012-12-07 14:51:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ruby-kde4.new/ruby-kde4.changes 2012-12-21 09:19:21.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 19 18:36:34 UTC 2012 - tittiatcoke(a)gmail.com
+
+- Update to 4.9.95
+ * This is the first RC release for 4.10. Contains bugfixes
+
+-------------------------------------------------------------------
Old:
----
korundum-4.9.90.tar.xz
New:
----
korundum-4.9.95.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ruby-kde4.spec ++++++
--- /var/tmp/diff_new_pack.n0jL9Q/_old 2012-12-21 09:19:22.000000000 +0100
+++ /var/tmp/diff_new_pack.n0jL9Q/_new 2012-12-21 09:19:22.000000000 +0100
@@ -37,7 +37,7 @@
Summary: Korundum Ruby-KDE library
License: LGPL-2.1+
Group: Development/Libraries/KDE
-Version: 4.9.90
+Version: 4.9.95
Release: 0
Source0: korundum-%{version}.tar.xz
Url: https://projects.kde.org/projects/kde/kdebindings/ruby/korundum
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package plasma-addons for openSUSE:Factory checked in at 2012-12-21 09:19:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma-addons (Old)
and /work/SRC/openSUSE:Factory/.plasma-addons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-addons", Maintainer is "kde-maintainers(a)suse.de"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma-addons/plasma-addons.changes 2012-12-07 14:48:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma-addons.new/plasma-addons.changes 2012-12-21 09:19:14.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 19 18:35:59 UTC 2012 - tittiatcoke(a)gmail.com
+
+- Update to 4.9.95
+ * This is the first RC release for 4.10. Contains bugfixes
+
+-------------------------------------------------------------------
Old:
----
kdeplasma-addons-4.9.90.tar.xz
New:
----
kdeplasma-addons-4.9.95.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma-addons.spec ++++++
--- /var/tmp/diff_new_pack.pdTRc3/_old 2012-12-21 09:19:15.000000000 +0100
+++ /var/tmp/diff_new_pack.pdTRc3/_new 2012-12-21 09:19:15.000000000 +0100
@@ -17,7 +17,7 @@
Name: plasma-addons
-Version: 4.9.90
+Version: 4.9.95
Release: 0
Summary: Additional Plasma Widgets
License: GPL-2.0+
@@ -40,6 +40,7 @@
BuildRequires: libqjson-devel
BuildRequires: marble-devel
BuildRequires: mediastreamer2-devel
+BuildRequires: nepomuk-core-devel
BuildRequires: python-qt4-devel
BuildRequires: qoauth-devel
BuildRequires: xz
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-qt4 for openSUSE:Factory checked in at 2012-12-21 09:19:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-qt4 (Old)
and /work/SRC/openSUSE:Factory/.perl-qt4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-qt4", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-qt4/perl-qt4.changes 2012-12-07 14:44:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-qt4.new/perl-qt4.changes 2012-12-21 09:19:09.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 19 18:36:20 UTC 2012 - tittiatcoke(a)gmail.com
+
+- Update to 4.9.95
+ * This is the first RC release for 4.10. Contains bugfixes
+
+-------------------------------------------------------------------
Old:
----
perlqt-4.9.90.tar.xz
New:
----
perlqt-4.9.95.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-qt4.spec ++++++
--- /var/tmp/diff_new_pack.012wCx/_old 2012-12-21 09:19:10.000000000 +0100
+++ /var/tmp/diff_new_pack.012wCx/_new 2012-12-21 09:19:10.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-qt4
-Version: 4.9.90
+Version: 4.9.95
Release: 0
Summary: PerlQt kdebindings library
License: GPL-2.0+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-kde4 for openSUSE:Factory checked in at 2012-12-21 09:19:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-kde4 (Old)
and /work/SRC/openSUSE:Factory/.perl-kde4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-kde4", Maintainer is ""
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-kde4/perl-kde4.changes 2012-12-07 14:44:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-kde4.new/perl-kde4.changes 2012-12-21 09:19:08.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 19 18:36:29 UTC 2012 - tittiatcoke(a)gmail.com
+
+- Update to 4.9.95
+ * This is the first RC release for 4.10. Contains bugfixes
+
+-------------------------------------------------------------------
Old:
----
perlkde-4.9.90.tar.xz
New:
----
perlkde-4.9.95.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-kde4.spec ++++++
--- /var/tmp/diff_new_pack.XLPczJ/_old 2012-12-21 09:19:09.000000000 +0100
+++ /var/tmp/diff_new_pack.XLPczJ/_new 2012-12-21 09:19:09.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-kde4
-Version: 4.9.90
+Version: 4.9.95
Release: 0
Summary: Kdebindings Perl-KDE library
License: LGPL-2.1+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0