diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ca1bc79510..26979df834 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -234,16 +234,14 @@ jobs: if: startsWith(github.ref, 'refs/tags/v') && matrix.should_run == true shell: docker exec -t builder sh -eu {0} run: | - scripts/desktop/build-lib-linux.sh - cd apps/multiplatform - ./gradlew packageDeb + scripts/desktop/make-deb-linux.sh - name: Prepare Desktop id: linux_desktop_build if: startsWith(github.ref, 'refs/tags/v') && matrix.should_run == true shell: bash run: | - path=$(echo ${{ github.workspace }}/apps/multiplatform/release/main/deb/simplex_*_amd64.deb ) + path=$(echo ${{ github.workspace }}/apps/multiplatform/release/main/deb/simplex_amd64.deb ) echo "package_path=$path" >> $GITHUB_OUTPUT echo "package_hash=$(echo SHA2-256\(${{ matrix.desktop_asset_name }}\)= $(openssl sha256 $path | cut -d' ' -f 2))" >> $GITHUB_OUTPUT diff --git a/Dockerfile.build b/Dockerfile.build index 76bb1127f2..9b7c38fa87 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -16,6 +16,7 @@ RUN apt-get update && \ apt-get install -y curl \ libpq-dev \ git \ + strip-nondeterminism \ sqlite3 \ libsqlite3-dev \ build-essential \ diff --git a/README.md b/README.md index 40d552b84d..554c6068d9 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ # SimpleX - the first messaging platform that has no user identifiers of any kind - 100% private by design! -[](http://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)     [](https://www.privacyguides.org/en/real-time-communication/#simplex-chat)     [](https://www.kuketz-blog.de/simplex-eindruecke-vom-messenger-ohne-identifier/) +[](http://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)     [](https://www.privacyguides.org/en/real-time-communication/#simplex-chat)     [](https://www.whonix.org/wiki/Chat#Recommendation)     [](https://www.kuketz-blog.de/simplex-eindruecke-vom-messenger-ohne-identifier/) ## Welcome to SimpleX Chat! @@ -110,6 +110,15 @@ After you connect, you can [verify connection security code](./blog/20230103-sim Read about the app features and settings in the new [User guide](./docs/guide/README.md). +## Contribute + +We would love to have you join the development! You can help us with: + +- [share the color theme](./docs/THEMES.md) you use in Android app! +- writing a tutorial or recipes about hosting servers, chat bot automations, etc. +- contributing to SimpleX Chat knowledge-base. +- developing features - please connect to us via chat so we can help you get started. + ## Help translating SimpleX Chat Thanks to our users and [Weblate](https://hosted.weblate.org/engage/simplex-chat/), SimpleX Chat apps, website and documents are translated to many other languages. @@ -141,15 +150,6 @@ Join our translators to help SimpleX grow! Languages in progress: Arabic, Japanese, Korean, Portuguese and [others](https://hosted.weblate.org/projects/simplex-chat/#languages). We will be adding more languages as some of the already added are completed – please suggest new languages, review the [translation guide](./docs/TRANSLATIONS.md) and get in touch with us! -## Contribute - -We would love to have you join the development! You can help us with: - -- [share the color theme](./docs/THEMES.md) you use in Android app! -- writing a tutorial or recipes about hosting servers, chat bot automations, etc. -- contributing to SimpleX Chat knowledge-base. -- developing features - please connect to us via chat so we can help you get started. - ## Please support us with your donations Huge thank you to everybody who donated to SimpleX Chat! diff --git a/images/privacy-guides.jpg b/images/privacy-guides.jpg index f15a8862f7..5876d10c02 100644 Binary files a/images/privacy-guides.jpg and b/images/privacy-guides.jpg differ diff --git a/images/whonix-logo.jpg b/images/whonix-logo.jpg new file mode 100644 index 0000000000..c6fc4729b2 Binary files /dev/null and b/images/whonix-logo.jpg differ diff --git a/scripts/desktop/make-appimage-linux.sh b/scripts/desktop/make-appimage-linux.sh index 6cc7aac011..ffd5e13337 100755 --- a/scripts/desktop/make-appimage-linux.sh +++ b/scripts/desktop/make-appimage-linux.sh @@ -37,13 +37,27 @@ cp *imple*.desktop usr/share/applications/ cp $multiplatform_dir/desktop/src/jvmMain/resources/distribute/*.appdata.xml usr/share/metainfo if [ ! -f ../appimagetool-x86_64.AppImage ]; then - wget --secure-protocol=TLSv1_3 https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O ../appimagetool-x86_64.AppImage + wget --secure-protocol=TLSv1_3 https://github.com/simplex-chat/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O ../appimagetool-x86_64.AppImage chmod +x ../appimagetool-x86_64.AppImage fi if [ ! -f ../runtime-x86_64 ]; then - wget --secure-protocol=TLSv1_3 https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 -O ../runtime-x86_64 + wget --secure-protocol=TLSv1_3 https://github.com/simplex-chat/type2-runtime/releases/download/continuous/runtime-x86_64 -O ../runtime-x86_64 chmod +x ../runtime-x86_64 fi -../appimagetool-x86_64.AppImage --runtime-file ../runtime-x86_64 . +# Determenistic build + +export SOURCE_DATE_EPOCH=1704067200 + +# Delete redundant jar file and modify cfg +rm -f ./usr/lib/app/*skiko-awt-runtime-linux* +sed -i -e '/skiko-awt-runtime-linux/d' ./usr/lib/app/simplex.cfg + +# Set all files to fixed time +find . -exec touch -d "@$SOURCE_DATE_EPOCH" {} + + +../appimagetool-x86_64.AppImage --verbose --no-appstream --runtime-file ../runtime-x86_64 . mv *imple*.AppImage ../../ + +# Just a safeguard +strip-nondeterminism ../../*imple*.AppImage diff --git a/scripts/desktop/make-deb-linux.sh b/scripts/desktop/make-deb-linux.sh new file mode 100755 index 0000000000..6f9de8a1e6 --- /dev/null +++ b/scripts/desktop/make-deb-linux.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env sh + +scripts/desktop/build-lib-linux.sh +cd apps/multiplatform +./gradlew packageDeb + +# Workaround for skiko library +# +# Compose Multiplatform depends on skiko library, that +# handles all of the window managment and graphics drawing. +# +# This skiko library comes with two jar's: +# - platform-agnostic "skiko-awt" +# - and platform-specific "skiko-awt-runtime" +# +# In case of Linux, second jar is called "skiko-awt-runtime-linux-x64". +# Essentially, this jar has the Linux .so library called "libskiko-linux-x64.so" +# that is being unpacked to runtime libs. +# +# Since the jar is nothing more than a zip archive, extracting library +# from "skiko-awt-runtime-linux-x64" modifies it's timestamps +# with current time, which in changes it's hash, which in turn +# makes the whole build unreproducible. +# +# It seems to be there is no way to handle this extraction in our code and +# https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives +# unfortunately doesn't solve the issue. +# +# Instead, just modify the deb, removing the redundant skiko library. +# +# Also, it seems this is related to: +# https://youtrack.jetbrains.com/issue/CMP-1971/createDistributable-produces-duplicated-skiko-awt.jar-and-skiko-awt-runtime-windows-x64.jar + +export SOURCE_DATE_EPOCH=1704067200 + +dpkg-deb -R ./release/main/deb/simplex*.deb ./extracted + +rm -f ./extracted/opt/*imple*/lib/app/*skiko-awt-runtime-linux* +sed -i -e '/skiko-awt-runtime-linux/d' ./extracted/opt/*imple*/lib/app/simplex.cfg +find ./extracted/ -exec touch -d "@$SOURCE_DATE_EPOCH" {} + + +dpkg-deb --build --root-owner-group --uniform-compression ./extracted ./release/main/deb/simplex_amd64.deb + +strip-nondeterminism ./release/main/deb/simplex_amd64.deb diff --git a/website/src/_includes/hero.html b/website/src/_includes/hero.html index c0e2b3f30b..6ebfb883ef 100644 --- a/website/src/_includes/hero.html +++ b/website/src/_includes/hero.html @@ -31,6 +31,10 @@ Privacy Guides + + Whonix + + Heise Online @@ -43,7 +47,7 @@ Opt Out Podcast - +
@@ -66,7 +70,7 @@ - + {#

PLAY

diff --git a/website/src/img/whonix-dark.png b/website/src/img/whonix-dark.png new file mode 100644 index 0000000000..f361f4d1f6 Binary files /dev/null and b/website/src/img/whonix-dark.png differ diff --git a/website/src/img/whonix-light.png b/website/src/img/whonix-light.png new file mode 100644 index 0000000000..d8616b4a4b Binary files /dev/null and b/website/src/img/whonix-light.png differ