Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1857732 - [rfe] reduce DNF stack footprint
Summary: [rfe] reduce DNF stack footprint
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: dnf-community
TreeView+ depends on / blocked
 
Reported: 2020-07-16 13:01 UTC by Lubos Kocman
Modified: 2020-08-13 22:38 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Lubos Kocman 2020-07-16 13:01:22 UTC
Description of problem:

SUSE received a community feature request to consider using DNF for openSUSE Leap Next, therefore SLE Next as well (Future Leap is planned to be based on SLE binaries).

Update on the feature request will be part of Release Engineering meeting minutes (weekly on Wednesdays).
https://etherpad.opensuse.org/p/ReleaseEngineering-20200722
About SLE community feature requests: https://en.opensuse.org/Portal:Leap/SLEFeatureRequests

Response from SLE Architect:
The current dnf implementation cannot be used as zypper replacement. The installed footprint is too "fat". A full blown zypper stack adds 56MB to the system, the minimal dnf stack (without dnf-plugins-core) adds 112MB to the system and requires Python. With Python's less than ideal compatibility guarantees (compatibility is only assured at X.Y.* level, and X.* versions are not compatible at the filesystem level, necessitating rebuilds and transitions), we want to avoid Python in the minimal core base OS used to construct our platforms (MicroOS, Kubic, etc.).

Because of that large footprint, we would still need something smaller for base containers, embedded systems, Edge, Container Host OS and similar products. With the current state of things, that would necessitate maintaining two package manager stacks, which is not desirable.

But we should work together with the DNF team to make DNF 5 a good candidate by solving our problems, especially the massive Python dependencies. Having one tool with a big community would make many things much easier.

The RFE:

The current zypper installation footprint is 56 MB on top of a minimal core.

I'm not sure if this is achievable with python, but the dnf installation footprint needs to be comparable with zypper. Standard functionality like installing, updating or de-installing RPMs should be possible without the need for python.

Comment 1 Lubos Kocman 2020-07-16 13:18:52 UTC
Footprint from Neal Gompa:

$ sudo dnf --installroot="$PWD/test" --setopt=install_weak_deps=False --nodocs install microdnf
$ sudo tar czvf opensuse-microdnf.tar.gz test/
$ ls -hal opensuse-microdnf.tar.gz
-rw-r--r--. 1 root   root    49M Jul 16 09:01 opensuse-microdnf.tar.gz

Comment 2 Lubos Kocman 2020-07-16 13:19:50 UTC
Used repos can be seen here https://build.opensuse.org/request/show/820011

Comment 3 Neal Gompa 2020-07-16 13:22:06 UTC
I did one extra step before tarring up, and that was purging some cache/tmp files:

$ sudo rm -rf test/var/cache/dnf/* test/tmp/*


Note You need to log in before you can comment on or make changes to this bug.