about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/caddy/xcaddy
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/caddy/xcaddy')
-rw-r--r--nixpkgs/pkgs/servers/caddy/xcaddy/default.nix36
-rw-r--r--nixpkgs/pkgs/servers/caddy/xcaddy/inject_version_info.diff16
-rw-r--r--nixpkgs/pkgs/servers/caddy/xcaddy/use_tmpdir_on_darwin.diff13
3 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix b/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix
new file mode 100644
index 000000000000..930b3db4327b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "xcaddy";
+  version = "0.3.5";
+
+  subPackages = [ "cmd/xcaddy" ];
+
+  src = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-XxklyOaKFPyWFabodNCcV1NnaPWS0AQ2Sj89ZZ5hJbk=";
+  };
+
+  patches = [
+    ./inject_version_info.diff
+    ./use_tmpdir_on_darwin.diff
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/caddyserver/xcaddy/cmd.customVersion=v${version}"
+  ];
+
+  vendorHash = "sha256-RpbnoXyTrqGOI7DpgkO+J47P17T4QCVvM1CfS6kRO9Y=";
+
+  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/nixpkgs/pkgs/servers/caddy/xcaddy/inject_version_info.diff b/nixpkgs/pkgs/servers/caddy/xcaddy/inject_version_info.diff
new file mode 100644
index 000000000000..4d87aa687878
--- /dev/null
+++ b/nixpkgs/pkgs/servers/caddy/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/nixpkgs/pkgs/servers/caddy/xcaddy/use_tmpdir_on_darwin.diff b/nixpkgs/pkgs/servers/caddy/xcaddy/use_tmpdir_on_darwin.diff
new file mode 100644
index 000000000000..064d8feb5a05
--- /dev/null
+++ b/nixpkgs/pkgs/servers/caddy/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