Chrismurphy (talk | contribs) mNo edit summary |
Chrismurphy (talk | contribs) No edit summary |
||
Line 54: | Line 54: | ||
<code>/var/lib/rpm</code> will be a symlink pointing to <code>/usr/lib/sysimage/rpm</code> | <code>/var/lib/rpm</code> will be a symlink pointing to <code>/usr/lib/sysimage/rpm</code> | ||
Changing the file system layout to accommodate a snapshot+rollback regime is implied, but not required by this proposal. For example, Fedora has long placed `/home` on a separate subvolume (or file system) so it can be isolated from system root. Likewise, it makes sense to isolate `/var/log` and possibly `/var/lib/libvirt/images` so these locations continue to carry forward in time, even if the system root does a rollback. | |||
== Feedback == | == Feedback == | ||
Line 60: | Line 61: | ||
Upstream RPM accept the change, but institutionally don't like the loss or weakening of a [http://lists.rpm.org/pipermail/rpm-ecosystem/2021-December/000781.html very well known location] for the database, and [http://lists.rpm.org/pipermail/rpm-ecosystem/2021-December/000781.html anticipate complaints]. | Upstream RPM accept the change, but institutionally don't like the loss or weakening of a [http://lists.rpm.org/pipermail/rpm-ecosystem/2021-December/000781.html very well known location] for the database, and [http://lists.rpm.org/pipermail/rpm-ecosystem/2021-December/000781.html anticipate complaints]. | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
* The RPM | * The RPM database primarily describes the state of `/usr`. Storing the databases in `/usr` will more easily facilitate OS rollback, without affecting `/var`. | ||
* Helps align Fedora variants with each other | * Helps align Fedora variants with each other | ||
Line 71: | Line 71: | ||
* Consistency with another RPM-based distro, (open)SUSE has made this change | * Consistency with another RPM-based distro, (open)SUSE has made this change | ||
* Accounts for various snapshot+rollback regimes, i.e. it's a beneficial change whether Btrfs or device-mapper based regimes. | |||
== Scope == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
** changes in rpm | ** changes in rpm package | ||
*** create the new path | *** create the new path | ||
*** create | *** create a symlink for the old path pointing to new path | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
Line 94: | Line 96: | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? --> | <!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? --> | ||
Change will be applied | Change will not be applied to upgrades. | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 133: | Line 135: | ||
--> | --> | ||
Users will notice: | Users will notice: | ||
* | * symlink in the old locations for the databases, pointing to the new location | ||
Otherwise, the change should be invisible to users. | Otherwise, the change should be invisible to users. |
Revision as of 17:14, 28 December 2021
Relocate RPM database to /usr
Summary
Currently, the RPM databases is located in /var
. Let's move it to /usr
. The move is already under way in rpm-ostree-based installations, and in (open)SUSE.
Owner
- Name: Chris Murphy
- Email: chrismurphy@fedoraproject.org
- Name: Michel Alexandre Salim
- Email: salimma@fedoraproject.org
Current status
- Targeted release: Fedora Linux 36
- Last updated: 2021-12-28
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Current location
/var/lib/rpm
New location
/usr/lib/sysimage/rpm
The proposal is to apply the new location only to new clean installs only. It will not apply to upgrades.
/var/lib/rpm
will be a symlink pointing to /usr/lib/sysimage/rpm
Changing the file system layout to accommodate a snapshot+rollback regime is implied, but not required by this proposal. For example, Fedora has long placed /home
on a separate subvolume (or file system) so it can be isolated from system root. Likewise, it makes sense to isolate /var/log
and possibly /var/lib/libvirt/images
so these locations continue to carry forward in time, even if the system root does a rollback.
Feedback
There will be no change to DNF as part of this change proposal. DNF's history will remain in /var
until DNF 5. Discussion continues about the effect of a snapshot+rollback regime on DNF history. Relocate DNF history to /usr.
Upstream RPM accept the change, but institutionally don't like the loss or weakening of a very well known location for the database, and anticipate complaints.
Benefit to Fedora
- The RPM database primarily describes the state of
/usr
. Storing the databases in/usr
will more easily facilitate OS rollback, without affecting/var
.
- Helps align Fedora variants with each other
- rpm-ostree based systems (including CoreOS, IoT, Silverblue, Kinoite) already use
/usr/lib/sysimage
for rpmdb.
- rpm-ostree based systems (including CoreOS, IoT, Silverblue, Kinoite) already use
- Consistency with another RPM-based distro, (open)SUSE has made this change
- Accounts for various snapshot+rollback regimes, i.e. it's a beneficial change whether Btrfs or device-mapper based regimes.
Scope
- Proposal owners:
- changes in rpm package
- create the new path
- create a symlink for the old path pointing to new path
- changes in rpm package
- Other developers:
- changes in SElinux policy
- Release engineering: #Releng issue 10441
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives:
Upgrade/compatibility impact
Change will not be applied to upgrades.
How To Test
- Clean install or upgrade an existing Fedora system
- Note the changed database paths (new location) and symlinks in the old location
- Check that
rpm
anddnf
commands work as expected, e.g.
dnf history rpm -qa
User Experience
Users will notice:
- symlink in the old locations for the databases, pointing to the new location
Otherwise, the change should be invisible to users.
Dependencies
rpm-ostree
probably should make/usr/share/rpm
a symlink to/usr/lib/sysimage/rpm
, rather than the reverse as it is currently.PackageKit
might use inotify on/var/lib/rpm
need to check if it does and whether it should be changed or add the additional path
Contingency Plan
- Contingency mechanism: Revert the change, try again the next Fedora release.
- Contingency deadline: Beta freeze
- Blocks release? Yes