about summary refs log tree commit diff
path: root/pkgs/by-name
diff options
context:
space:
mode:
authorJonas Heinrich <onny@project-insanity.org>2024-05-11 18:44:58 +0200
committerGitHub <noreply@github.com>2024-05-11 18:44:58 +0200
commit9d99eed00acd9a3893352c75e58240f49f03e173 (patch)
tree7dafcf05f939074ef62629979178f505b38bb03c /pkgs/by-name
parent1f9b5c5c59a0626bf3c5bdfdbcdbe82c64f63944 (diff)
parent3f36f949d5a1bbc01539458a1c675bd7ea520aac (diff)
Merge pull request #310561 from onny/caddy-riscv
caddy: Cross-compilation fix, various enhancements
Diffstat (limited to 'pkgs/by-name')
-rw-r--r--pkgs/by-name/ca/caddy/package.nix76
-rw-r--r--pkgs/by-name/xc/xcaddy/inject_version_info.diff16
-rw-r--r--pkgs/by-name/xc/xcaddy/package.nix36
-rw-r--r--pkgs/by-name/xc/xcaddy/use_tmpdir_on_darwin.diff13
4 files changed, 141 insertions, 0 deletions
diff --git a/pkgs/by-name/ca/caddy/package.nix b/pkgs/by-name/ca/caddy/package.nix
new file mode 100644
index 0000000000000..73ab67366483b
--- /dev/null
+++ b/pkgs/by-name/ca/caddy/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nixosTests
+, caddy
+, testers
+, installShellFiles
+, stdenv
+}:
+let
+  version = "2.7.6";
+  dist = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = "dist";
+    rev = "v${version}";
+    hash = "sha256-aZ7hdAZJH1PvrX9GQLzLquzzZG3LZSKOvt7sWQhTiR8=";
+  };
+in
+buildGoModule {
+  pname = "caddy";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = "caddy";
+    rev = "v${version}";
+    hash = "sha256-th0R3Q1nGT0q5PGOygtD1/CpJmrT5TYagrwQR4t/Fvg=";
+  };
+
+  vendorHash = "sha256-ebnSehuhbCY58ctM8IRVMfNxxbJBp6ht9cbuLdGFNek=";
+
+  subPackages = [ "cmd/caddy" ];
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/caddyserver/caddy/v2.CustomVersion=${version}"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    install -Dm644 ${dist}/init/caddy.service ${dist}/init/caddy-api.service -t $out/lib/systemd/system
+
+    substituteInPlace $out/lib/systemd/system/caddy.service \
+      --replace-fail "/usr/bin/caddy" "$out/bin/caddy"
+    substituteInPlace $out/lib/systemd/system/caddy-api.service \
+      --replace-fail "/usr/bin/caddy" "$out/bin/caddy"
+  '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    # Generating man pages and completions fail on cross-compilation
+    # https://github.com/NixOS/nixpkgs/issues/308283
+
+    $out/bin/caddy manpage --directory manpages
+    installManPage manpages/*
+
+    installShellCompletion --cmd caddy \
+      --bash <($out/bin/caddy completion bash) \
+      --fish <($out/bin/caddy completion fish) \
+      --zsh <($out/bin/caddy completion zsh)
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) caddy;
+    version = testers.testVersion {
+      command = "${caddy}/bin/caddy version";
+      package = caddy;
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://caddyserver.com";
+    description = "Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS";
+    license = licenses.asl20;
+    mainProgram = "caddy";
+    maintainers = with maintainers; [ Br1ght0ne emilylange techknowlogick ];
+  };
+}
diff --git a/pkgs/by-name/xc/xcaddy/inject_version_info.diff b/pkgs/by-name/xc/xcaddy/inject_version_info.diff
new file mode 100644
index 0000000000000..4d87aa6878781
--- /dev/null
+++ b/pkgs/by-name/xc/xcaddy/inject_version_info.diff
@@ -0,0 +1,16 @@
+diff --git a/cmd/main.go b/cmd/main.go
+index ede7cd8..c553140 100644
+--- a/cmd/main.go
++++ b/cmd/main.go
+@@ -401,8 +401,11 @@ func splitWith(arg string) (module, version, replace string, err error) {
+ 	return
+ }
+
++var customVersion string
++
+ // xcaddyVersion returns a detailed version string, if available.
+ func xcaddyVersion() string {
++	return customVersion
+ 	mod := goModule()
+ 	ver := mod.Version
+ 	if mod.Sum != "" {
diff --git a/pkgs/by-name/xc/xcaddy/package.nix b/pkgs/by-name/xc/xcaddy/package.nix
new file mode 100644
index 0000000000000..69a531c70767a
--- /dev/null
+++ b/pkgs/by-name/xc/xcaddy/package.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "xcaddy";
+  version = "0.4.1";
+
+  subPackages = [ "cmd/xcaddy" ];
+
+  src = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-xEPSRKrQC9hb+G9/rV9/k4btvZxXZkcsxmaxWcgl2fk=";
+  };
+
+  patches = [
+    ./inject_version_info.diff
+    ./use_tmpdir_on_darwin.diff
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/caddyserver/xcaddy/cmd.customVersion=v${version}"
+  ];
+
+  vendorHash = "sha256-7yd/6h1DKw7X/1NbHtr2vbpyapF81HPmDm7O4oV5nlc=";
+
+  meta = with lib; {
+    homepage = "https://github.com/caddyserver/xcaddy";
+    description = "Build Caddy with plugins";
+    mainProgram = "xcaddy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tjni emilylange ];
+  };
+}
diff --git a/pkgs/by-name/xc/xcaddy/use_tmpdir_on_darwin.diff b/pkgs/by-name/xc/xcaddy/use_tmpdir_on_darwin.diff
new file mode 100644
index 0000000000000..064d8feb5a05a
--- /dev/null
+++ b/pkgs/by-name/xc/xcaddy/use_tmpdir_on_darwin.diff
@@ -0,0 +1,13 @@
+diff --git a/builder.go b/builder.go
+index ed6c5ef..36e8055 100644
+--- a/builder.go
++++ b/builder.go
+@@ -200,7 +200,7 @@ func NewReplace(old, new string) Replace {
+ // It is the caller's responsibility to remove the folder when finished.
+ func newTempFolder() (string, error) {
+ 	var parentDir string
+-	if runtime.GOOS == "darwin" {
++	if false && runtime.GOOS == "darwin" {
+ 		// After upgrading to macOS High Sierra, Caddy builds mysteriously
+ 		// started missing the embedded version information that -ldflags
+ 		// was supposed to produce. But it only happened on macOS after