#include "zypp/Url.h"
#include "zypp/Locale.h"
+#include "zypp/TriBool.h"
#include "zypp/repo/RepoType.h"
#include "zypp/repo/RepoVariables.h"
*
* \note A RepoInfo is a hint about how
* to create a Repository.
+ *
+ * \note Name, baseUrls and mirrorUrl are subject to repo variable replacement
+ * (\see \ref RepoVariablesStringReplacer).
*/
class RepoInfo : public repo::RepoInfoBase
{
*/
bool baseUrlsEmpty() const;
/**
- * whether there are manualy configured repository urls
+ * Whether there are manualy configured repository urls.
+ * If \c false, a mirrorlist might be used.
*/
bool baseUrlSet() const;
/**
* iterator that points at end of repository urls
*/
urls_const_iterator baseUrlsEnd() const;
+
/**
* Pars pro toto: The first repository url
*/
Url url() const
{ return( baseUrlsEmpty() ? Url() : *baseUrlsBegin()); }
/**
- * A Url under which the metadata are located, or a set of mirrors.
+ * Pars pro toto: The first repository raw url (no variables replaced)
+ */
+ Url rawUrl() const;
+
+ /**
+ * The complete set of repository urls
*
- * This can't be empty in order the repository to be valid
- * unless the download of the mirror list succeeds and it
- * contains a valid url.
+ * These are either the configured baseurls, or if empty, the downloaded
+ * mirror list (\see \ref mirrorListUrl)
*/
url_set baseUrls() const;
/**
+ * The complete set of raw repository urls (no variables replaced)
+ */
+ url_set rawBaseUrls() const;
+
+ /**
* Add a base url. \see baseUrls
* \param url The base url for the repository.
*
* Clears current base URL list and adds \a url.
*/
void setBaseUrl( const Url &url );
+ /**
+ * Clears current base URL list and adds an \ref url_set.
+ */
+ void setBaseUrls( url_set urls );
/**
* \short Repository path
void setPath( const Pathname &path );
/**
- * Url of a file which contains a list of Urls
- * If empty, the base url will be used.
+ * Url of a file which contains a list of repository urls
*/
Url mirrorListUrl() const;
/**
+ * The raw mirrorListUrl (no variables replaced).
+ */
+ Url rawMirrorListUrl() const;
+ /**
* Set mirror list url. \see mirrorListUrl
* \param url The base url for the list
*/
*/
void setPackagesPath( const Pathname &path );
- /**
- * \short Whether to check or not this repository with gpg
+
+ /** Whether default signature checking should be performed for this repo.
*
- * \note This is a just a hint to the application and can
- * be ignored.
+ * This will turn on \ref repoGpgCheck for signed repos and
+ * \ref pkgGpgCheck for unsigned ones or if \ref repoGpgCheck is off.
*
+ * The default is \c true but may be overwritten by \c zypp.conf or a \ref .repo file.
*/
bool gpgCheck() const;
- /**
- * \short Whether to check or not this repository with gpg
- *
- * \param check true (check) or false (dont'check)
- *
- * \note This is a just a hint to the application and can
- * be ignored.
- *
+ /** Set the value for \ref gpgCheck (or \c indeterminate to use the default). */
+ void setGpgCheck( TriBool value_r );
+ /** \overload \deprecated legacy and for squid */
+ void setGpgCheck( bool value_r );
+
+ /** Whether the signature of repo metadata should be checked for this repo.
+ * The default is defined by \ref gpgCheck but may be overwritten by \c zypp.conf or a \ref .repo file.
*/
- void setGpgCheck( bool check );
+ bool repoGpgCheck() const;
+ /** Set the value for \ref repoGpgCheck (or \c indeterminate to use the default). */
+ void setRepoGpgCheck( TriBool value_r );
- /**
- * \short Key to use for gpg checking of this repository
- *
- * \param url Url to the key in ASCII armored format
- *
- * \note This is a just a hint to the application and can
- * be ignored.
- *
+ /** Whether the signature of rpm packages should be checked for this repo.
+ * The default is defined by \ref gpgCheck but may be overwritten by \c zypp.conf or a \ref .repo file.
*/
- Url gpgKeyUrl() const;
- /**
- * \short Key to use for gpg checking of this repository
- *
- * \param url Url to the key in ASCII armored format
- *
- * \note This is a just a hint to the application and can
- * be ignored.
- *
+ bool pkgGpgCheck() const;
+ /** Set the value for \ref pkgGpgCheck (or \c indeterminate to use the default). */
+ void setPkgGpgCheck( TriBool value_r );
+
+ /** Whether the repo metadata are signed and successfully validated or \c indeterminate if unsigned.
+ * The value is usually set by \ref repo::Downloader when retrieving the metadata.
*/
+ TriBool validRepoSignature() const;
+ /** Set the value for \ref validRepoSignature (or \c indeterminate if unsigned). */
+ void setValidRepoSignature( TriBool value_r );
+
+
+ /** Whether gpgkey URLs are defined */
+ bool gpgKeyUrlsEmpty() const;
+ /** Number of gpgkey URLs defined */
+ urls_size_type gpgKeyUrlsSize() const;
+
+ /** The list of gpgkey URLs defined for this repo */
+ url_set gpgKeyUrls() const;
+ /** The list of raw gpgkey URLs defined for this repo (no variables replaced) */
+ url_set rawGpgKeyUrls() const;
+ /** Set a list of gpgkey URLs defined for this repo */
+ void setGpgKeyUrls( url_set urls );
+
+ /** (leagcy API) The 1st gpgkey URL defined for this repo */
+ Url gpgKeyUrl() const;
+ /** (leagcy API) The 1st raw gpgkey URL defined for this repo (no variables replaced) */
+ Url rawGpgKeyUrl() const;
+ /** (leagcy API) Set the gpgkey URL defined for this repo */
void setGpgKeyUrl( const Url &gpgkey );
+
/**
* \short Whether packages downloaded from this repository will be kept in local cache
*/
LocaleSet getLicenseLocales() const;
//@}
- /** \name Repository global unique id
- *
- *
- */
- //@{
- //@}
-
public:
/**
* Write a human-readable representation of this RepoInfo object
/**
* Write this RepoInfo object into \a str in a <tr>.repo</tt> file format.
+ * Raw values, no variable replacement.
*/
virtual std::ostream & dumpAsIniOn( std::ostream & str ) const;
/**
* Write an XML representation of this RepoInfo object.
+ * Repo variables replaced.
*
* \param str
* \param content this argument is ignored (used in other classed derived
*/
virtual std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const;
- /** \deprecated Use camel cased dumpAsXmlOn */
- ZYPP_DEPRECATED std::ostream & dumpAsXMLOn( std::ostream & str, const std::string & content = "" ) const { return dumpAsXmlOn( str, content ); }
-
class Impl;
private:
+ friend class RepoManager;
+ /** Raw values for RepoManager */
+ void getRawGpgChecks( TriBool & g_r, TriBool & r_r, TriBool & p_r ) const;
+
/** Pointer to implementation */
RWCOW_pointer<Impl> _pimpl;
};