15 #include <sys/utsname.h>
16 #if __GLIBC_PREREQ (2,16)
20 #include <solv/solvversion.h>
37 using namespace zypp::filesystem;
38 using namespace zypp::parser;
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 );
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 ==
"multiversion" )
492 str::split( value, inserter( _multiversion, _multiversion.end() ),
", \t" );
494 else if ( entry ==
"locksfile.path" )
496 locks_file = Pathname(value);
498 else if ( entry ==
"locksfile.apply" )
502 else if ( entry ==
"update.datadir" )
504 update_data_path = Pathname(value);
506 else if ( entry ==
"update.scriptsdir" )
508 update_scripts_path = Pathname(value);
510 else if ( entry ==
"update.messagessdir" )
512 update_messages_path = Pathname(value);
514 else if ( entry ==
"update.messages.notify" )
516 updateMessagesNotify.set( value );
518 else if ( entry ==
"rpm.install.excludedocs" )
523 else if ( entry ==
"history.logfile" )
525 history_log_path = Pathname(value);
527 else if ( entry ==
"credentials.global.dir" )
529 credentials_global_dir_path = Pathname(value);
531 else if ( entry ==
"credentials.global.file" )
533 credentials_global_file_path = Pathname(value);
541 MIL << _parsedZyppConf <<
" not found, using defaults instead." << endl;
542 _parsedZyppConf = _parsedZyppConf.extend(
" (NOT FOUND)" );
546 if ( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) )
548 Arch carch( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) );
549 if ( carch != cfg_arch )
551 WAR <<
"ZYPP_TESTSUITE_FAKE_ARCH: Overriding system architecture (" << cfg_arch <<
"): " << carch << endl;
555 MIL <<
"ZConfig singleton created." << endl;
616 const std::set<std::string> &
multiversion()
const {
return getMultiversion(); }
633 if ( ! _multiversionInitialized )
635 Pathname multiversionDir( cfg_multiversion_path );
636 if ( multiversionDir.empty() )
637 multiversionDir = ( cfg_config_path.empty() ? Pathname(
"/etc/zypp") : cfg_config_path ) /
"multiversion.d";
640 [
this](
const Pathname & dir_r,
const char *
const & name_r )->
bool
642 MIL <<
"Parsing " << dir_r/name_r << endl;
644 [
this](
int num_r, std::string line_r )->
bool
646 DBG <<
" found " << line_r << endl;
647 _multiversion.insert( line_r );
652 _multiversionInitialized =
true;
654 return _multiversion;
702 return target ? target->root() : Pathname();
713 static Arch _val( _autodetectSystemArchitecture() );
718 {
return _pimpl->cfg_arch; }
722 if ( arch_r !=
_pimpl->cfg_arch )
724 WAR <<
"Overriding system architecture (" <<
_pimpl->cfg_arch <<
"): " << arch_r << endl;
725 _pimpl->cfg_arch = arch_r;
737 static Locale _val( _autodetectTextLocale() );
742 {
return _pimpl->cfg_textLocale; }
746 if ( locale_r !=
_pimpl->cfg_textLocale )
748 WAR <<
"Overriding text locale (" <<
_pimpl->cfg_textLocale <<
"): " << locale_r << endl;
749 _pimpl->cfg_textLocale = locale_r;
750 #warning prefer signal
760 {
return !
_pimpl->userData.empty(); }
763 {
return _pimpl->userData; }
767 for_( ch, str_r.begin(), str_r.end() )
769 if ( *ch <
' ' && *ch !=
'\t' )
771 ERR <<
"New user data string rejectded: char " << (int)*ch <<
" at position " << (ch - str_r.begin()) << endl;
775 MIL <<
"Set user data string to '" << str_r <<
"'" << endl;
784 return (
_pimpl->cfg_cache_path.empty()
785 ? Pathname(
"/var/cache/zypp") :
_pimpl->cfg_cache_path );
790 return (
_pimpl->cfg_metadata_path.empty()
796 return (
_pimpl->cfg_solvfiles_path.empty()
802 return (
_pimpl->cfg_packages_path.empty()
810 return (
_pimpl->cfg_config_path.empty()
811 ? Pathname(
"/etc/zypp") :
_pimpl->cfg_config_path );
816 return (
_pimpl->cfg_known_repos_path.empty()
822 return (
_pimpl->cfg_known_services_path.empty()
828 return (
_pimpl->cfg_vendor_path.empty()
834 return (
_pimpl->locks_file.empty()
841 {
return _pimpl->repo_add_probe; }
844 {
return _pimpl->repo_refresh_delay; }
850 {
return _pimpl->repoLabelIsAlias; }
853 {
_pimpl->repoLabelIsAlias = yesno_r; }
856 {
return _pimpl->download_use_deltarpm; }
862 {
return _pimpl->download_media_prefer_download; }
865 {
_pimpl->download_media_prefer_download.set( yesno_r ); }
868 {
_pimpl->download_media_prefer_download.restoreToDefault(); }
871 {
return _pimpl->download_max_concurrent_connections; }
874 {
return _pimpl->download_min_download_speed; }
877 {
return _pimpl->download_max_download_speed; }
880 {
return _pimpl->download_max_silent_tries; }
883 {
return _pimpl->download_transfer_timeout; }
886 {
return _pimpl->commit_downloadMode; }
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_upgradeTestcasesToKeep; }
929 {
return _pimpl->apply_locks_file; }
933 return (
_pimpl->update_data_path.empty()
934 ? Pathname(
"/var/adm") :
_pimpl->update_data_path );
939 return (
_pimpl->update_messages_path.empty()
945 return (
_pimpl->update_scripts_path.empty()
950 {
return _pimpl->updateMessagesNotify; }
953 {
_pimpl->updateMessagesNotify.set( val_r ); }
956 {
_pimpl->updateMessagesNotify.restoreToDefault(); }
961 {
return _pimpl->rpmInstallFlags; }
966 return (
_pimpl->history_log_path.empty() ?
967 Pathname(
"/var/log/zypp/history") :
_pimpl->history_log_path );
972 return (
_pimpl->credentials_global_dir_path.empty() ?
973 Pathname(
"/etc/zypp/credentials.d") :
_pimpl->credentials_global_dir_path );
978 return (
_pimpl->credentials_global_file_path.empty() ?
979 Pathname(
"/etc/zypp/credentials.cat") :
_pimpl->credentials_global_file_path );
985 {
return "redhat-release"; }
990 {
return _pimpl->pluginsPath.get(); }
996 str <<
"libzypp: " << VERSION <<
" built " << __DATE__ <<
" " << __TIME__ << endl;
998 str <<
"libsolv: " << solv_version;
999 if ( ::strcmp( solv_version, LIBSOLV_VERSION_STRING ) )
1000 str <<
" (built against " << LIBSOLV_VERSION_STRING <<
")";
1003 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
void setGpgCheck(bool val_r)
Change the value.
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)
void setRepoGpgCheck(TriBool val_r)
Change the value.
Pathname cfg_known_services_path
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
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)
void resetGpgCheck()
Reset to the zconfig default.
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.
DefaultOption< bool > gpgCheck
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
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.
void resetRepoGpgCheck()
Reset to the zconfig default.
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.
bool repoLabelIsAlias() const
Whether to use repository alias or name in user messages (progress, exceptions, ...).
Pathname cfg_multiversion_path
void setPkgGpgCheck(TriBool val_r)
Change the value.
LocaleSet requestedLocales() const
Languages to be supported by the system.
DefaultOption< bool > solverUpgradeRemoveDroppedPackages
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.
DefaultOption< TriBool > repoGpgCheck
Pathname solver_checkSystemFile() const
File in which dependencies described which has to be fulfilled for a running system.
Option< DownloadMode > commit_downloadMode
DefaultOption< TriBool > pkgGpgCheck
unsigned repo_refresh_delay
void resetPkgGpgCheck()
Reset to the zconfig default.
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