139cdd2a16
Update to v5.1.0 qemu OBS-URL: https://build.opensuse.org/request/show/825860 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=557
75 lines
3.6 KiB
Plaintext
75 lines
3.6 KiB
Plaintext
The qemu package includes a special maintenance workflow in order to support git
|
|
based patching. Please use it in order to have changes you make be acceptable to
|
|
the package maintainers.
|
|
|
|
Currently a local clone of the upstream repo(s) is required for the packaging
|
|
workflow. It is anticipated that the need for any extra setup will be reduced or
|
|
even eliminated entirely in the future, but for now, you will need do so some
|
|
setup. See config.sh for details.
|
|
|
|
The qemu.spec file is generated from a qemu.spec.in template, so to make changes
|
|
to the spec file beyond the patch name generation, patch reference and automated
|
|
versioning done by the scripts, you need to edit the template. Do not directly
|
|
edit the spec file. The spec file's version and patch references are added when
|
|
the update_git.sh script is passed certain commands, as described below.
|
|
|
|
If you are not modifying any patches or their order, but just need to update the
|
|
spec file from a changed template, run 'bash ./update_git.sh refresh'.
|
|
|
|
If the set of patches is being modified, including their order, you will want to
|
|
first run 'bash ./update_git.sh pkg2git', which makes the current package patch
|
|
queue available in a local git branch named frombundle (see config.sh for the
|
|
locations). This set of patches comes from a "bundle of git bundles", the
|
|
bundles.tar.xz file, which is included as a package source file. You will then
|
|
create an altered patch queue in the branch which corresponds to this release
|
|
(eg: opensuse-5.0), using the frombundle branch as the starting point for your
|
|
changes (eg perhaps start by doing git reset --hard frombundle, then cherry-pick
|
|
upstream patches from there). Once you have the patch queue ready to go run
|
|
'bash ./update_git.sh git2pkg' which updates the bundles.tar.xz file, as well as
|
|
the spec and patch files.
|
|
|
|
The default action for update_git.sh is git2pkg, which helps simplify repeated
|
|
package updates as you modify the patch queue from the local git repo.
|
|
|
|
The maintainer and automation use another workflow mode dealing with packaging
|
|
the latest upstream qemu. See 'LATEST' references in the scripts for details.
|
|
|
|
* * * * * * * * *
|
|
|
|
Additional Notes:
|
|
|
|
Patches which are from an upstream git repo should have the commit id recorded
|
|
just below the Subject line (after a blank line) as follows:
|
|
|
|
Git-commit: <40-char-sha-id>
|
|
|
|
If a patch is anticipated to be shortly included in upstream repo, mark that
|
|
fact by doing the above with 40 0's, which will flag it as needing to be updated
|
|
in the near future.
|
|
|
|
Bug or feature tracking identifiers should also be added to the patch similarly,
|
|
using the abbreviations identified here:
|
|
http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations
|
|
using the "Reference:" tag, with multiple entries comma separated.
|
|
|
|
The ability to provide a conditional inclusion of a patch (eg based on
|
|
architecture, is provided by using the "Include-If:" tag similarly, as follows:
|
|
|
|
Include-If: %ifarch aarch64
|
|
|
|
This will cause the patch application in the spec file to be done as follows:
|
|
%ifarch aarch64
|
|
%patch0013 -p1
|
|
%endif
|
|
|
|
A trick worth noting is, if a given git tracked patch is to be applied in a way
|
|
that can't be done in the normal patching section of the spec file, you can
|
|
still include the patch, and use it by name with the patch program elsewhere in
|
|
the spec file by doing something such as:
|
|
Include-If: %if 0%{?patch-possibly-applied-elsewhere}
|
|
(this variable will remain undefined in the spec file) And then elsewhere in the
|
|
spec file, the actual patch (eg specially-handled-change.patch) is referenced as
|
|
eg:
|
|
|
|
patch -p1 < %_sourcedir/specially-handled-change.patch
|