nixpkgs/pkgs/development/libraries/qt-5
Will Dietz 39696b6d56 qt-5.10: don't use features that require new-ish kernels, stay compat
Before this change:
$ readelf --notes /nix/store/zf5yja02g8n8dzgs25pqfd8w3myfzgzc-qtbase-5.10.1/lib/libQt5Core.so

Displaying notes found at file offset 0x004a7778 with length 0x00000020:
  Owner                 Data size       Description
  GNU                  0x00000010       NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.17.0

After:
$ readelf --notes /nix/store/sg1s9hdw0b7p6h0dwg09g4lxy1acq7y6-qtbase-5.10.1/lib/libQt5Core.so

Displaying notes found at file offset 0x004a7dcc with length 0x00000020:
  Owner                 Data size       Description
  GNU                  0x00000010       NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.28

-----------

The above paths were before rebasing the commit onto staging,
and it'd probably be good to have someone confirm the same happens
when built on a hydra builder or other non-dtzWill machine :).

[dezgeg: added comments]
2018-05-18 03:51:20 +03:00
..
5.6 treewide: transition libGL/libGLU for qt 2018-02-24 17:06:49 +02:00
5.9 treewide: transition libGL/libGLU for qt 2018-02-24 17:06:49 +02:00
5.10 qt510: disable framework build on macOS 2018-05-08 15:46:57 -05:00
hooks Merge branch 'bugfix/qt-5/closure-size-static-libs' into merge/qt-5.10.0 2018-01-15 18:49:27 -06:00
modules qt-5.10: don't use features that require new-ish kernels, stay compat 2018-05-18 03:51:20 +03:00
mkDerivation.nix qt510: disable framework build on macOS 2018-05-08 15:46:57 -05:00
qt-env.nix qtEnv: fix paths in qt.conf 2018-02-18 14:44:16 +01:00
qtModule.nix qt5: factor out common definitions and remove symlink farm 2017-11-07 07:18:46 -06:00
README.md qt5: Add instructions for updating and patching 2017-11-07 07:18:50 -06:00

Qt 5 Maintainer's Notes

Minor Updates

Let $major be the major version number, e.g. 5.9.

  1. Change the version number in the $major/fetch.sh.
  2. Run ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/qt-5/$major from 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.

  1. Copy the subdirectory from the previous major version to $major.
  2. Change the version number in $major/fetch.sh.
  3. Run ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/qt-5/$major from the top of the Nixpkgs tree.
  4. Add a top-level attribute in pkgs/top-level/all-packages.nix for the new major version.
  5. Change the qt5 top-level attribute to point to the new major version.
  6. 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),

  1. Clone the fork for $module from the list above.
  2. Checkout the active branch, git checkout nixpkgs/$major.
  3. Compare the patched branch to the release tag, git diff v$version > $module.patch.
  4. Copy $module.patch into the Nixpkgs tree.

Minor Version Updates

To update module $module to version $version from an older version in the same branch $major,

  1. Clone the fork for $module from the list above.
  2. Checkout the active branch, git checkout nixpkgs/$major.
  3. Merge the new version into the active branch, git merge --no-ff v$version.
  4. Fix any conflicts.
  5. Open a pull request for the changes.
  6. 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,

  1. Clone the fork for $module from the list above.
  2. Checkout a new branch for the new major version, git checkout -b nixpkgs/$major nixpkgs/$oldmajor.
  3. Rebase the patches from $oldversion onto the new branch, git rebase v$oldversion --onto v$version.
  4. Fix any conflicts.
  5. Open a pull request for the changes.
  6. Follow the instructions above to recreate the module patch in Nixpkgs.