Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2016-08-03 11:37:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2016-07-21 07:53:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2016-08-03 11:37:34.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Jul 21 13:09:33 CEST 2016 - ma@suse.de
+
+- Rebuild .solv-files not matching the parsers LIBSOLV_TOOLVERSION
+- BuildRequires: libsolv-devel >= 0.6.23
+- version 16.2.1 (0)
+
+-------------------------------------------------------------------
+Mon Jul 18 16:36:25 CEST 2016 - ma@suse.de
+
+- Product: Offer tri-state hasEndOfLife details (FATE#320699)
+- version 16.2.0 (0)
+
+-------------------------------------------------------------------
Old:
----
libzypp-16.1.3.tar.bz2
New:
----
libzypp-16.2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.R7QFeB/_old 2016-08-03 11:37:35.000000000 +0200
+++ /var/tmp/diff_new_pack.R7QFeB/_new 2016-08-03 11:37:35.000000000 +0200
@@ -19,7 +19,7 @@
%define force_gcc_46 0
Name: libzypp
-Version: 16.1.3
+Version: 16.2.1
Release: 0
Url: git://gitorious.org/opensuse/libzypp.git
Summary: Package, Patch, Pattern, and Product Management
@@ -75,7 +75,7 @@
BuildRequires: pkg-config
%endif
-BuildRequires: libsolv-devel >= 0.6.19
+BuildRequires: libsolv-devel >= 0.6.23
%if 0%{?suse_version} >= 1100
BuildRequires: libsolv-tools
%requires_eq libsolv-tools
++++++ libzypp-16.1.3.tar.bz2 -> libzypp-16.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/VERSION.cmake new/libzypp-16.2.1/VERSION.cmake
--- old/libzypp-16.1.3/VERSION.cmake 2016-07-14 19:05:04.000000000 +0200
+++ new/libzypp-16.2.1/VERSION.cmake 2016-07-21 13:13:04.000000000 +0200
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "16")
SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_MINOR "1")
-SET(LIBZYPP_PATCH "3")
+SET(LIBZYPP_MINOR "2")
+SET(LIBZYPP_PATCH "1")
#
-# LAST RELEASED: 16.1.3 (0)
+# LAST RELEASED: 16.2.1 (0)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/libzypp.spec.cmake new/libzypp-16.2.1/libzypp.spec.cmake
--- old/libzypp-16.1.3/libzypp.spec.cmake 2016-06-09 18:53:03.000000000 +0200
+++ new/libzypp-16.2.1/libzypp.spec.cmake 2016-07-20 15:41:07.000000000 +0200
@@ -75,7 +75,7 @@
BuildRequires: pkg-config
%endif
-BuildRequires: libsolv-devel >= 0.6.19
+BuildRequires: libsolv-devel >= 0.6.23
%if 0%{?suse_version} >= 1100
BuildRequires: libsolv-tools
%requires_eq libsolv-tools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/package/libzypp.changes new/libzypp-16.2.1/package/libzypp.changes
--- old/libzypp-16.1.3/package/libzypp.changes 2016-07-14 19:05:04.000000000 +0200
+++ new/libzypp-16.2.1/package/libzypp.changes 2016-07-21 13:13:04.000000000 +0200
@@ -1,4 +1,17 @@
-------------------------------------------------------------------
+Thu Jul 21 13:09:33 CEST 2016 - ma@suse.de
+
+- Rebuild .solv-files not matching the parsers LIBSOLV_TOOLVERSION
+- BuildRequires: libsolv-devel >= 0.6.23
+- version 16.2.1 (0)
+
+-------------------------------------------------------------------
+Mon Jul 18 16:36:25 CEST 2016 - ma@suse.de
+
+- Product: Offer tri-state hasEndOfLife details (FATE#320699)
+- version 16.2.0 (0)
+
+-------------------------------------------------------------------
Thu Jul 14 19:02:57 CEST 2016 - ma@suse.de
- use more user friendly command names for "zypper ps" (bsc#980541)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/po/CMakeLists.txt new/libzypp-16.2.1/po/CMakeLists.txt
--- old/libzypp-16.1.3/po/CMakeLists.txt 2016-05-20 14:36:58.000000000 +0200
+++ new/libzypp-16.2.1/po/CMakeLists.txt 2016-07-21 14:41:05.000000000 +0200
@@ -56,13 +56,13 @@
SET( SOURCE_POT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${POT_NAME}.pot )
ADD_CUSTOM_TARGET( translations ALL
- COMMAND diff -u -I ^\#: -I ^.POT-Creation-Date: ${SOURCE_POT_FILE} ${POT_FILE} | grep '^[+-][^\#]' || true
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} | grep '^[+-][^+-]' || true
DEPENDS ${GMO_FILES}
+ COMMENT ".pot file diff..."
)
ADD_CUSTOM_TARGET( potfile_update
- COMMAND diff -q -I ^\#: -I ^.POT-Creation-Date: ${SOURCE_POT_FILE} ${POT_FILE}
- || ./PotfileUpadte.sh ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND ./PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} -q || ./PotfileUpadte.sh ${CMAKE_CURRENT_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS translations
COMMENT "Checking for uncommitted changes to the .pot file..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/po/PotfileDiff.sh new/libzypp-16.2.1/po/PotfileDiff.sh
--- old/libzypp-16.1.3/po/PotfileDiff.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-16.2.1/po/PotfileDiff.sh 2016-07-21 14:41:05.000000000 +0200
@@ -0,0 +1,14 @@
+#! /bin/bash
+set -e
+function extract() { grep '^\(msgid\|"\)' "$1" | grep -v "POT-Creation-Date" | sort -u; }
+
+OLDTMP=$(mktemp)
+trap " [ -f \"$OLDTMP\" ] && /bin/rm -f -- \"$OLDTMP\" " 0 1 2 3 13 15
+extract "$1" >"$OLDTMP"
+
+NEWTMP=$(mktemp)
+trap " [ -f \"$NEWTMP\" ] && /bin/rm -f -- \"$NEWTMP\" " 0 1 2 3 13 15
+extract "$2" >"$NEWTMP"
+
+shift 2 # additional args for diff
+diff -u0 "$@" "$OLDTMP" "$NEWTMP"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/po/ar.po new/libzypp-16.2.1/po/ar.po
--- old/libzypp-16.1.3/po/ar.po 2016-07-11 20:01:06.000000000 +0200
+++ new/libzypp-16.2.1/po/ar.po 2016-07-17 15:01:05.000000000 +0200
@@ -13,7 +13,7 @@
"Project-Id-Version: YaST (@memory@)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-11 15:29+0000\n"
+"PO-Revision-Date: 2016-07-17 10:30+0000\n"
"Last-Translator: George Yacoub \n"
"Language-Team: Arabic https://l10n.opensuse.org/projects/libzypp/master/ar/"
"\n"
@@ -676,7 +676,7 @@
#. :AFG:004:
#: zypp/CountryCode.cc:161
msgid "Antigua and Barbuda"
-msgstr "أنتيغوا و باربودا"
+msgstr "أنتيغوا وباربودا"
#. :ATG:028:
#: zypp/CountryCode.cc:162
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/po/el.po new/libzypp-16.2.1/po/el.po
--- old/libzypp-16.1.3/po/el.po 2016-07-11 04:01:05.000000000 +0200
+++ new/libzypp-16.2.1/po/el.po 2016-07-16 16:01:05.000000000 +0200
@@ -19,7 +19,7 @@
"Project-Id-Version: zypp.el\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-10 23:49+0000\n"
+"PO-Revision-Date: 2016-07-16 11:02+0000\n"
"Last-Translator: Michail Vourlakos \n"
"Language-Team: Greek https://l10n.opensuse.org/projects/libzypp/master/el/"
"\n"
@@ -4488,7 +4488,7 @@
#: zypp/solver/detail/SATResolver.cc:1318
#, c-format, boost-format
msgid "downgrade of %s to %s"
-msgstr "υποβάθμιση του %s από %s"
+msgstr "υποβάθμιση του %s σε %s"
#: zypp/solver/detail/SATResolver.cc:1325
#, c-format, boost-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/po/pt_BR.po new/libzypp-16.2.1/po/pt_BR.po
--- old/libzypp-16.1.3/po/pt_BR.po 2016-07-14 04:01:06.000000000 +0200
+++ new/libzypp-16.2.1/po/pt_BR.po 2016-07-19 21:01:07.000000000 +0200
@@ -14,7 +14,7 @@
"Project-Id-Version: zypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-13 23:30+0000\n"
+"PO-Revision-Date: 2016-07-19 16:17+0000\n"
"Last-Translator: Marcos Teofilo \n"
"Language-Team: Portuguese (Brazil) "
"https://l10n.opensuse.org/projects/libzypp/master/pt_BR/\n"
@@ -52,7 +52,7 @@
#: zypp/Url.cc:326 zypp/Url.cc:340
msgid "Unable to parse Url components"
-msgstr "Não foi possível analisar os componentes do URL"
+msgstr "Não foi possível analisar os componentes da URL"
#: zypp/thread/Mutex.cc:33
msgid "Can't initialize mutex attributes"
@@ -114,7 +114,7 @@
#: zypp/CheckSum.cc:136
#, c-format, boost-format
msgid "Dubious type '%s' for %u byte checksum '%s'"
-msgstr "Tipo '%s' duvidoso da checksum '%s' de %u byte(s)"
+msgstr "Tipo '%s' duvidoso da soma de verificação '%s' de %u byte(s)"
#: zypp/target/TargetImpl.cc:310
msgid " executed"
@@ -134,7 +134,7 @@
#: zypp/target/TargetImpl.cc:459
msgid " execution skipped while aborting"
-msgstr " execução ignorada durante a interrupção"
+msgstr " execução ignorada durante o cancelamento"
#: zypp/target/TargetImpl.cc:514 zypp/target/TargetImpl.cc:534
#: zypp/target/TargetImpl.cc:562 zypp/target/TargetImpl.cc:599
@@ -154,7 +154,8 @@
#: zypp/target/hal/HalContext.cc:24
msgid "Sorry, but this version of libzypp was built without HAL support."
-msgstr "Esta versão do libzypp foi criada sem o suporte ao HAL."
+msgstr ""
+"Desculpe, mas esta versão do libzypp foi compilada sem o suporte ao HAL."
#: zypp/target/hal/HalContext.cc:117
msgid "HalContext not connected"
@@ -220,7 +221,7 @@
#: zypp/target/rpm/RpmDb.cc:2024
#, c-format, boost-format
msgid "rpm saved %s as %s, but it was impossible to determine the difference"
-msgstr "o rpm salvou %s como %s, mas não foi possível determinar a diferença"
+msgstr "o RPM salvou %s como %s, mas não foi possível determinar a diferença"
#. %s = filenames
#: zypp/target/rpm/RpmDb.cc:2026
@@ -282,12 +283,12 @@
#. translators: possible rpm package signature check result [brief]
#: zypp/target/rpm/RpmDb.cc:2373
msgid "Signatures public key is not available"
-msgstr "A chave de assinatura pública não está disponível"
+msgstr "Chave pública das assinaturas não disponível"
#. translators: possible rpm package signature check result [brief]
#: zypp/target/rpm/RpmDb.cc:2375
msgid "File does not exist or signature can't be checked"
-msgstr "O arquivo não existe ou a assinatura não pôde ser verificada"
+msgstr "O arquivo não existe ou a assinatura não pode ser verificada"
#: zypp/ProblemSolution.cc:114
msgid "Following actions will be done:"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/Product.cc new/libzypp-16.2.1/zypp/Product.cc
--- old/libzypp-16.1.3/zypp/Product.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.1/zypp/Product.cc 2016-07-18 16:41:07.000000000 +0200
@@ -214,6 +214,19 @@
Date Product::endOfLife() const
{ return Date( lookupNumAttribute( sat::SolvAttr::productEndOfLife ) );}
+ bool Product::hasEndOfLife() const
+ { return( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) != -1 ); }
+
+ bool Product::hasEndOfLife( Date & value ) const
+ {
+ Date res( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) );
+ if ( res == -1 )
+ return false;
+ // else:
+ value = res;
+ return true;
+ }
+
std::vectorRepository::ContentIdentifier Product::updateContentIdentifier() const
{
std::vectorRepository::ContentIdentifier ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/Product.h new/libzypp-16.2.1/zypp/Product.h
--- old/libzypp-16.1.3/zypp/Product.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.1/zypp/Product.h 2016-07-18 16:41:07.000000000 +0200
@@ -97,9 +97,25 @@
/** The product flags */
std::liststd::string flags() const;
- /** The date when this Product goes out of support as indicated by it's medadata. */
+ /** The date when this Product goes out of support as indicated by it's medadata.
+ * Use \ref hasEOfLife if it's important to distinguish whether the value
+ * is not defined in the metadata, or defined but empty/invalid/TBD.
+ */
Date endOfLife() const;
+ /** Return whether an EndOfLife value is actually defined in the metadata.
+ * A missing value (\c false) usually indicates that there will be no EOL,
+ * while an empty/invalid value indicates that there will be an EOL date,
+ * but it's not yet known (FATE#320699).
+ */
+ bool hasEndOfLife() const;
+ /** \overload additionally returning the date (0 if TBD)
+ * false, ( unchanged ) : no EOL
+ * true, ( 0 ) : EOL is still TBD
+ * true, ( !=0 ) : a valid EOL date
+ */
+ bool hasEndOfLife( Date & value ) const;
+
/** ContentIdentifier of required update repositories. */
std::vectorRepository::ContentIdentifier updateContentIdentifier() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/RepoManager.cc new/libzypp-16.2.1/zypp/RepoManager.cc
--- old/libzypp-16.1.3/zypp/RepoManager.cc 2016-06-15 12:37:04.000000000 +0200
+++ new/libzypp-16.2.1/zypp/RepoManager.cc 2016-07-21 13:13:04.000000000 +0200
@@ -18,6 +18,8 @@
#include <map>
#include <algorithm>
+#include
+
#include "zypp/base/InputStream.h"
#include "zypp/base/LogTools.h"
#include "zypp/base/Gettext.h"
@@ -1574,19 +1576,13 @@
{
Repository repo = sat::Pool::instance().addRepoSolv( solvfile, info );
// test toolversion in order to rebuild solv file in case
- // it was written by an old libsolv-tool parser.
- //
- // Known version strings used:
- // - <no string>
- // - "1.0"
- //
- sat::LookupRepoAttr toolversion( sat::SolvAttr::repositoryToolVersion, repo );
- if ( toolversion.begin().asString().empty() )
+ // it was written by a different libsolv-tool parser.
+ const std::string & toolversion( sat::LookupRepoAttr( sat::SolvAttr::repositoryToolVersion, repo ).begin().asString() );
+ if ( toolversion != LIBSOLV_TOOLVERSION )
{
repo.eraseFromPool();
- ZYPP_THROW(Exception("Solv-file was created by old parser."));
+ ZYPP_THROW(Exception(str::Str() << "Solv-file was created by '"<= suffix_r.size() && ::strncmp( str_r + str_r.size() - suffix_r.size() , suffix_r, suffix_r.size() ) == 0 ); }
+ /** \overload Case insensitive */
+ inline bool hasSuffixCI( const C_Str & str_r, const C_Str & suffix_r )
+ { return( str_r.size() >= suffix_r.size() && ::strncasecmp( str_r + str_r.size() - suffix_r.size() , suffix_r, suffix_r.size() ) == 0 ); }
/** Strip a \a suffix_r from \a str_r and return the resulting string. */
inline std::string stripSuffix( const C_Str & str_r, const C_Str & suffix_r )
@@ -1043,6 +1052,14 @@
return std::string( str_r, str_r.size() - suffix_r.size() );
return str_r.c_str();
}
+ /** \overload Case insensitive */
+ inline std::string stripSuffixCI( const C_Str & str_r, const C_Str & suffix_r )
+ {
+ if ( hasSuffixCI( str_r, suffix_r ) )
+ return std::string( str_r, str_r.size() - suffix_r.size() );
+ return str_r.c_str();
+ }
+
/** Return size of the common prefix of \a lhs and \a rhs. */
inline std::string::size_type commonPrefix( const C_Str & lhs, const C_Str & rhs )
{
@@ -1053,13 +1070,31 @@
{ ++lp, ++rp, ++ret; }
return ret;
}
+ /** \overload Case insensitive */
+ inline std::string::size_type commonPrefixCI( const C_Str & lhs, const C_Str & rhs )
+ {
+ const char * lp = lhs.c_str();
+ const char * rp = rhs.c_str();
+ std::string::size_type ret = 0;
+ while ( tolower(*lp) == tolower(*rp) && *lp != '\0' )
+ { ++lp, ++rp, ++ret; }
+ return ret;
+ }
+
/** alias for \ref hasPrefix */
inline bool startsWith( const C_Str & str_r, const C_Str & prefix_r )
{ return hasPrefix( str_r, prefix_r ); }
+ /** \overload Case insensitive */
+ inline bool startsWithCI( const C_Str & str_r, const C_Str & prefix_r )
+ { return hasPrefixCI( str_r, prefix_r ); }
+
/** alias for \ref hasSuffix */
inline bool endsWith( const C_Str & str_r, const C_Str & prefix_r )
{ return hasSuffix( str_r, prefix_r ); }
+ /** \overload Case insensitive */
+ inline bool endsWithCI( const C_Str & str_r, const C_Str & prefix_r )
+ { return hasSuffixCI( str_r, prefix_r ); }
//@}
} // namespace str
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/sat/Solvable.cc new/libzypp-16.2.1/zypp/sat/Solvable.cc
--- old/libzypp-16.1.3/zypp/sat/Solvable.cc 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.1/zypp/sat/Solvable.cc 2016-07-18 16:41:07.000000000 +0200
@@ -155,6 +155,12 @@
return ::solvable_lookup_num( _solvable, attr.id(), 0 );
}
+ unsigned long long Solvable::lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const
+ {
+ NO_SOLVABLE_RETURN( notfound_r );
+ return ::solvable_lookup_num( _solvable, attr.id(), notfound_r );
+ }
+
bool Solvable::lookupBoolAttribute( const SolvAttr & attr ) const
{
NO_SOLVABLE_RETURN( false );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/sat/Solvable.h new/libzypp-16.2.1/zypp/sat/Solvable.h
--- old/libzypp-16.1.3/zypp/sat/Solvable.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.1/zypp/sat/Solvable.h 2016-07-18 16:41:07.000000000 +0200
@@ -337,6 +337,8 @@
* or 0 if it does not exists.
*/
unsigned long long lookupNumAttribute( const SolvAttr & attr ) const;
+ /** \overload returning custom notfound_r value */
+ unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const;
/**
* returns the boolean attribute value for \ref attr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-16.1.3/zypp/sat/SolvableType.h new/libzypp-16.2.1/zypp/sat/SolvableType.h
--- old/libzypp-16.1.3/zypp/sat/SolvableType.h 2016-02-11 17:22:14.000000000 +0100
+++ new/libzypp-16.2.1/zypp/sat/SolvableType.h 2016-07-18 16:41:07.000000000 +0200
@@ -133,6 +133,7 @@
bool lookupBoolAttribute( const SolvAttr & attr ) const { return satSolvable().lookupBoolAttribute( attr ); }
detail::IdType lookupIdAttribute( const SolvAttr & attr ) const { return satSolvable().lookupIdAttribute( attr ); }
unsigned long long lookupNumAttribute( const SolvAttr & attr ) const { return satSolvable().lookupNumAttribute( attr ); }
+ unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const { return satSolvable().lookupNumAttribute( attr, notfound_r ); }
CheckSum lookupCheckSumAttribute( const SolvAttr & attr ) const { return satSolvable().lookupCheckSumAttribute( attr ); }
OnMediaLocation lookupLocation() const { return satSolvable().lookupLocation(); }
Solvable::IdType id() const { return satSolvable().id(); }