diff --git a/.containerignore b/.containerignore
deleted file mode 100644
index ae02570..0000000
--- a/.containerignore
+++ /dev/null
@@ -1 +0,0 @@
-release/
\ No newline at end of file
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index 674a67d..0000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: 'Close stale issues'
-on:
- schedule:
- - cron: '30 1 * * *'
-
-jobs:
- stale:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/stale@v6
- with:
- stale-issue-message: 'This issue is stale because it has been open 150 days with no activity. Remove stale label or comment or this will be closed in 14 days.'
- days-before-issue-stale: 150
- days-before-issue-close: 14
- days-before-pr-stale: -1
- days-before-pr-close: -1
- exempt-issue-labels: 'longterm,enhancement,parity-with-android,prio:medium,prio:high,electron issue,encrypted room search,build infrastructure'
diff --git a/.gitmodules b/.gitmodules
index 843d569..da54f13 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,12 +1,12 @@
[submodule "matrix-js-sdk"]
path = matrix-js-sdk
url = https://github.com/SchildiChat/matrix-js-sdk.git
+[submodule "matrix-react-sdk"]
+ path = matrix-react-sdk
+ url = https://github.com/SchildiChat/matrix-react-sdk.git
[submodule "element-web"]
path = element-web
url = https://github.com/SchildiChat/element-web.git
[submodule "element-desktop"]
path = element-desktop
url = https://github.com/SchildiChat/element-desktop.git
-[submodule "compound-web"]
- path = compound-web
- url = https://github.com/SchildiChat/compound-web.git
diff --git a/Containerfile.debian b/Containerfile.debian
deleted file mode 100644
index 86614ba..0000000
--- a/Containerfile.debian
+++ /dev/null
@@ -1,28 +0,0 @@
-ARG NODE_VERSION
-FROM docker.io/node:${NODE_VERSION}-bookworm
-
-RUN apt-get -qq update && apt-get -qq install --no-install-recommends -y \
- curl \
- g++ \
- gcc \
- git \
- jq \
- libarchive-tools \
- libsecret-1-dev \
- libsqlcipher-dev \
- libssl-dev \
- make \
- openssl \
- pkg-config \
- python3 \
- rpm \
- tcl \
- vim
-RUN ln -s /usr/bin/python3 /usr/bin/python
-
-ENV RUSTUP_HOME=/usr/local/rustup \
- CARGO_HOME=/usr/local/cargo \
- PATH=/usr/local/cargo/bin:$PATH
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal
-
-WORKDIR /project
diff --git a/Containerfile.fedora b/Containerfile.fedora
deleted file mode 100644
index 152f3f1..0000000
--- a/Containerfile.fedora
+++ /dev/null
@@ -1,22 +0,0 @@
-FROM docker.io/fedora:40
-
-RUN dnf install -y openssl openssl-devel cargo llvm libsecret libsecret-devel sqlcipher sqlcipher-devel g++ ruby-devel gcc make rpm-build libffi-devel tcl libxcrypt-compat pkgconf perl python3-setuptools
-
-# node setup
-ARG NODE_VERSION
-RUN mkdir -p /usr/local/n
-RUN mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
-RUN curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
-RUN bash n ${NODE_VERSION}
-RUN npm install -g n
-RUN npm install -g yarn
-RUN npm install -g node-gyp
-RUN gem install --no-user-install --no-document fpm
-RUN ln -s /usr/bin/python3 /usr/bin/python
-
-ENV RUSTUP_HOME=/usr/local/rustup \
- CARGO_HOME=/usr/local/cargo \
- PATH=/usr/local/cargo/bin:$PATH
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal
-
-WORKDIR /project
diff --git a/Containerfile.windows b/Containerfile.windows
deleted file mode 100644
index 0c0776a..0000000
--- a/Containerfile.windows
+++ /dev/null
@@ -1,13 +0,0 @@
-ARG CONTAINER_IMAGE_DEBIAN
-FROM ${CONTAINER_IMAGE_DEBIAN}:latest
-
-RUN dpkg --add-architecture i386 && apt-get update && apt-get install --no-install-recommends -y \
- wine \
- wine32 \
- wine64 \
- libwine \
- libwine:i386 \
- fonts-wine \
- zip
-
-WORKDIR /project
\ No newline at end of file
diff --git a/FEATURES.md b/FEATURES.md
deleted file mode 100644
index c703374..0000000
--- a/FEATURES.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Features and changes compared to upstream
-
-Note that this list may be incomplete or outdated.
-
-
-## General UI
-
-- Schildi theme
-- Some changed settings defaults
-
-
-## Chat overview ("room list")
-
-- Unified room list instead of separating DMs and groups (TODO: setting)
-- Do not exclude currently selected room when updating room sort order
-- Do not force muted rooms to be sorted at the bottom
-- Hide reactions from room previews
-- Show unread state of muted rooms
-- Increase default visible tiles before collapsing each section
-- Include DMs in space unread counts
-- Show space overview rather then jumping to last opened room when switching space
-- Do not add spaces to recently opened rooms list ("breadcrumbs")
-
-
-## Conversation screen
-
-- Allow sending freeform reactions
-- Less restrictive width limit for rendering text reactions
-
-
-## Non-core community contributions
-
-Following features and changes are community-maintained, i.e. do not embody core SchildiChat features and may be dropped in future releases in case they cause a notable maintenance burden.
-
-- [Improved IRC layout](https://github.com/SchildiChat/schildichat-desktop/pull/269)
diff --git a/Makefile b/Makefile
index c6e1c42..95fd274 100644
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,13 @@
.PHONY: all setup regenerate-i18n web desktop-common linux debian rpm pacman local-pkgbuild local-pkgbuild-install windows windows-portable
.PHONY: web-release debian-release rpm-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release
.PHONY: macos-common macos macos-mas macos-release macos-mas-release icns
-.PHONY: container-build-debian container-build-fedora container-build-windows
-.PHONY: container-web-release container-debian-release container-rpm-release container-appimage-release container-windows-release container-release container-local-pkgbuild
-.PHONY: linux-container-release container-debian-based-release
-.PHONY: clean undo_setup fixup
-.PHONY: fix_yarn_cache
+.PHONY: clean
CFGDIR ?= configs/sc
all: web
YARN ?= yarnpkg
-CONTAINER_ENGINE ?= podman
-NODE_VERSION ?= 22
VERSION := $(shell grep version element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|')
WEB_APP_NAME := $(shell grep '"name"' element-web/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|')
@@ -22,8 +16,7 @@ PRODUCT_NAME := $(shell grep '"productName"' element-desktop/package.json | sed
WEB_OUT := element-web/dist
WEB_OUT_DIST_VERSION := $(VERSION)
-#OUT_WEB := $(WEB_OUT)/$(WEB_APP_NAME)-$(WEB_OUT_DIST_VERSION).tar.gz
-OUT_WEB := $(WEB_OUT)/element-$(WEB_OUT_DIST_VERSION).tar.gz
+OUT_WEB := $(WEB_OUT)/$(WEB_APP_NAME)-$(WEB_OUT_DIST_VERSION).tar.gz
DESKTOP_OUT := element-desktop/dist
OUT_DEB64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)_$(VERSION)_amd64.deb
@@ -39,10 +32,6 @@ OUT_WIN64_PORTABLE_BETTER_NAME := $(PRODUCT_NAME)_win-portable_v$(VERSION)
OUT_MACOS := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION)-universal.dmg
OUT_MACOS_MAS := $(DESKTOP_OUT)/mas-universal/$(PRODUCT_NAME).app
-CONTAINER_IMAGE_DEBIAN := schildichat-desktop-containerbuild-debian
-CONTAINER_IMAGE_FEDORA := schildichat-desktop-containerbuild-fedora
-CONTAINER_IMAGE_WINDOWS := schildichat-desktop-containerbuild-windows
-
RELEASE_DIR := release
CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION)
@@ -79,7 +68,7 @@ web: setup
desktop-common: web
$(YARN) --cwd element-desktop run fetch --cfgdir ''
- SQLCIPHER_BUNDLED=1 $(YARN) --cwd element-desktop run build:native
+ SQLCIPHER_STATIC=1 $(YARN) --cwd element-desktop run build:native
macos-common: web icns
$(YARN) --cwd element-desktop run fetch --cfgdir ''
@@ -125,7 +114,7 @@ local-pkgbuild-install: local-pkgbuild
web-release: web
mkdir -p $(CURRENT_RELEASE_DIR)
- cp $(OUT_WEB) $(CURRENT_RELEASE_DIR)/${WEB_APP_NAME}-$(WEB_OUT_DIST_VERSION).tar.gz
+ cp $(OUT_WEB) $(CURRENT_RELEASE_DIR)
debian-release: debian
mkdir -p $(CURRENT_RELEASE_DIR)
@@ -164,65 +153,16 @@ macos-mas-release: macos-mas
mkdir -p $(CURRENT_RELEASE_DIR)
cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR)
-container-build-debian:
- $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_DEBIAN) -f Containerfile.debian --build-arg NODE_VERSION=$(NODE_VERSION) .
-
-container-build-fedora:
- $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_FEDORA) -f Containerfile.fedora --build-arg NODE_VERSION=$(NODE_VERSION) .
-
-container-build-windows: container-build-debian
- $(CONTAINER_ENGINE) build --security-opt seccomp=unconfined --security-opt label=disable -t $(CONTAINER_IMAGE_WINDOWS) -f Containerfile.windows --build-arg CONTAINER_IMAGE_DEBIAN=$(CONTAINER_IMAGE_DEBIAN) .
-
-container-web-release: container-build-debian
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release
-
-container-debian-release: container-build-debian
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make debian-release
-
-# For all releases which are fine being built from Debian
-container-debian-based-release: container-build-debian
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release debian-release appimage-release
-
-container-rpm-release: container-build-fedora
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release
-
-container-appimage-release: container-build-debian
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make appimage-release
-
-container-windows-release: container-build-windows
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_WINDOWS):latest make windows-release
-
-container-release: container-build-windows #container-build-fedora
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_WINDOWS):latest make web-release debian-release appimage-release rpm-release windows-setup-release windows-portable-release
- #$(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release
-
-# For all Linux releases we build
-linux-container-release: container-debian-based-release container-rpm-release
-
-container-local-pkgbuild: container-build-debian
- $(CONTAINER_ENGINE) run --rm -ti -v $(PWD):/project --security-opt seccomp=unconfined --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make local-pkgbuild
-
-bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock
+bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock matrix-react-sdk/yarn.lock
./build-bom.sh
bom: bom.lock
-fix_yarn_cache:
- $(YARN) cache list || $(YARN) cache clean
-
clean:
$(YARN) --cwd matrix-js-sdk clean
+ $(YARN) --cwd matrix-react-sdk clean
$(YARN) --cwd element-web clean
$(YARN) --cwd element-desktop clean
- rm -f element-desktop/webapp || true
+ rm -f element-desktop/webapp
rm -rf element-web/dist
rm -rf local-pkgbuild
rm -f bom.lock
- rm -f element-web/res/css/sc-cpd-overrides.css
-
-undo_setup:
- rm -rf element-desktop/node_modules element-web/node_modules matrix-js-sdk/node_modules i18n-helper/node_modules element-desktop/.hak
-
-fixup: undo_setup fix_yarn_cache
- make setup
- make clean
- make setup
diff --git a/README.md b/README.md
index b5541e4..f4d437d 100644
--- a/README.md
+++ b/README.md
@@ -1,98 +1,45 @@
# SchildiChat Web/Desktop
-SchildiChat Web/Desktop is a fork of Element [Web](https://github.com/element-hq/element-web)/[Desktop](https://github.com/element-hq/element-desktop).
+SchildiChat Web/Desktop is a fork of Element [Web](https://github.com/vector-im/element-web)/[Desktop](https://github.com/vector-im/element-desktop).
+The most important changes of SchildiChat Web/Desktop compared to Element Web/Desktop are:
+- Customizable room list style (compact single line, intermediate and roomy with two line preview)
+- Option to show direct and group chats in a combined list
+- Improved theming options
+- Message bubbles
+- … and more!
-## Initial build setup
+Desktop downloads with installation instructions are listed on our website: [https://schildi.chat/desktop](https://schildi.chat/desktop)
+Hosted web variant: [https://app.schildi.chat/](https://app.schildi.chat/)
+
+Feel free to [join the discussion on matrix](https://matrix.to/#/#schildichat-web:matrix.org).
+
+
+
+
+Public key used to sign the Debian packages
```
-git clone -b lite --recurse-submodules https://github.com/SchildiChat/schildichat-desktop.git
-cd schildichat-desktop
-make setup # optional step if using the other make targets
+pub rsa4096 2020-12-08 [SC]
+ 560BB70DA86A6633A39CEC6023358905FE294D01
+uid Super apt repo key
+sub rsa4096 2020-12-08 [E]
```
-## Building on Linux
-
-Easiest to build on Linux is using `podman`, i.e. use one of the following make targets:
-
-```
-make container-appimage-release
-make container-debian-release
-make container-rpm-release
-make container-web-release
-```
-
-
-## Windows building dependencies
-
-To build on Windows, use [Element's](https://web-docs.element.dev/Element%20Desktop/windows-requirements.html) guide as starting point.
-
-Some additional notes I found useful:
-
-
-### Before build
-
-To prepare your build environment for VSC tools (use 2022 rather than 2019 mentioned upstream:
-
-```
-"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64
-```
-
-Additionally, make sure some programs are in your `PATH`:
-
-```
-export PATH="/C/Strawberry/perl/bin:$PATH:/C/Program Files/NASM:/C/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/"
-```
-
-- Strawberry perl needs to go before possibly already installed `/usr/bin/perl`
-- NASM needs to be available
-- `nmake` bundled with VSC wasn't available without adding that additionally (make sure the version is correct for what you installed)
-
-
-### Additional packages not mentioned upstream
-
-```
-npm install yarn
-npm install gyp
-npm install electron-builder
-npm install @electron/fuses
-pip install setuptools
-```
-
-To update outdated npm packages:
-
-```
-npm outdated
-npm update
-```
-
-### Troubleshooting
-
-- `yarn link` fails with permission denied: [kill any running nodejs task](https://stackoverflow.com/questions/64603970/an-unexpected-error-occurred-eperm-operation-not-permitted-in-yarn)
-- `electron-builder` fails to extract `winCodeSign`:
- - Download [source code](https://github.com/electron-userland/electron-builder-binaries/releases/tag/winCodeSign-2.6.0) manually
- - Extract `electron-builder-binaries-winCodeSign-2.6.0.zip\electron-builder-binaries-winCodeSign-2.6.0\winCodeSign` to your `AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0
- - [Source](https://github.com/electron-userland/electron-builder/issues/8149#issuecomment-2328460139)
-
-
-## Release builds
-
-See [here](RELEASE.md).
-
-
-## Old build instructions, to be revised in the future
+
## Building SchildiChat Web/Desktop
-This particular repo is a wrapper project for element-desktop, element-web, and matrix-js-sdk. It's the recommended starting point to build SchildiChat for Web **and** Desktop.
+This particular repo is a wrapper project for element-desktop, element-web, matrix-react-sdk and matrix-js-sdk. It's the recommended starting point to build SchildiChat for Web **and** Desktop.
The `master` branch contains the latest release.
Development happens in the `sc` branch, which might be **broken at any time**!
schildichat-desktop<-- this repo (recommended starting point to build SchildiChat for Web and Desktop)
|-- element-desktop (electron wrapper)
-|-- element-web (most of the development happens here)
+|-- element-web ("skin" for matrix-react-sdk)
+|-- matrix-react-sdk (most of the development happens here)
`-- matrix-js-sdk (Matrix client js sdk)
@@ -107,7 +54,7 @@ The following are the dependencies required to build SchildiChat Web/Desktop on
```
# apt install vim curl git make gcc g++ python jq libsqlcipher-dev pkg-config libsecret-1-dev libarchive-tools openssl libssl-dev tcl
-# curl -sL https://deb.nodesource.com/setup_16.x | bash -
+# curl -sL https://deb.nodesource.com/setup_14.x | bash -
# apt update
# apt install nodejs
@@ -142,6 +89,17 @@ or set `CSC_NAME` to your certificate name or id.
To notarize a build with Apple set `NOTARIZE_APPLE_ID` to your AppleID and set the keychain item
`NOTARIZE_CREDS` to an App specific AppleID password.
+
+### Initial setup
+
+As already noted above, **`master` contains the latest release** and **`sc` is the development branch**!
+
+```
+git clone -b master --recurse-submodules https://github.com/SchildiChat/schildichat-desktop.git
+cd schildichat-desktop
+make setup # optional step if using the other make targets
+```
+
### Create release builds
```
@@ -177,13 +135,3 @@ your-deploy-%: CFGDIR := $(YOUR_CFGDIR)
your-deploy-web: web
rsync --info=progress2 -rup --del element-web/webapp/ you@yourwebserver:/the/folder/served/for/schildi/
```
-
-
-# Merge helpers
-
-## Add upstream repo remotes
-
-```
-source merge_helpers.sh
-forall_repos add_upstream
-```
diff --git a/RELEASE.md b/RELEASE.md
deleted file mode 100644
index 128d761..0000000
--- a/RELEASE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Releasing SchildiChat deskop
-
-## Build Linux releases
-
-On a Linux machine with podman:
-
-```
-make container-release-linux
-```
-
-## Build Windows releases
-
-On a Windows machine in git bash (**not** WSL), run:
-
-```
-make windows-setup-release
-```
-
-## Upload the release
-
-Copy the Windows-generated `.exe` from the `release` directory into the release directory on your Linux machine.
-Then (after ensuring you have a GitHub API token setup for the script to pick up):
-
-```
-./deploy/create-github-release.sh
-```
diff --git a/apply_patches.sh b/apply_patches.sh
deleted file mode 100755
index 2185999..0000000
--- a/apply_patches.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mydir="$(dirname "$(realpath "$0")")"
-
-print_section() {
- local msg="$1"
- echo "##############################################################"
- echo "# $msg"
- echo "##############################################################"
-}
-
-pushd "$mydir" > /dev/null
-
-source ./merge_helpers.sh
-
-# Apply our patches
-#print_section "Apply patches to matrix-js-sdk"
-#apply_patches matrix-js-sdk
-print_section "Apply patches to element-web"
-apply_patches element-web
-print_section "Apply patches to element-desktop"
-apply_patches element-desktop
-
-# Automatic adjustments
-#print_section "Apply i18n"
-#automatic_i18n_adjustment
-print_section "Apply automatic package adjustments"
-automatic_packagejson_adjustment
-
-# Automatic theme and icon update
-print_section "Apply automatic theme updates"
-./theme.sh y
-print_section "Generate icons"
-./graphics/icon_gen.sh y
-
-popd > /dev/null
diff --git a/build-bom.sh b/build-bom.sh
index d5aea4a..4032fa4 100755
--- a/build-bom.sh
+++ b/build-bom.sh
@@ -5,6 +5,8 @@ cat element-web/yarn.lock >> bom.lock
echo "" >> bom.lock
cat matrix-js-sdk/yarn.lock >> bom.lock
echo "" >> bom.lock
+cat matrix-react-sdk/yarn.lock >> bom.lock
+echo "" >> bom.lock
# matrix-seshat
cat << EOF >> bom.lock
diff --git a/compound-web b/compound-web
deleted file mode 160000
index 141771e..0000000
--- a/compound-web
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 141771eb303d48dc388b2e5a01504359ad47b2c1
diff --git a/configs/sc/config.json b/configs/sc/config.json
index 0402a78..2916dee 100644
--- a/configs/sc/config.json
+++ b/configs/sc/config.json
@@ -1,11 +1,6 @@
{
"update_base_url": null,
- "default_server_config": {
- "m.homeserver": {
- "base_url": "https://matrix-client.matrix.org",
- "server_name": "matrix.org"
- }
- },
+ "default_server_name": "matrix.org",
"brand": "SchildiChat",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
@@ -16,13 +11,10 @@
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
- "show_labs_settings": true,
- "room_directory": {
+ "showLabsSettings": true,
+ "roomDirectory": {
"servers": [
- "matrix.org",
- "gitter.im",
- "libera.chat",
- "schildi.chat"
+ "matrix.org"
]
},
"enable_presence_by_hs_url": {
diff --git a/deploy/create-github-release.sh b/deploy/create-github-release.sh
index beec5a4..b93f7d5 100755
--- a/deploy/create-github-release.sh
+++ b/deploy/create-github-release.sh
@@ -10,21 +10,12 @@ set -e
version="$1"
releasepath="$2"
-if [ -z "$version" ] || [ -z "$releasepath" ]; then
- echo "Usage: $0 "
- exit 1
-fi
-
-if [ -z "$GITHUB_API_TOKEN" ]; then
- github_api_token=`cat ~/githubtoken`
-else
- github_api_token="$GITHUB_API_TOKEN"
-fi
+github_api_token=`cat ~/githubtoken`
release_notes_file="/tmp/scrn.md"
owner=SchildiChat
repo=schildichat-desktop
-target=lite
+target=master
# Define variables
GH_API="https://api.github.com"
@@ -46,7 +37,7 @@ json_string=`jq -n --arg tag "v$version" --arg target "$target" --arg body "$rel
name: $tag,
body: $body,
draft: true,
- prerelease: true
+ prerelease: false
}'`
# echo "$json_string"
res=`echo "$json_string" | curl -sH "$AUTH" $GH_REPO/releases -d @-`
diff --git a/deploy/update-flathub.sh b/deploy/update-flathub.sh
index 7451aec..31c4ce5 100755
--- a/deploy/update-flathub.sh
+++ b/deploy/update-flathub.sh
@@ -20,11 +20,8 @@ debdate=$(date +%Y-%m-%d -r $debpath)
pushd "$repopath" > /dev/null
git fetch
-git checkout master
git reset --hard origin/master
-git checkout -B "release-v$version"
-
yamlFile="chat.schildi.desktop.yaml"
xmlFile="chat.schildi.desktop.metainfo.xml"
@@ -36,8 +33,8 @@ sed -i "s|^\s\s$| \n /dev/null
-echo "Release v$version published on flathub, now merge that branch as PR: https://github.com/flathub/chat.schildi.desktop/"
+echo "Release v$version published on flathub!"
diff --git a/element-desktop b/element-desktop
index f115ac7..bb09b97 160000
--- a/element-desktop
+++ b/element-desktop
@@ -1 +1 @@
-Subproject commit f115ac7ad03f7efa8e0a3e8dca782e455b766277
+Subproject commit bb09b97684db6927539a57ac05356bb7b6dffad3
diff --git a/element-web b/element-web
index cacb1a6..2a51d27 160000
--- a/element-web
+++ b/element-web
@@ -1 +1 @@
-Subproject commit cacb1a60db7dc15ee7cb9827e0bf83d308bc4baa
+Subproject commit 2a51d277c7bc83b1b001d1aae50574bfb812d488
diff --git a/flake.lock b/flake.lock
index d010aa2..271a3d0 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1699380656,
- "narHash": "sha256-H9kQH3J2Z15Ady3zVQsN/tXv8qnRr+p1B0eUkR1bKfE=",
+ "lastModified": 1633901457,
+ "narHash": "sha256-GNJLwKENqEA4xlzkWI76VLHBAua4LUIlTeeiH4FR7Gc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "03e7a22654c44489a0a70ea0e237de3e512cd8a6",
+ "rev": "f358794824b4595d77fec93732485d329ed7b0e0",
"type": "github"
},
"original": {
diff --git a/generate_changelog.sh b/generate_changelog.sh
deleted file mode 100755
index 1e65601..0000000
--- a/generate_changelog.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mydir="$(dirname "$(realpath "$0")")"
-
-pushd "$mydir" > /dev/null
-
-source ./merge_helpers.sh
-
-# Check branch
-check_branch $branch
-forall_repos check_branch $branch
-
-# Ensure clean git state
-forall_repos check_clean_git
-
-# Fetch upstream
-forall_repos git fetch origin > /dev/null 2>/dev/null
-forall_repos git fetch upstream > /dev/null 2>/dev/null
-
-(
- # Add new line below git log: https://unix.stackexchange.com/a/345558
-
- get_latest_upstream_tag
- forelement_repos git log --pretty=format:"- %s" "sc" "^$latest_upstream_tag" "^master" \
- | printf '%s\n' "$(cat)" \
- | sed "s|Merge tag '\\(.*\\)' into sc.*|Update codebase to Element \1|" \
- | sed "s|Merge tag '\\(.*\\)' into merge.*|Update codebase to Element \1|"
-
- get_current_mxsdk_tags
-
- pushd "matrix-js-sdk" > /dev/null
- git log --pretty=format:"- %s" "sc" "^$current_mxjssdk_tag" "^master" \
- | printf '%s\n' "$(cat)" \
- | grep -v "Merge .*tag"
- popd > /dev/null
-
- pushd "matrix-react-sdk" > /dev/null
- git log --pretty=format:"- %s" "sc" "^$current_mxreactsdk_tag" "^master" \
- | printf '%s\n' "$(cat)" \
- | grep -v "Merge .*tag"
- popd > /dev/null
-) \
- | grep -v "Automatic i18n reversion" \
- | grep -v "Automatic package.json reversion" \
- | grep -v "Merge .*branch" \
- | grep -v "Automatic theme update" \
- | grep -v "Automatic package.json adjustment" \
- | grep -v "Automatic i18n adjustment" \
- | grep -v "Update version to .*-sc\\..*" \
- | grep -v "\\.sh" \
- | grep -v "\\.md" \
- | grep -v "Added translation using Weblate" \
- | grep -v "Translated using Weblate" \
- | grep -v "weblate/sc" \
- | grep -v "\\[.*merge.*\\]" \
- | awk '!seen[$0]++' `# https://stackoverflow.com/a/1444448` \
- || echo "No significant changes since the last stable release"
-
-popd > /dev/null
diff --git a/generate_patches.sh b/generate_patches.sh
deleted file mode 100755
index 3163af3..0000000
--- a/generate_patches.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mydir="$(dirname "$(realpath "$0")")"
-pushd "$mydir" > /dev/null
-
-source ./merge_helpers.sh
-
-persist_patches() {
- local repo="$(realpath "$1")"
- local patch_dir="$SCHILDI_ROOT/patches/$(basename "$1")"
- if [ ! -d "$repo" ]; then
- echo "Unknown repo: $repo"
- return 1
- fi
-
- pushd "$repo"
-
- if [ -d "$patch_dir" ]; then
- echo "Clearing old patches..."
- rm "$patch_dir"/*
- else
- echo "Creating new patch dir $patch_dir..."
- mkdir "$patch_dir"
- fi
- # Assume we forked from a tag starting with 'v' (our own tags start with sc_)
- local fork_point=`git describe --tags --match 'v*'| sed 's|-[^-]*-[^-]*$||'`
- echo "Creating new patches from $fork_point"
- git format-patch -k "$fork_point".. -o "$patch_dir"
- echo "Clearing automated commits from patches"
- find "$patch_dir" -name "*-Automatic-package.json-adjustment.patch" -exec rm {} \;
- find "$patch_dir" -name "*-Automatic-icon-update.patch" -exec rm {} \;
- find "$patch_dir" -name "*-Automatic-theme-update.patch" -exec rm {} \;
- find "$patch_dir" -name "*-Automatic-setup-commit.patch" -exec rm {} \;
- find "$patch_dir" -name "*-Update-version-to-*.patch" -exec rm {} \;
- popd
-}
-
-persist_patches element-desktop
-persist_patches element-web
-#persist_patches matrix-js-sdk
-
-popd > /dev/null
diff --git a/graphics/feature_image.svg b/graphics/feature_image.svg
deleted file mode 100644
index acb9ffc..0000000
--- a/graphics/feature_image.svg
+++ /dev/null
@@ -1,815 +0,0 @@
-
-
diff --git a/graphics/feature_image_transparent.svg b/graphics/feature_image_transparent.svg
deleted file mode 100644
index c241206..0000000
--- a/graphics/feature_image_transparent.svg
+++ /dev/null
@@ -1,784 +0,0 @@
-
-
diff --git a/graphics/ic_launcher_sc.svg b/graphics/ic_launcher_sc.svg
deleted file mode 100644
index 6dee8d6..0000000
--- a/graphics/ic_launcher_sc.svg
+++ /dev/null
@@ -1,2243 +0,0 @@
-
-
diff --git a/graphics/icon_gen.sh b/graphics/icon_gen.sh
deleted file mode 100755
index 780ce7a..0000000
--- a/graphics/icon_gen.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mydir="$(dirname "$(realpath "$0")")"
-automatic_commit="$1"
-
-SCHILDI_ROOT="$mydir/.."
-source "$SCHILDI_ROOT/merge_helpers.sh"
-
-if [[ "$automatic_commit" == [Yy]* ]]; then
- forelement_repos check_clean_git
-fi
-
-
-export_rect() {
- w="$1"
- h="$2"
- in="$3"
- out="$4"
- inkscape -w "$w" -h "$h" --export-filename="$out" -C "$in"
-}
-export_square() {
- size="$1"
- in="$2"
- out="$3"
- export_rect "$1" "$size" "$in" "$out"
-}
-
-repo_dir="$SCHILDI_ROOT/element-web"
-base_out="$repo_dir/res/vector-icons"
-
-for i in 1024 120 150 152 180 24 300 44 48 50 76 88; do
- export_square "$i" "$mydir/ic_launcher_sc.svg" "$base_out/$i.png"
-done
-
-for i in 114 120 144 152 180 57 60 72 76; do
- export_square "$i" "$mydir/store_icon.svg" "$base_out/apple-touch-icon-$i.png"
-done
-
-for i in 150 310 70; do
- export_square "$i" "$mydir/store_icon.svg" "$base_out/mstile-$i.png"
-done
-
-# TODO fix measures of input to have correct measures for export here again
-export_rect 1024 500 "$mydir/feature_image_transparent.svg" "$base_out/1240x600.png"
-export_rect 512 250 "$mydir/feature_image_transparent.svg" "$base_out/620x300.png"
-export_rect 256 125 "$mydir/feature_image.svg" "$base_out/mstile-310x150.png"
-
-magick "$base_out/48.png" "$base_out/favicon.ico"
-rm "$base_out/48.png" # this was only created for favicon.ico
-
-for f in "$base_out"/*.png; do
- pngcrush -ow "$f"
-done
-
-
-cp "$mydir/ic_launcher_sc.svg" "$repo_dir/res/themes/element/img/logos/element-logo.svg"
-
-
-repo_dir="$SCHILDI_ROOT/element-desktop"
-base_out="$repo_dir/res/img"
-
-export_square 256 "$mydir/ic_launcher_sc.svg" "$base_out/element.png"
-magick "$base_out/element.png" "$base_out/element.ico"
-
-# TODO monochrome icon? Unless https://github.com/element-hq/element-desktop/pull/1934 is what we'll end with
-export_square 256 "$mydir/ic_launcher_sc.svg" "$base_out/monochrome.png"
-magick "$base_out/element.png" "$base_out/monochrome.ico"
-
-for f in "$base_out"/*.png; do
- pngcrush -ow "$f"
-done
-
-
-
-
-base_out="$repo_dir/build"
-
-for i in 16 24 48 64 96 128 256 512 1024; do
- export_square "$i" "$mydir/ic_launcher_sc.svg" "$base_out/icons/$i"x"$i.png"
-done
-
-export_square "320" "$mydir/ic_launcher_sc.svg" "$base_out/install-spinner.png"
-pngcrush "$base_out/install-spinner.png"
-magick "$base_out/install-spinner.png" "$base_out/install-spinner.gif"
-rm "$base_out/install-spinner.png"
-
-magick "$base_out/icons/256x256.png" "$base_out/icon.ico"
-magick "$base_out/icons/1024x1024.png" "$base_out/icon.icns"
-rm "$base_out/icons/1024x1024.png"
-
-for f in "$base_out/icons"/*.png; do
- pngcrush -ow "$f"
-done
-
-
-if [[ "$automatic_commit" == [Yy]* ]]; then
- forelement_repos commit_if_dirty "Automatic icon update"
-fi
diff --git a/graphics/store_icon.svg b/graphics/store_icon.svg
deleted file mode 120000
index 30278a9..0000000
--- a/graphics/store_icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-ic_launcher_sc.svg
\ No newline at end of file
diff --git a/hard_reset_repos.sh b/hard_reset_repos.sh
deleted file mode 100755
index 4e17e2a..0000000
--- a/hard_reset_repos.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mydir="$(dirname "$(realpath "$0")")"
-
-cd "$mydir"
-
-source ./merge_helpers.sh
-
-# Note: this doesn't delete files starting with a dot,
-# and in particular not the '.git' directory, which we
-# want to keep
-forall_repos bash -c 'rm -rf *'
-forall_repos git reset HEAD --hard
diff --git a/i18n-helper/index.js b/i18n-helper/index.js
index 11e3fc4..f226e47 100644
--- a/i18n-helper/index.js
+++ b/i18n-helper/index.js
@@ -35,13 +35,7 @@ function writeStrings(p, strings) {
let strings = readStrings(p);
for (const key of Object.keys(strings)) {
- strings[key] = strings[key]
- .replace(/Element/g, "SchildiChat")
- .replace(/element\.io/g, "schildi.chat")
-
- // It's still Element Call
- .replace(/SchildiChat Call/g, "Element Call")
- .replace(/SchildiChat-Call/g, "Element-Call");
+ strings[key] = strings[key].replace(/Element/g, "SchildiChat").replace(/element\.io/g, "schildi.chat");
}
if (overlayPath) {
diff --git a/i18n-overlays/element-desktop/hu.json b/i18n-overlays/element-desktop/hu.json
index 8598663..0967ef4 100644
--- a/i18n-overlays/element-desktop/hu.json
+++ b/i18n-overlays/element-desktop/hu.json
@@ -1,3 +1 @@
-{
- "Show": "Mutat"
-}
+{}
diff --git a/i18n-overlays/element-desktop/ja.json b/i18n-overlays/element-desktop/ja.json
deleted file mode 100644
index 0967ef4..0000000
--- a/i18n-overlays/element-desktop/ja.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/i18n-overlays/element-web/en_EN.json b/i18n-overlays/element-web/en_EN.json
index e707661..0967ef4 100644
--- a/i18n-overlays/element-web/en_EN.json
+++ b/i18n-overlays/element-web/en_EN.json
@@ -1,3 +1 @@
-{
- "Welcome to SchildiChat": "Welcome to SchildiChat"
-}
+{}
diff --git a/i18n-overlays/element-web/ja.json b/i18n-overlays/element-web/ja.json
deleted file mode 100644
index 0967ef4..0000000
--- a/i18n-overlays/element-web/ja.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/i18n-overlays/matrix-react-sdk/cs.json b/i18n-overlays/matrix-react-sdk/cs.json
index a0816fc..861e944 100644
--- a/i18n-overlays/matrix-react-sdk/cs.json
+++ b/i18n-overlays/matrix-react-sdk/cs.json
@@ -21,8 +21,8 @@
"MXID": "MXID",
"In group chats": "Ve skupinových chatech",
"In public rooms": "Ve veřejných místnostech",
- "All rooms you're in will appear in Home.": "Všechny místnosti, ve kterých se nacházíte, se zobrazí v Úvodu.",
- "Show all rooms in Home": "Zobrazit všechny místnosti v Úvodu",
+ "All rooms you're in will appear in Home.": "Všechny místnosti, ve kterých se nacházíte, se zobrazí v domovském zobrazení.",
+ "Show all rooms in Home": "Ukázat všechny místnosti v domovském zobrazení",
"Show people in spaces": "Ukázat lidi v prostorech",
"Show notification badges for People in Spaces": "Zobrazit odznaky oznámení pro Lidé v prostorech",
"Return to the room previously opened in a space": "Návrat do dříve otevřené místnosti v prostoru",
@@ -50,6 +50,5 @@
"Mixed": "Smíšené",
"Sound pack": "Balíček zvuků",
"Schildi: Softer sounds for reduced anxiety": "Schildi: Jemnější zvuky pro snížení úzkosti",
- "Classic: The same sharp sounds as Element": "Klasické: Stejně ostré zvuky jako Element",
- "React with \"%(reaction)s\"": "Reagovat pomocí \"%(reaction)s\""
+ "Classic: The same sharp sounds as Element": "Klasické: Stejně ostré zvuky jako Element"
}
diff --git a/i18n-overlays/matrix-react-sdk/en_EN.json b/i18n-overlays/matrix-react-sdk/en_EN.json
index 2c59706..7732df7 100644
--- a/i18n-overlays/matrix-react-sdk/en_EN.json
+++ b/i18n-overlays/matrix-react-sdk/en_EN.json
@@ -49,6 +49,5 @@
"Mixed": "Mixed",
"Sound pack": "Sound pack",
"Schildi: Softer sounds for reduced anxiety": "Schildi: Softer sounds for reduced anxiety",
- "Classic: The same sharp sounds as Element": "Classic: The same sharp sounds as Element",
- "React with \"%(reaction)s\"": "React with \"%(reaction)s\""
+ "Classic: The same sharp sounds as Element": "Classic: The same sharp sounds as Element"
}
diff --git a/i18n-overlays/matrix-react-sdk/hu.json b/i18n-overlays/matrix-react-sdk/hu.json
index cde030f..a048d36 100644
--- a/i18n-overlays/matrix-react-sdk/hu.json
+++ b/i18n-overlays/matrix-react-sdk/hu.json
@@ -3,27 +3,5 @@
"Show message bubbles on one side only": "Üzenetbuborékok megjelenítése csak az egyik oldalon",
"Message bubbles": "Üzenet buborékok",
"Show message bubbles depending on the width either on both sides or only on one side": "Üzenetbuborékok megjelenítése a szélességtől függően mindkét oldalon vagy csak az egyik oldalon",
- "Normal priority": "Normál prioritás",
- "Show people and rooms in a combined list": "Személyek és szobák megjelenítése egy egyesített listában",
- "Update notifications": "Értesítések frissítése",
- "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Szeretne csatlakozni olyan szobához, amely értesíti Önt az új megjelenésekről? Ez különösen akkor hasznos, ha az Ön platformja nem támogatja a SchildiChat automatikus frissítéseit (pl. Windows és macOS).",
- "System": "Rendszer",
- "Show all rooms in Home": "Az összes szoba megjelenítése a kezdőoldalon",
- "All rooms you're in will appear in Home.": "Az összes szoba, amelyben tartózkodik, megjelenik a Kezdőlapon.",
- "Mark as read": "Olvasottnak jelöl",
- "Enable YouTube embed player": "YouTube beágyazott lejátszó engedélyezése",
- "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "A Kezdőlap hasznos ahhoz, hogy mindenről áttekintést kapjunk. Ne feledje, hogy a kikapcsolásával bizonyos szobákat nem fog látni.",
- "Schildi: Softer sounds for reduced anxiety": "Schildi: Lágyabb hangok a kevesebb stresszért",
- "Sound pack": "Hangcsomag",
- "Classic: The same sharp sounds as Element": "Klasszikus: Ugyanazok az éles hangok, mint az Elementnél",
- "Don't ask again": "Ne kérdezze újra",
- "Light theme": "Világos téma",
- "Dark theme": "Sötét téma",
- "Mark as unread": "Olvasatlannak jelöl",
- "Collapse additional buttons": "További gombok összecsukása",
- "Theme": "Téma",
- "Room list": "Szobák listája",
- "Font size and typeface": "Betűméret és betűtípus",
- "Message layout": "Üzenetek elrendezése",
- "Modern": "Modern"
+ "Normal priority": "Normál prioritás"
}
diff --git a/i18n-overlays/matrix-react-sdk/id.json b/i18n-overlays/matrix-react-sdk/id.json
index 3324b6f..c0d5cbb 100644
--- a/i18n-overlays/matrix-react-sdk/id.json
+++ b/i18n-overlays/matrix-react-sdk/id.json
@@ -49,6 +49,5 @@
"Mixed": "Campur",
"Sound pack": "Paket suara",
"Schildi: Softer sounds for reduced anxiety": "Schildi: Suara lebih lembut untuk mengurangi kecemasan",
- "Classic: The same sharp sounds as Element": "Klasik: Suara keras yang biasa seperti Element",
- "React with \"%(reaction)s\"": "Reaksi dengan \"%(reaction)s\""
+ "Classic: The same sharp sounds as Element": "Klasik: Suara keras yang biasa seperti Element"
}
diff --git a/i18n-overlays/matrix-react-sdk/it.json b/i18n-overlays/matrix-react-sdk/it.json
index 187e9c4..72a5b3a 100644
--- a/i18n-overlays/matrix-react-sdk/it.json
+++ b/i18n-overlays/matrix-react-sdk/it.json
@@ -9,26 +9,5 @@
"Light theme": "Tema chiaro",
"Dark theme": "Tema scuro",
"Normal priority": "Priorità normale",
- "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Vuoi entrare in una stanza che ti notificherà riguardo nuove release? Sarebbe comodo particolarmente se la tua piattaforma non supporta aggiornamenti automatici (Come per esempio Windows o MacOS.)",
- "Show message bubbles on one side only": "Visualizza bolle messaggi su un lato solo",
- "Show message bubbles depending on the width either on both sides or only on one side": "Visualizza bolle messaggi in base alla lunghezza di entrambi i lati o di uno solo",
- "User name color mode": "Modalità colore nome utente",
- "Room list style": "Stile lista stanze",
- "Theme": "Tema",
- "Show all rooms in Home": "Visualizza tutte le stanze nella Home",
- "All rooms you're in will appear in Home.": "Tutte le stanze in cui partecipi appariranno nella Home.",
- "For people": "Per le persone",
- "Room list": "Lista stanze",
- "Show advanced theme settings": "Visualizza impostazioni avanzate tema",
- "Mark rooms as unread": "Permetti di segnare le chat come non lette",
- "Message bubbles": "Bolle messaggi",
- "Message layout": "Impaginazione messaggi",
- "Mark as unread": "Segna come non letto",
- "Uniform": "Uniforme",
- "Show people in spaces": "Visualizza persone negli spazi",
- "MXID": "MXID",
- "In public rooms": "Nelle stanze pubbliche",
- "In group chats": "Nelle chat di gruppo",
- "Font size and typeface": "Dimensione e tipo carattere",
- "Hide advanced theme settings": "Nascondi impostazioni avanzate tema"
+ "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Vuoi entrare in una stanza che ti notificherà riguardo nuove release? Sarebbe comodo particolarmente se la tua piattaforma non supporta aggiornamenti automatici (Come per esempio Windows o MacOS.)"
}
diff --git a/i18n-overlays/matrix-react-sdk/ja.json b/i18n-overlays/matrix-react-sdk/ja.json
deleted file mode 100644
index fedc533..0000000
--- a/i18n-overlays/matrix-react-sdk/ja.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Normal priority": "常優先度"
-}
diff --git a/i18n-overlays/matrix-react-sdk/lt.json b/i18n-overlays/matrix-react-sdk/lt.json
index 7013517..2b32484 100644
--- a/i18n-overlays/matrix-react-sdk/lt.json
+++ b/i18n-overlays/matrix-react-sdk/lt.json
@@ -17,37 +17,5 @@
"In group chats": "Pokalbių grupėse",
"In public rooms": "Viešuose kambariuose",
"Show all rooms in Home": "Rodyti visus kambarius Pradžioje",
- "All rooms you're in will appear in Home.": "Visi kambariai kuriuose esate bus rodomi Pradžioje.",
- "Hide advanced theme settings": "Slėpti išplėstinius temos nustatymus",
- "Show advanced theme settings": "Rodyti išplėstinius temos nustatymus",
- "Theme": "Tema",
- "Font size and typeface": "Šrifto dydis ir raštas",
- "Show message bubbles depending on the width either on both sides or only on one side": "Rodyti žinučių burbulus, priklausomai nuo pločio, abiejose pusėse arba tik vienoje pusėje",
- "Sound pack": "Garso paketas",
- "Schildi: Softer sounds for reduced anxiety": "Schildi: švelnesni garsai sumažintam nerimui",
- "Classic: The same sharp sounds as Element": "Klasikiniai: Tie patys aštrūs garsai kaip ir Element",
- "Enable YouTube embed player": "Įgalinti YouTube įterptą grotuvą",
- "Add custom theme": "Pridėti pasirinktinę temą",
- "Mark as unread": "Žymėti kaip neskaitytą",
- "Mark as read": "Žymėti kaip perskaitytą",
- "User name color mode": "Naudotojo vardo spalvų režimas",
- "Uniform": "Vienodi",
- "Show notification badges for People in Spaces": "Rodyti pranešimų ženkliukus žmonėms erdvėse",
- "Return to the room previously opened in a space": "Grįžti į anksčiau atidarytą kambarį erdvėje",
- "If disabled, the space overview will be shown when switching to another space.": "Jei išjungta, perjungiant į kitą erdvę bus rodoma erdvės apžvalga.",
- "Room list style": "Kambarių sąrašo stilius",
- "Compact: tiny avatar together with name and preview in one line": "Kompaktiška: mažytis avataras kartu su vardu ir peržiūra vienoje eilutėje",
- "Intermediate: medium sized avatar with single-line preview": "Vidutinis: vidutinio dydžio avataras su vienos eilutės peržiūra",
- "Roomy: big avatar with two-line preview": "Erdvus: didelis avataras su dviejų eilučių peržiūra",
- "PowerLevel": "Galios lygis",
- "For people": "Žmonėms",
- "Show people in spaces": "Rodyti žmones erdvėse",
- "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Jei išjungta, vis tiek galite pridėti tiesioginius pokalbius į asmenines erdves. Jei ši funkcija įjungta, automatiškai matysite visus, kurie yra erdvės nariai.",
- "Mark rooms as unread": "Leisti žymėti pokalbius kaip neskaitytus",
- "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Pradžia yra naudinga, kad galėtumėte viską apžvelgti. Turėkite omenyje, kad ją išjungę galite nematyti tam tikrų kambarių.",
- "Collapse additional buttons": "Sulankstyti papildomus mygtukus",
- "Corners": "Kampai",
- "Round": "Apvalus",
- "Extra round": "Ypač apvalus",
- "Mixed": "Mišrus"
+ "All rooms you're in will appear in Home.": "Visi kambariai kuriuose esate bus rodomi Pradžioje."
}
diff --git a/i18n-overlays/matrix-react-sdk/pt_BR.json b/i18n-overlays/matrix-react-sdk/pt_BR.json
index 1b4c8af..5bac536 100644
--- a/i18n-overlays/matrix-react-sdk/pt_BR.json
+++ b/i18n-overlays/matrix-react-sdk/pt_BR.json
@@ -40,6 +40,5 @@
"Room list style": "Estilo da lista de salas",
"Mark rooms as unread": "Permitir markar conversas como não lidos",
"Mark as unread": "Markar como não lido",
- "Mark as read": "Markar como lido",
- "Collapse additional buttons": "Recolher botões adicionais"
+ "Mark as read": "Markar como lido"
}
diff --git a/i18n-overlays/matrix-react-sdk/zh_Hans.json b/i18n-overlays/matrix-react-sdk/zh_Hans.json
index e3e332a..aef112a 100644
--- a/i18n-overlays/matrix-react-sdk/zh_Hans.json
+++ b/i18n-overlays/matrix-react-sdk/zh_Hans.json
@@ -42,13 +42,5 @@
"Mark as unread": "标记为未读",
"Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "主页对于概览所有消息来说非常有用。请注意:禁用主页可能会让您无法看到某些房间。",
"Enable YouTube embed player": "启用 YouTube 嵌入式播放器",
- "Collapse additional buttons": "折叠额外的按钮",
- "Round": "圆角",
- "React with \"%(reaction)s\"": "与 \"%(reaction)s\" 互动",
- "Schildi: Softer sounds for reduced anxiety": "Schildi: 舒缓音效以减少焦虑",
- "Mixed": "混合",
- "Extra round": "超圆角",
- "Sound pack": "音频包",
- "Classic: The same sharp sounds as Element": "Classic: 与 Element 相同的尖锐声音",
- "Corners": "边缘"
+ "Collapse additional buttons": "折叠额外的按钮"
}
diff --git a/matrix-js-sdk b/matrix-js-sdk
index cf06547..c2deb2a 160000
--- a/matrix-js-sdk
+++ b/matrix-js-sdk
@@ -1 +1 @@
-Subproject commit cf065470630197affee1dea84f1c7e95df6c0ddf
+Subproject commit c2deb2a20e687b1ef566a3e21ae3c5c18b473dd1
diff --git a/matrix-react-sdk b/matrix-react-sdk
new file mode 160000
index 0000000..bf34169
--- /dev/null
+++ b/matrix-react-sdk
@@ -0,0 +1 @@
+Subproject commit bf34169e576fde32cc9b0384eed22220b311ef39
diff --git a/merge_helpers.sh b/merge_helpers.sh
index c6909ad..3808eab 100755
--- a/merge_helpers.sh
+++ b/merge_helpers.sh
@@ -1,10 +1,8 @@
#!/bin/bash
-if [ -z "$SCHILDI_ROOT" ]; then
- SCHILDI_ROOT="$(dirname "$(realpath "$0")")"
-fi
+SCHILDI_ROOT="$(dirname "$(realpath "$0")")"
-branch=${BRANCH:-"lite"}
+branch=${BRANCH:-"sc"}
i18n_helper_path="$SCHILDI_ROOT/i18n-helper/index.js"
i18n_path="src/i18n/strings"
@@ -14,16 +12,16 @@ yarn=yarnpkg
add_upstream() {
if git remote | grep -q upstream; then
- echo "Remote named upstream already exists, deleting..."
- git remote remove upstream
+ echo "Remote named upstream already exists!"
+ return 1
fi
- local sc_remote="$(git remote -v|grep origin|grep fetch|sed 's|.*\t\(.*\) (fetch)|\1|;s|git@github.com:|https://github.com/|')"
- if echo "$sc_remote" | grep -q matrix-js-sdk; then
+ local sc_remote="$(git remote -v|grep origin|grep fetch|sed 's|.*\t\(.*\) (fetch)|\1|')"
+ if echo "$sc_remote" | grep -q matrix; then
# matrix.org repo
local upstream_remote="$(echo "$sc_remote" | sed 's|SchildiChat|matrix-org|')"
- elif echo "$sc_remote" | grep -q "element\\|compound-web"; then
+ elif echo "$sc_remote" | grep -q element; then
# vector-im repo
- local upstream_remote="$(echo "$sc_remote" | sed 's|SchildiChat|element-hq|')"
+ local upstream_remote="$(echo "$sc_remote" | sed 's|SchildiChat|vector-im|')"
else
echo "Don't know upstream repo for $sc_remote"
return 1
@@ -34,32 +32,36 @@ add_upstream() {
}
forall_repos() {
- for repo in "matrix-js-sdk" "element-web" "element-desktop" "compound-web"; do
- pushd "$SCHILDI_ROOT/$repo" > /dev/null
- "$@"
- popd > /dev/null
- done
+ pushd "$SCHILDI_ROOT/matrix-js-sdk" > /dev/null
+ "$@"
+ popd > /dev/null
+
+ pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null
+ "$@"
+ popd > /dev/null
+
+ pushd "$SCHILDI_ROOT/element-web" > /dev/null
+ "$@"
+ popd > /dev/null
+
+ pushd "$SCHILDI_ROOT/element-desktop" > /dev/null
+ "$@"
+ popd > /dev/null
}
forelement_repos() {
- for repo in "element-web" "element-desktop"; do
- pushd "$SCHILDI_ROOT/$repo" > /dev/null
- "$@"
- popd > /dev/null
- done
-}
+ pushd "$SCHILDI_ROOT/element-web" > /dev/null
+ "$@"
+ popd > /dev/null
-for_main_repos() {
- for repo in "matrix-js-sdk" "element-web" "element-desktop"; do
- pushd "$SCHILDI_ROOT/$repo" > /dev/null
- "$@"
- popd > /dev/null
- done
+ pushd "$SCHILDI_ROOT/element-desktop" > /dev/null
+ "$@"
+ popd > /dev/null
}
ensure_yes() {
read -e -p "$1 [y/N] " choice
-
+
if [[ "$choice" != [Yy]* ]]; then
exit 1
fi
@@ -107,8 +109,13 @@ automatic_i18n_reversion() {
get_current_upstream_tag
local current_mxjssdk_tag
+ local current_mxreactsdk_tag
get_current_mxsdk_tags
+ pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null
+ revert_i18n_changes "$i18n_path" "$current_mxreactsdk_tag" "$skip_commit"
+ popd > /dev/null
+
pushd "$SCHILDI_ROOT/element-web" > /dev/null
revert_i18n_changes "$i18n_path" "$current_upstream_tag" "$skip_commit"
popd > /dev/null
@@ -119,6 +126,13 @@ automatic_i18n_reversion() {
}
automatic_i18n_adjustment() {
+ # matrix-react-sdk
+ pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null
+ $yarn i18n
+ node "$i18n_helper_path" "$SCHILDI_ROOT/matrix-react-sdk/$i18n_path" "$i18n_overlay_path/matrix-react-sdk"
+ apply_i18n_changes "$i18n_path"
+ popd > /dev/null
+
# element-web
pushd "$SCHILDI_ROOT/element-web" > /dev/null
$yarn i18n
@@ -203,10 +217,10 @@ revert_packagejson_changes() {
apply_packagejson_overlay() {
local orig_path="$1"
- local overlay_path="../overlay/$(basename "$PWD")/package.json"
+ local overlay_path="$2"
# see: https://stackoverflow.com/a/24904276
- new_content=`jq -s '.[0] * .[1]' "$orig_path" "$overlay_path" | sed 's| | |g'`
+ new_content=`jq -s '.[0] * .[1]' "$orig_path" "$overlay_path"`
echo "$new_content" > "$orig_path"
git add "$orig_path"
@@ -226,7 +240,7 @@ automatic_packagejson_adjustment() {
local versions
get_current_versions
- forelement_repos apply_packagejson_overlay "package.json"
+ forelement_repos apply_packagejson_overlay "package.json" "overlay-package.json"
forelement_repos write_version "package.json"
}
@@ -244,53 +258,6 @@ get_current_upstream_tag() {
}
get_current_mxsdk_tags() {
+ current_mxreactsdk_tag="v$(cat "$SCHILDI_ROOT/element-web/package.json" | jq '.dependencies["matrix-react-sdk"]' -r)"
current_mxjssdk_tag="v$(cat "$SCHILDI_ROOT/element-web/package.json" | jq '.dependencies["matrix-js-sdk"]' -r)"
}
-
-apply_patches() {
- local repo="$(realpath "$1")"
- local patch_dir="$SCHILDI_ROOT/patches/$(basename "$1")"
- if [ ! -d "$repo" ]; then
- echo "Unknown repo: $repo"
- return 1
- fi
- if [ ! -d "$patch_dir" ]; then
- echo "No patches found at $patch_dir"
- return 1
- fi
- pushd "$repo"
- for patch in "$patch_dir"/*; do
- echo "Applying $patch to $repo..."
- git am "$patch" || on_apply_patch_fail_try_original_commit "$patch" "$repo"
- done
- popd
-}
-
-on_apply_patch_fail_try_original_commit() {
- local patch="$1"
- local repo="$2"
- local orig_commit="$(head -n 1 "$patch"|sed 's|From ||;s| .*||')"
- echo "Applying $patch failed, trying with original commit $orig_commit..."
- git am --abort
- git cherry-pick "$orig_commit" || on_apply_patch_fail "$patch" "$repo" "$orig_commit"
-}
-
-on_apply_patch_fail() {
- local patch="$1"
- local repo="$2"
- local orig_commit="$3"
- echo "----------------------------------"
- echo "Applying patch failed, please commit manually!"
- echo "Patch: $patch"
- echo "Repo: $repo"
- echo "Original commit: $(head -n 1 "$patch"|sed 's|From ||;s| .*||')"
- echo "----------------------------------"
- read -p "Press enter after committing resolved conflicts: "
-}
-
-commit_if_dirty() {
- local message="$1"
- # see: https://devops.stackexchange.com/a/5443
- git add -A
- git diff-index --quiet HEAD || git commit -m "$message"
-}
diff --git a/merge_upstream.sh b/merge_upstream.sh
index 7fd9193..cfbea1f 100755
--- a/merge_upstream.sh
+++ b/merge_upstream.sh
@@ -4,55 +4,49 @@ set -e
mydir="$(dirname "$(realpath "$0")")"
-# Update patches?
-if [ "$1" = "-u" ]; then
- keep_patches=0
- shift
-else
- keep_patches=1
-fi
-
pushd "$mydir" > /dev/null
source ./merge_helpers.sh
-# Persist current state
-if [ "$keep_patches" = 0 ]; then
- ./generate_patches.sh
-fi
+# Check branch
+check_branch $branch
+forall_repos check_branch $branch
-# Abandon all local submodule state
-forall_repos git reset --hard
-git submodule update -f --recursive
+# Ensure clean git state
+forall_repos check_clean_git
# Fetch upstream
forall_repos git fetch upstream
-# Check if specific version to merge passed
-if [ -z "$1" ]; then
- get_latest_upstream_tag
-else
- latest_upstream_tag="$1"
-fi
+# Automatic reversions
+automatic_i18n_reversion
+automatic_packagejson_reversion
-sc_branch_name="sc_$latest_upstream_tag"
-
-forelement_repos git checkout "$latest_upstream_tag" -B "$sc_branch_name"
+# Merge upstream
+get_latest_upstream_tag
+forelement_repos git merge "$latest_upstream_tag"
get_current_mxsdk_tags
pushd "matrix-js-sdk" > /dev/null
-git checkout "$current_mxjssdk_tag" -B "$sc_branch_name"
+git merge "$current_mxjssdk_tag"
+popd > /dev/null
+
+pushd "matrix-react-sdk" > /dev/null
+git merge "$current_mxreactsdk_tag"
popd > /dev/null
# Refresh environment
make clean
make setup
-forall_repos commit_if_dirty "Automatic setup commit"
-./apply_patches.sh
+# Automatic adjustments
+automatic_i18n_adjustment
+automatic_packagejson_adjustment
-compound_web_version=`cat element-web/package.json|grep compound-web|sed 's|.*: \"\(.*\)",|\1|;s|\^||'`
-echo "TODO: merge compound web at $compound_web_version"
+# Automatic theme update
+pushd "matrix-react-sdk" > /dev/null
+./theme.sh y
+popd > /dev/null
popd > /dev/null
diff --git a/nix/overlay.nix b/nix/overlay.nix
new file mode 100644
index 0000000..8c763e7
--- /dev/null
+++ b/nix/overlay.nix
@@ -0,0 +1,18 @@
+final: prev: {
+ cleanSchildichatDesktopSource = src: with final.lib; cleanSourceWith {
+ filter = name: type: cleanSourceFilter name type
+ && !(hasInfix "/node_modules/" name)
+ && !(hasInfix "/nix/" name && hasSuffix ".nix" name)
+ ;
+ inherit src;
+ };
+ schildichat-web = final.callPackage ./schildichat-web.nix {
+ };
+ schildichat-desktop = final.callPackage ./schildichat-desktop.nix {
+ inherit (final.darwin.apple_sdk.frameworks) Security AppKit CoreServices;
+ };
+ schildichat-desktop-wayland = final.callPackage ./schildichat-desktop.nix {
+ inherit (final.darwin.apple_sdk.frameworks) Security AppKit CoreServices;
+ useWayland = true;
+ };
+}
diff --git a/nix/schildichat-desktop.nix b/nix/schildichat-desktop.nix
new file mode 100644
index 0000000..ab1daa4
--- /dev/null
+++ b/nix/schildichat-desktop.nix
@@ -0,0 +1,109 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, makeDesktopItem
+, mkYarnPackage
+, electron
+, element-desktop # for native modules
+, schildichat-web
+, callPackage
+, Security
+, AppKit
+, CoreServices
+
+, useWayland ? false
+
+, cleanSchildichatDesktopSource
+, schildichat-desktop-src ? ../.
+}:
+
+let
+ packageJSON = schildichat-desktop-src + "/element-desktop/package.json";
+ yarnLock = schildichat-desktop-src + "/element-desktop/yarn.lock";
+
+ package = builtins.fromJSON (builtins.readFile packageJSON);
+
+ pname = "schildichat-desktop";
+ version = package.version;
+
+ executableName = pname;
+
+ electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
+
+in mkYarnPackage rec {
+ inherit pname version packageJSON;
+
+ src = cleanSchildichatDesktopSource (schildichat-desktop-src + "/element-desktop");
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ inherit (element-desktop) seshat keytar;
+
+ buildPhase = ''
+ runHook preBuild
+
+ export HOME=$(mktemp -d)
+ pushd deps/schildichat-desktop/
+ npx tsc
+ yarn run i18n
+ node ./scripts/copy-res.js
+ popd
+ rm -rf node_modules/matrix-seshat node_modules/keytar
+ ln -s $keytar node_modules/keytar
+ ln -s $seshat node_modules/matrix-seshat
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ # resources
+ mkdir -p "$out/share/element"
+ ln -s '${schildichat-web}' "$out/share/element/webapp"
+ cp -r './deps/schildichat-desktop' "$out/share/element/electron"
+ cp -r './deps/schildichat-desktop/res/img' "$out/share/element"
+ rm "$out/share/element/electron/node_modules"
+ cp -r './node_modules' "$out/share/element/electron"
+ cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json
+ ln -s $out/share/element/electron/lib/i18n/strings/en{-us,}.json
+
+ # icons
+ for icon in $out/share/element/electron/build/icons/*.png; do
+ mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
+ ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png"
+ done
+
+ # desktop item
+ mkdir -p "$out/share"
+ ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+ # executable wrapper
+ makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
+ --add-flags "$out/share/element/electron${lib.optionalString useWayland " --enable-features=UseOzonePlatform --ozone-platform=wayland"}"
+
+ runHook postInstall
+ '';
+
+ # Do not attempt generating a tarball for element-web again.
+ # note: `doDist = false;` does not work.
+ distPhase = ''
+ true
+ '';
+
+ # The desktop item properties should be kept in sync with data from upstream:
+ # https://github.com/vector-im/element-desktop/blob/develop/package.json
+ desktopItem = makeDesktopItem {
+ name = "schildichat-desktop";
+ exec = "${executableName} %u";
+ icon = "schildichat";
+ desktopName = "SchildiChat";
+ genericName = "Matrix Client";
+ categories = "Network;InstantMessaging;Chat;";
+ extraEntries = ''
+ StartupWMClass=schildichat
+ MimeType=x-scheme-handler/element;
+ '';
+ };
+}
diff --git a/nix/schildichat-web.nix b/nix/schildichat-web.nix
new file mode 100644
index 0000000..e10071c
--- /dev/null
+++ b/nix/schildichat-web.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, mkYarnModules
+, nodejs
+, cleanSchildichatDesktopSource
+, schildichat-desktop-src ? ../.
+, ...
+}:
+
+let
+ packageJSON = schildichat-desktop-src + "/element-web/package.json";
+ yarnLock = schildichat-desktop-src + "/element-web/yarn.lock";
+
+ package = builtins.fromJSON (builtins.readFile packageJSON);
+
+ pname = "schildichat-web";
+ version = package.version;
+
+ modules = mkYarnModules {
+ name = "${pname}-modules-${version}";
+ inherit pname version packageJSON yarnLock;
+ };
+
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = cleanSchildichatDesktopSource schildichat-desktop-src;
+
+ buildInputs = [ nodejs ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ configurePhase = ''
+ runHook preConfigure
+
+ cp configs/sc/config.json element-web/
+ cp -r ${modules}/node_modules node_modules
+ chmod u+rwX -R node_modules
+ rm -rf node_modules/matrix-react-sdk
+ ln -s $PWD/matrix-react-sdk node_modules/
+ ln -s $PWD/node_modules matrix-react-sdk/
+ ln -s $PWD/node_modules element-web/
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ pushd matrix-react-sdk
+ node_modules/.bin/reskindex -h ../element-web/src/header
+ popd
+
+ pushd element-web
+ node scripts/copy-res.js
+ node_modules/.bin/reskindex -h ../element-web/src/header
+ node_modules/.bin/webpack --progress --mode production
+ popd
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ cp -r element-web/webapp $out
+
+ runHook postInstall
+ '';
+
+ passthru = {
+ inherit modules;
+ };
+}
diff --git a/overlay/element-desktop/package.json b/overlay/element-desktop/package.json
deleted file mode 100644
index f8d8434..0000000
--- a/overlay/element-desktop/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "schildichat-desktop-alpha",
- "productName": "SchildiChatAlpha",
- "description": "A Matrix Client based on Element with some changes and tweaks",
- "author": "SchildiChat",
- "repository": {
- "url": "https://github.com/SchildiChat/schildichat-desktop"
- },
- "homepage": "https://schildi.chat/"
-}
diff --git a/overlay/element-web/package.json b/overlay/element-web/package.json
deleted file mode 100644
index 35e873a..0000000
--- a/overlay/element-web/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "schildichat-web-alpha",
- "description": "A Matrix Client based on Element with some changes and tweaks",
- "author": "SchildiChat",
- "repository": {
- "url": "https://github.com/SchildiChat/schildichat-desktop"
- }
-}
diff --git a/patches/element-desktop/0002-Add-back-schildi-fetch-package.ts-modifications.patch b/patches/element-desktop/0002-Add-back-schildi-fetch-package.ts-modifications.patch
deleted file mode 100644
index 8bda598..0000000
--- a/patches/element-desktop/0002-Add-back-schildi-fetch-package.ts-modifications.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 1be2423147ba91f51bf2cc0437b3652c5a4e0c00 Mon Sep 17 00:00:00 2001
-From: SpiritCroc
-Date: Sat, 2 Dec 2023 12:57:26 +0100
-Subject: Add back schildi fetch-package.ts modifications
-
----
- scripts/fetch-package.ts | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/scripts/fetch-package.ts b/scripts/fetch-package.ts
-index 7282945..4be7ab0 100644
---- a/scripts/fetch-package.ts
-+++ b/scripts/fetch-package.ts
-@@ -54,6 +54,7 @@ async function main(): Promise {
- let filename: string | undefined;
- let url: string | undefined;
- let setVersion = false;
-+ const sc = true;
-
- while (process.argv.length > 2) {
- switch (process.argv[2]) {
-@@ -82,7 +83,9 @@ async function main(): Promise {
- process.argv.shift();
- }
-
-- if (targetVersion === undefined) {
-+ if (sc) {
-+ // nothing
-+ } else if (targetVersion === undefined) {
- targetVersion = "v" + riotDesktopPackageJson.version;
- } else if (targetVersion !== "develop") {
- setVersion = true; // version was specified
-@@ -92,7 +95,7 @@ async function main(): Promise {
- filename = "develop.tar.gz";
- url = DEVELOP_TGZ_URL;
- verify = false; // develop builds aren't signed
-- } else if (targetVersion.includes("://")) {
-+ } else if (targetVersion?.includes("://")) {
- filename = targetVersion.substring(targetVersion.lastIndexOf("/") + 1);
- url = targetVersion;
- verify = false; // manually verified
-@@ -146,12 +149,15 @@ async function main(): Promise {
- }
-
- let haveDeploy = false;
-- let expectedDeployDir = path.join(deployDir, path.basename(filename).replace(/\.tar\.gz/, ""));
-+ let expectedDeployDir = sc ? "../element-web/webapp" : path.join(deployDir, path.basename(filename).replace(/\.tar\.gz/, ""));
- try {
- await fs.opendir(expectedDeployDir);
- console.log(expectedDeployDir + "already exists");
- haveDeploy = true;
-- } catch {}
-+ } catch (e) {
-+ console.log("Not a valid webapp dir: " + expectedDeployDir, e);
-+ return 1;
-+ }
-
- if (!haveDeploy) {
- const outPath = path.join(pkgDir, filename);
---
-2.47.0
-
diff --git a/patches/element-web/0002-Change-default-login-background.patch b/patches/element-web/0002-Change-default-login-background.patch
deleted file mode 100644
index c8d6033..0000000
--- a/patches/element-web/0002-Change-default-login-background.patch
+++ /dev/null
@@ -1,22134 +0,0 @@
-From f279bd0bb4f21f48341a937510535ca30a4216d1 Mon Sep 17 00:00:00 2001
-From: su-ex
-Date: Sun, 29 Nov 2020 23:30:59 +0100
-Subject: Change default login background
-
----
- res/themes/element/img/backgrounds/lake.jpg | Bin 610431 -> 0 bytes
- res/themes/element/img/backgrounds/ocean.jpg | Bin 0 -> 563501 bytes
- src/components/views/auth/AuthPage.tsx | 2 +-
- .../settings/tabs/user/HelpUserSettingsTab.tsx | 2 +-
- 4 files changed, 2 insertions(+), 2 deletions(-)
- delete mode 100644 res/themes/element/img/backgrounds/lake.jpg
- create mode 100644 res/themes/element/img/backgrounds/ocean.jpg
-
-diff --git a/res/themes/element/img/backgrounds/lake.jpg b/res/themes/element/img/backgrounds/lake.jpg
-deleted file mode 100644
-index eb3d19a7cc9d6134a04ad6c4fc796355242ee435..0000000000000000000000000000000000000000
-GIT binary patch
-literal 0
-HcmV?d00001
-
-literal 610431
-zcma(22UwFy*8mI$2nYyn5_-`MA%v39LdUWY5+or+5|YrBlF(}?3YG-~Hq?a>kS;Bh
-zP=wGCSwTPuy@?>|S`fvyE9#bK_u21upYp!{f4$dteKS{J?mKhN%$zxM>g2Ece?0*i
-z5iW#>fIvi|5l9vU0!e_%GbBOMKuZ(&d?{EnbE_}^|9S(0;*)|SQ-D5T;Q1Kv>IoPh
-zmY5i4Z)zHoU=qlR4Pu)F$3~l82#hl|H!(8>o%rTLTwrh{I}skl4h@eviFkkW2LwEv
-zbrRue@P&eMY9tF;TNK#ViN2xoJ9PM
-z+#YCud2Nb-|J@}q@+89X%cyWKH+Q&GEQbxZHZd~}HZ#M*ZR||Utt~CB%`kAR8P?3y
-z%*xapYiw?9Z)Rz4ZUg^!K>(w1SRwW_yz{@u0-jDH{=KO4=g*s*w=jw2gqoV$+1Z(z
-zVNJ1EW1xp|LP|_x;05ED1l|8&z_SyAIpJ}M;juCBFBk)ZVv`b2B7m9xYYEYDZf^fY
-z{C`p_I{M4H{_dTSNMrxcH2%-t3G|dWwkeIB5SzpaW&_=I{{zel{_i+(Nt~#^r_TyD
-zWk<22*)fR;z|NTecOZby|Ly#L4)X;mFmwAeoN!a`u-Lf2Spx1B7#tq+<;9mh{MRz^Y)*JGo8`=jjfVfd3HIUt#{_~c+2(=f!M4Wi
-zz`zh=OPgS}agZ(6+Su00#v%x75fTz?V~zMXJnMfE>_3bD{{(LeOo|n3570dKK*y?^aa!7gn*43XBN_2xH7*hXf`?B_d9JIjtv5zc64_IMDU)*1w=k|2HzA9sDo)
-z{2QMKJO00zPm$OONeOUTEI@Zo?EgQufA#!=?SC-*JW@;2t--yYqc-s>tkw~Kv6q(Ojl1|PxqLqsfC59
-zsl)$ok$`^n6;uhT0)we2LxHNPtg5Q4iPF^6*3?9q=^g`$t{K`yUtiw@ZDnOrC9zy3%_N`a+i4goL!F8}k*
-zzrKKgB&0!-l9Cc&NdOXfkN`me2pt$i+FS|lh)|X>b8uG)!0IA#suq@UPEe4fgp?#$
-z3VcWgEG;D|p(r5<1?fnc!yKuB;CO^mdT~7#(lfq-qv^tbdJ?28ZT2(A!Xbm_gmiBZ
-zO?U*W1gu&)eCN*TI;ZG#km=}JPSpumcLk(5E1OF4iP9BxCFL3;3xZlOhNR`uxR
-zj*E9uTD_lli3YD_*(eZC!^8B;*-ELcc-X;d0ex|!lV
-z*DkUq=<#kiCvKE1ez>Jm{8}NqPW-V^cTAP(?O%*6;v)wPczyT?YL7ggz6z_b>};5g
-zg70=Wx$c%Z&xZEeFE_>{HgT)LOyWko=%%hAcF6m%VS!lOqT|RL7ZWuG+RSpJ5tU6%
-zP#VH0qP-w@W?-fb0qOVlw%wAM1CLujSv=w^Yc;^IW7Aie9T1y_M
-zP8AMg1agxtS{BU{vLrop#{0EDUkt!9EGZ{ec>$$u6hPh
-z3ItZH3vV#5w0OFI+WTPRmxNDyQ}$bf`9T-&gkyNc62LA1Q0h8$GVm|7Hggl{@ybd$
-zMyL)4IWCV(a^X&D%HdTMAgXe8GAIdv1j`hK0V`haJ(~An7@J$eTmH0ZZ1iKp)L~OJ
-ze?DRYGfOIVq?1zo&3IQ_%5;>
-zUf-zNO~xP%SEqswq^?|1D#&2Rfx`=>n9
-zd~62nTpjR9lLvvv6+xh75~Dbw&fh4<)pl6rG?}E*Ba*^6NCsr5g@GK+-6x$Kq(Ry6
-zAepCx-bEAcW^!URHF|hwr1oM$n`gX<=7`FB^##)WyLILit5Y!7On0>(-ZX5>xov|9
-z4y1dGQZ5bP=0B8LpNq9WjlUa`l$y!)Y%6aZ8=3B7B*;8ri6>TJ-cuyBXa52lSn)x4
-zV{~#zO&(1t0yB7GcSYsIzFs;#M&aFaM>hz@sQe*v>8P2|6;~QzaNe?6ZMuzl+Phg(
-zFT^uJ$E?)5mY7P3F!9he99Yj1l3go>_
-z(XZmPh%2!k4??VvgfK@pZu6qF#hB@Q_@Y8GYSWYR!@
-zB`m8Bv;eAuK(a;Ujg|~%`PSsz%dpo=xi|AXG7`H#?tx4kKp-+?T%id#C6;m->L3t;
-zmae*0o4}m7YYZK;rtL&2v7F_IP>mpUJ)}+sO*S7m9$_Gv3=hFvibt87Rkbjl-A9U~
-zR)jpJbvF&D60kGV5$(}ldp-rUS-Z~fwHDS7$hVeVQw7(IW?2H=6IN(*-^dz7&TA>
-zQ9gga{V>`CufyrJOSCdV@r>B+XL&Gbj<(&VT?njF3!zkuCYDb8y5*P{QQ;kPJxE$^%Jj2s^r6Hd5_uZ%Lm7j)&jLVVYG(JvUqS
-zZ{7zPfB#a1eML2hz=
-z*5x^(BX^Bs0#yNG#2mpS77t9`i|AV^1J%H!GsAfRq$Obgp
-z<`S1z6sOu{^dTi_-u8ONnTT^3QGq;vV05=~H<$Lh%(JSl&bJX%=~5vlS%Nl}53W~M
-z%R2Ir=_L-ni0uq4TGKM*6qwt}WWX?;zA&)(YK2@gDQP&WMyYIu!g-!8e$%$YRZ?*&
-zi{NltXLPKkwCikT`06<=Xb^WIa`EI?6U8W3)DE1<;+FV==M>>7<^j2C6Sw}Ow6J$&9
-z^b9zHRshdIV3AK%RfejAge+*FFA@dI|53>sg$s}Zkt@`U^6S}g!`{;NhWJ!5pL(&G
-zvw)ScqLq{#A!n2my28Yf}9}dw=daW1xZ*cNHoitkz9zG
-z^kNkx9OPh`1C@iy70V4_SzfngGKgkiTT$!Xm9D*lBV$*FUYxFX{_Ta8{Y+Q^za%S7
-z76ovzP+?TV9h|}~Oe0VoViAA4~kLp~+>md-+bp|E5NO-uJI&xW$Q39v`
-zNCI)42@Vx1VosS!pri{?NFo%`z)kWq;9XygJAMYt)j*5pGSHQ!VRqooa19vG6`&e$WXyQqi=_)Ji{Yxj+ey62Vcb?
-zrqcl38%BS+qCQXlX+x1bFk^Uw)Qh^3aWAF+W8>&S0V7sLp$C)(D%Z*QSLg(?1#?tE
-z>hRMbw?X`U&V7Ve!Iq>;ZaKaPwbM3?@e@EwIJ_Ky2hqWNp4`x!6-<@~c7bfy7wv+{
-zLaV5VtTLP)4+iYdkFItEv9qJ>)?vh|2q$MNW@730biE>Z^glP-Gn*%qK3&joDHU6yr5S}LPvc(OcMU}duT$2)A3
-zK!EO(RZr(ifMmfrNCl8vQ9(MDB|9C)RVHDoG8-rgC3%`*+Bk|rfEyO9m3HRopx!Y4mUduM24CNkl`<$4wGCZXI;sOx9hq^yyvBcrII*9
-zqzExPWEWLq;_I?V_Y!a$ygbd4Nj|PCu9A4kJ&&@xetGiiUIbP9rU9d3j-Y8>g@TYJ
-z-fvoOaFBw4GY`CUrZQ*@4aBT1Z(d;;1Zz&$l+Uf~u@-OC6ImDvRyiien?*1%pLKCN
-zaqozic(Bdp5T+Uz#}CBPczWn!Lwb~Zj*d%!Ih_r4ri#q@Q7#}#(W)eqglJLC1cCGn
-z@kFrpM9+xKk@#w2J?lFtQfOXHgYqNHD_F`Ct&g<~lf`1!+3@o&_1ngz=blAnN;2tnAQ`;YRb(-l>;%3YhNI!>JcjekenP^h-o(9}aGUDa
-zG>b~fta{}#G~Bik6k|+4;fQKW#}_*pO?{n8X>{Enksw0UAM`~(f`cO2!#PPB0^_cJ
-zHKVMR6QXNGMupI3A;EJ5g?+i@ZF~Pa9nz4h15YP68{CkCqsra$4!T-~_X64B%O;L^
-z*OS(mM+|y44Z71Ynb{dtdQws82Kfm-4|~uB4W3686K-zdW8^m`=}+4>k$~XrL29vx
-zcn5TF8I88UZ!`$c1({1hpz+FnQPhaZj3T0Pl#z6gj)nt7D!{ObEUl+gFIx!_Ys%ST
-zIbF2*yzFwEno3PrZm4O2;{sG&(Yy}CMHNYw+fh-D^Kde^EsG`QE{}6rgjrd6C$I}Z
-z-Y@k5w@oBkXL=otyEGyNl1S4-5-gF+axf~$K}Qk-=w5}YtEeAm;W}DD%noj)oNXqz
-zhpXu@3Cb->AIhA(EvrN?!Kvq18q6}{`vCF@=fJay?vE0Tjpp0wCJEO7!?zuc;(>D=
-zWW$_X}c}CCy_F*RrW0&dvO}4Zcu)Mrf5uCDyRWv3`M`VI;Bf~q`q+g*i6D4@Iz~@cd
-zW5e*$GD5OT<<$TpWIGrp34i*O3F#phOPi4<9lf|^F7>`{=C*nou67f&g(>l*qAbs0
-zhWpfr8sCkR5Kp0G+0NJ;KQ<)3=y{V3n4DHp<7g$#bnf$deOMV^l2@nQNG{3Cfv~u<
-zcqD{QgvS@5(j=rDGz+BS&
-zkoQ~c{bOhP64SKJe{KEzk1LTM6)l_VQJLigA{5};21!7A2ge6P0C|nLs{xjq>f
-zf?!%{YAGVMqrQQ&q*NugTc(
-zFeA`PRRM^e1A3c68~4>hXFaJ+wy>)+Fje^MizrPomVQFz7!^FhzhS9xJAEK1C=Fbx
-z(oG9505*Yz(_F7YN|%V>Eyw#5h?WYG+N72i+_@|qxO
-z0bu!N
-z=+~qv@k+VctT#eUDE@g{x`Z;h)0@*|V#Mwm#Oz2$$nxn?kPeDDU*(HCJ~<*
-zss(R`MvH;-nTJqB;>$=zO%1v(nn#b&T16=;TLQ#C;~vjqlDx50`6Rac#lNP(PO
-z?K~|br3{wo1(L4>dvbk
-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
-z-U@n={d&JC)k
-zsTrW)CWb!;WFg&>n5zNA(D``SRZN_mL48w4kU>^{(~wcWx1vwkFiE$I>R4FLr53xR
-zRN9L@x?SuJtC)548S42sBl-LmOmI{X24A!ursXiHD6gSHqvH8AatEr;g9wB5EDjLy
-z#-$c|{@eze>G`);O9O4|5<1$1E4FP#DBd8drzBjGe3idH802EufZ+|CSf9nvS5Z2X
-z5|)|$)ZU!U3hCZf($1Xp_K37Iz9{|wYTqe
-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
-zXzQJwrV@M5MrO9QOkh|jr`
-zxdN>h%l0@R9gwf(NCQw6gL#*NVj8!a#7V;<>~O1235<=)=dB8@&6t+3W^ix-ldN1q
-zZK4<;Gdyj^`)9B#rpk2sb+bl8KhG$
-zmFG;Ls%c4(Chhzti@1RQi6>g7BO1&cKwRCRR_6&HferyduR6s(bLRRIV{x#x&qMu_
-zms#S8KXuO5o;_$he=Mn`Z7=oL!H;%>oO?OJ9bI;tQSYa;B+s}nr_m7W$DzBe}A@%*HQDPg42=vx^^_~{qC&`u`AiG_l^p0v^)3C
-zx3rulF8PG*@Lvt+Gla@@LOdT;YKLQUc!yu=dNzH?9odNuyxS3JQhOekJ?dBbar>5b
-zf$gSqYlr;E$LillF8wKfbw4~Se8v0L`BLJ$O|AZWj$VwA3JtwBf=qL;&yVgtLiyX=
-zg=K1xJPbXTR`5HW!*-K{RO2yx3ymd+~VaXF^dy&Eu
-zb)I2=t#+EYZxMGk>G8&kUHu4kooj8^D)y7_65}~@uZ~D3r+SC3Y$}2qk43l{RCbe<
-zD7$UP;S{7yIip-sd%
-zS`ksOb|-OglM%Lid=4%A<8`I}rqaWumkB)sDb1a{`O2<4gVtZk)R0FocS9rIsd*H>
-zNqJ|!^+V~Pr-|EdxM8O2nUl=7DNi!>S(XJBW5eD1n;k#DeseHFUNc%BqR2Jj@f)#i+2da1NESQB^%Sa@l>
-zw_j`yqm&+=eNm6sNZ|52GCO#y@0)dEG%3}#e@JZwf8d-9S<;}7eLkgm^W?Lix4%DQ
-z0v5d2_O1z?Prv6^^Er&iYn=t7#5=E%3SBl$0w1nRkl*};%@n|u_6}#%+Cv=^NwZB3
-z_dGoe`W@sufS(T#kHsD@I4md|_4|i?$+IpUP5Xi8E6HAOUOoS=U9Rf94dZvlN&XYX
-zvD5{7yWTB?9>fYUrcE4v6>grVGdP?yS!`H~*vU`tjt8
-zo#y8-+m!hOqZgmw^v*9OAG=@GoRowe!w!3T)G+Z+Y^T!jq3ZPT6-wS&H{Qz|Cw@-#
-zdPaM{@||S1!g%%fSVYt#3s(ZykOS5@A1=>vB+>;nxaTAV^a&?
-zc3-9aDf2lXy@MkR&y$1+K>9S#C0YuU8IpMnn?~
-z;~G6L7PjbbBQ$D;wqM5$|C#cq%qgvyp4Ar-*N#=ZAJcxv#@iel{*Lxo_glZ;qtD_d
-zKSiAQXT_`9i#1hmzS8x-sF7kU_v-8NiLtec-RSQLcl8%vtoS8FF*i)YKU=Wp*A(r;
-z8{I~4s4fadMveV_u?IK$8Qjm&IHwF#a`liXF9b;(N@<9oid@5%Y(=
-zh?wTF8zy0#^jmF|Q+p5K`Bzr=T{DKT72@=lyVkHBQ*;BD
-zFx)wafi2|?q*h(}w#k0*r-XyerteHf&sP67M?2n8t9-CC;#c(eREecR$IvZns`}oV
-z-@uugy|8z4H8bqFs^0oN`?i*XWXiQrSLqAUdym~1BUP_Ga-Y^vRNJ~mkC@M#nmbIp
-zRNf9hP4OjsfIoEa*}oCb-XA$A`gDl6yL)f%^EIUh;tx?b*&&&|3x*Gxx3zC9lnsX+
-z%#V&W`%@AFQkmYe?8bA)W38WlmAma{Alzut{AYGdN$K{bBU_&;IA!50)BgHrYQSuB
-z&&AhMFOv>7OZFen?z|0T1U9sl=5}SD>LCr&>kava_pdqGxT+n?U+#LZ`F7{M(d&Sg$JzXC
-z%MHr!CSs~~Pn=?faXuxbLimTz&rwNtZE!d6eXN&z>r>kkpGjSRMy*_@V?+e=oN
-zw%Yf`?Dx@0!o~!0nU~7+j1nK61N`!97~)8(jqaU0o1Yl}_)HG@cS60&MsHcdW_`1U
-zo$=D#@zCG}Qh1H(1KFrDuf0T1x#j2YT>Fpy;b(l*{u(*(sj?+vAtIkAO$K+?7TR)a
-z@DT!rn+x($dm;VfE{0v4m?QcD_BIdWinMuh!hEYc7PJVa6WUKifI_
-z$4JV}y%5f5@1kq_;)>RB&R{Icd#vWCH%~hMxH>ox?N@vKciJ!Qm{tjZkd&aXFY
-zXg97CC7nB}?fqsd@@&NV!DyfBiJ-#sXR022)ieDnWNLq@%GR0wzNz5SpQ?BDZya%M
-zX>Qj)o&ABe|8z%BEBstGbX^d!FjXSB=KgTvvF9ec+|e_+g59j*WVpKJ*+4E&?ce8|
-z&HvLP5nbUsmRrLg5?SQb&aR!IxS7LterE6=_y0W7;f1ab%J*LBt!S+65Lvnov`6Nd
-z`vXA_-LWL^lAgtbkDD1c1(Du0MO$lD#HpCVaHr;^NFq}9&sy;{pB4Tj_fcSfYPFElWpuV+V|-IZU+#5Cw_
-zjBgnTT~#9Tlrqiql_7A__Tcj<;U$}6p1#)yZ8|UVL^;09e_r0`{f=^~`uCf^`Si3+
-zk4xrJAN9m@X(K9yDLz)4(UP?lHcJ%U
-z;u~2FI|*fPeq9LJIR17a$-~$6H?@Wnz4y
-zMv6GCeh+kRbCnA>>8c;Wl6Pge>XPpZ_|o5wwS!%1EGrjquF
-zlfmcOiW`@gdR1k-JXw2lWh0hLRY$eAehKG!uGF*Dcx!GcT{RY@NMTarIeXgu-%reU
-zWOsaKP^v7M9?7uH`4w1W!os9oglCe;){>i7z^3e0_nj8&p^rvJ3-#fIPr5zFLQkuq
-zt~``h3tg;=V!Ztq
-z4|e5}s-ou_YZeZL2;x`hl%3VQ^-$w~{N{hkXX+d-cebRlq@(6jEPpTbhR2yRrB|pA
-z7aE%{t}Gqht7mGsHe8@?E@Zf-X5DiZ@71_u3JQ2@s;b(bvQzZp*1rsntUZ|%Wr1$=
-z6EzfAzk5CypK-M|GDZB-siKzD2M8=R-<2t$hhL}lmZZ7ey|6up_n4PXSLiQGFMXVG
-z)^n?P;vXzxJiyn95~B-Md{U+H&iLSMzD+FfHmJYn(U+vgh}YK)W4
-z?b6k0uA%Kfig!ee!194#Ih@GUZ-YL9pKKetF{F!Gq1H-|nxR
-zNL6|Ci;g{2IDh%ddDWv^1I@E{Xzw1&{FAxhlj7BG!|W>2Q_6n2;$GQzkpC#Nx5MA-
-z^P*kq{PAS=cjt~{%A9Ay77Kp;(#
-z#7K-5a_;?LQG(T3dWY|#KXJ`#^WD{}mtQ{N+*jt%)4msdGv{u@
-znRDpqLD<)b{I&a{?8LQoGi!{;zsmK`XS6#%Hf+B8gg7X8^hCSI$CMNhzOnv1WpQ_~
-zC;P#-rP~O{I!J!q>{4pOzqTgcl6epl1IXF{s~
-zrsfhPBTEUSNYqVYRB@&AUbyOkTgP~rWk3Bh88hCo9kvtmreU|$z7bth>PCjF`+^rR
-zVInUD!vmgs7xUSR;Fme~dB^=yVb&_R(p(}~l8>lpY6!t6vWH@F>O(8PX*bixFp`>*
-z+RiMQWO->)W1#M-;pO{ttkraI-gpmuvS`U(JdcJ9an^d7hXJwx%>-a
-z{Zb@%u?gdoo6Z=TAHkYlT68isqo~J@IH}ary}Q+Sll-W7D{Wo-w@0A*t9Uh^r&sII
-z5wEI$gk2xmo>-Zf7qU+5R@O0#DdR|)p9xXxJyX=>JN-Nm60eR~-ZNP_{gB!CjkX)G
-z_f>~PQr8KPoloC)!G1gLui>GDj75B3a_AF!R5!I&W1)11?%Ls5D%ZZUbWzk{zsy_c
-z@=_n+)tSrppE(+%_E6Hn=3&^oEO(KP`i39q_vsS;@;a+?WXYaeeq=lMn^$}Ex@(@!
-z^y%$Rr+x1~%H$1sNC{}Va-uq|Y@M*bHA&qPm8I}3QnieV)m}Luj;{|dO`j7E+}`Pg
-zZ*;l~TCn#L4tqp?3x=l)soo@;_PIGP|5W{~Vi@JQLDBh&DYkc~hg*pJkZ)Cq?owVF
-zosE*;4cf1>2lN?{e?>EMlu8=Q^dYnd
-zI^HL?*s?nr-xL#y4g#$)g^KUWh%c3miDkihoY?>FuXi!0O-r2II4+@?ndc4KH8$Sr
-zHlJcjf4~gC=xJoh8b4kfkRor?^R71XWpzeuZum%}O>??*MA5r`bZG?95DE-GnW`l*
-zc5&sTqh!QK45Sh(*t+Xd)!Wlw`*e4*F3K83P)=Hg=Sp8;&LtGwHEq7ThVGJW52t)l
-zi%ZYRrRPiEkI6B#iq~^fhsD9pC%qoF7<%2}?8ionvMBdUkC