Merge pull request #242630 from developer-guy/feature/melange

melange: init at 0.4.0

authored by

Emily and committed by
GitHub
712d6cf9 38a0e134

+74
+72
pkgs/development/tools/melange/default.nix
··· 1 + { lib 2 + , buildGoModule 3 + , fetchFromGitHub 4 + , installShellFiles 5 + }: 6 + 7 + buildGoModule rec { 8 + pname = "melange"; 9 + version = "0.4.0"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "chainguard-dev"; 13 + repo = pname; 14 + rev = "v${version}"; 15 + hash = "sha256-sEmbfX7W1juymAxcWwDNxI8d/o7NS2S+0TJM6Vi9aQo="; 16 + # populate values that require us to use git. By doing this in postFetch we 17 + # can delete .git afterwards and maintain better reproducibility of the src. 18 + leaveDotGit = true; 19 + postFetch = '' 20 + cd "$out" 21 + git rev-parse HEAD > $out/COMMIT 22 + # in format of 0000-00-00T00:00:00Z 23 + date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH 24 + find "$out" -name .git -print0 | xargs -0 rm -rf 25 + ''; 26 + }; 27 + 28 + vendorHash = "sha256-IkbXZu6iHRXjWFsLtRBDxwJio5sVVZvHylk1al0S+/c="; 29 + 30 + subPackages = [ "." ]; 31 + 32 + nativeBuildInputs = [ installShellFiles ]; 33 + 34 + ldflags = [ 35 + "-s" 36 + "-w" 37 + "-X sigs.k8s.io/release-utils/version.gitVersion=v${version}" 38 + "-X sigs.k8s.io/release-utils/version.gitTreeState=clean" 39 + ]; 40 + 41 + # ldflags based on metadata from git and source 42 + preBuild = '' 43 + ldflags+=" -X sigs.k8s.io/release-utils/version.gitCommit=$(cat COMMIT)" 44 + ldflags+=" -X sigs.k8s.io/release-utils/version.buildDate=$(cat SOURCE_DATE_EPOCH)" 45 + ''; 46 + 47 + postInstall = '' 48 + installShellCompletion --cmd melange \ 49 + --bash <($out/bin/melange completion bash) \ 50 + --fish <($out/bin/melange completion fish) \ 51 + --zsh <($out/bin/melange completion zsh) 52 + ''; 53 + 54 + doInstallCheck = true; 55 + 56 + installCheckPhase = '' 57 + runHook preInstallCheck 58 + 59 + $out/bin/melange --help 60 + $out/bin/melange version 2>&1 | grep "v${version}" 61 + 62 + runHook postInstallCheck 63 + ''; 64 + 65 + meta = with lib; { 66 + homepage = "https://github.com/chainguard-dev/melange"; 67 + changelog = "https://github.com/chainguard-dev/melange/blob/${src.rev}/NEWS.md"; 68 + description = "Build APKs from source code"; 69 + license = licenses.asl20; 70 + maintainers = with maintainers; [ developer-guy ]; 71 + }; 72 + }
+2
pkgs/top-level/all-packages.nix
··· 290 290 291 291 apko = callPackage ../development/tools/apko { }; 292 292 293 + melange = callPackage ../development/tools/melange { }; 294 + 293 295 appthreat-depscan = callPackage ../development/tools/appthreat-depscan { }; 294 296 295 297 activate-linux = callPackage ../applications/misc/activate-linux { };