15 #include <sys/utsname.h>
16 #if __GLIBC_PREREQ (2,16)
20 #include <solv/solvversion.h>
40 #undef ZYPP_BASE_LOGGER_LOGGROUP
41 #define ZYPP_BASE_LOGGER_LOGGROUP "zconfig"
61 Arch _autodetectSystemArchitecture()
64 if ( ::uname( &buf ) < 0 )
66 ERR <<
"Can't determine system architecture" << endl;
70 Arch architecture( buf.machine );
71 MIL <<
"Uname architecture is '" << buf.machine <<
"'" << endl;
73 if ( architecture == Arch_i686 )
78 std::ifstream cpuinfo(
"/proc/cpuinfo" );
81 for( iostr::EachLine in( cpuinfo ); in; in.next() )
85 if ( in->find(
"cx8" ) == std::string::npos
86 || in->find(
"cmov" ) == std::string::npos )
88 architecture = Arch_i586;
89 WAR <<
"CPU lacks 'cx8' or 'cmov': architecture downgraded to '" << architecture <<
"'" << endl;
97 ERR <<
"Cant open " <<
PathInfo(
"/proc/cpuinfo") << endl;
100 else if ( architecture == Arch_sparc || architecture == Arch_sparc64 )
103 std::ifstream cpuinfo(
"/proc/cpuinfo" );
106 for( iostr::EachLine in( cpuinfo ); in; in.next() )
110 if ( in->find(
"sun4v" ) != std::string::npos )
112 architecture = ( architecture == Arch_sparc64 ? Arch_sparc64v : Arch_sparcv9v );
113 WAR <<
"CPU has 'sun4v': architecture upgraded to '" << architecture <<
"'" << endl;
115 else if ( in->find(
"sun4u" ) != std::string::npos )
117 architecture = ( architecture == Arch_sparc64 ? Arch_sparc64 : Arch_sparcv9 );
118 WAR <<
"CPU has 'sun4u': architecture upgraded to '" << architecture <<
"'" << endl;
120 else if ( in->find(
"sun4m" ) != std::string::npos )
122 architecture = Arch_sparcv8;
123 WAR <<
"CPU has 'sun4m': architecture upgraded to '" << architecture <<
"'" << endl;
131 ERR <<
"Cant open " <<
PathInfo(
"/proc/cpuinfo") << endl;
134 else if ( architecture == Arch_armv7l || architecture == Arch_armv6l )
136 std::ifstream platform(
"/etc/rpm/platform" );
139 for( iostr::EachLine in( platform ); in; in.next() )
143 architecture = Arch_armv7hl;
144 WAR <<
"/etc/rpm/platform contains armv7hl-: architecture upgraded to '" << architecture <<
"'" << endl;
149 architecture = Arch_armv6hl;
150 WAR <<
"/etc/rpm/platform contains armv6hl-: architecture upgraded to '" << architecture <<
"'" << endl;
156 #if __GLIBC_PREREQ (2,16)
157 else if ( architecture == Arch_ppc64 )
159 const char * platform = (
const char *)getauxval( AT_PLATFORM );
161 if ( platform && sscanf( platform,
"power%d", &powerlvl ) == 1 && powerlvl > 6 )
162 architecture = Arch_ppc64p7;
185 Locale _autodetectTextLocale()
188 const char * envlist[] = {
"LC_ALL",
"LC_MESSAGES",
"LANG", NULL };
189 for (
const char ** envvar = envlist; *envvar; ++envvar )
191 const char * envlang = getenv( *envvar );
194 std::string envstr( envlang );
195 if ( envstr !=
"POSIX" && envstr !=
"C" )
197 Locale lang( envstr );
198 if ( ! lang.code().empty() )
200 MIL <<
"Found " << *envvar <<
"=" << envstr << endl;
207 MIL <<
"Default text locale is '" << ret <<
"'" << endl;
208 #warning HACK AROUND BOOST_TEST_CATCH_SYSTEM_ERRORS
209 setenv(
"BOOST_TEST_CATCH_SYSTEM_ERRORS",
"no", 1 );
229 const value_type &
get()
const
233 operator const value_type &()
const
237 void set(
const value_type & newval_r )
256 :
Option<_Tp>( initial_r ), _default( initial_r )
261 { this->set( _default.get() ); }
265 { setDefault( newval_r ); restoreToDefault(); }
269 {
return _default.get(); }
273 { _default.set( newval_r ); }
291 Impl(
const Pathname & override_r = Pathname() )
292 : _parsedZyppConf ( override_r )
293 , cfg_arch ( defaultSystemArchitecture() )
294 , cfg_textLocale ( defaultTextLocale() )
295 , updateMessagesNotify (
"single | /usr/lib/zypp/notify-message -p %p" )
296 , repo_add_probe ( false )
297 , repo_refresh_delay ( 10 )
298 , repoLabelIsAlias ( false )
299 , download_use_deltarpm ( true )
300 , download_use_deltarpm_always ( false )
301 , download_media_prefer_download( true )
302 , download_max_concurrent_connections( 5 )
303 , download_min_download_speed ( 0 )
304 , download_max_download_speed ( 0 )
305 , download_max_silent_tries ( 5 )
306 , download_transfer_timeout ( 180 )
309 , repoGpgCheck ( indeterminate )
310 , pkgGpgCheck ( indeterminate )
311 , solver_onlyRequires ( false )
312 , solver_allowVendorChange ( false )
313 , solver_cleandepsOnRemove ( false )
314 , solver_upgradeTestcasesToKeep ( 2 )
315 , solverUpgradeRemoveDroppedPackages( true )
316 , apply_locks_file ( true )
317 , pluginsPath (
"/usr/lib/zypp/plugins" )
319 MIL <<
"libzypp: " << VERSION <<
" built " << __DATE__ <<
" " << __TIME__ << endl;
322 if ( _parsedZyppConf.empty() )
324 const char *env_confpath = getenv(
"ZYPP_CONF" );
325 _parsedZyppConf = env_confpath ? env_confpath :
"/etc/zypp/zypp.conf";
331 INT <<
"Reconfigure to " << _parsedZyppConf << endl;
332 ZConfig::instance()._pimpl.reset(
this );
334 if ( PathInfo(_parsedZyppConf).isExist() )
341 string section(*sit);
347 string entry(it->first);
348 string value(it->second);
350 if ( section ==
"main" )
352 if ( entry ==
"arch" )
355 if ( carch != cfg_arch )
357 WAR <<
"Overriding system architecture (" << cfg_arch <<
"): " << carch << endl;
361 else if ( entry ==
"cachedir" )
363 cfg_cache_path = Pathname(value);
365 else if ( entry ==
"metadatadir" )
367 cfg_metadata_path = Pathname(value);
369 else if ( entry ==
"solvfilesdir" )
371 cfg_solvfiles_path = Pathname(value);
373 else if ( entry ==
"packagesdir" )
375 cfg_packages_path = Pathname(value);
377 else if ( entry ==
"configdir" )
379 cfg_config_path = Pathname(value);
381 else if ( entry ==
"reposdir" )
383 cfg_known_repos_path = Pathname(value);
385 else if ( entry ==
"servicesdir" )
387 cfg_known_services_path = Pathname(value);
389 else if ( entry ==
"repo.add.probe" )
393 else if ( entry ==
"repo.refresh.delay" )
397 else if ( entry ==
"repo.refresh.locales" )
399 std::vector<std::string> tmp;
400 str::split( value, back_inserter( tmp ),
", \t" );
402 boost::function<Locale(const std::string &)> transform(
403 [](
const std::string & str_r)->
Locale{
return Locale(str_r); }
405 repoRefreshLocales.insert( make_transform_iterator( tmp.begin(), transform ),
406 make_transform_iterator( tmp.end(), transform ) );
408 else if ( entry ==
"download.use_deltarpm" )
410 download_use_deltarpm =
str::strToBool( value, download_use_deltarpm );
412 else if ( entry ==
"download.use_deltarpm.always" )
414 download_use_deltarpm_always =
str::strToBool( value, download_use_deltarpm_always );
416 else if ( entry ==
"download.media_preference" )
418 download_media_prefer_download.restoreToDefault(
str::compareCI( value,
"volatile" ) != 0 );
420 else if ( entry ==
"download.max_concurrent_connections" )
424 else if ( entry ==
"download.min_download_speed" )
428 else if ( entry ==
"download.max_download_speed" )
432 else if ( entry ==
"download.max_silent_tries" )
436 else if ( entry ==
"download.transfer_timeout" )
439 if ( download_transfer_timeout < 0 ) download_transfer_timeout = 0;
440 else if ( download_transfer_timeout > 3600 ) download_transfer_timeout = 3600;
442 else if ( entry ==
"commit.downloadMode" )
444 commit_downloadMode.set( deserializeDownloadMode( value ) );
446 else if ( entry ==
"gpgcheck" )
450 else if ( entry ==
"repo_gpgcheck" )
454 else if ( entry ==
"pkg_gpgcheck" )
458 else if ( entry ==
"vendordir" )
460 cfg_vendor_path = Pathname(value);
462 else if ( entry ==
"multiversiondir" )
464 cfg_multiversion_path = Pathname(value);
466 else if ( entry ==
"solver.onlyRequires" )
468 solver_onlyRequires.set(
str::strToBool( value, solver_onlyRequires ) );
470 else if ( entry ==
"solver.allowVendorChange" )
472 solver_allowVendorChange.set(
str::strToBool( value, solver_allowVendorChange ) );
474 else if ( entry ==
"solver.cleandepsOnRemove" )
476 solver_cleandepsOnRemove.set(
str::strToBool( value, solver_cleandepsOnRemove ) );
478 else if ( entry ==
"solver.upgradeTestcasesToKeep" )
480 solver_upgradeTestcasesToKeep.set( str::strtonum<unsigned>( value ) );
482 else if ( entry ==
"solver.upgradeRemoveDroppedPackages" )
484 solverUpgradeRemoveDroppedPackages.restoreToDefault(
str::strToBool( value, solverUpgradeRemoveDroppedPackages.getDefault() ) );
486 else if ( entry ==
"solver.checkSystemFile" )
488 solver_checkSystemFile = Pathname(value);
490 else if ( entry ==
"solver.checkSystemFileDir" )
492 solver_checkSystemFileDir = Pathname(value);
494 else if ( entry ==
"multiversion" )
496 str::split( value, inserter( _multiversion, _multiversion.end() ),
", \t" );
498 else if ( entry ==
"locksfile.path" )
500 locks_file = Pathname(value);
502 else if ( entry ==
"locksfile.apply" )
506 else if ( entry ==
"update.datadir" )
508 update_data_path = Pathname(value);
510 else if ( entry ==
"update.scriptsdir" )
512 update_scripts_path = Pathname(value);
514 else if ( entry ==
"update.messagessdir" )
516 update_messages_path = Pathname(value);
518 else if ( entry ==
"update.messages.notify" )
520 updateMessagesNotify.set( value );
522 else if ( entry ==
"rpm.install.excludedocs" )
527 else if ( entry ==
"history.logfile" )
529 history_log_path = Pathname(value);
531 else if ( entry ==
"credentials.global.dir" )
533 credentials_global_dir_path = Pathname(value);
535 else if ( entry ==
"credentials.global.file" )
537 credentials_global_file_path = Pathname(value);
545 MIL << _parsedZyppConf <<
" not found, using defaults instead." << endl;
546 _parsedZyppConf = _parsedZyppConf.extend(
" (NOT FOUND)" );
550 if ( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) )
552 Arch carch( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) );
553 if ( carch != cfg_arch )
555 WAR <<
"ZYPP_TESTSUITE_FAKE_ARCH: Overriding system architecture (" << cfg_arch <<
"): " << carch << endl;
559 MIL <<
"ZConfig singleton created." << endl;
621 const std::set<std::string> &
multiversion()
const {
return getMultiversion(); }
638 if ( ! _multiversionInitialized )
640 Pathname multiversionDir( cfg_multiversion_path );
641 if ( multiversionDir.empty() )
642 multiversionDir = ( cfg_config_path.empty() ? Pathname(
"/etc/zypp") : cfg_config_path ) /
"multiversion.d";
645 [
this](
const Pathname & dir_r,
const char *
const & name_r )->
bool
647 MIL <<
"Parsing " << dir_r/name_r << endl;
649 [
this](
int num_r, std::string line_r )->
bool
651 DBG <<
" found " << line_r << endl;
652 _multiversion.insert( line_r );
657 _multiversionInitialized =
true;
659 return _multiversion;
706 Target_Ptr target( getZYpp()->getTarget() );
707 return target ? target->root() : Pathname();
718 static Arch _val( _autodetectSystemArchitecture() );
723 {
return _pimpl->cfg_arch; }
727 if ( arch_r !=
_pimpl->cfg_arch )
729 WAR <<
"Overriding system architecture (" <<
_pimpl->cfg_arch <<
"): " << arch_r << endl;
730 _pimpl->cfg_arch = arch_r;
742 static Locale _val( _autodetectTextLocale() );
747 {
return _pimpl->cfg_textLocale; }
751 if ( locale_r !=
_pimpl->cfg_textLocale )
753 WAR <<
"Overriding text locale (" <<
_pimpl->cfg_textLocale <<
"): " << locale_r << endl;
754 _pimpl->cfg_textLocale = locale_r;
755 #warning prefer signal
765 {
return !
_pimpl->userData.empty(); }
768 {
return _pimpl->userData; }
772 for_( ch, str_r.begin(), str_r.end() )
774 if ( *ch <
' ' && *ch !=
'\t' )
776 ERR <<
"New user data string rejectded: char " << (int)*ch <<
" at position " << (ch - str_r.begin()) << endl;
780 MIL <<
"Set user data string to '" << str_r <<
"'" << endl;
789 return (
_pimpl->cfg_cache_path.empty()
790 ? Pathname(
"/var/cache/zypp") :
_pimpl->cfg_cache_path );
795 return (
_pimpl->cfg_metadata_path.empty()
801 return (
_pimpl->cfg_solvfiles_path.empty()
807 return (
_pimpl->cfg_packages_path.empty()
815 return (
_pimpl->cfg_config_path.empty()
816 ? Pathname(
"/etc/zypp") :
_pimpl->cfg_config_path );
821 return (
_pimpl->cfg_known_repos_path.empty()
827 return (
_pimpl->cfg_known_services_path.empty()
833 return (
_pimpl->cfg_vendor_path.empty()
839 return (
_pimpl->locks_file.empty()
846 {
return _pimpl->repo_add_probe; }
849 {
return _pimpl->repo_refresh_delay; }
855 {
return _pimpl->repoLabelIsAlias; }
858 {
_pimpl->repoLabelIsAlias = yesno_r; }
861 {
return _pimpl->download_use_deltarpm; }
867 {
return _pimpl->download_media_prefer_download; }
870 {
_pimpl->download_media_prefer_download.set( yesno_r ); }
873 {
_pimpl->download_media_prefer_download.restoreToDefault(); }
876 {
return _pimpl->download_max_concurrent_connections; }
879 {
return _pimpl->download_min_download_speed; }
882 {
return _pimpl->download_max_download_speed; }
885 {
return _pimpl->download_max_silent_tries; }
888 {
return _pimpl->download_transfer_timeout; }
891 {
return _pimpl->commit_downloadMode; }
894 {
return _pimpl->gpgCheck; }
897 {
return _pimpl->repoGpgCheck; }
900 {
return _pimpl->pkgGpgCheck; }
903 {
return _pimpl->solver_onlyRequires; }
906 {
return _pimpl->solver_allowVendorChange; }
909 {
return _pimpl->solver_cleandepsOnRemove; }
912 {
return (
_pimpl->solver_checkSystemFile.empty()
916 {
return (
_pimpl->solver_checkSystemFileDir.empty()
920 {
return _pimpl->solver_upgradeTestcasesToKeep; }
933 {
return _pimpl->apply_locks_file; }
937 return (
_pimpl->update_data_path.empty()
938 ? Pathname(
"/var/adm") :
_pimpl->update_data_path );
943 return (
_pimpl->update_messages_path.empty()
949 return (
_pimpl->update_scripts_path.empty()
954 {
return _pimpl->updateMessagesNotify; }
957 {
_pimpl->updateMessagesNotify.set( val_r ); }
960 {
_pimpl->updateMessagesNotify.restoreToDefault(); }
965 {
return _pimpl->rpmInstallFlags; }
970 return (
_pimpl->history_log_path.empty() ?
971 Pathname(
"/var/log/zypp/history") :
_pimpl->history_log_path );
976 return (
_pimpl->credentials_global_dir_path.empty() ?
977 Pathname(
"/etc/zypp/credentials.d") :
_pimpl->credentials_global_dir_path );
982 return (
_pimpl->credentials_global_file_path.empty() ?
983 Pathname(
"/etc/zypp/credentials.cat") :
_pimpl->credentials_global_file_path );
989 {
return "redhat-release"; }
994 {
return _pimpl->pluginsPath.get(); }
1000 str <<
"libzypp: " << VERSION <<
" built " << __DATE__ <<
" " << __TIME__ << endl;
1002 str <<
"libsolv: " << solv_version;
1003 if ( ::strcmp( solv_version, LIBSOLV_VERSION_STRING ) )
1004 str <<
" (built against " << LIBSOLV_VERSION_STRING <<
")";
1007 str <<
"zypp.conf: '" <<
_pimpl->_parsedZyppConf <<
"'" << endl;
TriBool strToTriBool(const C_Str &str)
Parse str into a bool if it's a legal true or false string; else indterminate.
static Locale defaultTextLocale()
The autodetected prefered locale for translated texts.
DefaultOption(const value_type &initial_r)
Pathname update_scripts_path
Pathname cfg_known_repos_path
int download_transfer_timeout
MapKVIteratorTraits< SectionSet >::Key_const_iterator section_const_iterator
Option< unsigned > solver_upgradeTestcasesToKeep
void setUpdateMessagesNotify(const std::string &val_r)
Set a new command definition (see update.messages.notify in zypp.conf).
Option< bool > solver_cleandepsOnRemove
TriBool repoGpgCheck() const
Check repo matadata signatures (indeterminate - according to gpgcheck)
Pathname solver_checkSystemFileDir() const
Directory, which may or may not contain files in which dependencies described which has to be fulfill...
Pathname cfg_known_services_path
Option< TriBool > repoGpgCheck
int download_max_concurrent_connections
std::ostream & about(std::ostream &str) const
Print some detail about the current libzypp version.
Pathname update_messages_path
std::string distroverpkg() const
Package telling the "product version" on systems not using /etc/product.d/baseproduct.
unsigned split(const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=" \t")
Split line_r into words.
unsigned solver_upgradeTestcasesToKeep() const
When committing a dist upgrade (e.g.
void setTextLocale(const Locale &locale_r)
Set the default language for retrieving translated texts.
bool download_use_deltarpm
Pathname knownServicesPath() const
Path where the known services .service files are kept (configPath()/services.d).
Pathname vendorPath() const
Directory for equivalent vendor definitions (configPath()/vendors.d)
Pathname repoCachePath() const
Path where the caches are kept (/var/cache/zypp)
LocaleSet repoRefreshLocales
Pathname credentialsGlobalFile() const
Defaults to /etc/zypp/credentials.cat.
Pathname cfg_metadata_path
String related utilities and Regular expression matching.
Option< _Tp > option_type
void removeMultiversionSpec(const std::string &name_r)
void setSystemArchitecture(const Arch &arch_r)
Override the zypp system architecture.
bool apply_locks_file() const
Whether locks file should be read and applied after start (true)
target::rpm::RpmInstFlags rpmInstallFlags
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
void reconfigureZConfig(const Pathname &override_r)
long download_max_download_speed() const
Maximum download speed (bytes per second)
bool setUserData(const std::string &str_r)
Set a new userData string.
bool solver_cleandepsOnRemove() const
Whether removing a package should also remove no longer needed requirements.
bool repo_add_probe() const
Whether repository urls should be probed.
const std::set< std::string > & multiversion() const
void resetSolverUpgradeRemoveDroppedPackages()
Reset solverUpgradeRemoveDroppedPackages to the zypp.conf default.
Pathname _parsedZyppConf
Remember any parsed zypp.conf.
Pathname pluginsPath() const
Defaults to /usr/lib/zypp/plugins.
RW_pointer< Impl, rw_pointer::Scoped< Impl > > _pimpl
Pointer to implementation.
bool solverUpgradeRemoveDroppedPackages() const
Whether dist upgrade should remove a products dropped packages (true).
DownloadMode commit_downloadMode() const
Commit download policy to use as default.
Option< bool > solver_allowVendorChange
void addMultiversionSpec(const std::string &name_r)
Pathname credentials_global_dir_path
void set_download_media_prefer_download(bool yesno_r)
Set download_media_prefer_download to a specific value.
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
DefaultOption< bool > download_media_prefer_download
const value_type & getDefault() const
Get the current default value.
Pathname configPath() const
Path where the configfiles are kept (/etc/zypp).
Pathname historyLogFile() const
Path where ZYpp install history is logged.
void setTextLocale(const Locale &locale_r)
Set the prefered locale for translated texts.
int simpleParseFile(std::istream &str_r, ParseFlags flags_r, function< bool(int, std::string)> consume_r)
Simple lineparser optionally trimming and skipping comments.
Pathname knownReposPath() const
Path where the known repositories .repo files are kept (configPath()/repos.d).
static Pool instance()
Singleton ctor.
Pathname update_data_path
Pathname credentials_global_file_path
LocaleSet repoRefreshLocales() const
List of locales for which translated package descriptions should be downloaded.
bool gpgCheck() const
Turn signature checking on/off (on)
void set_default_download_media_prefer_download()
Set download_media_prefer_download to the configfiles default.
void restoreToDefault(const value_type &newval_r)
Reset value to a new default.
void setDefault(const value_type &newval_r)
Set a new default value.
libzypp will decide what to do.
TriBool pkgGpgCheck() const
Check rpm package signatures (indeterminate - according to gpgcheck)
void restoreToDefault()
Reset value to the current default.
Interim helper class to collect global options and settings.
Pathname cfg_packages_path
section_const_iterator sectionsBegin() const
Types and functions for filesystem operations.
Option< TriBool > pkgGpgCheck
Pathname update_scriptsPath() const
Path where the repo metadata is downloaded and kept (update_dataPath()/).
Pathname locksFile() const
Path where zypp can find or create lock file (configPath()/locks)
std::tr1::unordered_set< Locale > LocaleSet
long download_min_download_speed() const
Minimum download speed (bytes per second) until the connection is dropped.
void clearMultiversionSpec()
entry_const_iterator entriesEnd(const std::string §ion) const
bool hasUserData() const
Whether a (non empty) user data sting is defined.
int download_max_silent_tries
Pathname update_messagesPath() const
Path where the repo solv files are created and kept (update_dataPath()/solv).
_It strtonum(const C_Str &str)
Parsing numbers from string.
Pathname repoSolvfilesPath() const
Path where the repo solv files are created and kept (repoCachePath()/solv).
Pathname repoPackagesPath() const
Path where the repo packages are downloaded and kept (repoCachePath()/packages).
bool download_use_deltarpm() const
Whether to consider using a deltarpm when downloading a package.
Mutable option with initial value also remembering a config value.
Pathname repoMetadataPath() const
Path where the repo metadata is downloaded and kept (repoCachePath()/raw).
value_type & ref()
Non-const reference to set a new value.
long download_max_silent_tries() const
Maximum silent tries.
bool download_use_deltarpm_always
std::set< std::string > & getMultiversion() const
int compareCI(const C_Str &lhs, const C_Str &rhs)
bool solver_allowVendorChange() const
Whether vendor check is by default enabled.
bool solver_onlyRequires() const
Solver regards required packages,patterns,...
Option< Pathname > pluginsPath
Impl(const Pathname &override_r=Pathname())
Parses a INI file and offers its structure as a dictionary.
std::set< std::string > & multiversion()
static Arch defaultSystemArchitecture()
The autodetected system architecture.
Pathname systemRoot() const
The target root directory.
entry_const_iterator entriesBegin(const std::string §ion) const
bool download_media_prefer_download() const
Hint which media to prefer when installing packages (download vs.
DefaultOption< std::string > updateMessagesNotify
const std::set< std::string > & multiversionSpec() const
Pathname solver_checkSystemFile
target::rpm::RpmInstFlags rpmInstallFlags() const
The default target::rpm::RpmInstFlags for ZYppCommitPolicy.
Option< bool > solver_onlyRequires
Pathname history_log_path
bool strToBool(const C_Str &str, bool default_r)
Parse str into a bool depending on the default value.
Pathname update_dataPath() const
Path where the update items are kept (/var/adm)
std::string userData() const
User defined string value to be passed to log, history, plugins...
Option(const value_type &initial_r)
No default ctor, explicit initialisation!
int download_max_download_speed
Wrapper class for ::stat/::lstat.
void resetUpdateMessagesNotify()
Reset to the zypp.conf default.
int dirForEach(const Pathname &dir_r, function< bool(const Pathname &, const char *const)> fnc_r)
Invoke callback function fnc_r for each entry in directory dir_r.
DefaultIntegral< bool, false > _multiversionInitialized
void setSolverUpgradeRemoveDroppedPackages(bool val_r)
Set solverUpgradeRemoveDroppedPackages to val_r.
int download_min_download_speed
void set(const value_type &newval_r)
Set a new value.
Locale textLocale() const
The locale for translated texts zypp uses.
std::string updateMessagesNotify() const
Command definition for sending update messages.
EntrySet::const_iterator entry_const_iterator
unsigned repo_refresh_delay() const
Amount of time in minutes that must pass before another refresh.
Arch systemArchitecture() const
The system architecture zypp uses.
Pathname solver_checkSystemFileDir
bool repoLabelIsAlias() const
Whether to use repository alias or name in user messages (progress, exceptions, ...).
Pathname cfg_multiversion_path
LocaleSet requestedLocales() const
Languages to be supported by the system.
DefaultOption< bool > solverUpgradeRemoveDroppedPackages
Easy-to use interface to the ZYPP dependency resolver.
section_const_iterator sectionsEnd() const
long download_max_concurrent_connections() const
Maximum number of concurrent connections for a single transfer.
bool hasPrefix(const C_Str &str_r, const C_Str &prefix_r)
Return whether str_r has prefix prefix_r.
Pathname solver_checkSystemFile() const
File in which dependencies described which has to be fulfilled for a running system.
Option< DownloadMode > commit_downloadMode
unsigned repo_refresh_delay
bool download_use_deltarpm_always() const
Whether to consider using a deltarpm even when rpm is local.
long download_transfer_timeout() const
Maximum time in seconds that you allow a transfer operation to take.
Pathname credentialsGlobalDir() const
Defaults to /etc/zypp/credentials.d.
DownloadMode
Supported commit download policies.
Pathname cfg_solvfiles_path
std::set< std::string > _multiversion