From Fedora Project Wiki

Revision as of 16:00, 2 May 2019 by Bcotton (talk | contribs) (Submitted to FESCo https://pagure.io/fesco/issue/2125)

Set skip_if_unavailable default to false

Summary

Dnf team wants to change a default setting for the repo option skip_if_unavailable to FALSE.

Owner

Current status

  • Targeted release: Fedora 31
  • Last updated: 2019-05-02
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Dnf team wants to change a default setting for the repo option skip_if_unavailable to FALSE. The option is responsible for behavior when metadata of a repository is unavailable. When it is set to false, it will stop on the first unavailable repository with raising an error. The default behavior could be overwritten by a configuration of each repository or in dnf by configuration in /etc/dnf/dnf.conf.

The behavior is not new, because it was used already by YUM, and the behavior is really essential because all Fedora ropos are already shipped with skip_if_unavailable=FALSE.

The change will be applied in libdnf library, and the changed behavior will be visible for all direct and indirect users of the library: dnf, microdnf, PackageKit, ... .

Benefit to Fedora

It should provide a better security because some Important updates from third-party repositories could be present in temporary unavailable repository, but user can easily overlook it during dnf update because the issue is reported as a warning.

Scope

  • Other developers: N/A (not a System Wide Change)
  • Release engineering: #8307 (a check of an impact with Release Engineering is needed)
  • Policies and guidelines: N/A
  • Trademark approval: not needed for this Change

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

Edit .repo file in /etc/yum.repos.d/* and set an url that is not accessible.

Case 1: No skip_if_unavailable in the repo file, in /etc/dnf/dnf.conf or overwritten from commandline using --setopt. Any command that requires available repositories like dnf repoquery will fail due to an error Error: Failed to synchronize cache for repo '<repo_ID>'

Case 2: Set skip_if_unavailable=true in the repo file. Any command that requires available repositories like dnf repoquery will not fail due to missing metadata of the <repo_id>

User Experience

Broken repositories are recognized early, enabling the users to act upon them by double-checking their repository configuration or filing bugs, instead of assuming no upgrades are available.


Dependencies

Depend packages - dnf, microdnf, PackageKit

There are no changes on which completion of this change depends.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)

The change requires a merge and a release of the pull-request https://github.com/rpm-software-management/libdnf/pull/701

  • Contingency deadline: N/A (not a System Wide Change)

Should be delivered before 2019-07-24.

  • Blocks release? N/A (not a System Wide Change), Yes/No

No

  • Blocks product? product

No

Documentation

https://dnf.readthedocs.io/en/latest/conf_ref.html

Update for documentation: https://github.com/rpm-software-management/dnf/pull/1358

Release Notes