Merge branch 'master' into ep/smp-server-pages

This commit is contained in:
Evgeny Poberezkin
2026-05-11 12:07:50 +01:00
527 changed files with 52026 additions and 8517 deletions
+1 -1
View File
@@ -23,5 +23,5 @@ unzip -o "$tmp/libsimplex.zip" -d "$tmp/simplex-chat/apps/multiplatform/common/s
curl -sSf "$libsup" -o "$tmp/libsupport.zip"
unzip -o "$tmp/libsupport.zip" -d "$tmp/simplex-chat/apps/multiplatform/common/src/commonMain/cpp/android/libs/arm64-v8a"
gradle -p "$tmp/simplex-chat/apps/multiplatform/" clean build
gradle -p "$tmp/simplex-chat/apps/multiplatform/" -Psimplex.assets.dir=../../assets clean build
cp "$tmp/simplex-chat/apps/multiplatform/android/build/outputs/apk/release/android-release-unsigned.apk" "$PWD/simplex-chat.apk"
+5 -5
View File
@@ -67,13 +67,13 @@ checks() {
if ! command -v "$i" > /dev/null 2>&1; then
commands_failed="$i $commands_failed"
else
gradle_ver_local="$(gradle -v | grep Gradle | awk '{print $2}')"
gradle_ver_local_compare="$(printf ${gradle_ver_local:-0.0} | awk -F. '{print $1$2}')"
gradle_ver_local="$(gradle --version | sed -n 's/^Gradle //p')"
gradle_ver_local_compare="$(printf '%s' "$gradle_ver_local" | awk -F. '{print $1"."$2}')"
gradle_ver_remote="$(grep distributionUrl ${folder}/apps/multiplatform/gradle/wrapper/gradle-wrapper.properties)"
gradle_ver_remote="${gradle_ver_remote#*-}"
gradle_ver_remote="${gradle_ver_remote%-*}"
gradle_ver_remote_compare="$(printf ${gradle_ver_remote} | awk -F. '{print $1$2}')"
gradle_ver_remote_compare="$(printf '%s' "$gradle_ver_remote" | awk -F. '{print $1"."$2}')"
if [ "$gradle_ver_local_compare" != "$gradle_ver_remote_compare" ]; then
commands_failed="$i[installed=${gradle_ver_local},required=${gradle_ver_remote}] $commands_failed"
fi
@@ -134,7 +134,7 @@ build() {
# Build only one arch
sed -i.bak "s/include(.*/include(\"${android_arch}\")/" "$folder/apps/multiplatform/android/build.gradle.kts"
gradle -p "$folder/apps/multiplatform/" clean :android:assembleRelease
gradle -p "$folder/apps/multiplatform/" -Psimplex.assets.dir=../../assets clean :android:assembleRelease
mkdir -p "$android_tmp_folder"
unzip -oqd "$android_tmp_folder" "$android_apk_output"
+7 -2
View File
@@ -16,5 +16,10 @@ security unlock-keychain -p "" /tmp/simplex.keychain
security list-keychains -s `security list-keychains | xargs` /tmp/simplex.keychain
scripts/desktop/build-lib-mac.sh
cd apps/multiplatform
./gradlew packageDmg
./gradlew notarizeDmg
if [ -n "${ASSETS_DIR:-}" ]; then
set -- -Psimplex.assets.dir="$ASSETS_DIR"
else
set --
fi
./gradlew "$@" packageDmg
./gradlew "$@" notarizeDmg
+8 -1
View File
@@ -8,6 +8,7 @@ function readlink() {
OS=linux
ARCH="$(uname -m)"
DATABASE_BACKEND="${1:-sqlite}"
GHC_VERSION=9.6.3
if [ "$ARCH" == "aarch64" ]; then
@@ -25,7 +26,13 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
#rm -rf $BUILD_DIR
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -optl-Wl,-soname,libsimplex.so -flink-rts -threaded' --constraint 'simplexmq +client_library' --constraint 'simplex-chat +client_library'
if [[ "$DATABASE_BACKEND" == "postgres" ]]; then
echo "Building with postgres backend..."
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -optl-Wl,-soname,libsimplex.so -flink-rts -threaded' --constraint 'simplexmq +client_library +client_postgres' --constraint 'simplex-chat +client_library +client_postgres'
else
echo "Building with sqlite backend..."
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -optl-Wl,-soname,libsimplex.so -flink-rts -threaded' --constraint 'simplexmq +client_library' --constraint 'simplex-chat +client_library'
fi
cd $BUILD_DIR/build
mv libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so libsimplex.so 2> /dev/null || true
#patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libsimplex.so
+6 -1
View File
@@ -18,7 +18,12 @@ libcrypto_path=$(ldd common/src/commonMain/cpp/desktop/libs/*/libHSdirect-sqlcip
trap "rm common/src/commonMain/cpp/desktop/libs/*/`basename $libcrypto_path` 2> /dev/null || true" EXIT
cp $libcrypto_path common/src/commonMain/cpp/desktop/libs/*
./gradlew createDistributable
if [ -n "${ASSETS_DIR:-}" ]; then
set -- -Psimplex.assets.dir="$ASSETS_DIR"
else
set --
fi
./gradlew "$@" createDistributable
rm common/src/commonMain/cpp/desktop/libs/*/`basename $libcrypto_path`
rm -rf $release_app_dir/AppDir 2>/dev/null
+6 -1
View File
@@ -4,7 +4,12 @@ ARCH="$(uname -m)"
scripts/desktop/build-lib-linux.sh
cd apps/multiplatform
./gradlew packageDeb
if [ -n "${ASSETS_DIR:-}" ]; then
set -- -Psimplex.assets.dir="$ASSETS_DIR"
else
set --
fi
./gradlew "$@" packageDeb
# Workaround for skiko library
#
@@ -38,6 +38,55 @@
</description>
<releases>
<release version="6.5.1" date="2026-05-02">
<url type="details">https://simplex.chat/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.html</url>
<description>
<p>New in v6.5.1:</p>
<ul>
<li>additional preset chat relay.</li>
<li>fixed a rare bug when receiving files.</li>
</ul>
<p>New in v6.5:</p>
<p>Public channels - speak freely!</p>
<ul>
<li>Reliability: many relays per channel.</li>
<li>Ownership: you can run your own relays.</li>
<li>Security: owners hold channel keys.</li>
<li>Privacy: for owners and subscribers.</li>
</ul>
<p>Easier to invite your friends: we made connecting simpler for new users.</p>
<p>Safe web links:</p>
<ul>
<li>opt-in to send link previews.</li>
<li>use SOCKS proxy for previews (if enabled).</li>
<li>prevent hyperlink phishing.</li>
<li>remove link tracking.</li>
</ul>
<p>Non-profit governance: to make SimpleX Network last.</p>
</description>
</release>
<release version="6.5.0" date="2026-04-30">
<url type="details">https://simplex.chat/blog/20260430-simplex-channels-v6-5-consortium-crowdfunding-freedom-of-speech.html</url>
<description>
<p>New in v6.5.</p>
<p>Public channels - speak freely!</p>
<ul>
<li>Reliability: many relays per channel.</li>
<li>Ownership: you can run your own relays.</li>
<li>Security: owners hold channel keys.</li>
<li>Privacy: for owners and subscribers.</li>
</ul>
<p>Easier to invite your friends: we made connecting simpler for new users.</p>
<p>Safe web links:</p>
<ul>
<li>opt-in to send link previews.</li>
<li>use SOCKS proxy for previews (if enabled).</li>
<li>prevent hyperlink phishing.</li>
<li>remove link tracking.</li>
</ul>
<p>Non-profit governance: to make SimpleX Network last.</p>
</description>
</release>
<release version="6.4.11" date="2026-03-30">
<url type="details">https://simplex.chat/blog/20250729-simplex-chat-v6-4-1-welcome-contacts-protect-groups-app-security.html</url>
<description>
+50
View File
@@ -0,0 +1,50 @@
#!/bin/sh
set -eu
# Copies generated iOS assets into SimpleXAssets.xcassets.
# Intended to run as an Xcode Run Script build phase.
# Skips silently if SIMPLEX_ASSETS is not in SWIFT_ACTIVE_COMPILATION_CONDITIONS
# or if the source directory is not found.
#
# The source path is resolved in order:
# 1. Command-line argument
# 2. SIMPLEX_ASSETS_DIR build setting (set in Local.xcconfig)
# 3. No default — skips if neither is set
#
# Manual usage: ./scripts/copy-assets.sh path/to/assets
# Skip if SIMPLEX_ASSETS flag is not set (unless run manually outside Xcode)
if [ -n "${SWIFT_ACTIVE_COMPILATION_CONDITIONS:-}" ]; then
case " $SWIFT_ACTIVE_COMPILATION_CONDITIONS " in
*" SIMPLEX_ASSETS "*) ;;
*) exit 0 ;;
esac
fi
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
IOS_DIR="$SCRIPT_DIR/../../apps/ios/Shared/SimpleXAssets.xcassets"
ASSETS_ROOT="${1:-${SIMPLEX_ASSETS_DIR:-}}"
if [ -z "$ASSETS_ROOT" ]; then
echo "warning: SIMPLEX_ASSETS_DIR not set and no path argument provided" >&2
exit 0
fi
SRC_DIR="$ASSETS_ROOT/ios/Assets.xcassets"
if [ ! -d "$SRC_DIR" ]; then
echo "warning: source assets not found: $SRC_DIR (run resize.sh first)" >&2
exit 0
fi
# Remove old imagesets but keep root Contents.json
find "$IOS_DIR" -name "*.imageset" -type d -exec rm -rf {} + 2>/dev/null || true
# Copy imagesets
for imageset in "$SRC_DIR"/*.imageset; do
[ -d "$imageset" ] || continue
cp -r "$imageset" "$IOS_DIR/"
echo "Copied $(basename "$imageset")"
done
echo "Done. Assets copied to $IOS_DIR"
+1 -1
View File
@@ -1,5 +1,5 @@
{
"https://github.com/simplex-chat/simplexmq.git"."99f9de71e5df213bb062fa11dd165778fc1d7160" = "1gqza72i1lnllj0h0i6d2mf47zy1k4yinvmm61wypij5n1pf626h";
"https://github.com/simplex-chat/simplexmq.git"."8bd3193280da6b4decf790bb57b470780c2576ba" = "0zzrsdgsqdiff6ks7l4qsik9p5023f1n56iaf7x395l4ykf6bkqm";
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";
+2 -2
View File
@@ -110,7 +110,7 @@ for os_pair in ${oses}; do
# Desktop: deb
docker exec \
-t "${container_name}" \
sh -c './scripts/desktop/make-deb-linux.sh'
sh -c "export ASSETS_DIR='../../assets'; ./scripts/desktop/make-deb-linux.sh"
# Copy deb
docker cp \
@@ -128,7 +128,7 @@ for os_pair in ${oses}; do
# Appimage
docker exec \
-t "${container_name}" \
sh -c './scripts/desktop/make-appimage-linux.sh && mv ./apps/multiplatform/release/main/*imple*.AppImage ./apps/multiplatform/release/main/simplex.appimage'
sh -c "export ASSETS_DIR='../../assets'; ./scripts/desktop/make-appimage-linux.sh && mv ./apps/multiplatform/release/main/*imple*.AppImage ./apps/multiplatform/release/main/simplex.appimage"
# Copy appimage
docker cp \