diff --git a/.containerignore b/.containerignore new file mode 100644 index 0000000..ae02570 --- /dev/null +++ b/.containerignore @@ -0,0 +1 @@ +release/ \ No newline at end of file diff --git a/Containerfile.debian b/Containerfile.debian new file mode 100644 index 0000000..041c64e --- /dev/null +++ b/Containerfile.debian @@ -0,0 +1,30 @@ +ARG NODE_VERSION +FROM node:${NODE_VERSION} + +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 \ + python \ + tcl \ + vim + +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 + +COPY . /project +WORKDIR /project + +# There might be remnants of the host which break the build +RUN make fixup \ No newline at end of file diff --git a/Containerfile.fedora b/Containerfile.fedora new file mode 100644 index 0000000..279d43f --- /dev/null +++ b/Containerfile.fedora @@ -0,0 +1,20 @@ +FROM fedora:latest + +RUN dnf install -y openssl openssl-devel rust cargo libsecret libsecret-devel g++ ruby-devel gcc make rpm-build libffi-devel tcl libxcrypt-compat + +# 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 --ignore-dependencies --no-user-install --no-document fpm + +COPY . /project +WORKDIR /project + +# There might be remnants of the host which break the build +RUN make fixup \ No newline at end of file diff --git a/Makefile b/Makefile index 95fd274..c517e5b 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,17 @@ .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: clean +.PHONY: container-build-debian container-build-fedora +.PHONY: container-web-release container-debian-release container-rpm-release container-appimage-release +.PHONY: clean undo_setup fixup CFGDIR ?= configs/sc all: web YARN ?= yarnpkg +CONTAINER_ENGINE ?= podman +NODE_VERSION ?= 16 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|') @@ -32,6 +36,9 @@ 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 + RELEASE_DIR := release CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION) @@ -153,6 +160,24 @@ macos-mas-release: macos-mas mkdir -p $(CURRENT_RELEASE_DIR) cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR) +container-build-debian: + $(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_DEBIAN) -f Containerfile.debian --build-arg NODE_VERSION=$(NODE_VERSION) . + +container-build-fedora: + $(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_FEDORA) -f Containerfile.fedora --build-arg NODE_VERSION=$(NODE_VERSION) . + +container-web-release: container-build-debian + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release + +container-debian-release: container-build-debian + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make debian-release + +container-rpm-release: container-build-fedora + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release + +container-appimage-release: container-build-debian + $(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make appimage-release + 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 @@ -166,3 +191,11 @@ clean: rm -rf element-web/dist rm -rf local-pkgbuild rm -f bom.lock + +undo_setup: + rm -rf element-desktop/node_modules element-web/node_modules matrix-react-sdk/node_modules matrix-js-sdk/node_modules i18n-helper/node_modules element-desktop/.hak + +fixup: undo_setup + make setup + make clean + make setup diff --git a/README.md b/README.md index f4d437d..9b1ea85 100644 --- a/README.md +++ b/README.md @@ -54,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_14.x | bash - +# curl -sL https://deb.nodesource.com/setup_16.x | bash - # apt update # apt install nodejs diff --git a/configs/sc/config.json b/configs/sc/config.json index 2916dee..4af6da3 100644 --- a/configs/sc/config.json +++ b/configs/sc/config.json @@ -1,6 +1,11 @@ { "update_base_url": null, - "default_server_name": "matrix.org", + "default_server_config": { + "m.homeserver": { + "base_url": "https://matrix-client.matrix.org", + "server_name": "matrix.org" + } + }, "brand": "SchildiChat", "integrations_ui_url": "https://scalar.vector.im/", "integrations_rest_url": "https://scalar.vector.im/api", @@ -14,7 +19,10 @@ "showLabsSettings": true, "roomDirectory": { "servers": [ - "matrix.org" + "matrix.org", + "gitter.im", + "libera.chat", + "schildi.chat" ] }, "enable_presence_by_hs_url": { diff --git a/deploy/update-flathub.sh b/deploy/update-flathub.sh index 31c4ce5..7451aec 100755 --- a/deploy/update-flathub.sh +++ b/deploy/update-flathub.sh @@ -20,8 +20,11 @@ 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" @@ -33,8 +36,8 @@ sed -i "s|^\s\s$| \n /dev/null -echo "Release v$version published on flathub!" +echo "Release v$version published on flathub, now merge that branch as PR: https://github.com/flathub/chat.schildi.desktop/" diff --git a/element-desktop b/element-desktop index ce23be0..d25e426 160000 --- a/element-desktop +++ b/element-desktop @@ -1 +1 @@ -Subproject commit ce23be00b4d891f8fb9c53f0d1f329b0d9542205 +Subproject commit d25e426c42d4eeef4fd62aea61642fd66fe7f73b diff --git a/element-web b/element-web index bfbc1ab..ebb0d6a 160000 --- a/element-web +++ b/element-web @@ -1 +1 @@ -Subproject commit bfbc1ab415c33979d4c72a0dc365630c1f6e43d8 +Subproject commit ebb0d6a212299540247587abd345ce633a414813 diff --git a/generate_changelog.sh b/generate_changelog.sh new file mode 100755 index 0000000..1e65601 --- /dev/null +++ b/generate_changelog.sh @@ -0,0 +1,61 @@ +#!/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/i18n-overlays/element-desktop/ja.json b/i18n-overlays/element-desktop/ja.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/ja.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/ja.json b/i18n-overlays/element-web/ja.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/ja.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/cs.json b/i18n-overlays/matrix-react-sdk/cs.json index a8b9501..861e944 100644 --- a/i18n-overlays/matrix-react-sdk/cs.json +++ b/i18n-overlays/matrix-react-sdk/cs.json @@ -47,5 +47,8 @@ "Corners": "Rohy", "Round": "Oblé", "Extra round": "Kulaté", - "Mixed": "Smíšené" + "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" } diff --git a/i18n-overlays/matrix-react-sdk/de_DE.json b/i18n-overlays/matrix-react-sdk/de_DE.json index 3bb30e2..d7d2ed2 100644 --- a/i18n-overlays/matrix-react-sdk/de_DE.json +++ b/i18n-overlays/matrix-react-sdk/de_DE.json @@ -148,5 +148,8 @@ "Mixed": "Gemischt", "Corners": "Ecken", "Extra round": "Extra rund", - "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Die Startseite hilft dir, einen Überblick über deine Chats zu bekommen. Bedenke, dass die Deaktivierung dazu führen kann, dass du bestimmte Räume nicht sehen kannst." + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Die Startseite hilft dir, einen Überblick über deine Chats zu bekommen. Bedenke, dass die Deaktivierung dazu führen kann, dass du bestimmte Räume nicht sehen kannst.", + "Classic: The same sharp sounds as Element": "Klassisch: Die gleichen scharfen Geräusche wie in Element", + "Sound pack": "Geräuschpaket", + "Schildi: Softer sounds for reduced anxiety": "Schildi: Sanftere Klänge für weniger Angstgefühle" } diff --git a/i18n-overlays/matrix-react-sdk/en_EN.json b/i18n-overlays/matrix-react-sdk/en_EN.json index e45eaab..7732df7 100644 --- a/i18n-overlays/matrix-react-sdk/en_EN.json +++ b/i18n-overlays/matrix-react-sdk/en_EN.json @@ -46,5 +46,8 @@ "Corners": "Corners", "Round": "Round", "Extra round": "Extra round", - "Mixed": "Mixed" + "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" } diff --git a/i18n-overlays/matrix-react-sdk/id.json b/i18n-overlays/matrix-react-sdk/id.json index 0b8d8a5..c0d5cbb 100644 --- a/i18n-overlays/matrix-react-sdk/id.json +++ b/i18n-overlays/matrix-react-sdk/id.json @@ -46,5 +46,8 @@ "Corners": "Sudut", "Round": "Bulat", "Extra round": "Ekstra bulat", - "Mixed": "Campur" + "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" } diff --git a/i18n-overlays/matrix-react-sdk/ja.json b/i18n-overlays/matrix-react-sdk/ja.json new file mode 100644 index 0000000..fedc533 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/ja.json @@ -0,0 +1,3 @@ +{ + "Normal priority": "常優先度" +} diff --git a/i18n-overlays/matrix-react-sdk/lt.json b/i18n-overlays/matrix-react-sdk/lt.json index 2b32484..7013517 100644 --- a/i18n-overlays/matrix-react-sdk/lt.json +++ b/i18n-overlays/matrix-react-sdk/lt.json @@ -17,5 +17,37 @@ "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." + "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" } diff --git a/i18n-overlays/matrix-react-sdk/nb_NO.json b/i18n-overlays/matrix-react-sdk/nb_NO.json index cd11a91..e3eb1c6 100644 --- a/i18n-overlays/matrix-react-sdk/nb_NO.json +++ b/i18n-overlays/matrix-react-sdk/nb_NO.json @@ -8,5 +8,29 @@ "Show message bubbles on one side only": "Vis meldingsbobler kun på én side", "Show message bubbles depending on the width either on both sides or only on one side": "Vis meldingsbobler avhengig av bredden enten på begge sider eller kun på én side", "Don't ask again": "Ikke spør igjen", - "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).": "Ønsker du at et rom skal gi deg merknader om nye utgivelser? Dette er spesielt nyttig hvis din plattform ikke støtter automatiske oppdateringer for SchildiChat (f.eks. Windows og macOS)." + "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).": "Ønsker du at et rom skal gi deg merknader om nye utgivelser? Dette er spesielt nyttig hvis din plattform ikke støtter automatiske oppdateringer for SchildiChat (f.eks. Windows og macOS).", + "Hide advanced theme settings": "Skjul avanserte draktinnstillinger", + "Show advanced theme settings": "Vis avanserte draktinnstillinger", + "Theme": "Drakt", + "Room list": "Romliste", + "Font size and typeface": "Størrelse på og type skrift", + "Sound pack": "Lydpakke", + "Schildi: Softer sounds for reduced anxiety": "Schildi: Mykere lyder for mindre angst", + "System": "System", + "Add custom theme": "Legg til egendefinert drakt", + "Theme in use": "Drakt i bruk", + "Light theme": "Lys drakt", + "Dark theme": "Mørk drakt", + "Mark as read": "Marker som lest", + "Mark rooms as unread": "Tillat markering av sludringer som uleste", + "Mark as unread": "Marker som ulest", + "In group chats": "I gruppesludringer", + "In public rooms": "I offentlige rom", + "For people": "For folk", + "Classic: The same sharp sounds as Element": "Klassisk: Samme skarpe lyder som Element", + "Collapse additional buttons": "Fold sammen ytterligere knapper", + "Corners": "Hjørner", + "Round": "Runde", + "Extra round": "Ekstra runde", + "Mixed": "Blandet" } diff --git a/i18n-overlays/matrix-react-sdk/sv.json b/i18n-overlays/matrix-react-sdk/sv.json index 284a43a..9facd06 100644 --- a/i18n-overlays/matrix-react-sdk/sv.json +++ b/i18n-overlays/matrix-react-sdk/sv.json @@ -46,5 +46,8 @@ "Round": "Runda", "Extra round": "Extrarunda", "Mixed": "Blandad", - "Corners": "Hörn" + "Corners": "Hörn", + "Sound pack": "Ljudpaket", + "Schildi: Softer sounds for reduced anxiety": "Schildi: Mjukare ljud för minskad ångest", + "Classic: The same sharp sounds as Element": "Klassisk: Samma skarpa ljud som Element" } diff --git a/matrix-js-sdk b/matrix-js-sdk index 2a6db46..6128de1 160000 --- a/matrix-js-sdk +++ b/matrix-js-sdk @@ -1 +1 @@ -Subproject commit 2a6db46dbe0ecbd79a71d5bffdf984e9807a8cbb +Subproject commit 6128de1bafde5b2112f2fe6dd2101e822d2c0636 diff --git a/matrix-react-sdk b/matrix-react-sdk index 47fd53c..23de404 160000 --- a/matrix-react-sdk +++ b/matrix-react-sdk @@ -1 +1 @@ -Subproject commit 47fd53c867e0ee572d8e9a5ed0b9f912b0cdc005 +Subproject commit 23de404c637747b5f2662b12355b0cbc4ab0d951