Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / qt-5 / README.md
blobb2ef74d0aef154210165ed917e788c620efe7d65
1 # Qt 5 Maintainer's Notes
3 ## Minor Updates
5 Let `$major` be the major version number, e.g. `5.9`.
7 1. Change the version number in the `$major/fetch.sh`.
8 2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$major`
9    from the top of the Nixpkgs tree.
11 See below if it is necessary to update any patches.
13 ## Major Updates
15 Let `$major` be the new major version number, e.g. `5.10`.
17 1. Copy the subdirectory from the previous major version to `$major`.
18 2. Change the version number in `$major/fetch.sh`.
19 3. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$major`
20    from the top of the Nixpkgs tree.
21 4. Add a top-level attribute in `pkgs/top-level/all-packages.nix` for the new
22    major version.
23 5. Change the `qt5` top-level attribute to point to the new major version.
24 6. If the previous major version is _not_ a long-term support release,
25    remove it from Nixpkgs.
27 See below if it is necessary to update any patches.
29 ## Patches
31 Nixpkgs maintains several patches for Qt which cannot be submitted upstream. To
32 facilitate maintenance, a fork of the upstream repository is created for each patched module:
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)
42 In each repository, the patches are contained in a branch named `nixpkgs/$major`
43 for each major version. Please make a pull request to add or update any patch
44 which will be maintained in Nixpkgs.
46 The forked repository for each module is used to create a single patch in
47 Nixpkgs. 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`),
50 1. Clone the fork for `$module` from the list above.
51 2. Checkout the active branch, `git checkout nixpkgs/$major`.
52 3. Compare the patched branch to the release tag,
53    `git diff v$version > $module.patch`.
54 4. Copy `$module.patch` into the Nixpkgs tree.
56 ### Minor Version Updates
58 To update module `$module` to version `$version` from an older version in the
59 same branch `$major`,
61 1. Clone the fork for `$module` from the list above.
62 2. Checkout the active branch, `git checkout nixpkgs/$major`.
63 3. Merge the new version into the active branch,
64    `git merge --no-ff v$version`.
65 4. Fix any conflicts.
66 5. Open a pull request for the changes.
67 6. Follow the instructions above to recreate the module patch in Nixpkgs.
69 ### Major Version Updates
71 To update module `$module` from `$oldversion` in branch `$oldmajor` to version
72 `$version` in branch `$major`,
74 1. Clone the fork for `$module` from the list above.
75 2. Checkout a new branch for the new major version,
76    `git checkout -b nixpkgs/$major nixpkgs/$oldmajor`.
77 3. Rebase the patches from `$oldversion` onto the new branch,
78    `git rebase v$oldversion --onto v$version`.
79 4. Fix any conflicts.
80 5. Open a pull request for the changes.
81 6. Follow the instructions above to recreate the module patch in Nixpkgs.