mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-23 01:11:40 +00:00

This feature is "registered" as an ipnlocal.Extension, and conditionally linked depending on GOOS and ts_omit_relayserver build tag. The feature is not linked on iOS in attempt to limit the impact to binary size and resulting effect of pushing up against NetworkExtension limits. Eventually we will want to support the relay server on iOS, specifically on the Apple TV. Apple TVs are well-fitted to act as underlay relay servers as they are effectively always-on servers. This skeleton begins to tie a PeerAPI endpoint to a net/udprelay.Server. The PeerAPI endpoint is currently no-op as extension.shouldRunRelayServer() always returns false. Follow-up commits will implement extension.shouldRunRelayServer(). Updates tailscale/corp#27502 Signed-off-by: Jordan Whited <jordan@tailscale.com>
61 lines
1.5 KiB
Bash
Executable File
61 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
#
|
|
# Runs `go build` with flags configured for binary distribution. All
|
|
# it does differently from `go build` is burn git commit and version
|
|
# information into the binaries, so that we can track down user
|
|
# issues.
|
|
#
|
|
# If you're packaging Tailscale for a distro, please consider using
|
|
# this script, or executing equivalent commands in your
|
|
# distro-specific build system.
|
|
|
|
set -eu
|
|
|
|
go="go"
|
|
if [ -n "${TS_USE_TOOLCHAIN:-}" ]; then
|
|
go="./tool/go"
|
|
fi
|
|
|
|
eval `CGO_ENABLED=0 GOOS=$($go env GOHOSTOS) GOARCH=$($go env GOHOSTARCH) $go run ./cmd/mkversion`
|
|
|
|
if [ "$1" = "shellvars" ]; then
|
|
cat <<EOF
|
|
VERSION_MINOR="$VERSION_MINOR"
|
|
VERSION_SHORT="$VERSION_SHORT"
|
|
VERSION_LONG="$VERSION_LONG"
|
|
VERSION_GIT_HASH="$VERSION_GIT_HASH"
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
tags="${TAGS:-}"
|
|
ldflags="-X tailscale.com/version.longStamp=${VERSION_LONG} -X tailscale.com/version.shortStamp=${VERSION_SHORT}"
|
|
|
|
# build_dist.sh arguments must precede go build arguments.
|
|
while [ "$#" -gt 1 ]; do
|
|
case "$1" in
|
|
--extra-small)
|
|
if [ ! -z "${TAGS:-}" ]; then
|
|
echo "set either --extra-small or \$TAGS, but not both"
|
|
exit 1
|
|
fi
|
|
shift
|
|
ldflags="$ldflags -w -s"
|
|
tags="${tags:+$tags,}ts_omit_aws,ts_omit_bird,ts_omit_tap,ts_omit_kube,ts_omit_completion,ts_omit_ssh,ts_omit_wakeonlan,ts_omit_capture,ts_omit_relayserver"
|
|
;;
|
|
--box)
|
|
if [ ! -z "${TAGS:-}" ]; then
|
|
echo "set either --box or \$TAGS, but not both"
|
|
exit 1
|
|
fi
|
|
shift
|
|
tags="${tags:+$tags,}ts_include_cli"
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
exec $go build ${tags:+-tags=$tags} -ldflags "$ldflags" "$@"
|