0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 03:52:17 +02:00
Commit Graph

2365 Commits

Author SHA1 Message Date
Jordan Rose
ee552962b9 java: Special-case the arch-specific load to account for "x86_64"
0453438d added the capability to prefer arch-specific versions of
libsignal_jni, but it turns out that some Java implementations use
"x86_64" rather than the "amd64" we expected. Rather than doing
something clever and general, just handle this one special case. If
this happens again with "arm64" vs "aarch64", we can spend more time
on it then.
2024-08-06 10:18:10 -07:00
Alex Konradi
3c01c95616
backup: dist. list w/ privacy ALL has no members 2024-08-05 15:46:28 -04:00
Jordan Rose
d9187a4db3 jni: Handle absurd numbers of recipients in multi-recipient messages
Previously we tried to be Fast by allocating a big local frame, enough
references for all the recipients we parsed. However, that backfired
if there were so many recipients that we couldn't allocate the local
frame. Switch to using AutoLocal references, so we have a fixed
overhead.

One interesting consequence of this is that we can't build the array
of excluded recipients in one go; instead, we now use a helper
java.util.ArrayList that we push into. Fortunately, we only exposed a
List in the public interface anyway.
2024-08-05 11:23:40 -07:00
Alex Konradi
bde424779c
backup: Parse BackupLocator mediaName 2024-08-05 14:21:32 -04:00
Jordan Rose
89e626a1e3 Remove references to removed crates in doctests
Normally we'd add these back as dev-dependencies, but in this case the
doctests are all purely syntactic -- they have
`#[cfg(ignore_even_when_running_all_tests)]` in their bodies.
2024-08-02 13:47:04 -07:00
Jordan Rose
30eaf2e457 Remove unused dependencies for specific crates
Found via cargo-machete.
2024-08-02 13:47:04 -07:00
Jordan Rose
a0c3194cd6 Update to boring v4.9.0 2024-08-02 11:38:49 -07:00
Jordan Rose
5a29f08ffb CI: Build Java release Mac binaries using macos-latest (arm64)
...instead of macos-12 (x86_64)
2024-08-02 09:54:43 -07:00
Jordan Rose
11544c6718 java: Omit native libraries from the sources jars
...at least partly to cut down on the space used during a build that
includes all supported architectures.
2024-08-02 09:54:43 -07:00
Jordan Rose
47f221e9ab build_jni.sh: error out if no target is provided 2024-08-02 09:54:43 -07:00
Jordan Rose
5480f12ec6 CI: Build NPM release using macos-latest (arm64)
...rather than macos-12 (x64)
2024-08-02 09:54:27 -07:00
Jordan Rose
03b71fea23 backup: Validate quoted attachments 2024-08-02 09:39:02 -07:00
Jordan Rose
f2b9ad59d5 backup: Validate GroupMemberAddedUpdate.inviterAci more specifically 2024-08-02 09:38:48 -07:00
Jordan Rose
7fa901aa14
backup: Validate FilePointers and MessageAttachments 2024-08-01 14:41:57 -07:00
Jordan Rose
ee321f2697 Bump to version v0.54.1 2024-07-31 16:58:52 -07:00
Jordan Rose
d3adfba263 java: Adjust how we handle manual cross-compilation
Follow-up to 0453438d. Previously, setting CARGO_BUILD_TARGET before
manually calling build_jni.sh merely did a Cargo build with the same
settings as the host build. However, adding support for cross-compiles
for the server build broke this "ad hoc" cross-compilation.
Fortunately, it was used only in one place: providing both flavors of
Mac library in a built libsignal-client and libsignal-server. We can
use the *new* cross-compilation support for this instead, reducing
special cases.

This also limits the conditions where build_jni.sh will automatically
set CC and other environment variables, and allows that behavior to be
overridden by manually setting them.
2024-07-31 16:27:25 -07:00
Jordan Rose
3e064082f3 backup: Validate e164s (they must not be 0) 2024-07-31 11:28:49 -07:00
Jonathan Klabunde Tomer
c3b6b85243
build_jni.sh: don't use modern bash features 2024-07-31 11:22:35 -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
08913fa09f CI: Build+test Java on aarch64 Linux in the Slow Tests 2024-07-30 15:34:31 -07:00
Jordan Rose
a561392cff
Expose the "network changed" event to apps 2024-07-30 15:27:42 -07:00
Jonathan Klabunde Tomer
0453438d98
Prepare libsignal-server Java build for arm64 2024-07-30 13:37:55 -07:00
Sergey Skrobotov
aace02380b rolling back Cargo.lock/acknowledgments changes 2024-07-26 16:53:26 -07:00
Sergey Skrobotov
b86d58e8d6 Bump to version v0.54.0 2024-07-26 14:02:22 -08:00
Sergey Skrobotov
d694cff1a1
net: adding a parameter to opt in/out of receiving stories 2024-07-25 14:55:23 -07:00
Jordan Rose
9d729ff083
Re-apply "android: Don't strip debug info out of the AAR"
A revised version of the earlier 23192280:
- Uses --build-id for all archs, not just aarch64
- Also raises Gradle's memory limits
2024-07-25 14:22:56 -07:00
Jordan Rose
85e0de9207
Update Rust dependencies
`cargo update` performed with Cargo 1.72 to avoid advancing our MSRV. assert_cmd, clap, protobuf, and protobuf-json-mapping needed to be manually held back.

Plus, explicit bumps for
- env_logger 0.11
- heck 0.5
- itertools 0.13
- num_enum 0.7
- prost 0.13
- tungstenite 0.23

And disallowing downgrading curve25519-dalek below the security update in 4.1.3.
2024-07-25 13:33:09 -07:00
Jordan Rose
a3daa01b01 swift: Split ChatService into Authenticated and Unauthenticated
...following the similar split for Node.
2024-07-25 12:27:07 -07:00
Jordan Rose
4d740bf3ce
net: Reset route cooldowns on network change 2024-07-24 15:25:14 -07:00
Sergey Skrobotov
e3d3b7762d
node: extract a common API for auth/unauth ChatService 2024-07-24 12:59:21 -07:00
Jordan Rose
f2ae8436b3 Bump to version v0.53.0 2024-07-23 14:57:28 -07:00
Jordan Rose
e00fc2b6f0 Update top-level README to mention submodule and testing libraries 2024-07-23 14:46:43 -07:00
Sergey Skrobotov
cb3cd55c17
node: adjusting ChatService API to align with the usage patterns 2024-07-23 14:45:30 -07:00
Jordan Rose
a9b0ac2729 CI: Test building for iOS devices 2024-07-23 14:12:51 -07:00
Jordan Rose
28b9bf0951 swift: Fix building tests for a device
This isn't something we do often, but sometimes it's useful to do,
usually from the Signal-iOS workspace, to see how the real device
behaves.
2024-07-23 14:12:51 -07:00
Jordan Rose
288c1ceee7 swift: Split ComparableBackup out to a separate simulator-only file 2024-07-23 14:12:51 -07:00
Chris Eager
4a3d4aecd5 Add SealedSenderMultiRecipientMessage#serializedRecipientView
This allows a server to parse and validate a multi-recipient message once,
and then efficiently store per-recipient views for future delivery.
2024-07-23 10:16:02 -07:00
Jordan Rose
8835b7febe java: Enable Gradle dependency checksums 2024-07-22 15:56:02 -07:00
Jordan Rose
213ad4b30d
net: Add a "network changed" event
This adds a new utility type ObservableEvent, which synchronously runs
any registered callbacks when the event fires. CustomDnsResolver can
then subscribes to a "network changed" event on creation, clearing its
cache. At the other end of the stack, the ConnectionManager contains
the event, to eventually be exposed to the app languages as part of
the Net abstraction.

Additional parts of libsignal-net will subscribe to the "network
changed" event in the future. In particular, it should reset
persistent connection cooldowns.
2024-07-19 16:24:07 -07:00
Jordan Rose
d0b1821888 node: Upload dump_syms output to releases instead of raw debug info 2024-07-19 16:19:53 -07:00
Alex Konradi
8ba0f2731c Bump to version v0.52.5 2024-07-19 13:41:34 -04:00
Alex Konradi
4c0bb6d87f
Revert "android: Don't strip debug info out of the AAR" 2024-07-19 11:25:58 -04:00
Alex Konradi
d33ce0bea5 Bump version number to 0.52.4 2024-07-19 09:34:42 -04:00
Jordan Rose
5a1144b8ac java: Update code size checker to measure post-stripping size
Previously the Android libraries were stripped as part of the build,
but what we're really trying to track is the download size and
size-on-disk for Android users, so the stripped library is more
relevant (and lets us continue to compare against previous releases).
2024-07-18 14:31:20 -07:00
Jordan Rose
e50ddd215b java: ChatServiceExtension now extends IOException
...for consistency with other network-related exceptions in the Java
ecosystem.
2024-07-18 13:08:59 -07:00
Alex Konradi
0b7d2856fe
Use ResourceReader in test 2024-07-18 14:48:18 -04:00
Alex Konradi
671febbde8
java docker: set default file encoding to UTF-8 2024-07-18 14:32:12 -04:00
Jordan Rose
2319228027 android: Don't strip debug info out of the AAR
This *greatly* increases the size of the artifacts uploaded to Maven,
but it looks like the libraries do correctly get stripped when the
final APK is built. (This was not true in the past.)

Also, make sure the built library includes a "build ID", or else the
stripped version of the library will be treated as a different
library, and all the line tables will go to waste.
2024-07-18 10:26:02 -07:00
moiseev-signal
e3045d3ca3
svr3: Implement different strategies for connection failures 2024-07-18 09:47:33 -07:00
Alex Konradi
f7e0af4c30
java: read expected backup file as UTF-8 2024-07-17 15:42:19 -04:00