Commit Graph

29 Commits

Author SHA1 Message Date
Jordan Rose
d7f99838a6 java: Manually install protoc 3.29 in Docker, like Desktop's Docker
Previously we'd had jammy's 3.12, but that's missing some things we
use. Newer releases exist, but this is the one we've been using in
node/Dockerfile for a while, so if there's a problem we should update
both.
2026-01-30 15:22:53 -08:00
Jordan Rose
d3a54c3c19 java: Fix deprecated ENV syntax in Dockerfile 2025-07-15 18:20:13 -07:00
Alex Bakon
8748ee6ab4 Install python3 in Java build Docker container 2025-05-07 15:40:59 -04:00
andrew-signal
7a4bd18e1d Update to NDK v28.0.13004108 (current latest stable) 2025-04-09 15:46:03 -05:00
Jordan Rose
97dfb275d6 android: Update to NDK r27 (current latest) 2024-08-23 11:23:05 -07:00
Jonathan Klabunde Tomer
3d1c45f15d build multiarch server jar from make targets by default 2024-07-31 10:07:54 -07:00
Jordan Rose
8835b7febe java: Enable Gradle dependency checksums 2024-07-22 15:56:02 -07:00
Alex Konradi
671febbde8 java docker: set default file encoding to UTF-8 2024-07-18 14:32:12 -04:00
Jordan Rose
db18a102f2 Use Docker's ADD command for remote resources 2024-06-21 11:35:08 -07:00
Jordan Rose
f896129db9 Java: Update to Gradle 8.4, Android Gradle Plugin 8.3, SDK 34, Java 17
Each of these updates is required for the following update, and the
final one allows us to use 'record'.

The target SDK version is set to 33, matching the Android app.
2024-03-08 10:34:18 -08:00
moiseev-signal
840a1906c7 Update prost to version 0.12 2023-09-20 14:00:54 -07:00
Jordan Rose
bc19fb33df java: Use our own mirror to reproducibly build for Android and Server
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2023-07-19 15:51:07 -07:00
Max Moiseev
58ebf5f06d Bump NDK version to match the Github runner update 2023-02-13 10:03:45 -08:00
Jordan Rose
b8ac70227d Android: no need to set ANDROID_NDK_HOME when using Gradle
The Android Gradle plugin already allows you to specify which NDK to
use; we should let the plugin find it for us.
2022-12-05 10:02:54 -08:00
Jordan Rose
572ba1e38b Update Rust to nightly-2022-11-03, and the Android NDK to r25b
These are intertwined: older versions of Rust don't support the newer
NDK, but the newer Rust can't successfully compile BoringSSL against
the older NDK.

This requires a boring-sys update to find the Android NDK sysroot in
the right place.
2022-12-01 12:23:57 -08:00
Jordan Rose
f456227f17 Java: drop cargo-ndk for building for Android
We can provide the necessary information in environment variables and
save a host dependency.
2022-07-25 17:11:36 -07:00
Jordan Rose
cd40df36e7 Update Dockerfile for the reproducible Java/Android build
- Use the headless variant of the JDK.
- Put most apt-get requirements at the end of the file, so that
  tweaking them can make use of Docker's per-RUN line caching.
- Added 'clang' as a build dependency for BoringSSL.
- Drop unnecessary packages:
  - apt-transport-https - we're using plain http sources at this time
  - build-essential - overkill, we just need 'make'
  - gcc-multilib - was used to build OpenSSL for testing,
    no longer necessary with the switch to BoringSSL
  - openssh-client - was used to clone from GitHub, now unused because
    all dependencies are public

And note that the "slow tests" should also be passing before a
release.
2022-07-25 16:36:36 -07:00
Jordan Rose
366b030841 Re-apply "device transfer: replace picky with boring"
This reverts commit 09c043c54a.
2022-06-22 16:33:21 -07:00
Jordan Rose
09c043c54a Revert "device transfer: replace picky with boring"
We need to work out more kinks cross-compiling boring-sys, so revert
this for now. (But keep the fix to use the correct Android NDK.)
2022-06-22 15:56:21 -07:00
Chris Eager
2b0b5119f2 device transfer: replace picky with boring
Upcoming work in `attest` requires additional X509 support, and swapping these libraries 
is a negligible impact on binary size. This uses a fork of `cloudflare/boring`, as
we have some additions that haven’t yet been contributed upstream.
2022-06-16 13:14:17 -07:00
Chris Eager
80f8a2dac2 Add sha256 to reproducible java/Dockerfile 2022-04-29 16:27:30 -07:00
Jordan Rose
355e2006c4 Java: update reproducible build to Debian Buster (from Stretch)
The main advantage here is that we don't need any dependencies from
the unstable repo, which means we can be sure that the glibc version
we build against is suitable for Buster instead of being pulled in
from a later train. (We can't do this for Stretch because Stretch is
too old for all our build tools.)

While here, simplify the build a little bit: we're already using
snapshots of the Debian repo, so drop the separate file for pinned
dependencies.
2022-03-24 16:59:36 -07:00
Jordan Rose
0b9dffdd88 Java: Update to Gradle 7.4, and several other build system updates
- Switch to the modern maven-publish plugin.

- Bump the Android target SDK version to 30 to match the app.
  (The minimum is still 19.)

- Bump the Java source compatibility version to 1.8.

- Bump the Android command line tools used in Docker to match the app.

- Bump the JDK used in Docker to OpenJDK 11, matching the app.

- Switch to the androidx testing libraries for emulator testing.

- Drop unused trove4j Gradle plugin.

- Lots of cleanup and refactoring.
2022-03-07 16:51:19 -08:00
Jordan Rose
9e168226f6 Docker: Fix typo in 3a3476b83: paths are relative to the repo root
This COPY command never should have worked, but the macOS Docker seems
to normalize ../foo to ./foo, so it passed my local testing.
2021-06-28 14:30:38 -07:00
Jordan Rose
3a3476b833 Docker: use the rust-toolchain file instead of hardcoding a version 2021-06-22 13:19:46 -07:00
Jordan Rose
5380131e7c Java: switch to Debian for Docker builds instead of Ubuntu
Debian has a more stable retention period for pinned dependencies (the
version of OpenJDK 8 we were using for Ubuntu is gone already!), and
it matches what the Signal-Android repository is doing.
2021-04-21 12:15:33 -07:00
Jordan Rose
f7c6e27a90 Skip Gradle's daemon when building in Docker 2020-11-19 16:37:29 -08:00
Jack Lloyd
d9e33d0251 Pin nightly to a specific date 2020-11-09 15:39:29 -05:00
Jack Lloyd
dd57254f8f Move makefile and docker file into java subdir 2020-11-06 16:40:54 -05:00