Commit Graph

57 Commits (main)

Author SHA1 Message Date
James Tucker 3f864b28c7
Makefile: clean up the Makefile (#354)
The Makefile has been through a lot of change in recent iterations and
is overdue another cleaning.

- Variables still in use are moved to the variable definition area at
  the top of the file
- Added three distinct sections separated by comment: android build, go
  build and utility tasks.
- Relocated tasks into one of those three sections as appropriate
- Removed intermediate phony targets from the APK builds, as they're
  just making the build harder to trace file wise.
- Shifted from a central PHONY definition to incrementally defined
  dependencies to ensure every non-file task is correctly marked.
- Switch the final APK moves to use install -C to avoid updating the
  target files unless actually necessary.
- Add some missing dependencies on some tasks, centralized the gradle
  dependencies into a single task for easier re-use.
- Remove some single-use variable definitions.
- Don't promote /bin to high in $PATH when $JAVA_HOME is un-set.

Updates #cleanup

Signed-off-by: James Tucker <james@tailscale.com>
2 days ago
kari-ts 39628be8a6
libtailscale, android: fix allow LAN access (#324)
-Exclude local routes in VPNServiceBuilder
-Maybe update TUN on new state update where state >= starting
-Clean up updateTUN

Updates tailscale/corp#18984
Updates tailscale/corp#18202

Signed-off-by: kari-ts <kari@tailscale.com>
6 days ago
kari-ts 81acaef5b7
android: rip android_legacy (#335)
Updates #cleanup
Signed-off-by: kari-ts <kari@tailscale.com>
2 weeks ago
kari-ts 3e32e97261
Makefile: clean up legacy builds (#316)
-Remove legacy builds
-Update version number and name using last unstable

Updates tailscale/corp#18202
Fixes tailscale/corp#19001

Signed-off-by: kari-ts <kari@tailscale.com>
3 weeks ago
Percy Wegmann 482b350ce0 android: add smoke test
The test verifies that one can log in via the UI and hit hello.ts.net.

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
3 weeks ago
kari-ts 38f57b4737
build.gradle, Makefile: remove custom fdroid build (#297)
We're no longer using GoogleSignIn, so there's no need for separate product flavors
Clean up unused dependencies
Updates tailscale/corp#18202

Signed-off-by: kari-ts <kari@tailscale.com>
3 weeks ago
Percy Wegmann 54dccff232 android/ui: strip DWARF debug information from libtailscale
Reduces total size for 4 architectures from 59517778 to 33420646

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
4 weeks ago
Will Norris 9fcdcfe630 Makefile: add help text to make commands
Add `make help` command, which prints available commands and their
description.  I'm not 100% sure which commands should be documented, so
took an initial attempt at it.

This also makes `make help` the default command, aligning it with the
Makefiles in corp and oss.

Updates tailscale/corp#18202

Signed-off-by: Will Norris <will@tailscale.com>
1 month ago
James Tucker 4e923a65c1 *: introduce tool/go following our common pattern
- This tool/go does not currently invoke gocross, as there's more work to
do in gocross to be fully compatible with gomobile.
- Use GOBIN to target the output destinations for gomobile and gobind.
- Remove the old toolchain targets from the Makefile.
- Use ~/.cache/tailscale-go, like the OSS repo does.
- Introduce go.toolchain.rev as we have in the OSS repo, and update it in
the bumposs task.

Updates tailscale/corp#18202

Signed-off-by: James Tucker <james@tailscale.com>
1 month ago
James Tucker 2a14964878 Makefile: cleanup the new builds more
- Provide version flags to the build
- Add the new build targets to all
- Move the old fdroid and release builds close to their siblings
- Build gomobile into android/build/go for a small reduction in linker
  wait time
- Fix the test target so it's now triggering the gomobile build
- Make the install target use the new android build
- Add missing items to the clean target

Updates tailscale/corp#18202

Signed-off-by: James Tucker <james@tailscale.com>
1 month ago
James Tucker 244221706f Makefile: cleanup go mobile builds some
No need to build into /tmp, the go cache will handle this for us, we can
just use go run.

Updates tailscale/corp#18202

Signed-off-by: James Tucker <james@tailscale.com>
1 month ago
Percy Wegmann 5e7e36e3bc android: switch to using gomobile
gomobile replaces our custom JNI bindings

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
1 month ago
kari-ts 98a72c2963 android: new backend
Create pkg/tailscale, a Go library for the new Android app which handles starting up and running the local backend
-On initialization, get the JVM and app context to make JNI work
-Send filesystem directory path

Add a logging bridge from Go to Android (copied from Gio)

Add connect function which sends request to edit prefs instead of setting prefs

Future:
-Make build.gradle more portable
-Fix connect and make sure Quick Tiles still works

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
1 month ago
Anton Tolchanov e16303e1d8 Makefile: update aab file path
Seems like something that was missed in #182

Signed-off-by: Anton Tolchanov <anton@tailscale.com>
2 months ago
James Tucker bf7bf94b52 .github/workflows,Makefile: add a build check CI for the new app
Updates tailscale/tailscale#10992

Signed-off-by: James Tucker <james@tailscale.com>
2 months ago
Jonathan Nobels 4f46c38c99
Jonathan/notifier (#179)
android: add notifier support a data model and compose dependencies

fixes ENG-2084
fixes ENG-2086

Adds support for the ipnBusWatcher directly via a JNI API rather than HTTP via LocalAPIClient

Adds a rudimentary controller class and a model from which we can construct ViewModels

Cleans up some of the JNI bindings.  Adds hooks for ensuring the JNI setup is complete before attempting to do LocalAPIClient things.

Cleans up some wildcard imports.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Signed-off-by: Percy Wegmann <percy@tailscale.com>
Co-authored-by: Percy Wegmann <percy@tailscale.com>
2 months ago
kari-ts 464f089388
android: restructure app (#182)
Make android_legacy for the old app and remove some of the new models from it
Modify Makefile to build the legacy app and the new app

Updates tailscale/tailscale#10992

Signed-off-by: kari-ts <kari@tailscale.com>
2 months ago
kari-ts bf9be063d7
Makefile: update go version for bumposs (#165)
Updates tailscale/tailscale#10992

Signed-off-by: kari-ts <kari@tailscale.com>
2 months ago
James Tucker cb2e7da117 Makefile: avoid setting empty JAVA_HOME to avoid SDK tools bugs
The Android SDK tools go into a CPU spin if $JAVA_HOME is empty and
never complete. This may occur if you have only an incomplete Android
SDK, and no Android Studio install, wherein we do not find an Android
JAVA_HOME.

Updates self
7 months ago
James Tucker 561ec860ed Makefile: fix JAVA_HOME detection on macOS
I had tested against an old Android Studio, newer ones should prefer the
`jbr` directory. The Makefile also required proper quotation around the
file paths that will typically contain a space.

Fixes tailscale/tailscale#8799
9 months ago
James Tucker 6a6e80db47
go.mod,cmd/tailscale: bump OSS and update logtail transport setup (#119)
Updates #cleanup
9 months ago
James Tucker 926613ddae
Makefile,Dockerfile,README.md: improve build dependency setup and documentation (#114)
- Teach Makefile to install an Android SDK and the components we need
- Make Dockerfile delegate to Makefile for Android SDK setup
- Detect Android Studio and other known SDK paths, and use them if found.
- Update documentation to more consistently point to Android Studio & make.
- Add a task that checks for the SDK components and produces a useful error.
- Build an APK by default.
- Allow TOOLCHAINDIR to be passed in, and strip the first go/ component
  so that it is the path a user would expect.

Updates #cleanup
9 months ago
Will Norris b68b3f2aeb Makefile: fix versionCode replacement and cleanup
I'm not sure why [[:digit:]] worked before but not now (BSD vs GNU sed
maybe?), but since we already have the old VERSIONCODE, just replace it
directly. Also cleanup the android/build.gradle.bak file.

Signed-off-by: Will Norris <will@tailscale.com>
11 months ago
Mihai Parparita e7efa7d1c2 Makefile: add tailscale_go to the set of build tags
We build with the tailscale Go toolchain, so we should pass in the
build tag that indicates that it's safe to use functionality contained
within it.

Updates tailscale/corp#9230
1 year ago
Denton Gentry 813b770cdf go.mod: update Gio, finish Go 1.20 support
Upstream Gio fixed https://todo.sr.ht/~eliasnaur/gio/473, which
we run into in https://github.com/tailscale/tailscale/issues/7255

https://github.com/tailscale/tailscale has moved to Go 1.20
- update go.mod to go 1.20
- go mod tidy -compat=1.20
- update go4.org/unsafe/assume-no-moving-gc

Skip over the build numbers used for 1.36.x

Fixes https://github.com/tailscale/tailscale/issues/7255

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
David Anderson 52a0509a5d go.mod: update to tailscale HEAD
And update build logic to account for the API change in
tailscale.com/version.

And apply the API change introduced by
tailscale/tailscale@04b57a371e

Signed-off-by: David Anderson <dave@natulte.net>
1 year ago
Denton Gentry e49241f40b go.mod: update from OSS.
Also update to Go 1.19 in go.mod.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 283dd77bcc Add a unit test for DnsConfig.intToInetString
adds JUnit dependencies and basic gradle support to run unit tests,
and a test for DnsConfig.intToInetString().

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 7203980ecc Disable vulkan.
Trying to resolve crashes on certain OpenGL hardware.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Brad Fitzpatrick 1be9000a6a Makefile: add 'bumposs' target, run go mod tidy
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 years ago
Brad Fitzpatrick 3b6b9acf2b Makefile: clear GOROOT, add rundebug target
Nowadays basically nobody should set GOROOT. I still do for various
reasons, but that broke this build which then ran our custom toolchain
with a mismatched GOROOT. Clear GOROOT so the default GOROOT is used
(which is the path that matches the Go toolchain in use)

Also, add a "rundebug" target to control adb (phone or emulator)
2 years ago
Brad Fitzpatrick df09d74486 Makefile: make toolchain bootstrap work on darwin and arm64
It only worked on linux/amd64 before, but we support
{linux,darwin}/{amd64,arm64} for development elsewhere.

Fixes tailscale/tailscale#3669

Signed-off-by: Brad Fitzpatrick <brad@danga.com>
2 years ago
Brad Fitzpatrick 19822d0b94 go.mod: use Go toolchain rev from oss
And don't sha1-sum the Go toolchain cache.
Just see if its go binary works.

Updates tailscale/corp#3385
Updates tailscale/tailscale#3596
2 years ago
Denton Gentry 2d49c9ae30 Makefile: make toolchain sum not use absolute path.
This is intended as a quick fix of the immediate problem:
don't compute the checksum using absolute paths (i.e.
/home/dgentry), use relative paths.

In the future we may rationalize the versioning of the
toolchain to tie the Android toolchain to the one used
for building Linux/macOS/Windows/etc.

Fixes https://github.com/tailscale/tailscale/issues/3596

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Brad Fitzpatrick 050f4a41d4 Makefile: add fdroid-like APK target 2 years ago
Brad Fitzpatrick f8176b47a9 Makefile: remove long-obsolete -tags=xversion
That build tag hasn't been used since tailscale/tailscale's 5088af68cf
(June 2nd, 2021, for 1.10.0)
2 years ago
Denton Gentry da175ba221 go.mod: update OSS
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry c02078e41e Makefile: update toolchain version to use.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry d81f8a03b6 Switch to Go 1.17.
Matches https://github.com/tailscale/tailscale at HEAD.
3 years ago
Denton Gentry bb0494637f Makefile: download Tailscale's Go toolchain
Tailscale maintains a patched Go toolchain, pulling in
fixes early. Download the toolchain and use it to build.

Fixes https://github.com/tailscale/tailscale/issues/2450
in a better way.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 7b2e61e80c Remove check for Tailscale toolchain.
Broke the F-Droid build.
Update Dockerfile to use Go 1.17rc1 to verify that as a fix.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 7ebedfd62a Require Tailscale go toolchain in $PATH.
Setting GOBIN was not sufficient, something deeper in
the build process is invoking the go tool without $GOBIN.
Instead, require it be first in $PATH.

This is necessary to fix
https://github.com/tailscale/tailscale/issues/2450
and (hopefully)
https://github.com/tailscale/tailscale/issues/2478
which are a SECCOMP crash in accept() which we have
patched in the Tailscale toolchain by pulling in
an early patch from go 1.17.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 7a00ad639b Update to latest OSS & use prod toolchain.
Unstable release 1.11.150.

Enforce use of Tailscale production toolchain, mainly because
it pulls in a fix for https://github.com/tailscale/tailscale/issues/2450

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Elias Naur 47b732aaab Makefile,version: update versioning scheme to match main repository
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 6d9d6786af Makefile: make sed invocations portable to macOS
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 96e2661764 version: determine tailscale.com version by cloning it and running version.sh
Updates tailscale/tailscale#1158

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 97a826d118 Makefile: extract version information from build.gradle
The tag_release target already writes the version into build.gradle.
Ensure the exact same version information is used for the Go build.

As a bonus, the F-Droid builder no longer needs a modern git installed
for determining the version string.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 7f6ccc9f88 Makefile: add tag_release target for bumping version and tagging
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 99d00e803c Makefile: separate target for generating ipn.aar
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 9c38bebfa9 android: create build flavor for omitting non-free Google dependency
The F-Droid app store don't support non-free dependencies. Create two build
flavors, "fdroid" for building without Google Sign-In, and "play" for including
it.

Modify Makefile to target the play flavor.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago