net-im/signal-desktop: Update to 6.3.0

Changes:
  https://github.com/signalapp/Signal-Desktop/releases/tag/v6.3.0
This commit is contained in:
Mikael Urankar 2023-01-27 12:13:34 +01:00
parent 9607f49592
commit 6caf783eef
10 changed files with 19131 additions and 57 deletions

View File

@ -1,16 +1,17 @@
PORTNAME= signal-desktop
DISTVERSIONPREFIX= v
DISTVERSION= 6.2.0
DISTVERSION= 6.3.0
CATEGORIES= net-im
MASTER_SITES= LOCAL/mikael/signal-desktop/:yarn \
LOCAL/mikael/signal-desktop/:electron_gyp \
LOCAL/mikael/signal-desktop/:npm \
MASTER_SITES= LOCAL/mikael/signal-desktop/:npm \
LOCAL/mikael/signal-desktop/:sqlite \
https://nodejs.org/download/release/v${NODE_VERSION}/:node \
https://electronjs.org/headers/v${ELECTRON_GYP_VERSION}/:electron_gyp \
https://build-artifacts.signal.org/desktop/:sqlcipher
DISTFILES= signal-desktop-${DISTVERSION}-yarn-cache.tar.gz:yarn \
signal-desktop-${DISTVERSION}-electron-gyp-cache.tar.gz:electron_gyp \
DISTFILES= signal-desktop-${DISTVERSION}-yarn-cache.tar.gz:prefetch \
signal-desktop-${DISTVERSION}-npm-cache.tar.gz:npm \
sqlcipher-4.5.2--3.0.7-4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503.tar.gz:sqlcipher
node-v${NODE_VERSION}-headers.tar.gz:node \
node-v${ELECTRON_GYP_VERSION}-headers.tar.gz:electron_gyp \
${SQLCIPHER}.tar.gz:sqlcipher
MAINTAINER= mikael@FreeBSD.org
COMMENT= Cross-platform centralized encrypted messaging service
@ -21,6 +22,8 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= aarch64 amd64
FETCH_DEPENDS= yarn-node16>0:www/yarn-node16
EXTRACT_DEPENDS=yarn-node16>0:www/yarn-node16
BUILD_DEPENDS= ${LOCALBASE}/lib/libringrtc.so:multimedia/ringrtc \
${LOCALBASE}/lib/libsignal_node.so:net-im/libsignal-node \
app-builder>0:devel/app-builder \
@ -79,14 +82,19 @@ MAKE_ENV+= ESBUILD_BINARY_PATH=${WRKDIR}/esbuild-freebsd-64/package/bin/esbuild
_BUILD_DATE= $$(date +'%s')
ELECTRON_VER_MAJOR= 21
ELECTRON_VER_MAJOR= 22
# keep NODE_VERSION in sync with www/node16 DISTVERSION
NODE_VERSION= 16.19.0
# bump ELECTRON_GYP_VERSION when ELECTRON_VER_MAJOR is changed
ELECTRON_GYP_VERSION= 22.0.0
# ll work/.cache/yarn/v6 | egrep "ringrtc|signal-client|npm-better-sqlite3|esbuild-freebsd-64"
# ll work/.cache/yarn/v6 | egrep "@signalapp|esbuild-freebsd-64"
NPM_SIGNAL_DIR= npm-@signalapp-libsignal-client-0.21.1-381d6162ae0e7719dc625780c1d6c3f9f558c33d-integrity
NPM_RINGRTC_DIR= npm-ringrtc-2.22.0-9a9d9fbc1ca43e7a0707a960ce9642dbf82dc64a/
NPM_SQLITE3_DIR= npm-@signalapp-better-sqlite3-8.0.3-c279ca3f1d1e7f6554d2a629d717e96e1ec45809-integrity/
NPM_RINGRTC_DIR= npm-@signalapp-ringrtc-2.23.0-982fb6268eab2eb35a61624149b5f9ce9af28907-integrity
NPM_SQLITE3_DIR= npm-@signalapp-better-sqlite3-8.0.4-53ed2074634b69e83116573b26ae1d927c4aab22-integrity
NPM_PLAYWRITE_DIR= npm-playwright-core-1.17.1-a16e0f89284a0ed8ae6d77e1c905c84b8a2ba022-integrity
NPM_ESBUILD_VERS= 0.15.8
SQLCIPHER= sqlcipher-4.5.2--3.0.7-4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503
ESBUILD_ARCH= ${ARCH:S/aarch64/arm/:S/amd64//}
NODE_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/}
@ -95,11 +103,49 @@ APP_OUT_DIR= linux-${ARCH:S/aarch64/arm64-/:S/amd64//}unpacked
PLIST_SUB= NODE_ARCH=${NODE_ARCH} \
SHARP_ARCH=${ARCH:S/aarch64/arm64v8/:S/amd64/x64/}
YARN_TIMESTAMP= 1661146515
pre-fetch:
if [ ! -f ${DISTDIR}/signal-desktop-${DISTVERSION}-yarn-cache.tar.gz ]; \
then ${MKDIR} ${WRKDIR}; \
${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \
${WRKDIR}/.yarnrc; \
${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \
cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \
yarn --frozen-lockfile --ignore-scripts; \
${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \
-e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \
-e 's:\([gu]id\)=[0-9]*:\1=0:g' \
-e 's:flags=.*:flags=none:' \
-e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \
${TAR} cJf ${DISTDIR}/signal-desktop-${DISTVERSION}-yarn-cache.tar.gz \
@yarn-offline-cache.mtree; \
${RM} -r ${WRKDIR}; \
fi
post-patch:
${REINPLACE_CMD} "s#%%EPOCH%%#${_BUILD_DATE}#" \
${WRKSRC}/ts/scripts/get-expire-time.ts
post-extract:
${MKDIR} ${WRKDIR}/.cache/node-gyp/${NODE_VERSION} \
${WRKDIR}/.electron-gyp/${ELECTRON_GYP_VERSION}
${MV} ${WRKDIR}/node-v${NODE_VERSION}/include ${WRKDIR}/.cache/node-gyp/${NODE_VERSION}
${MV} ${WRKDIR}/node_headers/include ${WRKDIR}/.electron-gyp/${ELECTRON_GYP_VERSION}
${ECHO_CMD} '9' > ${WRKDIR}/.cache/node-gyp/${NODE_VERSION}/installVersion
${ECHO_CMD} '9' > ${WRKDIR}/.electron-gyp/${ELECTRON_GYP_VERSION}/installVersion
# install yarn modules and fail silently
${CP} ${FILESDIR}/package.json ${WRKSRC}/
${ECHO_CMD} 'yarn-offline-mirror "../yarn-offline-cache"' > ${WRKSRC}/.yarnrc
cd ${WRKSRC} && \
${SETENV} ${MAKE_ENV} yarn install --frozen-lockfile --ignore-optional --offline || ${TRUE}
do-build:
${ECHO_CMD} 'yarn-offline-mirror "../yarn-cache"' > ${WRKSRC}/.yarnrc
# electron-builder is stupid and tries to open ${LOCALBASE}/share/electron21/electron with WRITE priv
# copy ${LOCALBASE}/share/electron21 in WRKDIR
# electron-builder is stupid and tries to open ${LOCALBASE}/share/electron22/electron with WRITE priv
# copy ${LOCALBASE}/share/electron22 in WRKDIR
# it's needed for the do-install phase, it's here because of this issue
# https://github.com/MikaelUrankar/signal-desktop/issues/6 (I don't know why it fails though)
@${RM} -r ${WRKDIR}/electron${ELECTRON_VER_MAJOR}
@ -108,25 +154,29 @@ do-build:
# Install libsignal_node.so and libringrtc.so binaries in the yarn cache
${MKDIR} ${WRKDIR}/.cache/yarn/v6/${NPM_SIGNAL_DIR}/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-${NODE_ARCH} \
${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/ringrtc/build/freebsd
${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/@signalapp/ringrtc/build/freebsd
${CP} ${LOCALBASE}/lib/libsignal_node.so \
${WRKDIR}/.cache/yarn/v6/${NPM_SIGNAL_DIR}/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-${NODE_ARCH}/node.napi.node
${CP} ${LOCALBASE}/lib/libringrtc.so \
${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/ringrtc/build/freebsd/libringrtc-${NODE_ARCH}.node
${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/@signalapp/ringrtc/build/freebsd/libringrtc-${NODE_ARCH}.node
${MKDIR} ${WRKDIR}/.cache/yarn/v6/${NPM_SQLITE3_DIR}/node_modules/@signalapp/better-sqlite3/deps
${CP} ${DISTDIR}/sqlcipher-4.5.2--3.0.7-4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503.tar.gz \
${CP} ${DISTDIR}/${SQLCIPHER}.tar.gz \
${WRKDIR}/.cache/yarn/v6/${NPM_SQLITE3_DIR}/node_modules/@signalapp/better-sqlite3/deps/sqlcipher.tar.gz
# patch-package can't patch playwright-core, patch the yarn cache instead
${CP} ${FILESDIR}/playwrigth-registry.js \
${WRKDIR}/.cache/yarn/v6/${NPM_PLAYWRITE_DIR}/node_modules/playwright-core/lib/utils/registry.js
${CP} ${FILESDIR}/fetch-prebuild.js \
${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/@signalapp/ringrtc/scripts/fetch-prebuild.js
${CP} ${FILESDIR}/download.js \
${WRKDIR}/.cache/yarn/v6/${NPM_SQLITE3_DIR}/node_modules/@signalapp/better-sqlite3/deps/download.js
# patch-package can't patch sqlite3 on aarch64, patch the yarn cache instead
cd ${WRKDIR}/.cache/yarn/v6 && ${PATCH} -s -N -i ${FILESDIR}/sqlite3.gyp.diff
${MKDIR} ${WRKDIR}/esbuild-freebsd-64
${TAR} -xf ${WRKDIR}/yarn-cache/esbuild-freebsd-${ESBUILD_ARCH}64-${NPM_ESBUILD_VERS}.tgz -C ${WRKDIR}/esbuild-freebsd-64
${TAR} -xf ${WRKDIR}/yarn-offline-cache/esbuild-freebsd-${ESBUILD_ARCH}64-${NPM_ESBUILD_VERS}.tgz -C ${WRKDIR}/esbuild-freebsd-64
# # For online build
# ${RM} ${WRKDIR}/.npmrc

View File

@ -1,11 +1,13 @@
TIMESTAMP = 1673792962
SHA256 (signal-desktop-6.2.0-yarn-cache.tar.gz) = 60a52b9f048f90144129643aa012b97c00317e217e2c1ab218ed2f21036040d6
SIZE (signal-desktop-6.2.0-yarn-cache.tar.gz) = 1051289021
SHA256 (signal-desktop-6.2.0-electron-gyp-cache.tar.gz) = 9515098bca084289d8a356e70e95f139d2451c9a62914d510286984937cf298d
SIZE (signal-desktop-6.2.0-electron-gyp-cache.tar.gz) = 266707
SHA256 (signal-desktop-6.2.0-npm-cache.tar.gz) = a4bfca0df78ccff27b27b0f84a9bc523667b83e6da12b6b4316c98580d25cf9b
SIZE (signal-desktop-6.2.0-npm-cache.tar.gz) = 4433937
TIMESTAMP = 1674809857
SHA256 (signal-desktop-6.3.0-yarn-cache.tar.gz) = dd0e69be2b74356302311825621540452123cd4f6a6a5a7be6a8cf8bd8e388cf
SIZE (signal-desktop-6.3.0-yarn-cache.tar.gz) = 361729096
SHA256 (signal-desktop-6.3.0-npm-cache.tar.gz) = 8acc503a579760faf8ea660d504f3b3ffadc495bf09584228da4cc9af20e33fe
SIZE (signal-desktop-6.3.0-npm-cache.tar.gz) = 4466353
SHA256 (node-v16.19.0-headers.tar.gz) = d0b02ce3d1198d41127daf64f204195252abff6a22da70830aaed846ba6ad864
SIZE (node-v16.19.0-headers.tar.gz) = 568145
SHA256 (node-v22.0.0-headers.tar.gz) = 190aa8035756ea448870547c8123b959031657f739843e6950013df04c0dd119
SIZE (node-v22.0.0-headers.tar.gz) = 263326
SHA256 (sqlcipher-4.5.2--3.0.7-4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503.tar.gz) = 4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503
SIZE (sqlcipher-4.5.2--3.0.7-4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503.tar.gz) = 41118646
SHA256 (signalapp-Signal-Desktop-v6.2.0_GH0.tar.gz) = dcb6967c5a72eada96ddf1fc0fa5ac122b9280cc5c08bfc28d3b93ba1ce40e79
SIZE (signalapp-Signal-Desktop-v6.2.0_GH0.tar.gz) = 38307325
SHA256 (signalapp-Signal-Desktop-v6.3.0_GH0.tar.gz) = 07c71bd31157873d5d1f57830a636fe61ad551bacf4a87a4f13336f16e524a1a
SIZE (signalapp-Signal-Desktop-v6.3.0_GH0.tar.gz) = 38400291

View File

@ -0,0 +1,62 @@
const https = require('https');
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const { Transform } = require('stream');
const { pipeline } = require('stream/promises');
const BASE_URI = `https://build-artifacts.signal.org/desktop`;
const HASH = '4587e88a4219cb76fd595a5b73f82bfd919b235d75626f40783525f4f58a7503';
const SQLCIPHER_VERSION = '4.5.2';
const OPENSSL_VERSION = '3.0.7';
const URL = `${BASE_URI}/sqlcipher-${SQLCIPHER_VERSION}--${OPENSSL_VERSION}-` +
`${HASH}.tar.gz`;
const tmpFile = path.join(__dirname, 'unverified.tmp');
const finalFile = path.join(__dirname, 'sqlcipher.tar.gz');
async function main() {
return;
if (fs.statSync(finalFile, { throwIfNoEntry: false })) {
const hash = crypto.createHash('sha256');
const existingHash = await pipeline(
fs.createReadStream(finalFile),
hash,
);
if (hash.digest('hex') === HASH) {
console.log('local build artifact is up-to-date');
return;
}
console.log('local build artifact is outdated');
}
download();
}
function download() {
console.log(`downloading ${URL}`);
https.get(URL, async (res) => {
const out = fs.createWriteStream(tmpFile);
const hash = crypto.createHash('sha256');
const t = new Transform({
transform(chunk, encoding, callback) {
hash.write(chunk, encoding);
callback(null, chunk);
}
});
await pipeline(res, t, out);
const actualDigest = hash.digest('hex');
if (actualDigest !== HASH) {
fs.unlinkSync(tmpFile);
throw new Error(`Digest mismatch. Expected ${HASH} got ${actualDigest}`);
}
fs.renameSync(tmpFile, finalFile);
})
}
main();

View File

@ -0,0 +1,87 @@
//
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
/* eslint-disable no-console */
const https = require('https');
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const tar = require('tar');
const { Transform } = require('stream');
const { pipeline } = require('stream/promises');
const VERSION = process.env.npm_package_version;
const URL = process.env.npm_package_config_prebuildUrl.replace(
'${npm_package_version}', // eslint-disable-line no-template-curly-in-string
VERSION
);
const HASH = process.env.npm_package_config_prebuildChecksum;
const tmpFile = path.join(__dirname, 'unverified-prebuild.tmp');
const finalFile = path.join(__dirname, 'prebuild.tar.gz');
async function main() {
return;
if (!HASH) {
console.log('(no checksum provided; assuming local build)');
process.exit(0);
}
await downloadIfNeeded();
console.log('extracting...');
await tar.extract({ file: finalFile, onwarn: process.emitWarning });
}
async function downloadIfNeeded() {
if (fs.statSync(finalFile, { throwIfNoEntry: false })) {
const hash = crypto.createHash('sha256');
await pipeline(fs.createReadStream(finalFile), hash);
if (hash.digest('hex') === HASH) {
console.log('local build artifact is up-to-date');
return;
}
console.log('local build artifact is outdated');
}
await download();
}
function download() {
console.log(`downloading ${URL}`);
return new Promise((resolve, reject) => {
https.get(URL, async res => {
try {
const out = fs.createWriteStream(tmpFile);
const hash = crypto.createHash('sha256');
const t = new Transform({
transform(chunk, encoding, callback) {
hash.write(chunk, encoding);
callback(null, chunk);
},
});
await pipeline(res, t, out);
const actualDigest = hash.digest('hex');
if (actualDigest !== HASH) {
fs.unlinkSync(tmpFile);
throw new Error(
`Digest mismatch. Expected ${HASH} got ${actualDigest}`
);
}
fs.renameSync(tmpFile, finalFile);
resolve();
} catch (error) {
reject(error);
}
});
});
}
main();

View File

@ -0,0 +1,494 @@
{
"name": "signal-desktop",
"productName": "Signal",
"description": "Private messaging from your desktop",
"desktopName": "signal.desktop",
"repository": "https://github.com/signalapp/Signal-Desktop.git",
"version": "6.3.0",
"license": "AGPL-3.0-only",
"author": {
"name": "Signal Messenger, LLC",
"email": "support@signal.org"
},
"main": "app/main.js",
"scripts": {
"postinstall": "yarn build:acknowledgments && patch-package && yarn electron:install-app-deps && rimraf node_modules/dtrace-provider",
"postuninstall": "yarn build:acknowledgments",
"start": "electron .",
"generate": "npm-run-all build-protobuf build:esbuild sass get-expire-time copy-and-concat",
"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",
"push-strings": "node ts/scripts/push-strings.js",
"get-expire-time": "node ts/scripts/get-expire-time.js",
"copy-and-concat": "node ts/scripts/copy-and-concat.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-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",
"publish-to-apt": "NAME=$npm_package_name VERSION=$npm_package_version ./aptly.sh",
"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",
"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 . --max-warnings 0",
"lint": "run-s --print-label lint-prettier 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",
"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/**'",
"transpile": "run-p check:types build:esbuild",
"check:types": "tsc --noEmit",
"clean-transpile-once": "rimraf app/**/*.js app/*.js sticker-creator/**/*.js sticker-creator/*.js ts/**/*.js ts/*.js 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": "run-p --print-label dev:*",
"dev:transpile": "run-p \"check:types --watch\" dev:esbuild",
"dev:webpack": "run-p dev:esbuild dev:webpack:sticker-creator",
"dev:webpack:sticker-creator": "cross-env NODE_ENV=development webpack serve --mode development",
"dev:esbuild": "node scripts/esbuild.js --watch",
"dev:typed-scss": "yarn build:typed-scss -w",
"dev:storybook": "cross-env SIGNAL_ENV=storybook start-storybook -p 6006 -s ./",
"dev:sass": "yarn sass --watch",
"build": "run-s --print-label generate build:typed-scss build:webpack build:release",
"build:acknowledgments": "node scripts/generate-acknowledgments.js",
"build:dev": "run-s --print-label generate build:typed-scss build:webpack",
"build:typed-scss": "tsm sticker-creator",
"build:webpack": "run-p build:webpack:sticker-creator \"build:esbuild --prod\"",
"build:webpack:sticker-creator": "cross-env NODE_ENV=production webpack",
"build:esbuild": "node scripts/esbuild.js",
"build:electron": "electron-builder --config.extraMetadata.environment=$SIGNAL_ENV",
"build:release": "cross-env SIGNAL_ENV=production yarn build:electron -- --config.directories.output=release",
"preverify:ts": "yarn build:typed-scss",
"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",
"@indutny/frameless-titlebar": "2.3.5",
"@indutny/sneequals": "3.2.0",
"@popperjs/core": "2.11.6",
"@react-spring/web": "9.5.5",
"@signalapp/better-sqlite3": "8.0.4",
"@signalapp/libsignal-client": "0.21.1",
"@signalapp/ringrtc": "2.23.0",
"@sindresorhus/is": "0.8.0",
"@types/fabric": "4.5.3",
"array-move": "2.1.0",
"backbone": "1.4.0",
"bezier-easing": "2.1.0",
"blob-util": "2.0.2",
"blueimp-load-image": "5.14.0",
"blurhash": "1.1.3",
"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": "14.0.0",
"emoji-datasource-apple": "14.0.0",
"emoji-regex": "10.1.0",
"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",
"history": "4.9.0",
"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",
"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": "6.11.3",
"proxy-agent": "5.0.0",
"qrcode-generator": "1.4.4",
"quill": "1.3.7",
"quill-delta": "4.0.1",
"react": "17.0.2",
"react-blurhash": "0.1.2",
"react-contextmenu": "2.11.0",
"react-dom": "17.0.2",
"react-dropzone": "10.2.2",
"react-hot-loader": "4.13.0",
"react-intl": "6.1.1",
"react-measure": "2.3.0",
"react-popper": "2.3.0",
"react-quill": "2.0.0-beta.4",
"react-redux": "7.2.8",
"react-router-dom": "5.0.1",
"react-sortable-hoc": "2.0.0",
"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.4.1",
"split2": "4.0.0",
"testcheck": "1.0.0-rc.2",
"typeface-inter": "3.18.1",
"uuid": "3.3.2",
"websocket": "1.0.34",
"zod": "3.5.1"
},
"devDependencies": {
"@babel/core": "7.14.3",
"@babel/plugin-proposal-class-properties": "7.17.12",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.17.12",
"@babel/plugin-proposal-optional-chaining": "7.17.12",
"@babel/plugin-transform-runtime": "7.18.2",
"@babel/plugin-transform-typescript": "7.18.4",
"@babel/preset-react": "7.17.12",
"@babel/preset-typescript": "7.17.12",
"@electron/fuses": "1.5.0",
"@mixer/parallel-prettier": "2.0.1",
"@storybook/addon-a11y": "6.5.6",
"@storybook/addon-actions": "6.5.6",
"@storybook/addon-controls": "6.5.6",
"@storybook/addon-interactions": "6.5.9",
"@storybook/addon-knobs": "6.4.0",
"@storybook/addon-measure": "6.5.6",
"@storybook/addon-toolbars": "6.5.6",
"@storybook/addon-viewport": "6.5.6",
"@storybook/addons": "6.5.6",
"@storybook/jest": "0.0.10",
"@storybook/react": "6.5.6",
"@storybook/testing-library": "0.0.13",
"@types/backbone": "1.4.5",
"@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/mustache": "4.1.2",
"@types/node": "16.18.3",
"@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-measure": "2.0.5",
"@types/react-redux": "7.1.24",
"@types/react-router-dom": "4.3.4",
"@types/react-sortable-hoc": "0.6.5",
"@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/webpack-dev-server": "3.11.3",
"@types/websocket": "1.0.0",
"@types/yargs": "17.0.7",
"@typescript-eslint/eslint-plugin": "5.47.0",
"@typescript-eslint/parser": "5.47.0",
"arraybuffer-loader": "1.0.3",
"asar": "3.1.0",
"axe-core": "4.1.4",
"babel-core": "7.0.0-bridge.0",
"babel-loader": "8.0.6",
"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": "22.0.0",
"electron-builder": "23.0.8",
"electron-mocha": "11.0.2",
"electron-notarize": "1.2.1",
"endanger": "7.0.4",
"esbuild": "0.15.8",
"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",
"file-loader": "4.2.0",
"html-webpack-plugin": "5.3.1",
"json-to-ast": "2.1.0",
"mocha": "9.1.3",
"mocha-testcheck": "1.0.0-rc.0",
"node-gyp": "9.0.0",
"npm-run-all": "4.1.5",
"nyc": "11.4.1",
"patch-package": "6.4.7",
"playwright": "1.17.1",
"prettier": "2.7.1",
"sass": "1.49.7",
"sass-loader": "10.2.0",
"sinon": "11.1.1",
"style-loader": "1.0.0",
"terser-webpack-plugin": "5.1.1",
"ts-loader": "4.1.0",
"ts-node": "8.3.0",
"typed-scss-modules": "4.1.1",
"typescript": "4.9.3",
"webpack": "5.30.0",
"webpack-cli": "4.9.2",
"webpack-dev-server": "4.7.4"
},
"resolutions": {
"@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": "16.19.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",
"icon": "build/icons/mac/icon.icns",
"publish": [
{
"provider": "generic",
"url": "https://updates.signal.org/desktop"
}
],
"mergeASARs": true,
"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": "8C9A0B5C852EC703D83EF7BFBCEB54B796073759",
"signingHashAlgorithms": [
"sha256"
],
"publisherName": "Signal Messenger, LLC",
"icon": "build/icons/win/icon.ico",
"publish": [
{
"provider": "generic",
"url": "https://updates.signal.org/desktop"
}
],
"target": [
"nsis"
]
},
"nsis": {
"deleteAppDataOnUninstall": true
},
"linux": {
"category": "Network;InstantMessaging;Chat",
"desktop": {
"StartupWMClass": "Signal"
},
"target": [
"deb"
],
"icon": "build/icons/png"
},
"deb": {
"depends": [
"libnotify4",
"libxtst6",
"libnss3",
"libasound2",
"libxss1"
]
},
"protocols": {
"name": "sgnl-url-scheme",
"schemes": [
"sgnl",
"signalcaptcha"
]
},
"afterPack": "ts/scripts/after-pack.js",
"afterSign": "ts/scripts/after-sign.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",
"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",
"node_modules/**",
"sticker-creator/preload.js",
"sticker-creator/window/*.js",
"sticker-creator/dist/**",
"!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/*/{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/react-dom/*/*.development.js",
"!node_modules/mp4box/**",
"node_modules/mp4box/package.json",
"node_modules/mp4box/dist/mp4box.all.js",
"!node_modules/.cache"
]
}
}

View File

@ -1,19 +0,0 @@
--- package.json.orig 2022-08-05 12:53:58 UTC
+++ package.json
@@ -192,7 +192,6 @@
"@babel/preset-typescript": "7.17.12",
"@electron/fuses": "1.5.0",
"@mixer/parallel-prettier": "2.0.1",
- "@signalapp/mock-server": "2.11.0",
"@storybook/addon-a11y": "6.5.6",
"@storybook/addon-actions": "6.5.6",
"@storybook/addon-controls": "6.5.6",
@@ -319,7 +318,7 @@
"read-last-lines/mz/thenify-all/thenify": "3.3.1"
},
"engines": {
- "node": "16.16.0"
+ "node": "16.19.0"
},
"build": {
"appId": "org.whispersystems.signal-desktop",

View File

@ -1,5 +1,5 @@
--- npm-@signalapp-better-sqlite3-8.0.3-c279ca3f1d1e7f6554d2a629d717e96e1ec45809-integrity/node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp.orig 2022-07-02 14:34:04 UTC
+++ npm-@signalapp-better-sqlite3-8.0.3-c279ca3f1d1e7f6554d2a629d717e96e1ec45809-integrity/node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp
--- npm-@signalapp-better-sqlite3-8.0.4-53ed2074634b69e83116573b26ae1d927c4aab22-integrity/node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp.orig 2022-07-02 14:34:04 UTC
+++ npm-@signalapp-better-sqlite3-8.0.4-53ed2074634b69e83116573b26ae1d927c4aab22-integrity/node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp
@@ -92,6 +92,14 @@
'libraries': [
# This statically links libcrypto, whereas -lcrypto would dynamically link it

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,11 @@
#!/bin/sh
SIGNAL_VERS=v6.1.0-beta.1
SIGNAL_VERS=v6.3.0-beta.1
ringrtc_hash=$(fetch -qo - https://raw.githubusercontent.com/signalapp/Signal-Desktop/${SIGNAL_VERS}/package.json | grep '"ringrtc": "https' | awk -F "#" '{print $2}' | sed 's#",##')
# echo "RINGRTC_HASH= ${ringrtc_hash} ; https://raw.githubusercontent.com/signalapp/Signal-Desktop/${SIGNAL_VERS}/package.json"
ringrtc_version=$(fetch -qo - https://raw.githubusercontent.com/signalapp/Signal-Desktop/${SIGNAL_VERS}/package.json | grep '@signalapp/ringrtc"' | awk -F ":" '{print $2}' | sed -E 's#("|,| )##g')
echo "RINGRTC_VERSION= ${ringrtc_version}"
ringrtc_version=$(fetch -qo - https://raw.githubusercontent.com/signalapp/signal-ringrtc-node/${ringrtc_hash}/package.json | grep '"version":' | awk -F ":" '{print $2}' | sed -e 's# "##' -e 's#",##')
echo "RINGRTC_VERSION= ${ringrtc_version} ; https://raw.githubusercontent.com/signalapp/signal-ringrtc-node/${ringrtc_hash}/package.json"
webrtc_version=$(fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v${ringrtc_version}/config/version.sh | awk -F '=' /WEBRTC_VERSION/'{print $2}')
echo "WEBRTC_REV= ${webrtc_version} ; https://raw.githubusercontent.com/signalapp/ringrtc/v${ringrtc_version}/config/version.sh"
webrtc_version=$(fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v${ringrtc_version}/config/version.properties | grep 'webrtc.version' | awk -F '=' '{print $2}')
echo "WEBRTC_REV= ${webrtc_version} ; https://raw.githubusercontent.com/signalapp/ringrtc/v${ringrtc_version}/config/version.properties"
libsignalclient_version=$(fetch -qo - https://raw.githubusercontent.com/signalapp/Signal-Desktop/${SIGNAL_VERS}/yarn.lock | grep 'signalapp/libsignal-client@' | awk -F '@' '{print $3}' | sed 's#", "##')
echo "LIBSIGNAL_VERSION= ${libsignalclient_version}"

View File

@ -105,7 +105,7 @@ share/pixmaps/signal-desktop.png
%%DATADIR%%/resources/app.asar
%%DATADIR%%/resources/app.asar.unpacked/node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node
%%DATADIR%%/resources/app.asar.unpacked/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-%%NODE_ARCH%%/node.napi.node
%%DATADIR%%/resources/app.asar.unpacked/node_modules/ringrtc/build/freebsd/libringrtc-%%NODE_ARCH%%.node
%%DATADIR%%/resources/app.asar.unpacked/node_modules/@signalapp/ringrtc/build/freebsd/libringrtc-%%NODE_ARCH%%.node
@(,,755) %%DATADIR%%/signal-desktop
%%DATADIR%%/snapshot_blob.bin
%%DATADIR%%/v8_context_snapshot.bin