summary refs log tree commit diff
diff options
context:
space:
mode:
authorcherryblossom <31467609+cherryblossom000@users.noreply.github.com>2022-01-01 14:27:38 +1100
committercherryblossom <31467609+cherryblossom000@users.noreply.github.com>2022-01-03 14:09:26 +1100
commit5773043ac1445a0e9904d6618d337b32891db210 (patch)
tree098247358f6daf31a99b6bb80ea8ba4932b94d5c
parente14a4826d2bb6ba031d7ec7a55e602ef462c4397 (diff)
downloadnixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar.gz
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar.bz2
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar.lz
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar.xz
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.tar.zst
nixpkgs-5773043ac1445a0e9904d6618d337b32891db210.zip
elvish: properly set buildinfo via `ldflags`
As of [this commit][1] (v0.16.0), the module path of Elvish changed from
`github.com/elves/elvish` to `src.elv.sh`. This is also reflected in the
updated [packaging instructions][2].

This commit updates the `ldflags` in the derivation to use the new
module path so that `buildinfo.Reproducible` is correctly set to `true`.

[1]: https://github.com/elves/elvish/commit/196eea21d4f185d6ac203e7f9a4fa9a9c4d680f4
[2]: https://github.com/elves/elvish/blob/master/PACKAGING.md
-rw-r--r--pkgs/shells/elvish/default.nix19
1 files changed, 17 insertions, 2 deletions
diff --git a/pkgs/shells/elvish/default.nix b/pkgs/shells/elvish/default.nix
index e94354d6804..66d14b9b9ff 100644
--- a/pkgs/shells/elvish/default.nix
+++ b/pkgs/shells/elvish/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, runCommand, elvish }:
 
 buildGoModule rec {
   pname = "elvish";
@@ -6,7 +6,7 @@ buildGoModule rec {
 
   subPackages = [ "cmd/elvish" ];
 
-  ldflags = [ "-s" "-w" "-X github.com/elves/elvish/pkg/buildinfo.Version==${version}" "-X github.com/elves/elvish/pkg/buildinfo.Reproducible=true" ];
+  ldflags = [ "-s" "-w" "-X src.elv.sh/pkg/buildinfo.Version==${version}" "-X src.elv.sh/pkg/buildinfo.Reproducible=true" ];
 
   src = fetchFromGitHub {
     owner = "elves";
@@ -33,5 +33,20 @@ buildGoModule rec {
 
   passthru = {
     shellPath = "/bin/elvish";
+    tests = runCommand "${pname}-buildinfo-test" {} ''
+      mkdir $out
+
+      ${elvish}/bin/elvish -c "
+        fn expect {|key expected|
+          var actual = \$buildinfo[\$key]
+          if (not-eq \$actual \$expected) {
+            fail '\$buildinfo['\$key']: expected '(to-string \$expected)', got '(to-string \$actual)
+          }
+        }
+
+        expect version ${version}
+        expect reproducible \$true
+      "
+    '';
   };
 }