Mailinglist Archive: opensuse-features (542 mails)

< Previous Next >
[openFATE 310492] Integrate quilt with osc
  • From: fate_noreply@xxxxxxx
  • Date: Fri, 17 Dec 2010 15:16:33 +0100 (CET)
  • Message-id: <feature-310492-3@xxxxxxxxxxxxxx>
Feature changed by: Sascha Peilicke (saschpe)
Feature #310492, revision 3
Title: Integrate quilt with osc

Buildservice: New
Requester: Important

Requested by: Adrian Schröter (adriansuse)
Developer: Marcus Hüwe (marcus_h)
Technical Contact: Andreas Gruenbacher (agruen)
Partner organization:

Support a rebasing of patches and modification of specified patches.
Quilt already offers to apply patches as described in spec files. This
request is about to make the version upgrade workflow easy.
This means, after updating the tar ball, re-applying the patches as
describe in spec file, stop when they are not applying anymore and let
the user fix. Afterwards it should be easy to continue, the changes
store in the new version of the patch and follow up with next patches.
Another use case is to modify patch X. This means all patches which
have to apply before patch X according to spec file needs to get apply,
current source needs to get tagged, patch X gets applied and user needs
to fix/modify sources. Afterwards patch X gets re-recreated.
(hg mqueue is offering similar functionality)

#1: Andreas Gruenbacher (agruen) (2010-09-07 21:32:38)
Quilt needs to know which patches to apply in which order and with
which options (like -p N, the number of pathname components to strip).
The quilt setup command uses a heuristic for finding that out: it
executes the %prep section of an rpm spec file and tracks which
tarballs are expanded and which patches are applied where and how. This
works well enough for most packages with a reasonably low number of
patches (i.e., not thousands).
It is also possible to provide a list of patches that defines the order
of patches and the patch options to use by hand (a "series file"), and
some packages with a large number of patches do that (for example, the
The usual way to upgrade a tarball in a package is to run "quilt setup"
on the original spec file which will produce a series file, and to use
that series file against the new tarball. This is the recommended
approach. The tarball should not be upgraded first. Otherwise, some of
the patches may not apply anymore, the %prep section would fail, and
the resulting series file may be empty or incomplete.
$ quilt setup coreutils.spec
### md5sum: .......x.x.............
### rpmbuild: tpppppppppppppppp

Unpacking archive coreutils-7.1.tar.xz
$ xzcat coreutils-8.5.tar.xz | tar xf -
$ mv coreutils-7.1/{series,patches} coreutils-8.5/
$ cd coreutils-8.5/
$ # start working with the patches, for example:
$ quilt push -a
$ # edit the last patch
$ quilt refresh
There may be ways of automating the steps necessary for upgrading a
tarball, but nothing fundamental is missing as far as I can see. Quilt
already allows to go back and forth in a series file (the push and pop
commands) and to add, modify, and remove patches; that 's the whole
point of quilt.
This feature doesn't seem to be related to osc.

+ #2: Sascha Peilicke (saschpe) (2010-12-17 15:16:25)
+ What would you want to keep as (local) patches to a package? Would you
+ want to manage a stack for each package? Goal is unclear to me.

openSUSE Feature:

< Previous Next >
This Thread
  • No further messages