Skip to content

Commit 1012969

Browse files
barnstarraggi
andcommitted
Makefile, swift: bump tailscale.com to 1.94.1 and support xCode 26 SDK
Toolchains and tailscale.com bumped to latest. Various build and test harness fixes. Co-authored-by: James Tucker <james@tailscale.com> Signed-off-by: James Tucker <jftucker@gmail.com>
1 parent 9a1c47d commit 1012969

8 files changed

Lines changed: 261 additions & 155 deletions

File tree

Makefile

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,41 @@
11
# Copyright (c) Tailscale Inc & AUTHORS
22
# SPDX-License-Identifier: BSD-3-Clause
33

4+
# Detect GOOS if not set
5+
ifeq ($(GOOS),)
6+
GOOS := $(shell go env GOOS)
7+
endif
48

5-
libtailscale.a:
6-
go build -buildmode=c-archive
9+
export CGO_ENABLED=1
10+
11+
# This should match the minimum target in the xCode project
12+
# The wrapper lib currently requires features available in
13+
# MacOS 15.0 (Sequoia)
14+
MACOS_TARGET := 15.0
15+
16+
# Set macOS-specific flags for darwin builds
17+
ifeq ($(GOOS),darwin)
18+
DARWIN_CGO_CFLAGS := -mmacos-version-min=$(MACOS_TARGET)
19+
DARWIN_CGO_LDFLAGS := -mmacos-version-min=$(MACOS_TARGET)
20+
DARWIN_DEPLOYMENT_TARGET := MACOSX_DEPLOYMENT_TARGET=$(MACOS_TARGET)
21+
endif
22+
23+
libtailscale.so:
24+
$(DARWIN_DEPLOYMENT_TARGET) CGO_CFLAGS="$(CGO_CFLAGS) $(DARWIN_CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS) $(DARWIN_CGO_LDFLAGS)" go build -v -buildmode=c-shared -o $@
25+
26+
libtailscale.a:
27+
$(DARWIN_DEPLOYMENT_TARGET) CGO_CFLAGS="$(CGO_CFLAGS) $(DARWIN_CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS) $(DARWIN_CGO_LDFLAGS)" go build -buildmode=c-archive -o $@
728

829
libtailscale_ios.a:
9-
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 CC=$(PWD)/swift/script/clangwrap-ios.sh go build -v -ldflags -w -tags ios -o libtailscale_ios.a -buildmode=c-archive
30+
# TODO(raggi): setup a PREFIX in the libtailscale.a build, then delete these targets, the caller should be setting PREFIX and CC
31+
# that way the caller can also use the prefix, and not have to specialize target/link object names per build configuration.
32+
GOOS=ios GOARCH=arm64 CC=$(PWD)/swift/script/clangwrap-ios.sh go build -v -ldflags -w -tags ios -o $@ -buildmode=c-archive
1033

1134
libtailscale_ios_sim_arm64.a:
12-
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 CC=$(PWD)/swift/script/clangwrap-ios-sim-arm.sh go build -v -ldflags -w -tags ios -o libtailscale_ios_sim_arm64.a -buildmode=c-archive
35+
GOOS=ios GOARCH=arm64 CC=$(PWD)/swift/script/clangwrap-ios-sim-arm.sh go build -v -ldflags -w -tags ios -o $@ -buildmode=c-archive
1336

1437
libtailscale_ios_sim_x86_64.a:
15-
GOOS=ios GOARCH=amd64 CGO_ENABLED=1 CC=$(PWD)/swift/script/clangwrap-ios-sim-x86.sh go build -v -ldflags -w -tags ios -o libtailscale_ios_sim_x86_64.a -buildmode=c-archive
38+
GOOS=ios GOARCH=amd64 CC=$(PWD)/swift/script/clangwrap-ios-sim-x86.sh go build -v -ldflags -w -tags ios -o $@ -buildmode=c-archive
1639

1740
.PHONY: c-archive-ios
1841
c-archive-ios: libtailscale_ios.a ## Builds libtailscale_ios.a for iOS (iOS SDK required)
@@ -21,17 +44,18 @@ c-archive-ios: libtailscale_ios.a ## Builds libtailscale_ios.a for iOS (iOS SDK
2144
c-archive-ios-sim: libtailscale_ios_sim_arm64.a libtailscale_ios_sim_x86_64.a ## Builds a fat binary for iOS (iOS SDK required)
2245
lipo -create -output libtailscale_ios_sim.a libtailscale_ios_sim_x86_64.a libtailscale_ios_sim_arm64.a
2346

24-
.PHONY: c-archive
47+
.PHONY: c-archive
2548
c-archive: libtailscale.a ## Builds libtailscale.a for the target platform
2649

2750
.PHONY: shared
28-
shared: ## Builds libtailscale.so for the target platform
29-
go build -v -buildmode=c-shared
51+
shared: libtailscale.so ## Builds libtailscale.so for the target platform
3052

3153
.PHONY: clean
3254
clean: ## Clean up build artifacts
3355
rm -f libtailscale*.h
3456
rm -f libtailscale*.a
57+
rm -f libtailscale*.so
58+
3559

3660
.PHONY: help
3761
help: ## Show this help

go.mod

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,101 @@
11
module github.com/tailscale/libtailscale
22

3-
go 1.24.0
3+
go 1.25.5
44

5-
toolchain go1.24.2
6-
7-
require tailscale.com v1.82.5
5+
require tailscale.com v1.94.1
86

97
require (
8+
9fans.net/go v0.0.8-0.20250307142834-96bdba94b63f // indirect
109
filippo.io/edwards25519 v1.1.0 // indirect
11-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
10+
github.com/BurntSushi/toml v1.5.0 // indirect
1211
github.com/akutz/memconn v0.1.0 // indirect
1312
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect
1413
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
15-
github.com/aws/aws-sdk-go-v2 v1.36.0 // indirect
14+
github.com/aws/aws-sdk-go-v2 v1.41.0 // indirect
1615
github.com/aws/aws-sdk-go-v2/config v1.29.5 // indirect
1716
github.com/aws/aws-sdk-go-v2/credentials v1.17.58 // indirect
1817
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.27 // indirect
19-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.31 // indirect
20-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 // indirect
18+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect
19+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect
2120
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect
22-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
23-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.12 // indirect
21+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
22+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect
2423
github.com/aws/aws-sdk-go-v2/service/ssm v1.44.7 // indirect
2524
github.com/aws/aws-sdk-go-v2/service/sso v1.24.14 // indirect
2625
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.13 // indirect
27-
github.com/aws/aws-sdk-go-v2/service/sts v1.33.13 // indirect
28-
github.com/aws/smithy-go v1.22.2 // indirect
26+
github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 // indirect
27+
github.com/aws/smithy-go v1.24.0 // indirect
28+
github.com/axiomhq/hyperloglog v0.0.0-20240319100328-84253e514e02 // indirect
2929
github.com/coder/websocket v1.8.12 // indirect
3030
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
31+
github.com/creachadair/msync v0.7.1 // indirect
3132
github.com/creack/pty v1.1.23 // indirect
3233
github.com/dblohm7/wingoes v0.0.0-20240119213807-a09d6be7affa // indirect
34+
github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc // indirect
3335
github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect
3436
github.com/djherbis/times v1.6.0 // indirect
35-
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
37+
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
3638
github.com/gaissmai/bart v0.18.0 // indirect
37-
github.com/go-json-experiment/json v0.0.0-20250223041408-d3c622f1b874 // indirect
39+
github.com/go-json-experiment/json v0.0.0-20250813024750-ebf49471dced // indirect
3840
github.com/go-ole/go-ole v1.3.0 // indirect
41+
github.com/go4org/plan9netshell v0.0.0-20250324183649-788daa080737 // indirect
3942
github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 // indirect
40-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
41-
github.com/google/btree v1.1.2 // indirect
42-
github.com/google/go-cmp v0.6.0 // indirect
43+
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
44+
github.com/google/btree v1.1.3 // indirect
45+
github.com/google/go-cmp v0.7.0 // indirect
46+
github.com/google/go-tpm v0.9.4 // indirect
4347
github.com/google/nftables v0.2.1-0.20240414091927-5e242ec57806 // indirect
4448
github.com/google/uuid v1.6.0 // indirect
45-
github.com/gorilla/csrf v1.7.3-0.20250123201450-9dd6af1f6d30 // indirect
46-
github.com/gorilla/securecookie v1.1.2 // indirect
4749
github.com/hdevalence/ed25519consensus v0.2.0 // indirect
50+
github.com/huin/goupnp v1.3.0 // indirect
4851
github.com/illarion/gonotify/v3 v3.0.2 // indirect
4952
github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2 // indirect
5053
github.com/jellydator/ttlcache/v3 v3.1.0 // indirect
5154
github.com/jmespath/go-jmespath v0.4.0 // indirect
5255
github.com/jsimonetti/rtnetlink v1.4.0 // indirect
53-
github.com/klauspost/compress v1.17.11 // indirect
56+
github.com/klauspost/compress v1.18.2 // indirect
5457
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
5558
github.com/kr/fs v0.1.0 // indirect
5659
github.com/mdlayher/genetlink v1.3.2 // indirect
5760
github.com/mdlayher/netlink v1.7.3-0.20250113171957-fbb4dce95f42 // indirect
5861
github.com/mdlayher/sdnotify v1.0.0 // indirect
5962
github.com/mdlayher/socket v0.5.0 // indirect
60-
github.com/miekg/dns v1.1.58 // indirect
6163
github.com/mitchellh/go-ps v1.0.0 // indirect
6264
github.com/pierrec/lz4/v4 v4.1.21 // indirect
65+
github.com/pires/go-proxyproto v0.8.1 // indirect
6366
github.com/pkg/sftp v1.13.6 // indirect
6467
github.com/prometheus-community/pro-bing v0.4.0 // indirect
6568
github.com/safchain/ethtool v0.3.0 // indirect
6669
github.com/tailscale/certstore v0.1.1-0.20231202035212-d3fa0460f47e // indirect
6770
github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55 // indirect
68-
github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect
6971
github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a // indirect
7072
github.com/tailscale/netlink v1.1.1-0.20240822203006-4d49adab4de7 // indirect
7173
github.com/tailscale/peercred v0.0.0-20250107143737-35a0c7bd7edc // indirect
7274
github.com/tailscale/web-client-prebuilt v0.0.0-20250124233751-d4cd19a26976 // indirect
7375
github.com/tailscale/wf v0.0.0-20240214030419-6fbb0a674ee6 // indirect
74-
github.com/tailscale/wireguard-go v0.0.0-20250107165329-0b8b35511f19 // indirect
76+
github.com/tailscale/wireguard-go v0.0.0-20250716170648-1d0488a3d7da // indirect
7577
github.com/tailscale/xnet v0.0.0-20240729143630-8497ac4dab2e // indirect
76-
github.com/u-root/u-root v0.12.0 // indirect
78+
github.com/u-root/u-root v0.14.0 // indirect
7779
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
78-
github.com/vishvananda/netns v0.0.4 // indirect
80+
github.com/vishvananda/netns v0.0.5 // indirect
7981
github.com/x448/float16 v0.8.4 // indirect
8082
go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect
8183
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
82-
golang.org/x/crypto v0.35.0 // indirect
83-
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect
84+
golang.org/x/crypto v0.46.0 // indirect
85+
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
8486
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
85-
golang.org/x/mod v0.23.0 // indirect
86-
golang.org/x/net v0.36.0 // indirect
87-
golang.org/x/sync v0.11.0 // indirect
88-
golang.org/x/sys v0.30.0 // indirect
89-
golang.org/x/term v0.29.0 // indirect
90-
golang.org/x/text v0.22.0 // indirect
91-
golang.org/x/time v0.10.0 // indirect
92-
golang.org/x/tools v0.30.0 // indirect
87+
golang.org/x/mod v0.30.0 // indirect
88+
golang.org/x/net v0.48.0 // indirect
89+
golang.org/x/oauth2 v0.32.0 // indirect
90+
golang.org/x/sync v0.19.0 // indirect
91+
golang.org/x/sys v0.40.0 // indirect
92+
golang.org/x/term v0.38.0 // indirect
93+
golang.org/x/text v0.32.0 // indirect
94+
golang.org/x/time v0.12.0 // indirect
95+
golang.org/x/tools v0.39.0 // indirect
96+
golang.org/x/tools/go/expect v0.1.1-deprecated // indirect
9397
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
9498
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
9599
gvisor.dev/gvisor v0.0.0-20250205023644-9414b50a5633 // indirect
96-
honnef.co/go/tools v0.5.1 // indirect
100+
honnef.co/go/tools v0.7.0-0.dev.0.20251022135355-8273271481d0 // indirect
97101
)

0 commit comments

Comments
 (0)