From 1d10e15f72c2888ee1e354a242ff5c1f9ff9c02d Mon Sep 17 00:00:00 2001 From: Dariqq Date: Tue, 9 Sep 2025 09:57:46 +0000 Subject: [PATCH] gnu: Remove mercurial/pinned. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (mercurial/pinned): Delete variable. (mercurial-check-phase): Move into mercurial. * guix/hg-download.scm (hg-package): Use mercurial. Change-Id: I4303308554cc67b73c88a46c89577f79c84e0f15 Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 168 ++++++++++++------------------- guix/hg-download.scm | 2 +- 2 files changed, 66 insertions(+), 104 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 0bf8b44907d0d7756eb37444b392e2bd1c175ad3..aad6c71ca224472d7ccc6b2446ae1a37d78a8bee 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -2720,76 +2720,6 @@ execution of any hook written in any language before every commit.") (define-deprecated-package python-pre-commit pre-commit) -;; XXX: This is a temporary helper to avoid recompiling mercurial/pinned. -;; If you update mercurial, don't touch it but work around it. -;; If you update mercurial/pinned, include that in mercurial, and use inheritance -;; for mercurial/pinned. -(define mercurial-check-phase - #~(lambda* (#:key tests? #:allow-other-keys) - (with-directory-excursion "tests" - ;; The following tests are known to fail. - (for-each delete-file - '(;; XXX: This test calls 'run-tests.py --with-hg= - ;; `which hg`' and fails because there is no hg on - ;; PATH from before (that's why we are building it!)? - "test-hghave.t" - - ;; This test is missing a debug line - ;; mmapping $TESTTMP/a/.hg/store/00changelog.i (no-pure !) - ;; but the relevant output is correct. - "test-revlog-mmapindex.t" - - ;; This test creates a shebang spanning multiple - ;; lines which is difficult to substitute. It - ;; only tests the test runner itself, which gets - ;; thoroughly tested during the check phase anyway. - "test-run-tests.t" - - ;; These tests fail because the program is not - ;; connected to a TTY in the build container. - "test-nointerrupt.t" - "test-transaction-rollback-on-sigpipe.t" - - ;; FIXME: This gets killed but does not receive an interrupt. - "test-commandserver.t" - - ;; These tests get unexpected warnings about using - ;; deprecated functionality in Python, but otherwise - ;; succeed; try enabling for later Mercurial versions. - "test-demandimport.py" - "test-patchbomb-tls.t" - ;; Similarly, this gets a more informative error - ;; message from Python 3.10 than it expects. - "test-http-bad-server.t" - - ;; Only works when run in a hg-repo, not in an - ;; extracted tarball - "test-doctest.py" - - ;; TODO: the fqaddr() call fails in the build - ;; container, causing these server tests to fail. - "test-hgwebdir.t" - "test-http-branchmap.t" - "test-pull-bundle.t" - "test-push-http.t" - "test-serve.t" - "test-subrepo-deep-nested-change.t" - "test-subrepo-recursion.t" - ;; FIXME: Investigate why it failed. - "test-convert-darcs.t")) - (when tests? - (invoke "./run-tests.py" - ;; ‘make check’ does not respect ‘-j’. - (string-append "-j" (number->string - (parallel-job-count))) - ;; The default time-outs are too low for many systems. - ;; Raise them generously: Guix enforces its own. - "--timeout" "86400" - "--slowtimeout" "86400" - ;; The test suite takes a long time and produces little - ;; output by default. Prevent timeouts due to silence. - "-v"))))) - (define-public mercurial (package (name "mercurial") @@ -2837,7 +2767,71 @@ execution of any hook written in any language before every commit.") (add-after 'install 'wrap (assoc-ref py:%standard-phases 'wrap)) (delete 'check) - (add-after 'wrap 'check #$mercurial-check-phase) + (add-after 'wrap 'check + (lambda* (#:key tests? #:allow-other-keys) + (with-directory-excursion "tests" + ;; The following tests are known to fail. + (for-each delete-file + '(;; XXX: This test calls 'run-tests.py --with-hg= + ;; `which hg`' and fails because there is no hg on + ;; PATH from before (that's why we are building it!)? + "test-hghave.t" + + ;; This test is missing a debug line + ;; mmapping $TESTTMP/a/.hg/store/00changelog.i (no-pure !) + ;; but the relevant output is correct. + "test-revlog-mmapindex.t" + + ;; This test creates a shebang spanning multiple + ;; lines which is difficult to substitute. It + ;; only tests the test runner itself, which gets + ;; thoroughly tested during the check phase anyway. + "test-run-tests.t" + + ;; These tests fail because the program is not + ;; connected to a TTY in the build container. + "test-nointerrupt.t" + "test-transaction-rollback-on-sigpipe.t" + + ;; FIXME: This gets killed but does not receive an interrupt. + "test-commandserver.t" + + ;; These tests get unexpected warnings about using + ;; deprecated functionality in Python, but otherwise + ;; succeed; try enabling for later Mercurial versions. + "test-demandimport.py" + "test-patchbomb-tls.t" + ;; Similarly, this gets a more informative error + ;; message from Python 3.10 than it expects. + "test-http-bad-server.t" + + ;; Only works when run in a hg-repo, not in an + ;; extracted tarball + "test-doctest.py" + + ;; TODO: the fqaddr() call fails in the build + ;; container, causing these server tests to fail. + "test-hgwebdir.t" + "test-http-branchmap.t" + "test-pull-bundle.t" + "test-push-http.t" + "test-serve.t" + "test-subrepo-deep-nested-change.t" + "test-subrepo-recursion.t" + ;; FIXME: Investigate why it failed. + "test-convert-darcs.t")) + (when tests? + (invoke "./run-tests.py" + ;; ‘make check’ does not respect ‘-j’. + (string-append "-j" (number->string + (parallel-job-count))) + ;; The default time-outs are too low for many systems. + ;; Raise them generously: Guix enforces its own. + "--timeout" "86400" + "--slowtimeout" "86400" + ;; The test suite takes a long time and produces little + ;; output by default. Prevent timeouts due to silence. + "-v"))))) (add-after 'check 'python-sanity-check (lambda* (#:key inputs outputs #:allow-other-keys) ((assoc-ref py:%standard-phases 'sanity-check) @@ -2863,38 +2857,6 @@ efficiently handles projects of any size and offers an easy and intuitive interface.") (license license:gpl2+))) -(define-public mercurial/pinned - (package - (inherit mercurial) - (version "6.9.5") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.mercurial-scm.org/" - "release/mercurial-" version ".tar.gz")) - (patches (search-patches "mercurial-hg-extension-path.patch")) - (sha256 - (base32 "1zb5rjqs5z0y900hml0v4wsmv59cdhi50a8kcbjxdp79z7p2mwnk")))) - (arguments - (list - #:make-flags - #~(list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'patch-tests - (lambda _ - (substitute* (find-files "tests" "\\.(t|py)$") - (("/bin/sh") - (which "sh")) - (("/usr/bin/env") - (which "env"))))) - (replace 'check #$mercurial-check-phase)))) - (native-inputs - (list python-docutils - ;; The following inputs are only needed to run the tests. - python-nose unzip which)))) - (define-public python-hg-evolve (package (name "python-hg-evolve") diff --git a/guix/hg-download.scm b/guix/hg-download.scm index bb02cd18161a480d3b4877ef8281376f9ca6d75c..df48ed6eb70f20802dc22d23c354b2d869b02ac4 100644 --- a/guix/hg-download.scm +++ b/guix/hg-download.scm @@ -57,7 +57,7 @@ (define (hg-package) "Return the default Mercurial package." (let ((distro (resolve-interface '(gnu packages version-control)))) - (module-ref distro 'mercurial/pinned))) + (module-ref distro 'mercurial))) (define (hg-fetch-builder hg hash-algo) (define inputs