about summary refs log tree commit diff
path: root/pkgs/applications/version-management/sapling
diff options
context:
space:
mode:
authorMatthew "strager" Glazar <strager.nds@gmail.com>2023-03-18 00:53:44 -0700
committerAustin Seipp <aseipp@pobox.com>2023-03-18 15:17:53 -0500
commitc60afb9cbe3390e7b57f1dd553774e79864cea4d (patch)
treea510ca95c24b04c974934ba19e5d9ef59823798c /pkgs/applications/version-management/sapling
parent2956bcc414737db2cde39868f41ec04052d110df (diff)
sapling: fix build
Nixpkgs commit 451c6321 upgraded setuptools from version 65.0.3 to
version 67.4.0. This upgrade introduced a breaking change in
setuptools [1] which causes the Sapling package's build to fail:

    setuptools.extern.packaging.version.InvalidVersion: Invalid version: '0.2.20230124-180750-hf8cd450a'

This is an upstream issue [2]. For now, work around this issue in
Nixpkgs by truncating Sapling's version number.

Before 451c6321:

    $ nix-env -q sapling
    sapling-0.2.20230228-144002-h9440b05e

    $ sl --version
    Sapling 0.2.20230228-144002-h9440b05e

After this patch:

    $ nix-env -q sapling
    sapling-0.2.20230228-144002-h9440b05e

    $ sl --version
    Sapling 0.2.20230228

Refs: 451c63214766d3bb8d078620cff4dc74463c5bc8

[1] https://github.com/pypa/setuptools/blob/be6c0218bcba78dbd4ea0b5a8bb9acd5d5306240/CHANGES.rst#v6600
[2] https://github.com/facebook/sapling/issues/571
Diffstat (limited to 'pkgs/applications/version-management/sapling')
-rw-r--r--pkgs/applications/version-management/sapling/default.nix11
1 files changed, 8 insertions, 3 deletions
diff --git a/pkgs/applications/version-management/sapling/default.nix b/pkgs/applications/version-management/sapling/default.nix
index 4028c41232ff1..222d77ca71636 100644
--- a/pkgs/applications/version-management/sapling/default.nix
+++ b/pkgs/applications/version-management/sapling/default.nix
@@ -166,15 +166,20 @@ python3Packages.buildPythonApplication {
 
   HGNAME = "sl";
   SAPLING_OSS_BUILD = "true";
-  SAPLING_VERSION = version;
   SAPLING_VERSION_HASH = versionHash;
 
+  # Python setuptools version 66 and newer does not support upstream Sapling's
+  # version numbers (e.g. "0.2.20230124-180750-hf8cd450a"). Change the version
+  # number to something supported by setuptools (e.g. "0.2.20230124").
+  # https://github.com/facebook/sapling/issues/571
+  SAPLING_VERSION = builtins.elemAt (builtins.split "-" version) 0;
+
   # just a simple check phase, until we have a running test suite. this should
   # help catch issues like lack of a LOCALE_ARCHIVE setting (see GH PR #202760)
   doCheck = true;
   installCheckPhase = ''
-    echo -n "testing sapling version; should be \"${version}\"... "
-    $out/bin/sl version | grep -qw "${version}"
+    echo -n "testing sapling version; should be \"$SAPLING_VERSION\"... "
+    $out/bin/sl version | grep -qw "$SAPLING_VERSION"
     echo "OK!"
   '';