{"name", required_argument, 0, 'n'},
{"keep-packages", no_argument, 0, 'k'},
{"no-keep-packages", no_argument, 0, 'K'},
+ {"gpgcheck", no_argument, 0, 'g'},
+ {"no-gpgcheck", no_argument, 0, 'G'},
{"refresh", no_argument, 0, 'f'},
{0, 0, 0, 0}
};
"-n, --name <name> Specify descriptive name for the repository.\n"
"-k, --keep-packages Enable RPM files caching.\n"
"-K, --no-keep-packages Disable RPM files caching.\n"
+ "-g, --gpgcheck Enable GPG check for this repository.\n"
+ "-G, --no-gpgcheck Disable GPG check for this repository.\n"
"-f, --refresh Enable autorefresh of the repository.\n"
), "yast2, rpm-md, plaindir");
break;
{"priority", required_argument, 0, 'p'},
{"keep-packages", no_argument, 0, 'k'},
{"no-keep-packages", no_argument, 0, 'K'},
+ {"gpgcheck", no_argument, 0, 'g'},
+ {"no-gpgcheck", no_argument, 0, 'G'},
{"all", no_argument, 0, 'a' },
{"local", no_argument, 0, 'l' },
{"remote", no_argument, 0, 't' },
"-p, --priority <integer> Set priority of the repository.\n"
"-k, --keep-packages Enable RPM files caching.\n"
"-K, --no-keep-packages Disable RPM files caching.\n"
+ "-g, --gpgcheck Enable GPG check for this repository.\n"
+ "-G, --no-gpgcheck Disable GPG check for this repository.\n"
"\n"
"-a, --all Apply changes to all repositories.\n"
"-l, --local Apply changes to all local repositories.\n"
else if (copts.count("no-keep-packages"))
keep_pkgs = false;
+ TriBool gpgCheck;
+ if (copts.count("gpgcheck"))
+ gpgCheck = true;
+ else if (copts.count("no-gpgcheck"))
+ gpgCheck = false;
+
try
{
// add repository specified in .repo file
if (copts.count("repo"))
{
- add_repo_from_file(*this,copts["repo"].front(), enabled, autorefresh, keep_pkgs);
+ add_repo_from_file(*this,copts["repo"].front(), enabled, autorefresh, keep_pkgs, gpgCheck);
return;
}
else
{
initRepoManager();
- add_repo_from_file(*this,_arguments[0], enabled, autorefresh, keep_pkgs);
+ add_repo_from_file(*this,_arguments[0], enabled, autorefresh, keep_pkgs, gpgCheck);
break;
}
case 2:
init_target(*this);
add_repo_by_url(
- *this, url, _arguments[1]/*alias*/, type, enabled, autorefresh, keep_pkgs);
+ *this, url, _arguments[1]/*alias*/, type, enabled, autorefresh, keep_pkgs, gpgCheck);
return;
}
}
s << _("Enabled") << ": " << (repo.enabled() ? _("Yes") : _("No")) << endl;
// TranslatorExplanation used as e.g. "Autorefresh: Yes"
s << _("Autorefresh") << ": " << (repo.autorefresh() ? _("Yes") : _("No")) << endl;
+ // TranslatorExplanation used as e.g. "GPG check: Yes"
+ s << _("GPG check") << ": " << (repo.gpgCheck() ? _("Yes") : _("No")) << endl;
if (!repo.baseUrlsEmpty())
{
void add_repo_by_url( Zypper & zypper,
const zypp::Url & url, const string & alias,
const string & type,
- TriBool enabled, TriBool autorefresh, TriBool keepPackages)
+ TriBool enabled, TriBool autorefresh, TriBool keepPackages, TriBool gpgCheck)
{
MIL << "going to add repository by url (alias=" << alias << ", url=" << url
<< ")" << endl;
if ( !indeterminate(keepPackages) )
repo.setKeepPackages(keepPackages);
+ if ( !indeterminate(gpgCheck) )
+ repo.setGpgCheck(gpgCheck);
+
add_repo(zypper, repo);
}
void add_repo_from_file( Zypper & zypper,
const std::string & repo_file_url, TriBool enabled,
- TriBool autorefresh, TriBool keepPackages)
+ TriBool autorefresh, TriBool keepPackages, TriBool gpgCheck)
{
Url url = make_url(repo_file_url);
if (!url.isValid())
if ( !indeterminate(keepPackages) )
repo.setKeepPackages(keepPackages);
+ if ( !indeterminate(gpgCheck) )
+ repo.setGpgCheck(gpgCheck);
+
MIL << "to-be-added: enabled: " << repo.enabled() << " autorefresh: " << repo.autorefresh() << endl;
add_repo(zypper, repo);
zypper, "keep-packages", "no-keep-packages");
DBG << "keepPackages = " << keepPackages << endl;
+ tribool gpgCheck = get_boolean_option(
+ zypper, "gpgcheck", "no-gpgcheck");
+ DBG << "gpgCheck = " << gpgCheck << endl;
+
try
{
RepoManager & manager = zypper.repoManager();
bool changed_autoref = false;
bool changed_prio = false;
bool changed_keeppackages = false;
+ bool changed_gpgcheck = false;
if (!indeterminate(enable))
{
repo.setKeepPackages(keepPackages);
}
+ if (!indeterminate(gpgCheck))
+ {
+ if (gpgCheck != repo.gpgCheck())
+ changed_gpgcheck = true;
+ repo.setGpgCheck(gpgCheck);
+ }
+
long long prio = 0;
parsed_opts::const_iterator tmp1;
if ((tmp1 = zypper.cOpts().find("priority")) != zypper.cOpts().end())
}
if (chnaged_enabled || changed_autoref || changed_prio
- || changed_keeppackages || !name.empty())
+ || changed_keeppackages || changed_gpgcheck || !name.empty())
{
manager.modifyRepository(alias, repo);
_("RPM files caching has been disabled for repository '%s'.")) % alias));
}
+ if (changed_gpgcheck)
+ {
+ if (repo.gpgCheck())
+ zypper.out().info(boost::str(format(
+ _("GPG check has been enabled for repository '%s'.")) % alias));
+ else
+ zypper.out().info(boost::str(format(
+ _("GPG check has been disabled for repository '%s'.")) % alias));
+ }
+
if (changed_prio)
{
zypper.out().info(boost::str(format(
const std::string & type = "",
zypp::TriBool enabled = boost::indeterminate,
zypp::TriBool autorefresh = boost::indeterminate,
- zypp::TriBool keepPackages = boost::indeterminate);
+ zypp::TriBool keepPackages = boost::indeterminate,
+ zypp::TriBool gpgCheck = boost::indeterminate);
/**
* Add repository specified in given repo file on \a repo_file_url. All repos
const std::string & repo_file_url,
zypp::TriBool enabled = boost::indeterminate,
zypp::TriBool autorefresh = boost::indeterminate,
- zypp::TriBool keepPackages = boost::indeterminate);
+ zypp::TriBool keepPackages = boost::indeterminate,
+ zypp::TriBool gpgCheck = boost::indeterminate);
/**