d6f9b4d73b
There may have been some historic reason for doing this, but I couldn't find a practical use for building the (some) binaries with a version (default: "dev") included, only to use a symlink to refer to the actual binary. This patch removes the "${VERSION}" from the binary names in bundles, and removes the code that created symlinks for them. Before this patch: ```bash rm -rf ./bundles docker buildx build --build-arg VERSION=22.06.0-beta.1 --output ./bundles --target binary . tree bundles bundles └── binary-daemon ├── containerd ├── containerd-shim-runc-v2 ├── containerd-shim-runc-v2.md5 ├── containerd-shim-runc-v2.sha256 ├── containerd.md5 ├── containerd.sha256 ├── ctr ├── ctr.md5 ├── ctr.sha256 ├── docker-init ├── docker-init.md5 ├── docker-init.sha256 ├── docker-proxy -> docker-proxy-22.06.0-beta.1 ├── docker-proxy-22.06.0-beta.1 ├── docker-proxy-22.06.0-beta.1.md5 ├── docker-proxy-22.06.0-beta.1.sha256 ├── dockerd -> dockerd-22.06.0-beta.1 ├── dockerd-22.06.0-beta.1 ├── dockerd-22.06.0-beta.1.md5 ├── dockerd-22.06.0-beta.1.sha256 ├── dockerd-rootless-setuptool.sh ├── dockerd-rootless-setuptool.sh.md5 ├── dockerd-rootless-setuptool.sh.sha256 ├── dockerd-rootless.sh ├── dockerd-rootless.sh.md5 ├── dockerd-rootless.sh.sha256 ├── rootlesskit ├── rootlesskit-docker-proxy ├── rootlesskit-docker-proxy.md5 ├── rootlesskit-docker-proxy.sha256 ├── rootlesskit.md5 ├── rootlesskit.sha256 ├── runc ├── runc.md5 ├── runc.sha256 ├── vpnkit ├── vpnkit.md5 └── vpnkit.sha256 1 directory, 38 files ``` After this patch: ```bash rm -rf ./bundles docker buildx build --build-arg VERSION=22.06.0-beta.1 --output ./bundles --target binary . tree bundles bundles └── binary-daemon ├── containerd ├── containerd-shim-runc-v2 ├── containerd-shim-runc-v2.md5 ├── containerd-shim-runc-v2.sha256 ├── containerd.md5 ├── containerd.sha256 ├── ctr ├── ctr.md5 ├── ctr.sha256 ├── docker-init ├── docker-init.md5 ├── docker-init.sha256 ├── docker-proxy ├── docker-proxy.md5 ├── docker-proxy.sha256 ├── dockerd ├── dockerd-rootless-setuptool.sh ├── dockerd-rootless-setuptool.sh.md5 ├── dockerd-rootless-setuptool.sh.sha256 ├── dockerd-rootless.sh ├── dockerd-rootless.sh.md5 ├── dockerd-rootless.sh.sha256 ├── dockerd.md5 ├── dockerd.sha256 ├── rootlesskit ├── rootlesskit-docker-proxy ├── rootlesskit-docker-proxy.md5 ├── rootlesskit-docker-proxy.sha256 ├── rootlesskit.md5 ├── rootlesskit.sha256 ├── runc ├── runc.md5 ├── runc.sha256 ├── vpnkit ├── vpnkit.md5 └── vpnkit.sha256 1 directory, 36 files ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
85 lines
2.7 KiB
Bash
85 lines
2.7 KiB
Bash
#!/usr/bin/env sh
|
|
|
|
quadVersionNum() {
|
|
num=$(echo "${1:-0}" | cut -d. -f"$2")
|
|
if [ "$num" != "0" ]; then
|
|
echo "${num#0}"
|
|
else
|
|
echo "$num"
|
|
fi
|
|
}
|
|
|
|
# Create version quad for Windows of the form major.minor.patch.build
|
|
VERSION_QUAD=$(printf "%s" "$VERSION" | sed -re 's/^([0-9.]*).*$/\1/' | sed -re 's/\.$//' | sed -re 's/^[0-9]+$/\0\.0/' | sed -re 's/^[0-9]+\.[0-9]+$/\0\.0/' | sed -re 's/^[0-9]+\.[0-9]+\.[0-9]+$/\0\.0/')
|
|
|
|
# Generate winres.json to be able to create a syso file which contains
|
|
# Microsoft Windows Version Information and an icon using go-winres.
|
|
# https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block
|
|
# https://github.com/tc-hib/go-winres#json-format
|
|
cat > "./cli/winresources/${BINARY_NAME}/winres.json" << EOL
|
|
{
|
|
"RT_GROUP_ICON": {
|
|
"#1": {
|
|
"0409": "../../winresources/docker.ico"
|
|
}
|
|
},
|
|
"RT_MANIFEST": {
|
|
"#1": {
|
|
"0409": {
|
|
"identity": {},
|
|
"description": "Docker Engine",
|
|
"minimum-os": "vista",
|
|
"execution-level": "",
|
|
"ui-access": false,
|
|
"auto-elevate": false,
|
|
"dpi-awareness": "unaware",
|
|
"disable-theming": false,
|
|
"disable-window-filtering": false,
|
|
"high-resolution-scrolling-aware": false,
|
|
"ultra-high-resolution-scrolling-aware": false,
|
|
"long-path-aware": false,
|
|
"printer-driver-isolation": false,
|
|
"gdi-scaling": false,
|
|
"segment-heap": false,
|
|
"use-common-controls-v6": false
|
|
}
|
|
}
|
|
},
|
|
"RT_MESSAGETABLE": {
|
|
"#1": {
|
|
"0409": "../../winresources/event_messages.bin"
|
|
}
|
|
},
|
|
"RT_VERSION": {
|
|
"#1": {
|
|
"0409": {
|
|
"fixed": {
|
|
"file_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)",
|
|
"product_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)",
|
|
"type": "Unknown"
|
|
},
|
|
"info": {
|
|
"0000": {
|
|
"CompanyName": "${PACKAGER_NAME}",
|
|
"FileVersion": "${VERSION}",
|
|
"LegalCopyright": "Copyright © 2015-$(date +'%Y') Docker Inc.",
|
|
"OriginalFileName": "$(basename "${BINARY_FULLNAME}")",
|
|
"ProductName": "${PRODUCT}",
|
|
"ProductVersion": "${VERSION}",
|
|
"SpecialBuild": "${GITCOMMIT}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
EOL
|
|
(
|
|
set -x
|
|
cat "./cli/winresources/${BINARY_NAME}/winres.json"
|
|
)
|
|
|
|
# Create winresources package stub if removed while using tmpfs in Dockerfile
|
|
if [ ! -f "./cli/winresources/${BINARY_NAME}/winresources.go" ]; then
|
|
echo "package winresources" > "./cli/winresources/${BINARY_NAME}/winresources.go"
|
|
fi
|