User:Baard/Yum Emerge

From FedoraProject

Jump to: navigation, search
This is a draft

Contents

The Goal

For appliance operating systems rebuilding RPMs with modified capabilities and dependencies is mandatory.

The idea is to rebuild SRPMs on the fly, and modify them just before dispatching a mock or koji build for said SRPMs, so that the resulting binary RPM only links against libfoo.so but not libbar.so.

This allows for truely optimized binaries to be installed on the consumer side, but primarily allows for true appliance .rom based operating systems.

Brief Overview

A brief, general overview of the process of emerging a SRPM into a modified binary RPM being installed on the actual system.

The user types:

# yum emerge foo

The process continues with:

Things to worry about

Things to worry about include, and are not limited to:

The end-result should be a proper, closed RPMDB with no missing dependencies or false provides, while runtime has modified binary versions of the packages installed.

Interested People

Means

Milestones in pursuing this endeavour

Milestone #1

First, write a yum plugin that does the following:

Milestone #2

Milestone #3

Milestone #4

Milestone #5

Milestone #6

Milestone #7

Oneliners

A couple of one-liners you do not want to execute unless you have a shower to take or a cup of coffee to make ;-)

Find required packages using a spec file (given a sub-package)

This is an example to find the packages required by the wireshark package (which has the wireshark-gnome as a sub-package) directly (e.g. non-recursive dependencies)

rpmquery --specfile --qf="%{NAME}\n" wireshark.spec | grep -E "^wireshark$" | xargs -n 1 -I{} repoquery --requires --qf="%{NAME}\n" "{}" | xargs -n 1 -I{} repoquery --whatprovides --qf="%{NAME}\n" "{}" | sort | uniq