@@ -0,0 +1,53 @@
1+{ lib
2+, stdenv
3+, buildGoModule
4+, fetchFromGitHub
5+, pkg-config
6+, gpgme
7+, glibc
8+, lvm2
9+, btrfs-progs
10+}:
11+
12+buildGoModule rec {
13+ pname = "werf";
14+ version = "1.2.55";
15+
16+ src = fetchFromGitHub {
17+ owner = "werf";
18+ repo = "werf";
19+ rev = "v${version}";
20+ sha256 = "sha256-yLrCE0C8+LIXnBm4xG4q0vXtjTyau6mjkZ+/o/lbGhI=";
21+ };
22+ vendorSha256 = "sha256-xALB4QCIVpN0s1rR/fvHZFlFDf2trtG8yJKJLBRH4pw=";
23+ proxyVendor = true;
24+
25+ nativeBuildInputs = [ pkg-config ];
26+ buildInputs = [ gpgme ]
27+ ++ lib.optionals stdenv.isLinux [ glibc.static lvm2 btrfs-progs ];
28+
29+ # Flags are derived from
30+ # https://github.com/werf/werf/blob/main/scripts/build_release_v3.sh
31+ ldflags = [ "-s" "-w" "-X github.com/werf/werf/pkg/werf.Version=v${version}" ]
32+ ++ lib.optionals stdenv.isLinux [
33+ "-linkmode external"
34+ "-extldflags=-static"
35+ ];
36+ tags = [ "dfrunmount" "dfssh" "containers_image_openpgp" ]
37+ ++ lib.optionals stdenv.isLinux [
38+ "exclude_graphdriver_devicemapper"
39+ "netgo"
40+ "no_devmapper"
41+ "osusergo"
42+ "static_build"
43+ ];
44+
45+ subPackages = [ "cmd/werf" ];
46+
47+ meta = with lib; {
48+ homepage = "https://github.com/werf/werf";
49+ description = "GitOps delivery tool";
50+ license = licenses.asl20;
51+ maintainers = with maintainers; [ azahi ];
52+ };
53+}