37 static const IdString support_unsupported(
"support_unsupported" );
38 static const IdString support_acc(
"support_acc" );
39 static const IdString support_l1(
"support_l1" );
40 static const IdString support_l2(
"support_l2" );
41 static const IdString support_l3(
"support_l3" );
42 static const IdString support_superseded(
"support_superseded" );
49 if ( solv.edition() == solv_r.
edition()
50 && solv.ident() == solv_r.
ident()
71 if (
strv::hasPrefix( kw.asStringView(), support_superseded.asStringView() ) ) {
73 if ( kw.c_str()[support_superseded.
size()] ==
'(' && kw.c_str()[kw.size()-1] ==
')' ) {
74 std::string_view val { kw.c_str()+support_superseded.
size()+1, kw.size()-support_superseded.
size()-2 };
75 if ( not val.empty() ) {
77 ret.second = std::set<std::string_view>();
78 ret.second->insert( val );
80 WAR <<
"No superseding package defined in " << kw << endl;
83 WAR <<
"No superseding package defined in " << kw << endl;
95 const std::string & s( url_r.
getScheme() );
96 return s ==
"dir" || s ==
"file";
104 if ( ! pi.isExist() )
175 std::vector<std::string> ret;
179 for (
const auto & v : *res.second )
180 ret.push_back( std::string( v ) );
188 std::pair<std::vector<IdString>,std::vector<std::string>> ret;
190 if ( not todo.empty() )
192 std::set<std::string> done;
193 std::set<std::string> unresolved;
194 std::set<IdString> resolved;
195 while ( not todo.empty() ) {
196 auto doneit { done.insert( std::move(todo.back()) ) };
198 if ( not doneit.second )
200 const std::string & next { *doneit.first };
203 const std::vector<std::string> & more { sel->supersededBy() };
204 if ( more.empty() ) {
205 resolved.insert( sel->ident() );
207 todo.insert( todo.end(), more.begin(), more.end() );
210 unresolved.insert( next );
213 if ( not resolved.empty() )
214 ret.first.insert( ret.first.end(), resolved.begin(), resolved.end() );
215 if ( not unresolved.empty() )
216 ret.second.insert( ret.second.end(), unresolved.begin(), unresolved.end() );
226 ERR <<
"Target not initialized. Changelog is not available." << std::endl;
233 target->rpmDb().getData(
name(), header);
234 return header ? header->tag_changelog() :
Changelog();
236 WAR <<
"changelog is not available for uninstalled packages" << std::endl;
266 std::list<std::string> ret;
std::string getScheme() const
Returns the scheme name of the URL.
std::string distribution() const
Package(const sat::Solvable &solvable_r)
Ctor.
A Solvable object within the sat Pool.
Container of Solvable providing a Capability (read only).
The package was discontinued and has been superseded by a new package with a different name...
Pathname cachedLocation(const OnMediaLocation &loc_r, const RepoInfo &repo_r)
bool schemeIsLocalDir(const Url &url_r)
Problem isolation, which means technical support designed to duplicate customer problems, isolate problem area and provide resolution for problems not resolved by Level 1 Support.
#define IMPL_PTR_TYPE(NAME)
Store and operate with byte count.
ByteCount sourcesize() const
Size of corresponding the source package.
std::string url() const
Don't ship it as class Url, because it might be in fact anything but a legal Url. ...
IdType id() const
Expert backdoor.
std::list< ChangelogEntry > Changelog
List of ChangelogEntry.
Pathname cachedLocation() const
Location of the downloaded package in cache or an empty path.
std::string sourcePkgType() const
The type of the source rpm ("src" or "nosrc").
The support for this package is unknown.
std::vector< std::string > supersededBy() const
The name(s) of the successor package if vendorSupport is VendorSupportSuperseded. ...
int IdType
Generic Id type.
What is known about a repository.
OnMediaLocation location() const
Location of the resolvable in the repository.
static const SolvAttr packager
Problem resolution, which means technical support designed to resolve complex problems by engaging en...
Access to the sat-pools string space.
Problem determination, which means technical support designed to provide compatibility information...
Edition represents [epoch:]version[-release]
LookupAttr::TransformIterator based container to retrieve list attributes.
GetVendorSupportOptionReturn getVendorSupportOption(sat::Solvable solv_r)
Get VendorSupportOption and the PKGNAME if VendorSupportSuperseded.
static const SolvAttr sourcearch
Changelog changelog() const
Get the package change log.
CheckSum lookupCheckSumAttribute(const SolvAttr &attr) const
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
bool identical(const Solvable &rhs) const
Test whether two Solvables have the same content.
std::string buildhost() const
OnMediaLocation lookupLocation() const
bool maybeUnsupported() const
True if the vendor support for this package is unknown or explicitly unsupported. ...
Url url() const
Pars pro toto: The first repository url, this is either baseUrls().front() or if no baseUrl is define...
static const SolvAttr sourceevr
unsigned split(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \, const Trim trim_r=NO_TRIM)
Split line_r into words.
Edition sourcePkgEdition() const
Edition of the source rpm this package was built from.
Edition edition() const
The edition (version-release).
static const SolvAttr url
std::string sourcePkgLongName() const
The source rpms "name-version-release.type".
std::string group() const
std::string packager() const
RepoInfo repoInfo() const
static const SolvAttr license
Solvable::IdType id() const
FileList filelist() const
Return the packages filelist (if available).
The package is known to be unsupported by the vendor.
VendorSupportOption vendorSupport() const
Returns the level of supportability the vendor gives to this package.
static const SolvAttr authors
CheckSum checksum() const
Checksum the source says this package should have.
Keywords keywords() const
Base for resolvable objects.
unsigned size() const
The strings size.
static const SolvAttr buildhost
static const SolvAttr checksum
static const SolvAttr sourcename
ZYpp::Ptr getZYpp()
relates: ZYppFactory Convenience to get the Pointer to the ZYpp instance.
sat::ArrayAttr< std::string, std::string > FileList
static Ptr get(const pool::ByIdent &ident_r)
Get the Selctable.
std::pair< VendorSupportOption, std::optional< std::set< std::string_view > >> GetVendorSupportOptionReturn
getVendorSupportOption return value
std::string sourcePkgName() const
Name of the source rpm this package was built from.
Additional Customer Contract necessary.
static const SolvAttr sourcesize
unsigned long long lookupNumAttribute(const SolvAttr &attr) const
static const SolvAttr keywords
Pathname packagesPath() const
packagesPath Checks if the effective user is allowed to write into the system package cache...
std::string license() const
Wrapper class for ::stat/::lstat.
static const SolvAttr group
static const SolvAttr filelist
detail::IdType lookupIdAttribute(const SolvAttr &attr) const
std::string asString() const
Conversion to std::string
static const SolvAttr distribution
static const std::string & md5Type()
std::string lookupStrAttribute(const SolvAttr &attr) const
Easy-to use interface to the ZYPP dependency resolver.
std::list< std::string > authors() const
Solvable satSolvable() const
Return the corresponding sat::Solvable.
bool hasPrefix(const C_Str &str_r, const C_Str &prefix_r)
Return whether str_r has prefix prefix_r.
sat::ArrayAttr< PackageKeyword, IdString > Keywords
Repository repository() const
IdString ident() const
The identifier.
std::pair< std::vector< IdString >, std::vector< std::string > > supersededByItems() const
The successor package(s) if vendorSupport is VendorSupportSuperseded.