pungi/pungi
Lubomír Sedlář ba0193ca28 gather: Add a hybrid depsolver backend
This patch adds a new gather method called `hybrid`, which uses a `fus`
binary, which must exist somewhere on the `$PATH`. It will call it
multiple times to add multilib packages.

The solver can handle packages, modules and comps groups as input.
However comps groups are never passed in. Pungi will expand it to a list
of packages to avoid issues with comps handling in fus. It ignores
optional packages, and if the group mentions a package that does not
exist, nothing else from the group is included.

Multilib is also handled outside of fus. Pungi will run it, parse the
packages from output, determines multilib packages and adds them as
input. Then it runs the solver again. This is done until nothing new is
added. Usually two passes should be enough.

Source packages and debuginfo are added as a final step. All debuginfo
packages from any included source are added. If the source or debuginfo
package is included in any lookaside repo, it will be skipped.

The tool expects to get a platform stream that should be provided for
modules to depend on. Pungi looks into the modules and gets the platform
from there. If there are more requests, an error is raised.

There is some missing functionality and options that are ignored.
Particularly these are:

 * gather_fulltree
 * gather_selfhosting
 * greedy_method

Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
2018-07-16 10:21:41 +02:00
..
compose_metadata Remove FSF address from comments 2016-09-23 10:26:43 +02:00
ostree ostree: Always substitute basearch 2018-03-21 15:37:15 +01:00
phases gather: Add a hybrid depsolver backend 2018-07-16 10:21:41 +02:00
wrappers gather: Add a hybrid depsolver backend 2018-07-16 10:21:41 +02:00
__init__.py Move Modulemd import to pungi/__init__.py to remove duplicated code. 2018-03-20 12:59:17 +01:00
arch.py arch: Drop mapping ppc64 -> ppc64p7 2018-05-16 16:25:58 +02:00
arch_utils.py Remove useless shebang 2018-02-20 10:13:09 +01:00
checks.py gather: Add a hybrid depsolver backend 2018-07-16 10:21:41 +02:00
common.py Remove FSF address from copyright headers 2017-03-24 09:24:48 +01:00
compose.py createrepo: Allow disabling SQLite database 2018-05-21 08:13:29 +02:00
config.py remove the dependency of rpmUtils 2017-07-26 11:23:16 +02:00
createiso.py Stop using deprecated pipes.quote 2017-10-24 15:15:31 +02:00
dnf_wrapper.py gather: Ignore comps in lookaside repo 2018-06-08 13:32:24 +02:00
gather.py gather(yum): Don't exclude packages from lookaside 2017-09-12 08:38:08 +02:00
gather_dnf.py gather: Stop pulling debuginfo and source for lookaside packages 2018-04-19 08:26:42 +02:00
graph.py Variant as a lookaside - configuration 2018-04-13 14:14:43 +02:00
ks.py Write package whitelist for each variant 2018-03-08 14:29:23 +01:00
linker.py Remove FSF address from comments 2016-09-23 10:26:43 +02:00
media_split.py Include phase name in log for some phases 2016-11-23 16:47:22 +08:00
metadata.py buildinstall: Fix treeinfo generating on failure 2018-01-17 13:57:49 +01:00
multilib_dnf.py Port to Python 3 2017-10-24 15:15:31 +02:00
multilib_yum.py Use pungi.util.pkg_is_debug() instead of pungi.gather.is_debug() 2017-07-26 23:18:15 +02:00
notifier.py notification: Add more info into the messages 2017-10-31 11:11:04 +01:00
pathmatch.py Remove FSF address from comments 2016-09-23 10:26:43 +02:00
paths.py gather: Add a hybrid depsolver backend 2018-07-16 10:21:41 +02:00
profiler.py gather: Print profiling information to stderr 2018-04-25 14:21:09 +02:00
util.py Expand version field during image_build using version_generator 2018-07-09 12:56:00 +02:00