girar-nmu-sort-transaction(1)

girar-nmu-sort-transaction(1) girar-nmu utils girar-nmu-sort-transaction(1)

NAME

girar-nmu-sort-transaction - calculate an order to build a transaction.

SYNOPSIS

girar-nmu-sort-transaction [-h, --help] [--cycle-format name|file|path] [--cycle-prefix string] [--debug] [--format name|file|path] [--ignore-extra-rpms|--no-ignore-extra-rpms] [--ignore-extra-srpms|--no-ignore-extra-srpms] [--ignore-debuginfo|--no-ignore-debuginfo] [--ignore-core|--no-ignore-core] [--ignore-ambiguous-provides] [--ignore-missing-srpm-names] [--mark-req-regexp pcre regexp] [--rpm-files-transaction file] [--rpm-names-transaction file] [--srpm-files-transaction file] [--srpm-names-transaction file] [--mark-all-rpm-of-srpm] [--mark-all-srpm-of-rpm] [--add-textid-relations-from file] [--del-textid-relations-from file] [--add-filename-relations-from file] [--del-filename-relations-from file] [--cycle-break-through-unmarked] [-q|--quiet] [-v|--verbose] [-o|--output file] <context of the transaction: the list of src.rpms and binary rpms built from the src.rpms or/and the list of directories containing those rpms>

DESCRIPTION

girar-nmu-sort-transaction sorts packages of the transaction into the build order according to their dependencies; finds circular dependencies that are obstacles to replacement transaction.

The main arguments to the utility are transaction and context. Context is the set of packages that provide the net of dependencies. It is failsafe to provide the whole repository as the context. Use the smaller contexts on your own risk.

Transaction is the subset of context that should be sorted according to the order generated by BuildRequires and Requires.

Mark the transaction using --mark-req-regexp option or --(srpm|rpm)-(files|names)-transaction file option.

OPTIONS

-h, --help
Display this help and exit.
-v, --verbose, -q, --quiet
Verbosity level. Multiple -v increase the verbosity level, -q sets it to 0. Default is 1.
-o, --output filename
Output file.
--format name
Output file format. One of: name, file, path.

name prints rpm name; file prints rpm filename; path prints rpm filename with path.

--cycle-format name
Cycle information files format. One of: name, file, path.
--cycle-prefix name
Prefix for cycle information files.
--debug
Debug mode. Data is collected, but data procession is left to user. Also, auxilliary text files are created that help deciphering gathered data. The auxilliary text files names end with '2'.
--ignore-extra-rpms, --no-ignore-extra-rpms
Ignore/do not ignore binary rpms that have no corresponding source counterparts. Default is die on first occurence of mon-matched rpm (--no-ignore-extra-rpms).
--ignore-extra-srpms, --no-ignore-extra-srpms
Ignore/do not ignore source rpms that have no corresponding binary counterparts. Default is ignore.
[--ignore-missing-srpm-names]
Ignore srpm names not found in current reposit
--mark-req-regexp pcre regexp
Marks some binary and source rpms as part of the transaction according to regexp. For example, --mark-req-regexp '^libperl\.so\.5\.8' will mark binary rpms that depend on libperl.so.5.8* and their source rpms. Beware of special symbols in regexp! you have to quote `.',`+', and so on. For example, for libstdc++.so.6 regexp will be '^libstdc\+\+\.so\.6'.

Alternatively, use --(s)rpm-(files|names)-transaction file options to mark transaction rpms and srpms explicitly.

--(s)rpm-(files|names)-transaction file
--rpm-files-transaction file --rpm-names-transaction file --srpm-files-transaction file --srpm-names-transaction file

Alternatively, use --mark-req-regexp pcre regexp to mark transaction rpms implicitly based on regexp on their Requires:.

--mark-all-rpm-of-srpm, --mark-all-srpm-of-rpm
Instead of providing both --rpm-(names|files)-transaction and --srpm-(names|files)-transaction you can provide just one of them and then --mark-all-rpm-of-srpm or --mark-all-srpm-of-rpm.
--buildfrom-none
Don not set "build from" relation.
--buildfrom-srpm-marked, --no-buildfrom-srpm-marked
If there are marked packages, set "build from" relation only if src.rpm is marked (default).
--buildfrom-rpm-marked, --no-buildfrom-rpm-marked
If there are marked packages, set "build from" relation only if binary rpm is marked.
--buildreq-srpm-marked, --no-buildreq-srpm-marked
If there are marked packages, set "buildrequires" relation only if source rpm is marked.
--use-file-provides, --no-use-file-provides
Resolve/do not resolve requires using the list of files in the package. Default is --use-file-provides. Disable it if uou are sure it is harmless to save some time.
--add/del-textid/filename-relations-from file
Those options allow correction of the set of relations. file contains pairs of packages in relation, a pair per line. --add-textid-relations-from file, --del-textid-relations-from file use internal TextIds (%{NAME} for src.rpm and %{NAME}.%{ARCH} for binary rpms) and --add-filename-relations-from file, --del-filename-relations-from file use rpm file names (as returned by basename(1) ).
--ignore-ambiguous-provides
A hack; some 'Provides' are provided by multiple packages, so sometimes ignoring them will improve build order.
--cycle-break-through-unmarked
A hack; try to resolve cycles assuming that cycle dependencies outside of the transaction are harmless and are safe to drop.
--ignore-core|--no-ignore-core
A hack; ignore some basesystem srpms and rpms (glibc,binutils,etc...) Enabed by default. Disable if you need to include them into transaction.
--whobuildreq
'whobuildreq' mode. Instead of sorting transaction, calculates packages who BuildRequires marked package(s).

AUTHOR

Written by Igor Vlasenko <viy@altlinux.org>.

COPYING

Copyright (c) 2010-2015 Igor Vlasenko, ALT Linux Team.

This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

2023-11-08 2.015.3