summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKristoffer Dalby <kristoffer@tailscale.com>2026-04-01 12:10:37 +0000
committerKristoffer Dalby <kristoffer@tailscale.com>2026-04-16 14:41:55 +0000
commit506385b1915f4f8023f0685d974ae9bc18765843 (patch)
tree64ab5f17e4495a9d7d54c4afaf77039ea32ad80f
parent1dc08f4d41000f9ea08eb754aa35d91bbad62802 (diff)
downloadtailscale-kradalby/qnap-xml.tar.xz
tailscale-kradalby/qnap-xml.zip
release/dist/qnap: preserve .codesigning files as build artifactskradalby/qnap-xml
Stop deleting .qpkg.codesigning files in build-qpkg.sh and include them in the returned artifact list from buildQPKG. These files contain the last 32 characters of the base64-encoded CMS signature produced by QDK code signing. They are consumed by pkgserve to populate <signature> entries in the QNAP repository XML, matching the format used by myqnap.org and qnapclub.eu. Updates corp#33203 Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
-rwxr-xr-xrelease/dist/qnap/files/scripts/build-qpkg.sh16
-rw-r--r--release/dist/qnap/pkgs.go11
2 files changed, 14 insertions, 13 deletions
diff --git a/release/dist/qnap/files/scripts/build-qpkg.sh b/release/dist/qnap/files/scripts/build-qpkg.sh
index d478bfe6b..61786ead8 100755
--- a/release/dist/qnap/files/scripts/build-qpkg.sh
+++ b/release/dist/qnap/files/scripts/build-qpkg.sh
@@ -4,17 +4,9 @@ set -eu
# Clean up folders and files created during build.
function cleanup() {
- rm -rf /Tailscale/$ARCH
- rm -f /Tailscale/sed*
- rm -f /Tailscale/qpkg.cfg
-
- # If this build was signed, a .qpkg.codesigning file will be created as an
- # artifact of the build
- # (see https://github.com/qnap-dev/qdk2/blob/93ac75c76941b90ee668557f7ce01e4b23881054/QDK_2.x/bin/qbuild#L992).
- #
- # go/client-release doesn't seem to need these, so we delete them here to
- # avoid uploading them to pkgs.tailscale.com.
- rm -f /out/*.qpkg.codesigning
+ rm -rf /Tailscale/$ARCH
+ rm -f /Tailscale/sed*
+ rm -f /Tailscale/qpkg.cfg
}
trap cleanup EXIT
@@ -22,6 +14,6 @@ mkdir -p /Tailscale/$ARCH
cp /tailscaled /Tailscale/$ARCH/tailscaled
cp /tailscale /Tailscale/$ARCH/tailscale
-sed "s/\$QPKG_VER/$TSTAG-$QNAPTAG/g" /Tailscale/qpkg.cfg.in > /Tailscale/qpkg.cfg
+sed "s/\$QPKG_VER/$TSTAG-$QNAPTAG/g" /Tailscale/qpkg.cfg.in >/Tailscale/qpkg.cfg
qbuild --root /Tailscale --build-arch $ARCH --build-dir /out
diff --git a/release/dist/qnap/pkgs.go b/release/dist/qnap/pkgs.go
index 1d69b3eaf..b505b1ac0 100644
--- a/release/dist/qnap/pkgs.go
+++ b/release/dist/qnap/pkgs.go
@@ -118,7 +118,16 @@ func (t *target) buildQPKG(b *dist.Build, qnapBuilds *qnapBuilds, inner *innerPk
return nil, fmt.Errorf("docker run %v: %s", err, out)
}
- return []string{filePath, filePath + ".md5"}, nil
+ ret := []string{filePath, filePath + ".md5"}
+ // If the build was signed, a .codesigning file is produced containing
+ // the last 32 characters of the base64-encoded CMS signature. This is
+ // used by pkgserve to populate <signature> entries in the QNAP
+ // repository XML.
+ codesigning := filePath + ".codesigning"
+ if _, err := os.Stat(codesigning); err == nil {
+ ret = append(ret, codesigning)
+ }
+ return ret, nil
}
type qnapBuildsMemoizeKey struct{}