schildichat-{web,desktop}: remove due to lack of maintenance (#272270)

This commit is contained in:
Yureka
2023-12-07 17:23:31 +01:00
committed by GitHub
parent da4935399e
commit ec1bb84950
6 changed files with 7 additions and 309 deletions
@@ -1,9 +0,0 @@
{
"version": "1.11.30-sc.2",
"rev": "v1.11.30-sc.2",
"srcHash": "1qb1fcr52gyzxndz3j77vn3ddwjpxwvicnh16c72zpzpfbbky7a5",
"webYarnHash": "0bg5vc7q8afqfpsaqqkczf9whbzici5d2bxj5cadhrlmlb27f8nx",
"jsSdkYarnHash": "0p1whh3pmqz170l542fiq3zgljl5daa9b96i59p3wvggnx7kny7j",
"reactSdkYarnHash": "02ysshiyjj3w00b628is9bd7i8qc3vc8kr1zam2dpj26lb9k5pdd",
"desktopYarnHash": "16pzmlwzf3z8mky3wb4azaiggigyfnpxmbq3irjp30ic6yhl50yw"
}
@@ -1,131 +0,0 @@
{ lib
, element-desktop # for seshat and keytar
, schildichat-web
, stdenv
, fetchFromGitHub
, makeWrapper
, makeDesktopItem
, copyDesktopItems
, fetchYarnDeps
, yarn
, nodejs
, prefetch-yarn-deps
, electron
, Security
, AppKit
, CoreServices
, sqlcipher
}:
let
pinData = lib.importJSON ./pin.json;
executableName = "schildichat-desktop";
in
stdenv.mkDerivation rec {
pname = "schildichat-desktop";
inherit (pinData) version;
src = fetchFromGitHub {
owner = "SchildiChat";
repo = "schildichat-desktop";
inherit (pinData) rev;
sha256 = pinData.srcHash;
fetchSubmodules = true;
};
offlineCache = fetchYarnDeps {
yarnLock = src + "/element-desktop/yarn.lock";
sha256 = pinData.desktopYarnHash;
};
nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs makeWrapper copyDesktopItems ];
inherit (element-desktop) seshat keytar;
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
pushd element-desktop
yarn config --offline set yarn-offline-mirror $offlineCache
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
rm -rf node_modules/matrix-seshat node_modules/keytar
ln -s $keytar node_modules/keytar
ln -s $seshat node_modules/matrix-seshat
patchShebangs node_modules/
popd
runHook postConfigure
'';
# Only affects unused scripts in $out/share/element/electron/scripts. Also
# breaks because there are some `node`-scripts with a `npx`-shebang and
# this shouldn't be in the closure just for unused scripts.
dontPatchShebangs = true;
buildPhase = ''
runHook preBuild
pushd element-desktop
yarn --offline run build:ts
yarn --offline run i18n
yarn --offline run build:res
popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
# resources
mkdir -p "$out/share/element"
ln -s '${schildichat-web}' "$out/share/element/webapp"
mv element-desktop "$out/share/element/electron"
cp -r "$out/share/element/electron/res/img" "$out/share/element"
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/schildichat.png"
done
# executable wrapper
# LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
--set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
--add-flags "$out/share/element/electron" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
runHook postInstall
'';
# The desktop item properties should be kept in sync with data from upstream:
# https://github.com/schildichat/element-desktop/blob/sc/package.json
desktopItems = [
(makeDesktopItem {
name = "schildichat-desktop";
exec = "${executableName} %u";
icon = "schildichat";
desktopName = "SchildiChat";
genericName = "Matrix Client";
comment = meta.description;
categories = [ "Network" "InstantMessaging" "Chat" ];
startupWMClass = "schildichat";
mimeTypes = [ "x-scheme-handler/element" ];
})
];
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Matrix client / Element Desktop fork";
homepage = "https://schildi.chat/";
changelog = "https://github.com/SchildiChat/schildichat-desktop/releases";
maintainers = teams.matrix.members ++ (with maintainers; [ kloenk yuka ]);
license = licenses.asl20;
platforms = platforms.all;
};
}
@@ -1,113 +0,0 @@
{ stdenv, lib
, fetchFromGitHub
, fetchYarnDeps
, nodejs
, yarn
, prefetch-yarn-deps
, writeText, jq, conf ? {}
}:
let
pinData = lib.importJSON ./pin.json;
noPhoningHome = {
disable_guests = true; # disable automatic guest account registration at matrix.org
};
configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
in stdenv.mkDerivation rec {
pname = "schildichat-web";
inherit (pinData) version;
src = fetchFromGitHub {
owner = "SchildiChat";
repo = "schildichat-desktop";
inherit (pinData) rev;
sha256 = pinData.srcHash;
fetchSubmodules = true;
};
webOfflineCache = fetchYarnDeps {
yarnLock = src + "/element-web/yarn.lock";
sha256 = pinData.webYarnHash;
};
jsSdkOfflineCache = fetchYarnDeps {
yarnLock = src + "/matrix-js-sdk/yarn.lock";
sha256 = pinData.jsSdkYarnHash;
};
reactSdkOfflineCache = fetchYarnDeps {
yarnLock = src + "/matrix-react-sdk/yarn.lock";
sha256 = pinData.reactSdkYarnHash;
};
nativeBuildInputs = [ yarn prefetch-yarn-deps jq nodejs ];
configurePhase = ''
runHook preConfigure
export HOME=$PWD/tmp
# with the update of openssl3, some key ciphers are not supported anymore
# this flag will allow those codecs again as a workaround
# see https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382#5f07
# and https://github.com/vector-im/element-web/issues/21043
export NODE_OPTIONS=--openssl-legacy-provider
mkdir -p $HOME
pushd element-web
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror $webOfflineCache
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules
rm -rf node_modules/matrix-react-sdk
ln -s $PWD/../matrix-react-sdk node_modules/
rm -rf node_modules/matrix-js-sdk
ln -s $PWD/../matrix-js-sdk node_modules/
popd
pushd matrix-js-sdk
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror $jsSdkOfflineCache
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules
popd
pushd matrix-react-sdk
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror $reactSdkOfflineCache
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules scripts
popd
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
pushd element-web
export VERSION=${version}
yarn build:res --offline
yarn build:module_system --offline
yarn build:bundle --offline
popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
mv element-web/webapp $out
jq -s '.[0] * .[1]' "configs/sc/config.json" "${configOverrides}" > "$out/config.json"
runHook postInstall
'';
meta = with lib; {
description = "Matrix client / Element Web fork";
homepage = "https://schildi.chat/";
changelog = "https://github.com/SchildiChat/schildichat-desktop/releases";
maintainers = teams.matrix.members ++ (with maintainers; [ kloenk yuka ]);
license = licenses.asl20;
platforms = platforms.all;
};
}
@@ -1,43 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=../../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-git jq
if [[ "$#" -gt 2 || "$1" == -* ]]; then
echo "Regenerates packaging data for the SchildiChat packages."
echo "Usage: $0 [git revision or tag] [version string override]"
exit 1
fi
rev="$1"
version="$2"
set -euo pipefail
if [ -z "$rev" ]; then
rev="$(wget -O- "https://api.github.com/repos/SchildiChat/schildichat-desktop/releases?per_page=1" | jq -r '.[0].tag_name')"
fi
if [ -z "$version" ]; then
# strip leading "v"
version="${rev#v}"
fi
src_data=$(nix-prefetch-git https://github.com/SchildiChat/schildichat-desktop --fetch-submodules --rev $rev)
src=$(echo $src_data | jq -r .path)
src_hash=$(echo $src_data | jq -r .sha256)
web_yarn_hash=$(prefetch-yarn-deps $src/element-web/yarn.lock)
desktop_yarn_hash=$(prefetch-yarn-deps $src/element-desktop/yarn.lock)
js_sdk_yarn_hash=$(prefetch-yarn-deps $src/matrix-js-sdk/yarn.lock)
react_sdk_yarn_hash=$(prefetch-yarn-deps $src/matrix-react-sdk/yarn.lock)
cat > pin.json << EOF
{
"version": "$version",
"rev": "$rev",
"srcHash": "$src_hash",
"webYarnHash": "$web_yarn_hash",
"jsSdkYarnHash": "$js_sdk_yarn_hash",
"reactSdkYarnHash": "$react_sdk_yarn_hash",
"desktopYarnHash": "$desktop_yarn_hash"
}
EOF
+7
View File
@@ -841,6 +841,13 @@ mapAliases ({
s2n = s2n-tls; # Added 2021-03-03
sane-backends-git = sane-backends; # Added 2021-02-19
scantailor = scantailor-advanced; # Added 2022-05-26
schildichat-web = throw ''
schildichat has been removed as it is severely lacking behind the Element upstream and does not receive regular security fixes.
Please participate in upstream discussion on getting out new releases:
https://github.com/SchildiChat/schildichat-desktop/issues/212
https://github.com/SchildiChat/schildichat-desktop/issues/215''; # Added 2023-12-05
schildichat-desktop = schildichat-web;
schildichat-desktop-wayland = schildichat-web;
sdlmame = throw "'sdlmame' has been renamed to/replaced by 'mame'"; # Converted to throw 2023-09-10
searx = throw "'searx' has been removed as it is unmaintained. Please switch to searxng"; # Added 2023-10-03
session-desktop-appimage = session-desktop;
-13
View File
@@ -7811,19 +7811,6 @@ with pkgs;
strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
schildichat-desktop = callPackage ../applications/networking/instant-messengers/schildichat/schildichat-desktop.nix {
inherit (darwin.apple_sdk.frameworks) Security AppKit CoreServices;
electron = electron_25;
};
schildichat-desktop-wayland = writeScriptBin "schildichat-desktop" ''
#!/bin/sh
NIXOS_OZONE_WL=1 exec ${schildichat-desktop}/bin/schildichat-desktop "$@"
'';
schildichat-web = callPackage ../applications/networking/instant-messengers/schildichat/schildichat-web.nix {
conf = config.schildichat-web.conf or { };
};
schleuder = callPackage ../tools/security/schleuder { };
schleuder-cli = callPackage ../tools/security/schleuder/cli { };