From 966ee2be2f107e2c47e42d110de56ec376a3fef5 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 4 Dec 2024 15:50:32 +0100 Subject: [PATCH 1/4] git-lfs: format --- .../version-management/git-lfs/default.nix | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix index 22ee1a17f218..eb6b52c2809a 100644 --- a/pkgs/applications/version-management/git-lfs/default.nix +++ b/pkgs/applications/version-management/git-lfs/default.nix @@ -1,4 +1,14 @@ -{ lib, buildGoModule, fetchFromGitHub, asciidoctor, installShellFiles, git, testers, git-lfs, stdenv }: +{ + lib, + buildGoModule, + fetchFromGitHub, + asciidoctor, + installShellFiles, + git, + testers, + git-lfs, + stdenv, +}: buildGoModule rec { pname = "git-lfs"; @@ -13,7 +23,10 @@ buildGoModule rec { vendorHash = "sha256-JT0r/hs7ZRtsYh4aXy+v8BjwiLvRJ10e4yRirqmWVW0="; - nativeBuildInputs = [ asciidoctor installShellFiles ]; + nativeBuildInputs = [ + asciidoctor + installShellFiles + ]; ldflags = [ "-s" @@ -37,14 +50,16 @@ buildGoModule rec { unset subPackages ''; - postInstall = '' - installManPage man/man*/* - '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - installShellCompletion --cmd git-lfs \ - --bash <($out/bin/git-lfs completion bash) \ - --fish <($out/bin/git-lfs completion fish) \ - --zsh <($out/bin/git-lfs completion zsh) - ''; + postInstall = + '' + installManPage man/man*/* + '' + + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd git-lfs \ + --bash <($out/bin/git-lfs completion bash) \ + --fish <($out/bin/git-lfs completion fish) \ + --zsh <($out/bin/git-lfs completion zsh) + ''; passthru.tests.version = testers.testVersion { package = git-lfs; From 381e652552f5ed8c80364d413dd1f69ba236d7ab Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 4 Dec 2024 15:53:23 +0100 Subject: [PATCH 2/4] git-lfs: move to by-name --- .../git-lfs/default.nix => by-name/gi/git-lfs/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/version-management/git-lfs/default.nix => by-name/gi/git-lfs/package.nix} (100%) diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/by-name/gi/git-lfs/package.nix similarity index 100% rename from pkgs/applications/version-management/git-lfs/default.nix rename to pkgs/by-name/gi/git-lfs/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8ecb5f048666..b03480b0e3c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1243,8 +1243,6 @@ with pkgs; git-imerge = python3Packages.callPackage ../applications/version-management/git-imerge { }; - git-lfs = lowPrio (callPackage ../applications/version-management/git-lfs { }); - git-machete = python3Packages.callPackage ../applications/version-management/git-machete { }; git-ps-rs = callPackage ../development/tools/git-ps-rs { From 719b30aeb3c06744480f754f7ad5109d1de46c08 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 4 Dec 2024 15:55:15 +0100 Subject: [PATCH 3/4] git-lfs: minor improvements --- pkgs/by-name/gi/git-lfs/package.nix | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/gi/git-lfs/package.nix b/pkgs/by-name/gi/git-lfs/package.nix index eb6b52c2809a..7b2e8381155e 100644 --- a/pkgs/by-name/gi/git-lfs/package.nix +++ b/pkgs/by-name/gi/git-lfs/package.nix @@ -1,13 +1,13 @@ { lib, + stdenv, buildGoModule, fetchFromGitHub, asciidoctor, installShellFiles, git, - testers, - git-lfs, - stdenv, + versionCheckHook, + nix-update-script, }: buildGoModule rec { @@ -17,7 +17,7 @@ buildGoModule rec { src = fetchFromGitHub { owner = "git-lfs"; repo = "git-lfs"; - rev = "v${version}"; + rev = "refs/tags/v${version}"; hash = "sha256-PpNdbvtDAZDT43yyEkUvnhfUTAMM+mYImb3dVbAVPic="; }; @@ -61,16 +61,22 @@ buildGoModule rec { --zsh <($out/bin/git-lfs completion zsh) ''; - passthru.tests.version = testers.testVersion { - package = git-lfs; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + versionCheckProgramArg = [ "--version" ]; + doInstallCheck = true; + + passthru = { + updateScript = nix-update-script { }; }; - meta = with lib; { + meta = { description = "Git extension for versioning large files"; homepage = "https://git-lfs.github.com/"; changelog = "https://github.com/git-lfs/git-lfs/raw/v${version}/CHANGELOG.md"; - license = licenses.mit; - maintainers = with maintainers; [ twey ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ twey ]; mainProgram = "git-lfs"; }; } From cc006aed5e75d43ca4b463f679fa2594764f553b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 4 Dec 2024 16:19:04 +0100 Subject: [PATCH 4/4] git-lfs: disable network tests on darwin --- pkgs/by-name/gi/git-lfs/package.nix | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pkgs/by-name/gi/git-lfs/package.nix b/pkgs/by-name/gi/git-lfs/package.nix index 7b2e8381155e..da5fa88179cc 100644 --- a/pkgs/by-name/gi/git-lfs/package.nix +++ b/pkgs/by-name/gi/git-lfs/package.nix @@ -50,6 +50,37 @@ buildGoModule rec { unset subPackages ''; + checkFlags = lib.optionals stdenv.hostPlatform.isDarwin ( + let + # Fail in the sandbox with network-related errors. + # Enabling __darwinAllowLocalNetworking is not enough. + skippedTests = [ + "TestAPIBatch" + "TestAPIBatchOnlyBasic" + "TestAuthErrWithBody" + "TestAuthErrWithoutBody" + "TestCertFromSSLCAInfoConfig" + "TestCertFromSSLCAInfoEnv" + "TestCertFromSSLCAInfoEnvWithSchannelBackend" + "TestCertFromSSLCAPathConfig" + "TestCertFromSSLCAPathEnv" + "TestClientRedirect" + "TestClientRedirectReauthenticate" + "TestDoAPIRequestWithAuth" + "TestDoWithAuthApprove" + "TestDoWithAuthNoRetry" + "TestDoWithAuthReject" + "TestFatalWithBody" + "TestFatalWithoutBody" + "TestHttp2" + "TestHttpVersion" + "TestWithNonFatal500WithBody" + "TestWithNonFatal500WithoutBody" + ]; + in + [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ] + ); + postInstall = '' installManPage man/man*/* @@ -71,6 +102,8 @@ buildGoModule rec { updateScript = nix-update-script { }; }; + __darwinAllowLocalNetworking = true; + meta = { description = "Git extension for versioning large files"; homepage = "https://git-lfs.github.com/";