nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1# Qt 5 Maintainer's Notes
2
3## Minor Updates
4
5Let `$major` be the major version number, e.g. `5.9`.
6
71. Change the version number in the `$major/fetch.sh`.
82. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$major`
9 from the top of the Nixpkgs tree.
10
11See below if it is necessary to update any patches.
12
13## Major Updates
14
15Let `$major` be the new major version number, e.g. `5.10`.
16
171. Copy the subdirectory from the previous major version to `$major`.
182. Change the version number in `$major/fetch.sh`.
193. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$major`
20 from the top of the Nixpkgs tree.
214. Add a top-level attribute in `pkgs/top-level/all-packages.nix` for the new
22 major version.
235. Change the `qt5` top-level attribute to point to the new major version.
246. If the previous major version is _not_ a long-term support release,
25 remove it from Nixpkgs.
26
27See below if it is necessary to update any patches.
28
29## Patches
30
31Nixpkgs maintains several patches for Qt which cannot be submitted upstream. To
32facilitate maintenance, a fork of the upstream repository is created for each patched module:
33
34- [qtbase](https://github.com/ttuegel/qtbase)
35- [qtwebkit](https://github.com/ttuegel/qtwebkit)
36- [qttools](https://github.com/ttuegel/qttools)
37- [qtscript](https://github.com/ttuegel/qtscript)
38- [qtserialport](https://github.com/ttuegel/qtserialport)
39- [qtdeclarative](https://github.com/ttuegel/qtdeclarative)
40- [qtwebengine](https://github.com/ttuegel/qtwebengine)
41
42In each repository, the patches are contained in a branch named `nixpkgs/$major`
43for each major version. Please make a pull request to add or update any patch
44which will be maintained in Nixpkgs.
45
46The forked repository for each module is used to create a single patch in
47Nixpkgs. To recreate the patch for module `$module` (e.g. `qtbase`) at version
48`$version` (e.g. `5.9.1`) in the branch `$major` (e.g. `5.9`),
49
501. Clone the fork for `$module` from the list above.
512. Checkout the active branch, `git checkout nixpkgs/$major`.
523. Compare the patched branch to the release tag,
53 `git diff v$version > $module.patch`.
544. Copy `$module.patch` into the Nixpkgs tree.
55
56### Minor Version Updates
57
58To update module `$module` to version `$version` from an older version in the
59same branch `$major`,
60
611. Clone the fork for `$module` from the list above.
622. Checkout the active branch, `git checkout nixpkgs/$major`.
633. Merge the new version into the active branch,
64 `git merge --no-ff v$version`.
654. Fix any conflicts.
665. Open a pull request for the changes.
676. Follow the instructions above to recreate the module patch in Nixpkgs.
68
69### Major Version Updates
70
71To update module `$module` from `$oldversion` in branch `$oldmajor` to version
72`$version` in branch `$major`,
73
741. Clone the fork for `$module` from the list above.
752. Checkout a new branch for the new major version,
76 `git checkout -b nixpkgs/$major nixpkgs/$oldmajor`.
773. Rebase the patches from `$oldversion` onto the new branch,
78 `git rebase v$oldversion --onto v$version`.
794. Fix any conflicts.
805. Open a pull request for the changes.
816. Follow the instructions above to recreate the module patch in Nixpkgs.