15 #include <sys/utsname.h>
16 #if __GLIBC_PREREQ (2,16)
20 #include <solv/solvversion.h>
39 using namespace zypp::filesystem;
40 using namespace zypp::parser;
42 #undef ZYPP_BASE_LOGGER_LOGGROUP
43 #define ZYPP_BASE_LOGGER_LOGGROUP "zconfig"
63 Arch _autodetectSystemArchitecture()
66 if ( ::uname( &buf ) < 0 )
68 ERR <<
"Can't determine system architecture" << endl;
72 Arch architecture( buf.machine );
73 MIL <<
"Uname architecture is '" << buf.machine <<
"'" << endl;
75 if ( architecture == Arch_i686 )
80 std::ifstream cpuinfo(
"/proc/cpuinfo" );
83 for( iostr::EachLine in( cpuinfo ); in; in.next() )
87 if ( in->find(
"cx8" ) == std::string::npos
88 || in->find(
"cmov" ) == std::string::npos )
90 architecture = Arch_i586;
91 WAR <<
"CPU lacks 'cx8' or 'cmov': architecture downgraded to '" << architecture <<
"'" << endl;
99 ERR <<
"Cant open " <<
PathInfo(
"/proc/cpuinfo") << endl;
102 else if ( architecture == Arch_sparc || architecture == Arch_sparc64 )
105 std::ifstream cpuinfo(
"/proc/cpuinfo" );
108 for( iostr::EachLine in( cpuinfo ); in; in.next() )
112 if ( in->find(
"sun4v" ) != std::string::npos )
114 architecture = ( architecture == Arch_sparc64 ? Arch_sparc64v : Arch_sparcv9v );
115 WAR <<
"CPU has 'sun4v': architecture upgraded to '" << architecture <<
"'" << endl;
117 else if ( in->find(
"sun4u" ) != std::string::npos )
119 architecture = ( architecture == Arch_sparc64 ? Arch_sparc64 : Arch_sparcv9 );
120 WAR <<
"CPU has 'sun4u': architecture upgraded to '" << architecture <<
"'" << endl;
122 else if ( in->find(
"sun4m" ) != std::string::npos )
124 architecture = Arch_sparcv8;
125 WAR <<
"CPU has 'sun4m': architecture upgraded to '" << architecture <<
"'" << endl;
133 ERR <<
"Cant open " <<
PathInfo(
"/proc/cpuinfo") << endl;
136 else if ( architecture == Arch_armv7l || architecture == Arch_armv6l )
138 std::ifstream platform(
"/etc/rpm/platform" );
141 for( iostr::EachLine in( platform ); in; in.next() )
145 architecture = Arch_armv7hl;
146 WAR <<
"/etc/rpm/platform contains armv7hl-: architecture upgraded to '" << architecture <<
"'" << endl;
151 architecture = Arch_armv6hl;
152 WAR <<
"/etc/rpm/platform contains armv6hl-: architecture upgraded to '" << architecture <<
"'" << endl;
158 #if __GLIBC_PREREQ (2,16)
159 else if ( architecture == Arch_ppc64 )
161 const char * platform = (
const char *)getauxval( AT_PLATFORM );
163 if ( platform && sscanf( platform,
"power%d", &powerlvl ) == 1 && powerlvl > 6 )
164 architecture = Arch_ppc64p7;
187 Locale _autodetectTextLocale()
189 Locale ret( Locale::enCode );
190 const char * envlist[] = {
"LC_ALL",
"LC_MESSAGES",
"LANG", NULL };
191 for (
const char ** envvar = envlist; *envvar; ++envvar )
193 const char * envlang = getenv( *envvar );
196 std::string envstr( envlang );
197 if ( envstr !=
"POSIX" && envstr !=
"C" )
199 Locale lang( envstr );
202 MIL <<
"Found " << *envvar <<
"=" << envstr << endl;
209 MIL <<
"Default text locale is '" << ret <<
"'" << endl;
210 #warning HACK AROUND BOOST_TEST_CATCH_SYSTEM_ERRORS
211 setenv(
"BOOST_TEST_CATCH_SYSTEM_ERRORS",
"no", 1 );
216 inline Pathname _autodetectSystemRoot()
219 return target ? target->root() :
Pathname();
222 inline Pathname _autodetectZyppConfPath()
224 const char *env_confpath = getenv(
"ZYPP_CONF" );
225 return env_confpath ? env_confpath :
"/etc/zypp/zypp.conf";
271 :
Option<Tp>( initial_r ), _default( initial_r )
276 { this->set( _default.get() ); }
280 { setDefault( newval_r ); restoreToDefault(); }
284 {
return _default.get(); }
288 { _default.set( newval_r ); }
308 Impl(
const Pathname & override_r = Pathname() )
309 : _parsedZyppConf ( override_r )
310 , cfg_arch ( defaultSystemArchitecture() )
311 , cfg_textLocale ( defaultTextLocale() )
312 , updateMessagesNotify (
"" )
313 , repo_add_probe ( false )
314 , repo_refresh_delay ( 10 )
315 , repoLabelIsAlias ( false )
316 , download_use_deltarpm ( true )
317 , download_use_deltarpm_always ( false )
318 , download_media_prefer_download( true )
319 , download_mediaMountdir (
"/var/adm/mount" )
320 , download_max_concurrent_connections( 5 )
321 , download_min_download_speed ( 0 )
322 , download_max_download_speed ( 0 )
323 , download_max_silent_tries ( 5 )
324 , download_transfer_timeout ( 180 )
327 , repoGpgCheck ( indeterminate )
328 , pkgGpgCheck ( indeterminate )
330 , solver_onlyRequires ( false )
331 , solver_allowVendorChange ( false )
332 , solver_dupAllowDowngrade ( true )
333 , solver_dupAllowNameChange ( true )
334 , solver_dupAllowArchChange ( true )
335 , solver_dupAllowVendorChange ( true )
336 , solver_cleandepsOnRemove ( false )
337 , solver_upgradeTestcasesToKeep ( 2 )
338 , solverUpgradeRemoveDroppedPackages( true )
339 , apply_locks_file ( true )
340 , pluginsPath (
"/usr/lib/zypp/plugins" )
342 MIL <<
"libzypp: " << VERSION << endl;
345 if ( _parsedZyppConf.empty() )
347 _parsedZyppConf = _autodetectZyppConfPath();
353 INT <<
"Reconfigure to " << _parsedZyppConf << endl;
354 ZConfig::instance()._pimpl.reset(
this );
356 if ( PathInfo(_parsedZyppConf).isExist() )
363 string section(*sit);
369 string entry(it->first);
370 string value(it->second);
372 if ( section ==
"main" )
374 if ( entry ==
"arch" )
377 if ( carch != cfg_arch )
379 WAR <<
"Overriding system architecture (" << cfg_arch <<
"): " << carch << endl;
383 else if ( entry ==
"cachedir" )
385 cfg_cache_path = Pathname(value);
387 else if ( entry ==
"metadatadir" )
389 cfg_metadata_path = Pathname(value);
391 else if ( entry ==
"solvfilesdir" )
393 cfg_solvfiles_path = Pathname(value);
395 else if ( entry ==
"packagesdir" )
397 cfg_packages_path = Pathname(value);
399 else if ( entry ==
"configdir" )
401 cfg_config_path = Pathname(value);
403 else if ( entry ==
"reposdir" )
405 cfg_known_repos_path = Pathname(value);
407 else if ( entry ==
"servicesdir" )
409 cfg_known_services_path = Pathname(value);
411 else if ( entry ==
"varsdir" )
413 cfg_vars_path = Pathname(value);
415 else if ( entry ==
"repo.add.probe" )
419 else if ( entry ==
"repo.refresh.delay" )
423 else if ( entry ==
"repo.refresh.locales" )
425 std::vector<std::string> tmp;
426 str::split( value, back_inserter( tmp ),
", \t" );
428 boost::function<Locale(const std::string &)> transform(
429 [](
const std::string & str_r)->
Locale{
return Locale(str_r); }
431 repoRefreshLocales.insert( make_transform_iterator( tmp.begin(), transform ),
432 make_transform_iterator( tmp.end(), transform ) );
434 else if ( entry ==
"download.use_deltarpm" )
436 download_use_deltarpm =
str::strToBool( value, download_use_deltarpm );
438 else if ( entry ==
"download.use_deltarpm.always" )
440 download_use_deltarpm_always =
str::strToBool( value, download_use_deltarpm_always );
442 else if ( entry ==
"download.media_preference" )
444 download_media_prefer_download.restoreToDefault(
str::compareCI( value,
"volatile" ) != 0 );
447 else if ( entry ==
"download.media_mountdir" )
449 download_mediaMountdir.restoreToDefault( Pathname(value) );
452 else if ( entry ==
"download.max_concurrent_connections" )
456 else if ( entry ==
"download.min_download_speed" )
460 else if ( entry ==
"download.max_download_speed" )
464 else if ( entry ==
"download.max_silent_tries" )
468 else if ( entry ==
"download.transfer_timeout" )
471 if ( download_transfer_timeout < 0 ) download_transfer_timeout = 0;
472 else if ( download_transfer_timeout > 3600 ) download_transfer_timeout = 3600;
474 else if ( entry ==
"commit.downloadMode" )
476 commit_downloadMode.set( deserializeDownloadMode( value ) );
478 else if ( entry ==
"gpgcheck" )
482 else if ( entry ==
"repo_gpgcheck" )
486 else if ( entry ==
"pkg_gpgcheck" )
490 else if ( entry ==
"vendordir" )
492 cfg_vendor_path = Pathname(value);
494 else if ( entry ==
"multiversiondir" )
496 cfg_multiversion_path = Pathname(value);
498 else if ( entry ==
"solver.focus" )
502 else if ( entry ==
"solver.onlyRequires" )
504 solver_onlyRequires.set(
str::strToBool( value, solver_onlyRequires ) );
506 else if ( entry ==
"solver.allowVendorChange" )
508 solver_allowVendorChange.set(
str::strToBool( value, solver_allowVendorChange ) );
510 else if ( entry ==
"solver.dupAllowDowngrade" )
512 solver_dupAllowDowngrade.set(
str::strToBool( value, solver_dupAllowDowngrade ) );
514 else if ( entry ==
"solver.dupAllowNameChange" )
516 solver_dupAllowNameChange.set(
str::strToBool( value, solver_dupAllowNameChange ) );
518 else if ( entry ==
"solver.dupAllowArchChange" )
520 solver_dupAllowArchChange.set(
str::strToBool( value, solver_dupAllowArchChange ) );
522 else if ( entry ==
"solver.dupAllowVendorChange" )
524 solver_dupAllowVendorChange.set(
str::strToBool( value, solver_dupAllowVendorChange ) );
526 else if ( entry ==
"solver.cleandepsOnRemove" )
528 solver_cleandepsOnRemove.set(
str::strToBool( value, solver_cleandepsOnRemove ) );
530 else if ( entry ==
"solver.upgradeTestcasesToKeep" )
532 solver_upgradeTestcasesToKeep.set( str::strtonum<unsigned>( value ) );
534 else if ( entry ==
"solver.upgradeRemoveDroppedPackages" )
536 solverUpgradeRemoveDroppedPackages.restoreToDefault(
str::strToBool( value, solverUpgradeRemoveDroppedPackages.getDefault() ) );
538 else if ( entry ==
"solver.checkSystemFile" )
540 solver_checkSystemFile = Pathname(value);
542 else if ( entry ==
"solver.checkSystemFileDir" )
544 solver_checkSystemFileDir = Pathname(value);
546 else if ( entry ==
"multiversion" )
551 else if ( entry ==
"locksfile.path" )
553 locks_file = Pathname(value);
555 else if ( entry ==
"locksfile.apply" )
559 else if ( entry ==
"update.datadir" )
561 update_data_path = Pathname(value);
563 else if ( entry ==
"update.scriptsdir" )
565 update_scripts_path = Pathname(value);
567 else if ( entry ==
"update.messagessdir" )
569 update_messages_path = Pathname(value);
571 else if ( entry ==
"update.messages.notify" )
573 updateMessagesNotify.set( value );
575 else if ( entry ==
"rpm.install.excludedocs" )
580 else if ( entry ==
"history.logfile" )
582 history_log_path = Pathname(value);
584 else if ( entry ==
"credentials.global.dir" )
586 credentials_global_dir_path = Pathname(value);
588 else if ( entry ==
"credentials.global.file" )
590 credentials_global_file_path = Pathname(value);
600 MIL << _parsedZyppConf <<
" not found, using defaults instead." << endl;
601 _parsedZyppConf = _parsedZyppConf.extend(
" (NOT FOUND)" );
605 if ( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) )
607 Arch carch( getenv(
"ZYPP_TESTSUITE_FAKE_ARCH" ) );
608 if ( carch != cfg_arch )
610 WAR <<
"ZYPP_TESTSUITE_FAKE_ARCH: Overriding system architecture (" << cfg_arch <<
"): " << carch << endl;
614 MIL <<
"ZConfig singleton created." << endl;
705 typedef std::map<Pathname,MultiversionSpec>
SpecMap;
713 if ( root_r.empty() )
715 bool cacheHit = _specMap.count( root_r );
721 ret.swap( _specMap[Pathname()] );
723 scanConfAt( root_r, ret, zConfImpl_r );
724 scanDirAt( root_r, ret, zConfImpl_r );
725 using zypp::operator<<;
726 MIL <<
"MultiversionSpec '" << root_r <<
"' = " << ret << endl;
732 {
return _specMap[Pathname()]; }
737 static const str::regex rx(
"^multiversion *= *(.*)" );
740 [&](
int num_r, std::string line_r )->
bool
755 if ( multiversionDir.empty() )
757 ? Pathname(
"/etc/zypp")
761 [&spec_r](
const Pathname & dir_r,
const char *
const & name_r )->
bool
763 MIL <<
"Parsing " << dir_r/name_r << endl;
765 [&spec_r](
int num_r, std::string line_r )->
bool
767 DBG <<
" found " << line_r << endl;
768 spec_r.insert( std::move(line_r) );
780 {
return _multiversionMap.getSpec( _autodetectSystemRoot(), *
this ); }
799 ZConfig & ZConfig::instance()
801 static ZConfig _instance;
825 {
return _autodetectSystemRoot(); }
835 static Arch _val( _autodetectSystemArchitecture() );
840 {
return _pimpl->cfg_arch; }
844 if ( arch_r !=
_pimpl->cfg_arch )
846 WAR <<
"Overriding system architecture (" <<
_pimpl->cfg_arch <<
"): " << arch_r << endl;
847 _pimpl->cfg_arch = arch_r;
859 static Locale _val( _autodetectTextLocale() );
864 {
return _pimpl->cfg_textLocale; }
868 if ( locale_r !=
_pimpl->cfg_textLocale )
870 WAR <<
"Overriding text locale (" <<
_pimpl->cfg_textLocale <<
"): " << locale_r << endl;
871 _pimpl->cfg_textLocale = locale_r;
872 #warning prefer signal
882 {
return !
_pimpl->userData.empty(); }
885 {
return _pimpl->userData; }
889 for_( ch, str_r.begin(), str_r.end() )
891 if ( *ch <
' ' && *ch !=
'\t' )
893 ERR <<
"New user data string rejectded: char " << (int)*ch <<
" at position " << (ch - str_r.begin()) << endl;
897 MIL <<
"Set user data string to '" << str_r <<
"'" << endl;
906 return (
_pimpl->cfg_cache_path.empty()
907 ? Pathname(
"/var/cache/zypp") :
_pimpl->cfg_cache_path );
912 return (
_pimpl->cfg_metadata_path.empty()
918 return (
_pimpl->cfg_solvfiles_path.empty()
924 return (
_pimpl->cfg_packages_path.empty()
932 return (
_pimpl->cfg_config_path.empty()
933 ? Pathname(
"/etc/zypp") :
_pimpl->cfg_config_path );
938 return (
_pimpl->cfg_known_repos_path.empty()
944 return (
_pimpl->cfg_known_services_path.empty()
950 return (
_pimpl->cfg_vars_path.empty()
956 return (
_pimpl->cfg_vendor_path.empty()
962 return (
_pimpl->locks_file.empty()
969 {
return _pimpl->repo_add_probe; }
972 {
return _pimpl->repo_refresh_delay; }
978 {
return _pimpl->repoLabelIsAlias; }
981 {
_pimpl->repoLabelIsAlias = yesno_r; }
984 {
return _pimpl->download_use_deltarpm; }
990 {
return _pimpl->download_media_prefer_download; }
993 {
_pimpl->download_media_prefer_download.set( yesno_r ); }
996 {
_pimpl->download_media_prefer_download.restoreToDefault(); }
999 {
return _pimpl->download_max_concurrent_connections; }
1002 {
return _pimpl->download_min_download_speed; }
1005 {
return _pimpl->download_max_download_speed; }
1008 {
return _pimpl->download_max_silent_tries; }
1011 {
return _pimpl->download_transfer_timeout; }
1018 {
return _pimpl->commit_downloadMode; }
1036 {
return _pimpl->solver_onlyRequires; }
1039 {
return _pimpl->solver_allowVendorChange; }
1047 {
return _pimpl->solver_cleandepsOnRemove; }
1050 {
return (
_pimpl->solver_checkSystemFile.empty()
1054 {
return (
_pimpl->solver_checkSystemFileDir.empty()
1058 {
return _pimpl->solver_upgradeTestcasesToKeep; }
1066 inline void sigMultiversionSpecChanged()
1079 {
return _pimpl->apply_locks_file; }
1083 return (
_pimpl->update_data_path.empty()
1084 ? Pathname(
"/var/adm") :
_pimpl->update_data_path );
1089 return (
_pimpl->update_messages_path.empty()
1095 return (
_pimpl->update_scripts_path.empty()
1100 {
return _pimpl->updateMessagesNotify; }
1103 {
_pimpl->updateMessagesNotify.set( val_r ); }
1106 {
_pimpl->updateMessagesNotify.restoreToDefault(); }
1111 {
return _pimpl->rpmInstallFlags; }
1116 return (
_pimpl->history_log_path.empty() ?
1117 Pathname(
"/var/log/zypp/history") :
_pimpl->history_log_path );
1122 return (
_pimpl->credentials_global_dir_path.empty() ?
1123 Pathname(
"/etc/zypp/credentials.d") :
_pimpl->credentials_global_dir_path );
1128 return (
_pimpl->credentials_global_file_path.empty() ?
1129 Pathname(
"/etc/zypp/credentials.cat") :
_pimpl->credentials_global_file_path );
1135 {
return "redhat-release"; }
1140 {
return _pimpl->pluginsPath.get(); }
1146 str <<
"libzypp: " << VERSION << endl;
1148 str <<
"libsolv: " << solv_version;
1149 if ( ::strcmp( solv_version, LIBSOLV_VERSION_STRING ) )
1150 str <<
" (built against " << LIBSOLV_VERSION_STRING <<
")";
1153 str <<
"zypp.conf: '" <<
_pimpl->_parsedZyppConf <<
"'" << endl;
bool solver_dupAllowNameChange() const
DUP tune: Whether to follow package renames upon DUP.
TriBool strToTriBool(const C_Str &str)
Parse str into a bool if it's a legal true or false string; else indterminate.
unsigned splitEscaped(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", bool withEmpty=false)
Split line_r into words with respect to escape delimeters.
std::map< Pathname, MultiversionSpec > SpecMap
static Locale defaultTextLocale()
The autodetected prefered locale for translated texts.
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)
Pathname solver_checkSystemFileDir() const
Directory, which may or may not contain files in which dependencies described which has to be fulfill...
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
MultiversionSpec & multiversion()
std::string distroverpkg() const
Package telling the "product version" on systems not using /etc/product.d/baseproduct.
void scanDirAt(const Pathname root_r, MultiversionSpec &spec_r, const Impl &zConfImpl_r)
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.
void setDefault(const value_type &newval_r)
Set a new default value.
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)
ResolverFocus
The resolvers general attitude.
Pathname repoCachePath() const
Path where the caches are kept (/var/cache/zypp)
LocaleSet repoRefreshLocales
Option< bool > solver_dupAllowVendorChange
Pathname credentialsGlobalFile() const
Defaults to /etc/zypp/credentials.cat.
Pathname cfg_metadata_path
void restoreToDefault()
Reset value to the current default.
void removeMultiversionSpec(const std::string &name_r)
Pathname varsPath() const
Path containing custom repo variable definitions (configPath()/vars.d).
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.
Request the standard behavior (as defined in zypp.conf or 'Job')
std::set< std::string > MultiversionSpec
void set_download_mediaMountdir(Pathname newval_r)
Set alternate value.
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.
MultiversionSpec & getDefaultSpec()
Option(const value_type &initial_r)
No default ctor, explicit initialisation!
const value_type & getDefault() const
Get the current default value.
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.
void set_default_download_mediaMountdir()
Reset to zypp.cong default.
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
bool solver_dupAllowVendorChange() const
DUP tune: Whether to allow package vendor changes upon DUP.
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.
DefaultOption< Pathname > download_mediaMountdir
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
DefaultOption< bool > download_media_prefer_download
MultiversionMap _multiversionMap
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
unsigned split(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t")
Split line_r into words.
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.
libzypp will decide what to do.
TriBool pkgGpgCheck() const
Check rpm package signatures (indeterminate - according to gpgcheck)
ResolverFocus solver_focus() const
The resolvers general attitude when resolving jobs.
Pathname cfg_packages_path
section_const_iterator sectionsBegin() const
void scanConfAt(const Pathname root_r, MultiversionSpec &spec_r, const Impl &zConfImpl_r)
value_type & ref()
Non-const reference to set a new value.
TInt strtonum(const C_Str &str)
Parsing numbers from string.
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)
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
Pathname download_mediaMountdir() const
Path where media are preferably mounted or downloaded.
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).
Pathname repoSolvfilesPath() const
Path where the repo solv files are created and kept (repoCachePath()/solv).
static PoolImpl & myPool()
Pathname repoPackagesPath() const
Path where the repo packages are downloaded and kept (repoCachePath()/packages).
bool fromString(const std::string &val_r, ResolverFocus &ret_r)
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).
long download_max_silent_tries() const
Maximum silent tries.
bool download_use_deltarpm_always
int compareCI(const C_Str &lhs, const C_Str &rhs)
bool solver_dupAllowArchChange() const
DUP tune: Whether to allow package arch changes upon DUP.
bool solver_allowVendorChange() const
Whether vendor check is by default enabled.
bool solver_onlyRequires() const
Solver regards required packages,patterns,...
'Language[_Country]' codes.
Option< Pathname > pluginsPath
Impl(const Pathname &override_r=Pathname())
Parses a INI file and offers its structure as a dictionary.
MultiversionSpec & getMultiversion() const
static Arch defaultSystemArchitecture()
The autodetected system architecture.
Regular expression match result.
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
Option< bool > solver_dupAllowNameChange
const std::set< std::string > & multiversionSpec() const
Pathname solver_checkSystemFile
void set(const value_type &newval_r)
Set a new value.
target::rpm::RpmInstFlags rpmInstallFlags() const
The default target::rpm::RpmInstFlags for ZYppCommitPolicy.
Option< bool > solver_onlyRequires
const MultiversionSpec & multiversion() const
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...
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.
void setSolverUpgradeRemoveDroppedPackages(bool val_r)
Set solverUpgradeRemoveDroppedPackages to val_r.
bool regex_match(const std::string &s, smatch &matches, const regex ®ex)
regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX
int download_min_download_speed
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
ResolverFocus solver_focus
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
void setPkgGpgCheck(TriBool val_r)
Change the value.
LocaleSet requestedLocales() const
Languages to be supported by the system.
DefaultOption< bool > solverUpgradeRemoveDroppedPackages
void restoreToDefault(const value_type &newval_r)
Reset value to a new default.
section_const_iterator sectionsEnd() const
long download_max_concurrent_connections() const
Maximum number of concurrent connections for a single transfer.
bool solver_dupAllowDowngrade() const
DUP tune: Whether to allow version downgrades upon DUP.
bool hasPrefix(const C_Str &str_r, const C_Str &prefix_r)
Return whether str_r has prefix prefix_r.
std::unordered_set< Locale > LocaleSet
Option< bool > solver_dupAllowArchChange
MultiversionSpec & getSpec(Pathname root_r, const Impl &zConfImpl_r)
Option< bool > solver_dupAllowDowngrade
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.
void multiversionSpecChanged()
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
DefaultOption(const value_type &initial_r)