signal-desktop-from-src: get building (but it crashes at launch)
This commit is contained in:
258
pkgs/additional/signal-desktop-from-src/default.nix
Normal file
258
pkgs/additional/signal-desktop-from-src/default.nix
Normal file
@@ -0,0 +1,258 @@
|
||||
# arch package:
|
||||
# - <https://gitlab.archlinux.org/archlinux/packaging/packages/signal-desktop/-/blob/main/PKGBUILD?ref_type=heads>
|
||||
# - builds with `yarn generate; yarn build`
|
||||
#
|
||||
# signal uses typescript, javascript, and electron
|
||||
# - no node, npm
|
||||
#
|
||||
# nix provides:
|
||||
# - yarn2nix
|
||||
# - mkYarnPackage
|
||||
# - mkYarnModules, and then invoke the rest of the build manually
|
||||
# - that's what i do in browserpass-extension
|
||||
#
|
||||
# comment about the "Couldn't find any versions ..." bug:
|
||||
# - <https://discourse.nixos.org/t/mkyarnpackage-lockfile-has-incorrect-entry/21586/3>
|
||||
# - "don't use mkYarnPackage"
|
||||
#
|
||||
# build failure: "Error: Could not detect abi for version 26.4.0 and runtime electron. Updating "node-abi" might help solve this issue if it is a new release of electron"
|
||||
# - signal 6.36.0 pins node-abi to 2.21.0, which only goes up to electron 13!!
|
||||
# - signal-desktop also uses node-abi 2.21.0...
|
||||
# - this seems to actually be a recoverable error? i don't think it's the point at which it's bailing.
|
||||
#
|
||||
# build failure:
|
||||
# Fusing electron at /build/source/dist/linux-unpacked/signal-desktop inspect-arguments=false
|
||||
# ⨯ EACCES: permission denied, open '/build/source/dist/linux-unpacked/signal-desktop' failedTask=build stackTrace=Error: EACCES: permission denied, open '/build/source/dist/linux-unpacked/signal-desktop'
|
||||
# - this file DOES exist. it's executable (555).
|
||||
# - segfaults when invoked:
|
||||
# ```
|
||||
# Thread 1 "signal-desktop" received signal SIGTRAP, Trace/breakpoint trap.
|
||||
# 0x000055555c2f6eb0 in sandbox::SetuidSandboxHost::GetSandboxBinaryPath() ()
|
||||
# (gdb) c
|
||||
# Continuing.
|
||||
#
|
||||
# Thread 1 "signal-desktop" received signal SIGILL, Illegal instruction.
|
||||
# 0x000055555c2f6eb0 in sandbox::SetuidSandboxHost::GetSandboxBinaryPath() ()
|
||||
# (gdb) c
|
||||
# Continuing.
|
||||
# [Thread 0x7ffff39626c0 (LWP 1805441) exited]
|
||||
#
|
||||
# Program terminated with signal SIGILL, Illegal instruction.
|
||||
# The program no longer exists.
|
||||
# (gdb)
|
||||
# ```
|
||||
# - this file is created by the yarn build:electron invocation: it doesn't exist after build:esbuild:prod.
|
||||
# - running this step a second time produces the identical error
|
||||
# - running it a second time, with `chmod 777` in between produces identical error
|
||||
# - /build/source/dist/linux-unpacked/ is simply a copy of /nix/store/2harqvx80ddx7p9y26m1zds2hk4br298-electron-25.9.1/libexec/electron/ but with `electron` renamed `signal-desktop`.
|
||||
# - i think it's trying to do some edit-in-place thing
|
||||
#
|
||||
#
|
||||
{ lib
|
||||
# , fetchYarnDeps
|
||||
# , mkYarnPackage
|
||||
# , mkYarnModules
|
||||
, callPackage
|
||||
# , electron_26
|
||||
, electron_25
|
||||
# , electron
|
||||
, fetchFromGitHub
|
||||
, fixup_yarn_lock
|
||||
, makeWrapper
|
||||
, nodejs
|
||||
, python3
|
||||
, srcOnly
|
||||
, stdenv
|
||||
, yarn
|
||||
}:
|
||||
let
|
||||
# package.json locks electron to 25.8.4
|
||||
# element-desktop uses electron_26
|
||||
# nixpkgs has `electron` defaulted to electron_27
|
||||
# alpine builds signal-desktop using its default electron version, i.e. 27.0.2
|
||||
# electron = electron_26;
|
||||
electron = electron_25;
|
||||
# nodeSources = srcOnly nodejs;
|
||||
in
|
||||
# mkYarnPackage rec {
|
||||
# pname = "signal-desktop-from-src";
|
||||
# version = "6.36.0";
|
||||
# src = fetchFromGitHub {
|
||||
# owner = "signalapp";
|
||||
# repo = "Signal-Desktop";
|
||||
# rev = "v${version}";
|
||||
# hash = "sha256-86x6OeQAMN5vhLaAphnAfSWeRgUh0wAeZFzxue8otDQ=";
|
||||
# };
|
||||
#
|
||||
# # to update:
|
||||
# # - `cp ~/ref/repos/signalapp/Signal-Desktop/{package.json,yarn.lock} .`
|
||||
# # - `nix run '.#yarn2nix' > yarn.nix`
|
||||
# packageJSON = ./package.json;
|
||||
# yarnLock = ./yarn.lock;
|
||||
# # yarnLock = "${src}/yarn.lock";
|
||||
# yarnNix = ./yarn.nix;
|
||||
# offlineCache = fetchYarnDeps {
|
||||
# yarnLock = "${src}/yarn.lock";
|
||||
# hash = "sha256-AXT6p5lgF0M9ckoxiAvT1HaJhUWVtwEOadY4otdeB0Q=";
|
||||
# };
|
||||
#
|
||||
# # buildPhase = ''
|
||||
# # runHook preBuild
|
||||
# # yarn --offline build
|
||||
# # runHook postBuild
|
||||
# # '';
|
||||
#
|
||||
# # doDist = false;
|
||||
# }
|
||||
# mkYarnModules rec {
|
||||
# version = "6.36.0";
|
||||
# pname = "signal-desktop-from-src-modules";
|
||||
# packageJSON = ./package.json;
|
||||
# yarnLock = ./yarn.lock;
|
||||
# yarnNix = ./yarn.nix;
|
||||
# }
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signal-desktop-from-src";
|
||||
version = "6.36.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "signalapp";
|
||||
repo = "Signal-Desktop";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-86x6OeQAMN5vhLaAphnAfSWeRgUh0wAeZFzxue8otDQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
fixup_yarn_lock
|
||||
makeWrapper
|
||||
nodejs
|
||||
python3
|
||||
yarn
|
||||
# nodejs-slim
|
||||
];
|
||||
buildInputs = [
|
||||
electron
|
||||
];
|
||||
|
||||
env.yarnOfflineCache = (callPackage ./yarn.nix {}).offline_cache;
|
||||
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
||||
|
||||
configurePhase = ''
|
||||
export HOME=$NIX_BUILD_TOP
|
||||
yarn config --offline set yarn-offline-mirror $yarnOfflineCache
|
||||
fixup_yarn_lock yarn.lock
|
||||
# optional flags: --no-progress --non-interactive
|
||||
# yarn install creates the node_modules/ directory
|
||||
yarn install --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
patchShebangs node_modules/
|
||||
'';
|
||||
|
||||
# excerpts from package.json:
|
||||
# - "build": "run-s --print-label generate build:esbuild:prod build:release"
|
||||
# - "generate": "npm-run-all build-protobuf build:esbuild sass get-expire-time copy-components"
|
||||
# - "build-protobuf": "yarn build-module-protobuf"
|
||||
# - "build-module-protobuf": "pbjs --target static-module --force-long --no-typeurl --no-verify --no-create --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js"
|
||||
# - "build:esbuild": "node scripts/esbuild.js"
|
||||
# - "sass": "sass stylesheets/manifest.scss:stylesheets/manifest.css stylesheets/manifest_bridge.scss:stylesheets/manifest_bridge.css"`
|
||||
# - "get-expire-time": "node ts/scripts/get-expire-time.js"
|
||||
# - "copy-components": "node ts/scripts/copy.js"
|
||||
# - "build:esbuild:prod": "node scripts/esbuild.js --prod"
|
||||
# - "build:release": "cross-env SIGNAL_ENV=production yarn build:electron -- --config.directories.output=release"
|
||||
# - "build:electron": "electron-builder --config.extraMetadata.environment=$SIGNAL_ENV"
|
||||
#
|
||||
# - "build:dev": "run-s --print-label generate build:esbuild:prod"
|
||||
#
|
||||
# arch just calls `yarn generate; yarn build`.
|
||||
#
|
||||
# alpine is much more involved, to reuse their dependencies instead of duplicating stuff.
|
||||
# - manually build signal's webrtc using ninja
|
||||
# - manually build signal's ringrtc using yarn
|
||||
# - manually build libsignal with yarn, cargo and cbindgen
|
||||
# - yarn build:acknowledgments
|
||||
# - yarn patch-package
|
||||
# - npm rebuild esbuild # apparently esbuild is to be used later in the build process
|
||||
# - yarn build:dev
|
||||
# - yarn install
|
||||
# - then it `mv`s and `patch`s a bunch of stuff
|
||||
# - tasje pack
|
||||
#
|
||||
# for the electron parts, it calls npm with --nodedir=/usr/lib/electron/node_headers
|
||||
# - yarn electron-builder doesn't understand --nodedir
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
echo 'ignore-engines true' > .yarnrc
|
||||
|
||||
mkdir -p "$HOME/.node-gyp/${nodejs.version}"
|
||||
echo 9 > "$HOME/.node-gyp/${nodejs.version}/installVersion"
|
||||
ln -sfv "${nodejs}/include" "$HOME/.node-gyp/${nodejs.version}"
|
||||
export npm_config_nodedir=${nodejs}
|
||||
|
||||
# yarn build --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
# yarn generate:
|
||||
yarn build-module-protobuf --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
yarn build:esbuild --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
yarn sass
|
||||
yarn get-expire-time
|
||||
yarn copy-components
|
||||
|
||||
yarn build:esbuild:prod --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
# yarn build:release --offline --frozen-lockfile --ignore-scripts --ignore-engines
|
||||
# yarn build:release
|
||||
|
||||
echo "build:electron: invocation 1"
|
||||
SIGNAL_ENV=production yarn build:electron \
|
||||
--dir \
|
||||
-c.electronDist=${electron}/libexec/electron \
|
||||
-c.electronVersion=${electron.version} || true
|
||||
|
||||
# chmod 777 /build/source/dist/linux-unpacked/signal-desktop
|
||||
|
||||
# echo "build:electron: invocation 2"
|
||||
# SIGNAL_ENV=production yarn build:electron \
|
||||
# --dir
|
||||
# -c.electronDist=${electron}/libexec/electron \
|
||||
# -c.electronVersion=${electron.version}
|
||||
# SIGNAL_ENV=production yarn --offline --frozen-lockfile --ignore-scripts --ignore-engines electron-builder \
|
||||
# --dir ${if stdenv.isDarwin then "--macos" else "--linux"} ${if stdenv.hostPlatform.isAarch64 then "--arm64" else "--x64"} \
|
||||
# --config.directories.output=release \
|
||||
# --config.extraMetadata.environment=production \
|
||||
# -c.electronDist=${electron}/libexec/electron \
|
||||
# -c.electronVersion=${electron.version}
|
||||
# SIGNAL_ENV=production electron-builder \
|
||||
# --dir ${if stdenv.isDarwin then "--macos" else "--linux"} ${if stdenv.hostPlatform.isAarch64 then "--arm64" else "--x64"} \
|
||||
# --config.directories.output=release \
|
||||
# --config.extraMetadata.environment=production \
|
||||
# -c.electronDist=${electron}/libexec/electron \
|
||||
# -c.electronVersion=${electron.version}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# directory structure follows the original `signal-desktop` nix package
|
||||
mkdir -p $out/lib/Signal
|
||||
cp -R dist/linux-unpacked/resources $out/lib/Signal/resources
|
||||
cp -R dist/linux-unpacked/locales $out/lib/Signal/locales
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/signal-desktop \
|
||||
--add-flags $out/lib/Signal/resources/app.asar \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
|
||||
--inherit-argv0
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Private, simple, and secure messenger";
|
||||
longDescription = ''
|
||||
Signal Desktop is an Electron application that links with your
|
||||
"Signal Android" or "Signal iOS" app.
|
||||
'';
|
||||
homepage = "https://signal.org/";
|
||||
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
};
|
||||
}
|
536
pkgs/additional/signal-desktop-from-src/package.json
Normal file
536
pkgs/additional/signal-desktop-from-src/package.json
Normal file
@@ -0,0 +1,536 @@
|
||||
{
|
||||
"name": "signal-desktop",
|
||||
"productName": "Signal",
|
||||
"description": "Private messaging from your desktop",
|
||||
"desktopName": "signal.desktop",
|
||||
"repository": "https://github.com/signalapp/Signal-Desktop.git",
|
||||
"version": "6.36.0",
|
||||
"license": "AGPL-3.0-only",
|
||||
"author": {
|
||||
"name": "Signal Messenger, LLC",
|
||||
"email": "support@signal.org"
|
||||
},
|
||||
"browserslist": "last 1 chrome versions",
|
||||
"browser": {
|
||||
"uuid": "uuid-browser"
|
||||
},
|
||||
"main": "app/main.js",
|
||||
"scripts": {
|
||||
"postinstall": "yarn build:acknowledgments && patch-package && yarn electron:install-app-deps",
|
||||
"postuninstall": "yarn build:acknowledgments",
|
||||
"start": "electron .",
|
||||
"generate": "npm-run-all build-protobuf build:esbuild sass get-expire-time copy-components",
|
||||
"build-release": "yarn run build",
|
||||
"sign-release": "node ts/updater/generateSignature.js",
|
||||
"notarize": "echo 'No longer necessary'",
|
||||
"get-strings": "node ts/scripts/get-strings.js && node ts/scripts/gen-nsis-script.js && node ts/scripts/gen-locales-config.js",
|
||||
"push-strings": "node ts/scripts/remove-strings.js && node ts/scripts/push-strings.js",
|
||||
"get-expire-time": "node ts/scripts/get-expire-time.js",
|
||||
"copy-components": "node ts/scripts/copy.js",
|
||||
"sass": "sass stylesheets/manifest.scss:stylesheets/manifest.css stylesheets/manifest_bridge.scss:stylesheets/manifest_bridge.css",
|
||||
"build-module-protobuf": "pbjs --target static-module --force-long --no-typeurl --no-verify --no-create --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js",
|
||||
"clean-module-protobuf": "rm -f ts/protobuf/compiled.d.ts ts/protobuf/compiled.js",
|
||||
"build-protobuf": "yarn build-module-protobuf",
|
||||
"clean-protobuf": "yarn clean-module-protobuf",
|
||||
"prepare-beta-build": "node scripts/prepare_beta_build.js",
|
||||
"prepare-alpha-build": "node scripts/prepare_alpha_build.js",
|
||||
"prepare-alpha-version": "node scripts/prepare_alpha_version.js",
|
||||
"prepare-staging-build": "node scripts/prepare_staging_build.js",
|
||||
"prepare-windows-cert": "node scripts/prepare_windows_cert.js",
|
||||
"test": "yarn test-node && yarn test-electron && yarn test-lint-intl && yarn test-eslint",
|
||||
"test-electron": "node ts/scripts/test-electron.js",
|
||||
"test-release": "node ts/scripts/test-release.js",
|
||||
"test-node": "electron-mocha --timeout 10000 --file test/setup-test-node.js --recursive test/modules ts/test-node ts/test-both",
|
||||
"test-mock": "mocha ts/test-mock/**/*_test.js",
|
||||
"test-eslint": "mocha .eslint/rules/**/*.test.js --ignore-leaks",
|
||||
"test-node-coverage": "nyc --reporter=lcov --reporter=text mocha --recursive test/modules ts/test-node ts/test-both",
|
||||
"test-lint-intl": "ts-node ./build/intl-linter/linter.ts --test",
|
||||
"eslint": "eslint --cache . --cache-strategy content --max-warnings 0",
|
||||
"lint": "run-s --print-label lint-prettier lint-css check:types eslint",
|
||||
"lint-deps": "node ts/util/lint/linter.js",
|
||||
"lint-license-comments": "ts-node ts/util/lint/license_comments.ts",
|
||||
"lint-prettier": "pprettier --check '**/*.{ts,tsx,d.ts,js,json,html,scss,md,yml,yaml}' '!node_modules/**'",
|
||||
"lint-intl": "ts-node ./build/intl-linter/linter.ts",
|
||||
"lint-css": "stylelint '**/*.scss' --cache",
|
||||
"danger:local": "./danger/danger.sh local --base main",
|
||||
"danger:ci": "./danger/danger.sh ci --base origin/main",
|
||||
"format": "pprettier --write '**/*.{ts,tsx,d.ts,js,json,html,scss,md,yml,yaml}' '!node_modules/**'",
|
||||
"svgo": "svgo --multipass images/**/*.svg",
|
||||
"transpile": "run-p check:types build:esbuild",
|
||||
"check:types": "tsc --noEmit",
|
||||
"clean-transpile-once": "rimraf sticker-creator/dist app/**/*.js app/*.js ts/**/*.js ts/*.js bundles tsconfig.tsbuildinfo",
|
||||
"clean-transpile": "yarn run clean-transpile-once && yarn run clean-transpile-once",
|
||||
"open-coverage": "open coverage/lcov-report/index.html",
|
||||
"ready": "npm-run-all --print-label clean-transpile generate --parallel lint lint-deps lint-intl test-node test-electron",
|
||||
"dev": "yarn build-protobuf && cross-env SIGNAL_ENV=storybook storybook dev --port 6006",
|
||||
"dev:transpile": "run-p \"check:types --watch\" dev:esbuild",
|
||||
"dev:esbuild": "node scripts/esbuild.js --watch",
|
||||
"dev:sass": "yarn sass --watch",
|
||||
"build:storybook": "yarn build-protobuf && cross-env SIGNAL_ENV=storybook storybook build",
|
||||
"test:storybook": "yarn build:storybook && run-p --race test:storybook:*",
|
||||
"test:storybook:serve": "http-server storybook-static --port 6006 --silent",
|
||||
"test:storybook:test": "wait-on http://127.0.0.1:6006/ --timeout 5000 && test-storybook",
|
||||
"build": "run-s --print-label generate build:esbuild:prod build:release",
|
||||
"build-linux": "yarn generate && yarn build:esbuild:prod && yarn build:release -- --publish=never",
|
||||
"build:acknowledgments": "node scripts/generate-acknowledgments.js",
|
||||
"build:dev": "run-s --print-label generate build:esbuild:prod",
|
||||
"build:esbuild": "node scripts/esbuild.js",
|
||||
"build:esbuild:prod": "node scripts/esbuild.js --prod",
|
||||
"build:electron": "electron-builder --config.extraMetadata.environment=$SIGNAL_ENV",
|
||||
"build:release": "cross-env SIGNAL_ENV=production yarn build:electron -- --config.directories.output=release",
|
||||
"verify": "run-p --print-label verify:*",
|
||||
"verify:ts": "tsc --noEmit",
|
||||
"electron:install-app-deps": "electron-builder install-app-deps"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fs-xattr": "0.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@formatjs/fast-memoize": "1.2.6",
|
||||
"@formatjs/intl-localematcher": "0.2.32",
|
||||
"@indutny/frameless-titlebar": "2.3.5",
|
||||
"@indutny/sneequals": "4.0.0",
|
||||
"@nodert-win10-rs4/windows.data.xml.dom": "0.4.4",
|
||||
"@nodert-win10-rs4/windows.ui.notifications": "0.4.4",
|
||||
"@popperjs/core": "2.11.6",
|
||||
"@react-aria/utils": "3.16.0",
|
||||
"@react-spring/web": "9.5.5",
|
||||
"@signalapp/better-sqlite3": "8.5.2",
|
||||
"@signalapp/libsignal-client": "0.31.0",
|
||||
"@signalapp/ringrtc": "2.33.0",
|
||||
"@signalapp/windows-dummy-keystroke": "1.0.0",
|
||||
"@types/fabric": "4.5.3",
|
||||
"backbone": "1.4.0",
|
||||
"blob-util": "2.0.2",
|
||||
"blueimp-load-image": "5.14.0",
|
||||
"blurhash": "1.1.3",
|
||||
"buffer": "6.0.3",
|
||||
"changedpi": "1.0.4",
|
||||
"cirbuf": "1.0.1",
|
||||
"classnames": "2.2.5",
|
||||
"config": "1.28.1",
|
||||
"copy-text-to-clipboard": "2.1.0",
|
||||
"dashdash": "1.14.1",
|
||||
"dicer": "0.3.1",
|
||||
"direction": "1.0.4",
|
||||
"emoji-datasource": "15.0.1",
|
||||
"emoji-datasource-apple": "15.0.1",
|
||||
"emoji-regex": "10.2.1",
|
||||
"encoding": "0.1.13",
|
||||
"fabric": "4.6.0",
|
||||
"fast-glob": "3.2.1",
|
||||
"filesize": "3.6.1",
|
||||
"firstline": "1.2.1",
|
||||
"focus-trap-react": "8.8.1",
|
||||
"form-data": "4.0.0",
|
||||
"fs-extra": "5.0.0",
|
||||
"fuse.js": "6.5.3",
|
||||
"glob": "7.1.6",
|
||||
"google-libphonenumber": "3.2.27",
|
||||
"got": "11.8.5",
|
||||
"heic-convert": "1.2.4",
|
||||
"humanize-duration": "3.27.1",
|
||||
"intl-tel-input": "17.0.13",
|
||||
"js-yaml": "3.13.1",
|
||||
"linkify-it": "2.2.0",
|
||||
"lodash": "4.17.21",
|
||||
"long": "4.0.0",
|
||||
"lottie-react": "2.4.0",
|
||||
"lru-cache": "6.0.0",
|
||||
"mac-screen-capture-permissions": "2.0.0",
|
||||
"memoizee": "0.4.14",
|
||||
"moment": "2.29.4",
|
||||
"mp4box": "0.5.2",
|
||||
"node-fetch": "2.6.7",
|
||||
"normalize-path": "3.0.0",
|
||||
"p-map": "2.1.0",
|
||||
"p-props": "4.0.0",
|
||||
"p-queue": "6.6.2",
|
||||
"p-timeout": "4.1.0",
|
||||
"parchment": "1.1.4",
|
||||
"pify": "3.0.0",
|
||||
"pino": "8.6.1",
|
||||
"protobufjs": "7.2.4",
|
||||
"proxy-agent": "6.3.0",
|
||||
"qrcode-generator": "1.4.4",
|
||||
"quill": "1.3.7",
|
||||
"quill-delta": "4.0.1",
|
||||
"react": "17.0.2",
|
||||
"react-aria": "3.24.0",
|
||||
"react-aria-components": "1.0.0-alpha.3",
|
||||
"react-blurhash": "0.1.2",
|
||||
"react-contextmenu": "2.11.0",
|
||||
"react-dom": "17.0.2",
|
||||
"react-hot-loader": "4.13.0",
|
||||
"react-intl": "6.1.1",
|
||||
"react-popper": "2.3.0",
|
||||
"react-quill": "2.0.0-beta.4",
|
||||
"react-redux": "7.2.8",
|
||||
"react-router-dom": "5.0.1",
|
||||
"react-textarea-autosize": "8.3.4",
|
||||
"react-virtualized": "9.22.3",
|
||||
"read-last-lines": "1.8.0",
|
||||
"redux": "4.1.2",
|
||||
"redux-logger": "3.0.6",
|
||||
"redux-promise-middleware": "6.1.0",
|
||||
"redux-thunk": "2.3.0",
|
||||
"redux-ts-utils": "3.2.2",
|
||||
"reselect": "4.1.2",
|
||||
"rimraf": "2.6.2",
|
||||
"sanitize.css": "11.0.0",
|
||||
"semver": "5.7.2",
|
||||
"split2": "4.0.0",
|
||||
"type-fest": "3.5.0",
|
||||
"uuid": "3.3.2",
|
||||
"uuid-browser": "3.1.0",
|
||||
"websocket": "1.0.34",
|
||||
"zod": "3.21.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.23.0",
|
||||
"@babel/plugin-proposal-class-properties": "7.18.6",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
|
||||
"@babel/plugin-proposal-optional-chaining": "7.21.0",
|
||||
"@babel/plugin-transform-runtime": "7.22.15",
|
||||
"@babel/plugin-transform-typescript": "7.22.15",
|
||||
"@babel/preset-react": "7.22.15",
|
||||
"@babel/preset-typescript": "7.23.0",
|
||||
"@electron/fuses": "1.5.0",
|
||||
"@formatjs/intl": "2.6.7",
|
||||
"@mixer/parallel-prettier": "2.0.3",
|
||||
"@signalapp/mock-server": "4.2.0",
|
||||
"@storybook/addon-a11y": "7.4.5",
|
||||
"@storybook/addon-actions": "7.4.5",
|
||||
"@storybook/addon-controls": "7.4.5",
|
||||
"@storybook/addon-interactions": "7.4.5",
|
||||
"@storybook/addon-jest": "7.4.5",
|
||||
"@storybook/addon-measure": "7.4.5",
|
||||
"@storybook/addon-toolbars": "7.4.5",
|
||||
"@storybook/addon-viewport": "7.4.5",
|
||||
"@storybook/addons": "7.4.5",
|
||||
"@storybook/jest": "0.2.2",
|
||||
"@storybook/react": "7.4.5",
|
||||
"@storybook/react-webpack5": "7.4.5",
|
||||
"@storybook/test-runner": "0.13.0",
|
||||
"@storybook/testing-library": "0.2.2",
|
||||
"@types/backbone": "1.4.16",
|
||||
"@types/blueimp-load-image": "5.14.1",
|
||||
"@types/chai": "4.2.18",
|
||||
"@types/chai-as-promised": "7.1.4",
|
||||
"@types/classnames": "2.2.3",
|
||||
"@types/config": "0.0.39",
|
||||
"@types/dashdash": "1.14.0",
|
||||
"@types/debug": "4.1.7",
|
||||
"@types/dicer": "0.2.2",
|
||||
"@types/direction": "1.0.0",
|
||||
"@types/filesize": "3.6.0",
|
||||
"@types/fs-extra": "5.0.5",
|
||||
"@types/google-libphonenumber": "7.4.23",
|
||||
"@types/history": "4.7.2",
|
||||
"@types/humanize-duration": "3.18.1",
|
||||
"@types/intl-tel-input": "17.0.4",
|
||||
"@types/js-yaml": "3.12.0",
|
||||
"@types/json-to-ast": "2.1.2",
|
||||
"@types/linkify-it": "2.1.0",
|
||||
"@types/lodash": "4.14.106",
|
||||
"@types/long": "4.0.1",
|
||||
"@types/lru-cache": "5.1.0",
|
||||
"@types/memoizee": "0.4.2",
|
||||
"@types/mocha": "9.0.0",
|
||||
"@types/node": "18.15.11",
|
||||
"@types/node-fetch": "2.6.2",
|
||||
"@types/normalize-path": "3.0.0",
|
||||
"@types/pify": "3.0.2",
|
||||
"@types/quill": "1.3.10",
|
||||
"@types/react": "17.0.45",
|
||||
"@types/react-dom": "17.0.17",
|
||||
"@types/react-redux": "7.1.24",
|
||||
"@types/react-router-dom": "4.3.4",
|
||||
"@types/react-virtualized": "9.18.12",
|
||||
"@types/redux-logger": "3.0.7",
|
||||
"@types/rimraf": "2.0.2",
|
||||
"@types/semver": "5.5.0",
|
||||
"@types/sinon": "10.0.2",
|
||||
"@types/split2": "3.2.1",
|
||||
"@types/terser-webpack-plugin": "5.0.3",
|
||||
"@types/uuid": "3.4.4",
|
||||
"@types/websocket": "1.0.0",
|
||||
"@types/yargs": "17.0.7",
|
||||
"@typescript-eslint/eslint-plugin": "5.55.0",
|
||||
"@typescript-eslint/parser": "5.55.0",
|
||||
"asar": "3.1.0",
|
||||
"axe-core": "4.1.4",
|
||||
"babel-core": "7.0.0-bridge.0",
|
||||
"babel-loader": "9.1.3",
|
||||
"babel-plugin-lodash": "3.3.4",
|
||||
"casual": "1.6.2",
|
||||
"chai": "4.3.4",
|
||||
"chai-as-promised": "7.1.1",
|
||||
"chalk": "4.1.2",
|
||||
"core-js": "2.6.9",
|
||||
"cross-env": "5.2.0",
|
||||
"css-loader": "3.2.0",
|
||||
"danger": "11.1.2",
|
||||
"debug": "4.3.3",
|
||||
"electron": "25.8.4",
|
||||
"electron-builder": "24.6.3",
|
||||
"electron-mocha": "11.0.2",
|
||||
"electron-notarize": "1.2.1",
|
||||
"endanger": "7.0.4",
|
||||
"esbuild": "0.17.11",
|
||||
"eslint": "8.30.0",
|
||||
"eslint-config-airbnb-typescript-prettier": "5.0.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"eslint-plugin-local-rules": "1.3.2",
|
||||
"eslint-plugin-mocha": "10.1.0",
|
||||
"eslint-plugin-more": "1.0.5",
|
||||
"eslint-plugin-react": "7.31.10",
|
||||
"execa": "5.1.1",
|
||||
"html-webpack-plugin": "5.3.1",
|
||||
"http-server": "14.1.1",
|
||||
"json-to-ast": "2.1.0",
|
||||
"mini-css-extract-plugin": "2.7.6",
|
||||
"mocha": "9.1.3",
|
||||
"node-gyp": "9.0.0",
|
||||
"npm-run-all": "4.1.5",
|
||||
"nyc": "11.4.1",
|
||||
"p-limit": "3.1.0",
|
||||
"patch-package": "8.0.0",
|
||||
"playwright": "1.33.0",
|
||||
"prettier": "2.8.0",
|
||||
"protobufjs-cli": "1.1.1",
|
||||
"resolve-url-loader": "5.0.0",
|
||||
"sass": "1.49.7",
|
||||
"sass-loader": "10.2.0",
|
||||
"sinon": "11.1.1",
|
||||
"storybook": "7.4.5",
|
||||
"style-loader": "1.0.0",
|
||||
"stylelint": "15.4.0",
|
||||
"stylelint-config-css-modules": "4.2.0",
|
||||
"stylelint-config-recommended-scss": "10.0.0",
|
||||
"stylelint-use-logical-spec": "5.0.0",
|
||||
"svgo": "3.0.2",
|
||||
"terser-webpack-plugin": "5.1.1",
|
||||
"ts-loader": "4.1.0",
|
||||
"ts-node": "8.3.0",
|
||||
"typed-scss-modules": "4.1.1",
|
||||
"typescript": "5.1.3",
|
||||
"wait-on": "7.0.1",
|
||||
"webpack": "5.88.2",
|
||||
"webpack-cli": "4.9.2",
|
||||
"webpack-dev-server": "4.11.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"@mixer/parallel-prettier/prettier": "2.8.0",
|
||||
"@storybook/react/@storybook/core/node-fetch": "2.6.1",
|
||||
"@types/react": "17.0.45",
|
||||
"@types/react-dom": "17.0.17",
|
||||
"dmg-license": "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz",
|
||||
"fabric/canvas": "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz",
|
||||
"fabric/jsdom": "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz",
|
||||
"fast-glob/glob-parent": "5.1.2",
|
||||
"read-last-lines/mz/thenify-all/thenify": "3.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18.15.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "org.whispersystems.signal-desktop",
|
||||
"mac": {
|
||||
"artifactName": "${name}-mac-${arch}-${version}.${ext}",
|
||||
"category": "public.app-category.social-networking",
|
||||
"darkModeSupport": true,
|
||||
"hardenedRuntime": true,
|
||||
"entitlements": "./build/entitlements.mac.plist",
|
||||
"entitlementsInherit": "./build/entitlements.mac.inherit.plist",
|
||||
"icon": "build/icons/mac/icon.icns",
|
||||
"publish": [
|
||||
{
|
||||
"provider": "generic",
|
||||
"url": "https://updates.signal.org/desktop"
|
||||
}
|
||||
],
|
||||
"mergeASARs": true,
|
||||
"releaseInfo": {
|
||||
"vendor": {
|
||||
"minOSVersion": "17.0.0"
|
||||
}
|
||||
},
|
||||
"singleArchFiles": "node_modules/@signalapp/{libsignal-client/prebuilds/**,ringrtc/build/**}",
|
||||
"target": [
|
||||
{
|
||||
"target": "zip",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "dmg",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64",
|
||||
"universal"
|
||||
]
|
||||
}
|
||||
],
|
||||
"bundleVersion": "1"
|
||||
},
|
||||
"win": {
|
||||
"artifactName": "${name}-win-${version}.${ext}",
|
||||
"certificateSubjectName": "Signal Messenger, LLC",
|
||||
"certificateSha1": "8D5E3CD800736C5E1FE459A1F5AA48287D4F6EC6",
|
||||
"signingHashAlgorithms": [
|
||||
"sha256"
|
||||
],
|
||||
"publisherName": "Signal Messenger, LLC",
|
||||
"icon": "build/icons/win/icon.ico",
|
||||
"publish": [
|
||||
{
|
||||
"provider": "generic",
|
||||
"url": "https://updates.signal.org/desktop"
|
||||
}
|
||||
],
|
||||
"releaseInfo": {
|
||||
"vendor": {
|
||||
"minOSVersion": "10.0.10240"
|
||||
}
|
||||
},
|
||||
"signDlls": true,
|
||||
"target": [
|
||||
"nsis"
|
||||
]
|
||||
},
|
||||
"nsis": {
|
||||
"deleteAppDataOnUninstall": true,
|
||||
"differentialPackage": true
|
||||
},
|
||||
"linux": {
|
||||
"category": "Network;InstantMessaging;Chat",
|
||||
"desktop": {
|
||||
"StartupWMClass": "Signal"
|
||||
},
|
||||
"target": [
|
||||
"deb"
|
||||
],
|
||||
"icon": "build/icons/png",
|
||||
"publish": []
|
||||
},
|
||||
"deb": {
|
||||
"depends": [
|
||||
"libnotify4",
|
||||
"libxtst6",
|
||||
"libnss3",
|
||||
"libasound2",
|
||||
"libxss1",
|
||||
"libc6 (>= 2.31)",
|
||||
"libgtk-3-0",
|
||||
"libgbm1",
|
||||
"libx11-xcb1"
|
||||
]
|
||||
},
|
||||
"protocols": {
|
||||
"name": "sgnl-url-scheme",
|
||||
"schemes": [
|
||||
"sgnl",
|
||||
"signalcaptcha"
|
||||
]
|
||||
},
|
||||
"afterSign": "ts/scripts/after-sign.js",
|
||||
"afterPack": "ts/scripts/after-pack.js",
|
||||
"afterAllArtifactBuild": "ts/scripts/after-all-artifact-build.js",
|
||||
"asar": {
|
||||
"smartUnpack": false
|
||||
},
|
||||
"asarUnpack": [
|
||||
"**/*.node"
|
||||
],
|
||||
"files": [
|
||||
"package.json",
|
||||
"config/default.json",
|
||||
"config/${env.SIGNAL_ENV}.json",
|
||||
"config/local-${env.SIGNAL_ENV}.json",
|
||||
"bundles/**",
|
||||
"background.html",
|
||||
"about.html",
|
||||
"screenShare.html",
|
||||
"settings.html",
|
||||
"permissions_popup.html",
|
||||
"debug_log.html",
|
||||
"loading.html",
|
||||
"_locales/**",
|
||||
"js/**",
|
||||
"libtextsecure/**",
|
||||
"ts/**/*.js",
|
||||
"ts/*.js",
|
||||
"!build",
|
||||
"!ts/{storybook,test-node,test-mock,test-both,test-electron}",
|
||||
"!**/{tsconfig,bower,component}.json",
|
||||
"!**/.{github,husky,grenrc,npmrc,nycrc,taprc,bithoundrc}",
|
||||
"!**/.testem.json",
|
||||
"!**/.babelrc*",
|
||||
"!**/.eslintrc*",
|
||||
"!**/.prettier*",
|
||||
"!**/.jscs*",
|
||||
"!**/*travis*.yml",
|
||||
"!**/{CHANGES,TODO,CHANGES.md~,README.md~}",
|
||||
"!**/*.stories.js",
|
||||
"!**/*.jest.js",
|
||||
"!**/*.{bak,bnf,flow,patch,markdown,bnf,mli,ts,map}",
|
||||
"!node_modules/intl-tel-input/composer.json",
|
||||
"!js/register.js",
|
||||
"stylesheets/*.css",
|
||||
"app/*",
|
||||
"preload.bundle.js",
|
||||
"preload_utils.js",
|
||||
"main.js",
|
||||
"images/**",
|
||||
"fonts/**",
|
||||
"sounds/*",
|
||||
"build/icons",
|
||||
"build/available-locales.json",
|
||||
"node_modules/**",
|
||||
"!node_modules/underscore/**",
|
||||
"!node_modules/emoji-datasource/emoji_pretty.json",
|
||||
"!node_modules/emoji-datasource/**/*.png",
|
||||
"!node_modules/emoji-datasource-apple/emoji_pretty.json",
|
||||
"!node_modules/emoji-datasource-apple/img/apple/sheets*",
|
||||
"!node_modules/spellchecker/vendor/hunspell/**/*",
|
||||
"!node_modules/@formatjs/intl-displaynames/**/*",
|
||||
"!node_modules/@formatjs/intl-listformat/**/*",
|
||||
"!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples,*.d.ts,.snyk-*.flag,benchmark}",
|
||||
"!**/node_modules/.bin",
|
||||
"!**/node_modules/**/build/**",
|
||||
"node_modules/intl-tel-input/build/**",
|
||||
"!**/node_modules/**/prebuilds/**",
|
||||
"!**/*.{o,hprof,orig,pyc,pyo,rbc,c,h,m}",
|
||||
"!**/._*",
|
||||
"!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.flowconfig,.yarn-metadata.json,.idea,appveyor.yml,.travis.yml,circle.yml,npm-debug.log,.nyc_output,yarn.lock,.yarn-integrity}",
|
||||
"node_modules/spellchecker/build/Release/*.node",
|
||||
"node_modules/websocket/build/Release/*.node",
|
||||
"!node_modules/websocket/builderror.log",
|
||||
"node_modules/socks/build/*.js",
|
||||
"node_modules/socks/build/common/*.js",
|
||||
"node_modules/socks/build/client/*.js",
|
||||
"node_modules/smart-buffer/build/*.js",
|
||||
"!node_modules/@signalapp/better-sqlite3/deps/*",
|
||||
"!node_modules/@signalapp/better-sqlite3/src/*",
|
||||
"node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node",
|
||||
"node_modules/@signalapp/libsignal-client/prebuilds/${platform}-${arch}/*.node",
|
||||
"!node_modules/@signalapp/ringrtc/scripts/*",
|
||||
"node_modules/@signalapp/ringrtc/build/${platform}/*${arch}*.node",
|
||||
"node_modules/mac-screen-capture-permissions/build/Release/*.node",
|
||||
"node_modules/fs-xattr/build/Release/*.node",
|
||||
"node_modules/@nodert-win10-rs4/windows.data.xml.dom/build/Release/*.node",
|
||||
"node_modules/@nodert-win10-rs4/windows.ui.notifications/build/Release/*.node",
|
||||
"node_modules/@signalapp/windows-dummy-keystroke/build/Release/*.node",
|
||||
"!**/node_modules/react-dom/*/*.development.js",
|
||||
"!node_modules/mp4box/**",
|
||||
"node_modules/mp4box/package.json",
|
||||
"node_modules/mp4box/dist/mp4box.all.js",
|
||||
"!node_modules/.cache",
|
||||
"sticker-creator/dist/**"
|
||||
]
|
||||
}
|
||||
}
|
20254
pkgs/additional/signal-desktop-from-src/yarn.lock
Normal file
20254
pkgs/additional/signal-desktop-from-src/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
21285
pkgs/additional/signal-desktop-from-src/yarn.nix
Normal file
21285
pkgs/additional/signal-desktop-from-src/yarn.nix
Normal file
File diff suppressed because it is too large
Load Diff
@@ -57,6 +57,7 @@ let
|
||||
rtl8723cs-wowlan = callPackage ./additional/rtl8723cs-wowlan { };
|
||||
sane-scripts = lib.recurseIntoAttrs (callPackage ./additional/sane-scripts { });
|
||||
sane-weather = callPackage ./additional/sane-weather { };
|
||||
signal-desktop-from-src = callPackage ./additional/signal-desktop-from-src { };
|
||||
static-nix-shell = callPackage ./additional/static-nix-shell { };
|
||||
sublime-music-mobile = callPackage ./additional/sublime-music-mobile { };
|
||||
sxmo-utils' = lib.recurseIntoAttrs (callPackage ./additional/sxmo-utils { });
|
||||
|
Reference in New Issue
Block a user