From 0825e1505df7ad70ac6efa8f73c5243249897029 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 24 Mar 2026 01:21:04 +0100 Subject: [PATCH] Fix build deb rpm packages (#6309) --- .cspell.json | 1 + Makefile | 2 +- nfpm/agent.yaml | 3 +++ nfpm/server.yaml | 3 +++ nfpm/woodpecker-system-user.preinstall.sh | 18 ++++++++++++++++++ 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100755 nfpm/woodpecker-system-user.preinstall.sh diff --git a/.cspell.json b/.cspell.json index 2a59bf2957..ff2d2e2de8 100644 --- a/.cspell.json +++ b/.cspell.json @@ -141,6 +141,7 @@ "nixpkgs", "nocolor", "nolint", + "nologin", "norunningpipelines", "nosniff", "ntfy", diff --git a/Makefile b/Makefile index 6e5a99e671..ff23a95265 100644 --- a/Makefile +++ b/Makefile @@ -334,7 +334,7 @@ release-checksums: ## Create checksums for all release files release: release-frontend release-server release-agent release-cli ## Release all binaries bundle-prepare: ## Prepare the bundles - go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v2.6.0 + CGO_ENABLED=0 go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v2.45.0 bundle-agent: bundle-prepare ## Create bundles for agent VERSION_NUMBER=$(VERSION_NUMBER) nfpm package --config ./nfpm/agent.yaml --target ${DIST_DIR} --packager deb diff --git a/nfpm/agent.yaml b/nfpm/agent.yaml index b19a6a8a8c..1a0afeb51f 100644 --- a/nfpm/agent.yaml +++ b/nfpm/agent.yaml @@ -7,6 +7,8 @@ homepage: https://woodpecker-ci.org/ license: Apache 2.0 maintainer: Woodpecker Authors section: daemon/system +scripts: + preinstall: ./nfpm/woodpecker-system-user.preinstall.sh contents: - src: ./dist/agent/linux_amd64/woodpecker-agent dst: /usr/local/bin/woodpecker-agent @@ -19,3 +21,4 @@ contents: file_info: owner: woodpecker group: woodpecker + mode: 0750 diff --git a/nfpm/server.yaml b/nfpm/server.yaml index 17f9e6a47b..982476e69e 100644 --- a/nfpm/server.yaml +++ b/nfpm/server.yaml @@ -7,6 +7,8 @@ homepage: https://woodpecker-ci.org/ license: Apache 2.0 maintainer: Woodpecker Authors section: daemon/system +scripts: + preinstall: ./nfpm/woodpecker-system-user.preinstall.sh contents: - src: ./dist/server/linux_amd64/woodpecker-server dst: /usr/local/bin/woodpecker-server @@ -19,3 +21,4 @@ contents: file_info: owner: woodpecker group: woodpecker + mode: 0750 diff --git a/nfpm/woodpecker-system-user.preinstall.sh b/nfpm/woodpecker-system-user.preinstall.sh new file mode 100755 index 0000000000..57c2262120 --- /dev/null +++ b/nfpm/woodpecker-system-user.preinstall.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +# Create woodpecker group if it doesn't exist +if ! getent group woodpecker > /dev/null 2>&1; then + groupadd --system woodpecker +fi + +# Create woodpecker user if it doesn't exist +if ! getent passwd woodpecker > /dev/null 2>&1; then + useradd \ + --system \ + --gid woodpecker \ + --no-create-home \ + --home-dir /var/lib/woodpecker \ + --shell /sbin/nologin \ + woodpecker +fi