Compare commits

..

No commits in common. "v1.7.16" and "v1.7.14" have entirely different histories.

14 changed files with 36 additions and 226 deletions

View file

@ -9,19 +9,18 @@ all: release
YARN ?= yarnpkg
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|')
DESKTOP_APP_NAME := $(shell grep '"name"' element-desktop/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|')
APP_NAME := $(shell grep '"name"' element-desktop/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|')
PRODUCT_NAME := $(shell grep '"productName"' element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|')
WEB_OUT := element-web/dist
WEB_OUT_DIST_VERSION := $(VERSION)
OUT_WEB := $(WEB_OUT)/$(WEB_APP_NAME)-$(WEB_OUT_DIST_VERSION).tar.gz
WEB_OUT_DIST_VERSION := web
OUT_WEB := $(WEB_OUT)/riot-$(WEB_OUT_DIST_VERSION).tar.gz
OUT_WEB_BETTER_NAME := schildichat-web-$(VERSION).tar.gz
DESKTOP_OUT := element-desktop/dist
OUT_DEB64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)_$(VERSION)_amd64.deb
OUT_PAC64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)-$(VERSION).pacman
OUT_APPIMAGE64 := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION).AppImage
OUT_TARXZ64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)-$(VERSION).tar.xz
OUT_DEB64 := $(DESKTOP_OUT)/$(APP_NAME)_$(VERSION)_amd64.deb
OUT_PAC64 := $(DESKTOP_OUT)/$(APP_NAME)-$(VERSION).pacman
OUT_TARXZ64 := $(DESKTOP_OUT)/$(APP_NAME)-$(VERSION).tar.xz
OUT_WIN64 := $(DESKTOP_OUT)/$(PRODUCT_NAME)\ Setup\ $(VERSION).exe
OUT_WIN64_PORTABLE := $(DESKTOP_OUT)/$(PRODUCT_NAME)\ $(VERSION).exe
OUT_WIN64_BETTER_NAME := $(PRODUCT_NAME)_Setup_v$(VERSION).exe
@ -58,9 +57,6 @@ debian: desktop-common
pacman: desktop-common
$(YARN) --cwd element-desktop run build64pacman
appimage: desktop-common
$(YARN) --cwd element-desktop run build64appimage
windows: desktop-common
$(YARN) --cwd element-desktop run build64windows
@ -69,7 +65,7 @@ windows-portable: desktop-common
web-release: web
mkdir -p $(CURRENT_RELEASE_DIR)
cp $(OUT_WEB) $(CURRENT_RELEASE_DIR)
cp $(OUT_WEB) $(CURRENT_RELEASE_DIR)/$(OUT_WEB_BETTER_NAME)
debian-release: debian
mkdir -p $(CURRENT_RELEASE_DIR)
@ -79,10 +75,6 @@ pacman-release: pacman
mkdir -p $(CURRENT_RELEASE_DIR)
cp $(OUT_PAC64) $(CURRENT_RELEASE_DIR)
appimage-release: appimage
mkdir -p $(CURRENT_RELEASE_DIR)
cp $(OUT_APPIMAGE64) $(CURRENT_RELEASE_DIR)
windows-setup-release: windows
mkdir -p $(CURRENT_RELEASE_DIR)
cp $(OUT_WIN64) $(CURRENT_RELEASE_DIR)/$(OUT_WIN64_BETTER_NAME)

View file

@ -1,31 +1,37 @@
# SchildiChat Web/Desktop
# SchildiChat-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).
SchildiChat-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-Desktop compared to Element are:
The most important changes of SchildiChat Web/Desktop compared to Element Web/Desktop are:
- A unifed chat list for both direct and group chats
- Message bubbles
- Bigger items in the room list
- … and more!
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/)
While SchildiChat-Desktop should be already usable as is, it's still better seen as a
proof-of-concept rather than a finished product, as there are still a few UX bugs
remaining, and no ways to configure Schildi's features.
Furthermore, I don't know how much more work I'm going to put into this, but
if anybody wants to help improving it, contributions are welcome!
Downloads for Desktop: https://github.com/SchildiChat/schildichat-desktop/releases <br/>
Hosted web variant: https://schildiweb.spiritcroc.de/
Feel free to [join the discussion on matrix](https://matrix.to/#/#schildichat-web:matrix.org).
<img src="https://raw.githubusercontent.com/SchildiChat/schildichat-desktop/sc/screenshots/1.png"/>
## Building SchildiChat Web/Desktop
# Building SchildiChat-Desktop
This particular repo is a wrapper project for element-desktop, element-web, matrix-react-sdk and matrix-js-sdk in order to build SchildiChat Web **and** Desktop.
This particular repo is a wrapper project for element-desktop, element-web, matrix-react-sdk and matrix-js-sdk, in order to build SchildiChat-Desktop.
### Debian build dependencies
## Debian compilation dependencies
Since Debian is usually slow to update packages on its stable releases,
some dependencies might not be recent enough to build SchildiChat.
The following are the dependencies required to build SchildiChat Web/Desktop on Debian 10:
Since Debian is usually slow to update packages on its stable releases, some dependencies
might not be recent enough to building Schildi.
Here are the dependencies which I had to install for compilation on Debian 10:
```
# apt install vim curl git make gcc g++ libsqlcipher-dev pkg-config libsecret-1-dev bsdtar
@ -43,7 +49,7 @@ $ echo 'export PATH="$PATH:$HOME/.cargo/bin"' >> .bashrc
$ source .bashrc
```
### Initial setup
## Initial setup
```
git clone --recurse-submodules https://github.com/SchildiChat/schildichat-desktop.git
@ -51,35 +57,10 @@ cd schildichat-desktop
make setup # optional step if using the other make targets
```
### Create release builds
## Build
Those are the builds distributed via GitHub releases.
`make [{web|debian|pacman|windows}-release]`
```
# The single make targets are explained below
make [{web|debian|windows-setup|windows-portable}-release]
```
## Install
After that these packages which belong to to their respective make target should appear in release/\<version\>/:
- `web`: _schildichat-web-\<version\>.tar.gz_: archive that can be unpacked and served by a **web** server (copy `config.sample.json` to `config.json` and adjust the [configuration](https://github.com/SchildiChat/element-web/blob/sc/docs/config.md) to your likings)
- `debian`: file ready for installation on a **Debian Linux** (based) system via `dpkg -i schildichat-desktop_<version>_amd64.deb`
- `windows-setup`: _SchildiChat_Setup_v\<version\>.exe_: file ready for **installation** on a **Windows** system
- `windows-portable`: _SchildiChat_win-portable_v\<version\>.zip_: **portable** version for a **Windows** system take SchildiChat together with your login data around with you (the archive contains a readme with **instructions** and **notes**)
#### Additional make targets not used for GitHub releases
- `pacman`: file ready for installation on an **Arch Linux** (based) system via `pacman -U schildichat-desktop-<version>.pacman`
- `windows-unpacked`: _SchildiChat_win-unpacked_v\<version\>.zip_: **unpacked** archive for a **Windows** system
### Build SchildiChat Web and deploy it directly to your web server
Put the `config.json` with the [configuration](https://github.com/SchildiChat/element-web/blob/sc/docs/config.md) you want for your hosted instance in a subfolder of the `configs` folder.
Then create a file named `release.mk` and and fill it similar to that:
```
.PHONY: your-deploy-web
YOUR_CFGDIR := configs/your_subfolder
your-deploy-%: CFGDIR := $(YOUR_CFGDIR)
your-deploy-web: web
rsync --info=progress2 -rup --del element-web/webapp/ you@yourwebserver:/the/folder/served/for/schildi/
```
Installable packages should appear in release/.

1
deploy/.gitignore vendored
View file

@ -1 +0,0 @@
repos/*

View file

@ -1,33 +0,0 @@
#!/bin/bash
set -e
set -x
DEPLOY_ROOT="$(dirname "$(realpath "$0")")"
version="$1"
debpath="$2"
repopath="$DEPLOY_ROOT/repos/aur-bin"
repourl="ssh://aur@aur.archlinux.org/schildichat-desktop-bin.git"
sha256sum=($(sha256sum $debpath))
[ -d "$repopath" ] || git clone $repourl $repopath
pushd "$repopath" > /dev/null
git fetch
git reset --hard origin/master
sed -i "s|^pkgver=.*$|pkgver=$version|" PKGBUILD
sed -i "s|^sha256sums=('.*'$|sha256sums=('$sha256sum'|" PKGBUILD
makepkg --printsrcinfo > .SRCINFO
git add .SRCINFO PKGBUILD
git commit -m "Bump version to v$version"
#git push
popd > /dev/null

View file

@ -1,44 +0,0 @@
#!/bin/bash
set -e
set -x
DEPLOY_ROOT="$(dirname "$(realpath "$0")")"
version="$1"
debpath="$2"
repopath="$DEPLOY_ROOT/repos/flathub"
repourl="git@github.com:flathub/chat.schildi.desktop.git"
downloadurl="https://github.com/SchildiChat/schildichat-desktop/releases/download/v${version}/schildichat-desktop_${version}_amd64.deb"
sha256sum=($(sha256sum $debpath))
debsize=($(wc -c $debpath))
debdate=$(date +%Y-%m-%d -r $debpath)
[ -d "$repopath" ] || git clone $repourl $repopath
pushd "$repopath" > /dev/null
git fetch
git reset --hard origin/master
jsonFile="chat.schildi.desktop.json"
jsonString=$(jq -r "." $jsonFile)
xmlFile="chat.schildi.desktop.appdata.xml"
jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].url = \"${downloadurl}\") // .)")
jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].sha256 = \"${sha256sum}\") // .)")
jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].size = ${debsize}) // .)")
echo $jsonString | jq --indent 4 "." > $jsonFile
sed -i "s|^\s\s<releases>$| <releases>\n <release version=\"$version\" date=\"$debdate\"/>'|" $xmlFile
git add $jsonFile $xmlFile
git commit -m "Bump version to v$version"
#git push
popd > /dev/null

View file

@ -1,64 +0,0 @@
#!/usr/bin/env bash
#
# Author: Stefan Buck
# License: MIT
# https://gist.github.com/stefanbuck/ce788fee19ab6eb0b4447a85fc99f447
#
#
# This script accepts the following parameters:
#
# * owner
# * repo
# * tag
# * filename
# * github_api_token
#
# Script to upload a release asset using the GitHub API v3.
#
# Example:
#
# upload-github-release-asset.sh github_api_token=TOKEN owner=stefanbuck repo=playground tag=v0.1.0 filename=./build.zip
#
# Check dependencies.
set -e
xargs=$(which gxargs || which xargs)
# Validate settings.
[ "$TRACE" ] && set -x
CONFIG=$@
for line in $CONFIG; do
eval "$line"
done
# Define variables.
GH_API="https://api.github.com"
GH_REPO="$GH_API/repos/$owner/$repo"
GH_TAGS="$GH_REPO/releases/tags/$tag"
AUTH="Authorization: token $github_api_token"
WGET_ARGS="--content-disposition --auth-no-challenge --no-cookie"
CURL_ARGS="-LJO#"
if [[ "$tag" == 'LATEST' ]]; then
GH_TAGS="$GH_REPO/releases/latest"
fi
# Validate token.
curl -o /dev/null -sH "$AUTH" $GH_REPO || { echo "Error: Invalid repo, token or network issue!"; exit 1; }
# Read asset tags.
response=$(curl -sH "$AUTH" $GH_TAGS)
# Get ID of the asset based on given filename.
eval $(echo "$response" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=')
[ "$id" ] || { echo "Error: Failed to get release id for tag: $tag"; echo "$response" | awk 'length($0)<100' >&2; exit 1; }
# Upload asset
echo "Uploading asset... "
# Construct url
GH_ASSET="https://uploads.github.com/repos/$owner/$repo/releases/$id/assets?name=$(basename $filename)"
curl "$GITHUB_OAUTH_BASIC" --data-binary @"$filename" -H "Authorization: token $github_api_token" -H "Content-Type: application/octet-stream" $GH_ASSET

View file

@ -1,14 +0,0 @@
#!/bin/bash
set -e
set -x
DEPLOY_ROOT="$(dirname "$(realpath "$0")")"
version="$1"
releasepath="$2"
find "$releasepath" -type f | while read p; do
echo "Uploading $p ..."
$DEPLOY_ROOT/upload-github-release-asset.sh github_api_token=$GITHUB_TOKEN owner=SchildiChat repo=schildichat-desktop tag=v$version filename=$p
done

@ -1 +1 @@
Subproject commit eed928aa5b87e15a3a233ffb3ec2130526617fc5
Subproject commit 937f8a8c8682d47dc834619be4dd29956dca447a

@ -1 +1 @@
Subproject commit f647f3e4280b567d92cd7743849966a48e711e78
Subproject commit 9eeb0af50abbb52345103f429b2e16c96a5ffb18

@ -1 +1 @@
Subproject commit cc018cd44bbd97e3a8f508fe21f33e0461d45127
Subproject commit 79a5b44eb508074511c661eb3d92b3d6a26b0f33

@ -1 +1 @@
Subproject commit 894e7d02d82a1d325dfc6bf3c49b186434c0199c
Subproject commit 2a308ab739bfe4b7b272db403bb500fd93db84ea

View file

@ -15,13 +15,6 @@ forall_repos check_branch $branch
forall_repos git fetch upstream
forall_repos git merge upstream/master
# Automatic theme update
pushd "matrix-react-sdk" > /dev/null
./theme.sh
popd > /dev/null
# Refresh environment
make clean
make setup
./setup.sh
popd > /dev/null

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB