Qt 5 Maintainer's Notes#
Minor Updates#
Let $major be the major version number, e.g. 5.9.
- Change the version number in the
$major/fetch.sh. - Run
./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$majorfrom the top of the Nixpkgs tree.
See below if it is necessary to update any patches.
Major Updates#
Let $major be the new major version number, e.g. 5.10.
- Copy the subdirectory from the previous major version to
$major. - Change the version number in
$major/fetch.sh. - Run
./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$majorfrom the top of the Nixpkgs tree. - Add a top-level attribute in
pkgs/top-level/all-packages.nixfor the new major version. - Change the
qt5top-level attribute to point to the new major version. - If the previous major version is not a long-term support release, remove it from Nixpkgs.
See below if it is necessary to update any patches.
Patches#
Nixpkgs maintains several patches for Qt which cannot be submitted upstream. To facilitate maintenance, a fork of the upstream repository is created for each patched module:
In each repository, the patches are contained in a branch named nixpkgs/$major
for each major version. Please make a pull request to add or update any patch
which will be maintained in Nixpkgs.
The forked repository for each module is used to create a single patch in
Nixpkgs. To recreate the patch for module $module (e.g. qtbase) at version
$version (e.g. 5.9.1) in the branch $major (e.g. 5.9),
- Clone the fork for
$modulefrom the list above. - Checkout the active branch,
git checkout nixpkgs/$major. - Compare the patched branch to the release tag,
git diff v$version > $module.patch. - Copy
$module.patchinto the Nixpkgs tree.
Minor Version Updates#
To update module $module to version $version from an older version in the
same branch $major,
- Clone the fork for
$modulefrom the list above. - Checkout the active branch,
git checkout nixpkgs/$major. - Merge the new version into the active branch,
git merge --no-ff v$version. - Fix any conflicts.
- Open a pull request for the changes.
- Follow the instructions above to recreate the module patch in Nixpkgs.
Major Version Updates#
To update module $module from $oldversion in branch $oldmajor to version
$version in branch $major,
- Clone the fork for
$modulefrom the list above. - Checkout a new branch for the new major version,
git checkout -b nixpkgs/$major nixpkgs/$oldmajor. - Rebase the patches from
$oldversiononto the new branch,git rebase v$oldversion --onto v$version. - Fix any conflicts.
- Open a pull request for the changes.
- Follow the instructions above to recreate the module patch in Nixpkgs.