From 6b1e2a51aad506a559efbf16c9d83f7712b8a4a5 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Thu, 7 May 2020 23:32:41 +0100 Subject: [PATCH 1/2] gitAndTools.git-fast-export: 190107 -> 200213, fix fixing involves providing it with mercurial_4 (and implicitly python27 - current released fast-export doesn't support py3 yet) and adding git to the wrapped PATH. this shouldn't be a runtime-resolved dependency. --- .../version-management/git-and-tools/default.nix | 2 +- .../git-and-tools/fast-export/default.nix | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 41ef3cce4654..657ae4605eb0 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -98,7 +98,7 @@ let git-fame = callPackage ./git-fame {}; - git-fast-export = callPackage ./fast-export { }; + git-fast-export = callPackage ./fast-export { mercurial = mercurial_4; }; git-filter-repo = callPackage ./git-filter-repo { pythonPackages = python3Packages; diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix index 22009f10d44f..2134b617c283 100644 --- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix +++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix @@ -1,13 +1,14 @@ -{stdenv, fetchgit, mercurial, makeWrapper}: +{stdenv, fetchFromGitHub, git, mercurial, makeWrapper}: stdenv.mkDerivation rec { pname = "fast-export"; - version = "190107"; + version = "200213"; - src = fetchgit { - url = "git://repo.or.cz/fast-export.git"; + src = fetchFromGitHub { + owner = "frej"; + repo = pname; rev = "v${version}"; - sha256 = "14azfps9jd5anivcvfwflgsvqdyy6gm9jy284kzx2ng9f7871d14"; + sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287"; }; buildInputs = [mercurial.python mercurial makeWrapper]; @@ -27,7 +28,7 @@ stdenv.mkDerivation rec { for script in $out/bin/*.sh; do wrapProgram $script \ - --prefix PATH : "${mercurial.python}/bin":$libexec \ + --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \ --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath done ''; From b91ad4289615209f0ea2030eda08290ada494f7c Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Thu, 7 May 2020 23:34:20 +0100 Subject: [PATCH 2/2] gitAndTools.git-fast-export: add installCheckPhase this creates and converts a simple hg repository - should stop us inadvertently breaking this package. --- .../git-and-tools/fast-export/default.nix | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix index 2134b617c283..80f048d05752 100644 --- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix +++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix @@ -33,6 +33,29 @@ stdenv.mkDerivation rec { done ''; + doInstallCheck = true; + # deliberately not adding git or hg into installCheckInputs - package should + # be able to work without them in runtime env + installCheckPhase = '' + mkdir repo-hg + pushd repo-hg + ${mercurial}/bin/hg init + echo foo > bar + ${mercurial}/bin/hg add bar + ${mercurial}/bin/hg commit --message "baz" + popd + + mkdir repo-git + pushd repo-git + ${git}/bin/git init + ${git}/bin/git config core.ignoreCase false # for darwin + $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash + for s in "foo" "bar" "baz" ; do + (${git}/bin/git show | grep $s > /dev/null) && echo $s found + done + popd + ''; + meta = with stdenv.lib; { description = "Import mercurial into git"; homepage = "https://repo.or.cz/w/fast-export.git";