diff --git a/multimedia/ringrtc/Makefile b/multimedia/ringrtc/Makefile index d749103d0365..9c9ff34ac2ec 100644 --- a/multimedia/ringrtc/Makefile +++ b/multimedia/ringrtc/Makefile @@ -1,296 +1,296 @@ PORTNAME= ringrtc DISTVERSIONPREFIX= v DISTVERSION= 2.20.8 CATEGORIES= multimedia MASTER_SITES= LOCAL/mikael/ringrtc/:base \ LOCAL/mikael/ringrtc/:boringssl \ LOCAL/mikael/ringrtc/:build \ LOCAL/mikael/ringrtc/:buildtools \ LOCAL/mikael/ringrtc/:catapult \ LOCAL/mikael/ringrtc/:icu \ LOCAL/mikael/ringrtc/:nasm \ LOCAL/mikael/ringrtc/:libjpeg_turbo \ LOCAL/mikael/ringrtc/:libsrtp \ LOCAL/mikael/ringrtc/:libvpx \ LOCAL/mikael/ringrtc/:libyuv \ LOCAL/mikael/ringrtc/:third_party \ LOCAL/mikael/ringrtc/:testing DISTFILES= base-${BASE_REV}.tar.gz:base \ boringssl-${BORINGSSL_REV}.tar.gz:boringssl \ build-${BUILD_REV}.tar.gz:build \ buildtools-${BUILDTOOLS_REV}.tar.gz:buildtools \ catapult-${CATAPULT_REV}.tar.gz:catapult \ icu-${ICU_REV}.tar.gz:icu \ nasm-${NASM_REV}.tar.gz:nasm \ libjpeg_turbo-${LIBJPEG_TURBO_REV}.tar.gz:libjpeg_turbo \ libsrtp-${LIBSRTP_REV}.tar.gz:libsrtp \ libvpx-${LIBVPX_REV}.tar.gz:libvpx \ libyuv-${LIBYUV_REV}.tar.gz:libyuv \ third_party-${THIRD_PARTY_REV}.tar.gz:third_party \ testing-${TESTING_REV}.tar.gz:testing MAINTAINER= mikael@FreeBSD.org COMMENT= Middleware library for Signal-Desktop LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/../../LICENSE BUILD_DEPENDS= gn:devel/gn LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfreetype.so:print/freetype2 \ libpulse.so:audio/pulseaudio USES= cargo gnome localbase:ldflags ninja pkgconfig python:3.7+,build \ tar:xz USE_GNOME= glib20 USE_GITHUB= yes GH_ACCOUNT= signalapp GH_TUPLE= signalapp:ringrtc:${DISTVERSIONPREFIX}${DISTVERSION} \ signalapp:webrtc:${WEBRTC_REV}:webrtc # Add extra-patch-no-mempcpy-nasm only when there's no mempcpy() in base. # Nested variable expansion avoids executing the test when not needed for # expanding EXTRA_PATCHES. EXTRA_PATCHES+= ${"${:!${GREP} mempcpy ${CROSS_SYSROOT}/usr/include/string.h \ || ${TRUE}!}" == "":?${PATCHDIR}/extra-patch-no-mempcpy-nasm:} # sh net-im/signal-desktop/get_deps.sh WEBRTC_REV= 4896c # modify webrtc_fetch.sh, then sh webrtc_fetch.sh BASE_REV= bee216d6736d6a471879c5fcd32c8aba863d4755 BORINGSSL_REV= 4d955d20d27bcf3ae71df091ad17d95229a7eb56 BUILD_REV= b42b2033819f95b3e43f24e541938c671110966d BUILDTOOLS_REV= d8c375426d8f7f4147f7d4109bb63c12655fb8d6 CATAPULT_REV= 389f33bb40a3345b73a68613178c789476ceaecf ICU_REV= a9359a84a3969b3019db7d62899afb19642eefcd LIBJPEG_TURBO_REV= 22f1a22c99e9dde8cd3c72ead333f425c5a7aa77 LIBSRTP_REV= 5b7c744eb8310250ccc534f3f86a2015b3887a0a LIBVPX_REV= df0d06de6d3b64e35b9e75ad72c571af061bc7b3 LIBYUV_REV= 3aebf69d668177e7ee6dbbe0025e5c3dbb525ff2 NASM_REV= 9215e8e1d0fe474ffd3e16c1a07a0f97089e6224 TESTING_REV= c4769e51cb122096ea4cdc5ed6f7e57aa2315447 THIRD_PARTY_REV= 7835795588c74a353beb1e03b74d45fabfdf295f BINARY_ALIAS= python3=${PYTHON_CMD} # Keep in sync with https://github.com/signalapp/ringrtc/blob/${DISTVERSION}/bin/build-electron#L96 # Run "gn args out/Release --list" for all variables. # Some parts don't have use_system_* flag, and can be turned on/off by using # replace_gn_files.py script, some parts just turned on/off for target host # OS "target_os == is_bsd", like libusb, libpci. GN_ARGS+= rtc_build_examples=false \ rtc_build_tools=false \ rtc_include_tests=false \ rtc_enable_protobuf=false \ rtc_use_x11=false \ rtc_enable_sctp=false \ rtc_libvpx_build_vp9=false \ rtc_include_ilbc=false \ use_custom_libcxx=false \ is_debug=false \ is_clang=true \ clang_use_chrome_plugins=false \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" MAKE_ARGS= -C out/${BUILDTYPE} WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/rust WEBRTCDIR= ${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/webrtc/src # fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v2.20.8/src/rust/Cargo.lock | awk -f /usr/ports/Mk/Scripts/cargo-crates.awk CARGO_CRATES= aes-0.7.5 \ aho-corasick-0.7.18 \ anyhow-1.0.53 \ atty-0.2.14 \ autocfg-1.1.0 \ base64-0.13.0 \ bitflags-1.3.2 \ block-buffer-0.9.0 \ bumpalo-3.9.1 \ byteorder-1.4.3 \ bytes-1.1.0 \ cc-1.0.72 \ cesu8-1.1.0 \ cfg-if-1.0.0 \ chunked_transfer-1.4.0 \ cipher-0.3.0 \ combine-4.6.3 \ cpufeatures-0.2.1 \ crypto-mac-0.11.1 \ cslice-0.2.0 \ ctr-0.8.0 \ curve25519-dalek-3.2.0 \ digest-0.9.0 \ either-1.6.1 \ env_logger-0.8.4 \ fastrand-1.7.0 \ fixedbitset-0.2.0 \ form_urlencoded-1.0.1 \ futures-0.3.21 \ futures-channel-0.3.21 \ futures-core-0.3.21 \ futures-executor-0.3.21 \ futures-io-0.3.21 \ futures-macro-0.3.21 \ futures-sink-0.3.21 \ futures-task-0.3.21 \ futures-util-0.3.21 \ generic-array-0.14.5 \ getrandom-0.1.16 \ hashbrown-0.11.2 \ heck-0.3.3 \ hermit-abi-0.1.19 \ hex-0.4.3 \ hkdf-0.11.0 \ hmac-0.11.0 \ humantime-2.1.0 \ idna-0.2.3 \ indexmap-1.8.0 \ instant-0.1.12 \ itertools-0.10.3 \ itoa-1.0.1 \ jni-0.19.0 \ jni-sys-0.3.0 \ js-sys-0.3.56 \ lazy_static-1.4.0 \ libc-0.2.117 \ libloading-0.6.7 \ log-0.4.14 \ matches-0.1.9 \ memchr-2.4.1 \ multimap-0.8.3 \ neon-0.9.1 \ neon-build-0.9.1 \ neon-macros-0.9.1 \ neon-runtime-0.9.1 \ num_cpus-1.13.1 \ num_enum-0.5.6 \ num_enum_derive-0.5.6 \ once_cell-1.9.0 \ opaque-debug-0.3.0 \ percent-encoding-2.1.0 \ petgraph-0.5.1 \ pin-project-lite-0.2.8 \ pin-utils-0.1.0 \ ppv-lite86-0.2.16 \ proc-macro-crate-1.1.0 \ proc-macro2-1.0.36 \ prost-0.8.0 \ prost-build-0.8.0 \ prost-derive-0.8.0 \ prost-types-0.8.0 \ quote-1.0.15 \ rand-0.7.3 \ rand_chacha-0.2.2 \ rand_core-0.5.1 \ rand_hc-0.2.0 \ redox_syscall-0.2.10 \ regex-1.5.5 \ regex-syntax-0.6.25 \ remove_dir_all-0.5.3 \ ring-0.16.20 \ rustls-0.19.1 \ ryu-1.0.9 \ same-file-1.0.6 \ sct-0.6.1 \ semver-0.9.0 \ semver-parser-0.7.0 \ serde-1.0.136 \ serde_derive-1.0.136 \ serde_json-1.0.78 \ sha2-0.9.9 \ slab-0.4.5 \ smallvec-1.8.0 \ spin-0.5.2 \ static_assertions-1.1.0 \ subtle-2.4.1 \ syn-1.0.86 \ synstructure-0.12.6 \ tempfile-3.3.0 \ termcolor-1.1.2 \ thiserror-1.0.30 \ thiserror-impl-1.0.30 \ tinyvec-1.5.1 \ tinyvec_macros-0.1.0 \ tokio-1.16.1 \ toml-0.5.8 \ typenum-1.15.0 \ unicode-bidi-0.3.7 \ unicode-normalization-0.1.19 \ unicode-segmentation-1.9.0 \ unicode-xid-0.2.2 \ untrusted-0.7.1 \ ureq-2.2.0 \ url-2.2.2 \ version_check-0.9.4 \ walkdir-2.3.2 \ wasi-0.9.0+wasi-snapshot-preview1 \ wasm-bindgen-0.2.79 \ wasm-bindgen-backend-0.2.79 \ wasm-bindgen-macro-0.2.79 \ wasm-bindgen-macro-support-0.2.79 \ wasm-bindgen-shared-0.2.79 \ web-sys-0.3.56 \ webpki-0.21.4 \ webpki-roots-0.21.1 \ which-4.2.4 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ winapi-util-0.1.5 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ x25519-dalek-1.2.0 \ zeroize-1.3.0 \ zeroize_derive-1.3.2 CARGO_BUILD_ARGS= --features electron CARGO_INSTALL= no USE_LDCONFIG= yes MAKE_ENV= OUTPUT_DIR=${WEBRTCDIR}/out PLIST_FILES= lib/libringrtc.so post-extract: ${MKDIR} ${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/webrtc ${MV} ${WRKDIR}/webrtc-${WEBRTC_REV} ${WEBRTCDIR} ${MV} ${WRKDIR}/base ${WEBRTCDIR} ${MV} ${WRKDIR}/build ${WEBRTCDIR} ${MV} ${WRKDIR}/buildtools ${WEBRTCDIR} ${MV} ${WRKDIR}/testing ${WEBRTCDIR} ${MV} ${WRKDIR}/third_party ${WEBRTCDIR} ${MV} ${WRKDIR}/catapult ${WEBRTCDIR}/third_party ${MV} ${WRKDIR}/boringssl ${WEBRTCDIR}/third_party/boringssl/src ${MV} ${WRKDIR}/icu ${WEBRTCDIR}/third_party ${MV} ${WRKDIR}/libjpeg_turbo ${WEBRTCDIR}/third_party ${MV} ${WRKDIR}/libsrtp ${WEBRTCDIR}/third_party ${MV} ${WRKDIR}/libvpx ${WEBRTCDIR}/third_party/libvpx/source ${MV} ${WRKDIR}/libyuv ${WEBRTCDIR}/third_party ${MV} ${WRKDIR}/nasm ${WEBRTCDIR}/third_party post-patch: ${REINPLACE_CMD} "s|LOCALBASE|${LOCALBASE}|" \ ${WEBRTCDIR}/build/toolchain/gcc_toolchain.gni \ ${WEBRTCDIR}/buildtools/third_party/libc++/BUILD.gn - ${ECHO} "# Generated from 'DEPS'" > ${WEBRTCDIR}/build/config/gclient_args.gni - ${ECHO} 1591703586 > ${WEBRTCDIR}/build/util/LASTCHANGE.committime - ${ECHO} "qqchose " > ${WEBRTCDIR}/build/util/LASTCHANGE + ${ECHO_CMD} "# Generated from 'DEPS'" > ${WEBRTCDIR}/build/config/gclient_args.gni + ${ECHO_CMD} 1591703586 > ${WEBRTCDIR}/build/util/LASTCHANGE.committime + ${ECHO_CMD} "qqchose " > ${WEBRTCDIR}/build/util/LASTCHANGE pre-build: cd ${WEBRTCDIR} && \ ${SETENV} ${CONFIGURE_ENV} gn gen out/release --args='${GN_ARGS}' # build webrtc first, ringrtc needs libwebrtc.a cd ${WEBRTCDIR} \ && ${MAKE_ENV} CC=ccache CXX=ccache ninja -C out/release # it's not intended to be used outside of signal-desktop, put that in # /usr/local/share/ringrtc instead? do-install: ${INSTALL_LIB} ${CARGO_TARGET_DIR}/${CARGO_BUILD_TARGET}/release/libringrtc.so \ ${STAGEDIR}${PREFIX}/lib/ .include diff --git a/net-im/libsignal-node/Makefile b/net-im/libsignal-node/Makefile index 6dcaf9894fe3..e7eac32c7af2 100644 --- a/net-im/libsignal-node/Makefile +++ b/net-im/libsignal-node/Makefile @@ -1,268 +1,268 @@ PORTNAME= libsignal DISTVERSIONPREFIX= v DISTVERSION= 0.16.0 CATEGORIES= net-im MASTER_SITES= LOCAL/mikael/signal-desktop/:yarn PKGNAMESUFFIX= -node DISTFILES= libsignal-node-${DISTVERSION}-yarn-cache.tar.gz:yarn MAINTAINER= mikael@FreeBSD.org COMMENT= Platform-agnostic APIs used by the official Signal clients and servers LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= protoc:devel/protobuf \ yarn:www/yarn-node16 USES= cargo gmake python:3.7+,build USE_GITHUB= yes GH_ACCOUNT= signalapp CARGO_CRATES= addr2line-0.17.0 \ adler-1.0.2 \ aead-0.4.3 \ aes-0.7.5 \ aes-gcm-0.9.4 \ aes-gcm-siv-0.10.3 \ aho-corasick-0.7.18 \ anyhow-1.0.56 \ arrayref-0.3.6 \ async-trait-0.1.52 \ atty-0.2.14 \ autocfg-1.1.0 \ backtrace-0.3.64 \ base64-0.13.0 \ bincode-1.3.3 \ bitflags-1.3.2 \ blake2-0.9.2 \ block-buffer-0.9.0 \ block-modes-0.8.1 \ block-padding-0.2.1 \ bstr-0.2.17 \ bumpalo-3.7.1 \ byteorder-1.4.3 \ bytes-1.1.0 \ cast-0.2.7 \ cc-1.0.73 \ cesu8-1.1.0 \ cfg-if-1.0.0 \ chacha20-0.7.3 \ chacha20poly1305-0.8.2 \ chrono-0.4.19 \ cipher-0.3.0 \ clap-2.34.0 \ combine-4.6.3 \ cpufeatures-0.2.2 \ criterion-0.3.5 \ criterion-plot-0.4.4 \ crossbeam-channel-0.5.4 \ crossbeam-deque-0.8.1 \ crossbeam-epoch-0.9.8 \ crossbeam-utils-0.8.8 \ crypto-mac-0.8.0 \ crypto-mac-0.11.1 \ csv-1.1.6 \ csv-core-0.1.10 \ ctr-0.8.0 \ digest-0.9.0 \ displaydoc-0.2.3 \ either-1.6.1 \ fastrand-1.7.0 \ fixedbitset-0.4.1 \ foreign-types-0.3.2 \ foreign-types-shared-0.1.1 \ futures-core-0.3.21 \ futures-macro-0.3.21 \ futures-task-0.3.21 \ futures-util-0.3.21 \ generic-array-0.14.5 \ getrandom-0.1.16 \ getrandom-0.2.5 \ ghash-0.4.4 \ gimli-0.26.1 \ half-1.8.2 \ hashbrown-0.11.2 \ heck-0.3.3 \ hermit-abi-0.1.19 \ hex-0.4.3 \ hkdf-0.11.0 \ hmac-0.11.0 \ indexmap-1.8.0 \ instant-0.1.12 \ itertools-0.10.3 \ itoa-0.4.8 \ itoa-1.0.1 \ jni-0.19.0 \ jni-sys-0.3.0 \ js-sys-0.3.56 \ keccak-0.1.0 \ lazy_static-1.4.0 \ libc-0.2.121 \ libloading-0.6.7 \ libm-0.2.2 \ linkme-0.2.10 \ linkme-impl-0.2.10 \ log-0.4.14 \ log-panics-2.0.0 \ memchr-2.4.1 \ memoffset-0.6.5 \ miniz_oxide-0.4.4 \ multimap-0.8.3 \ neon-0.10.0 \ neon-build-0.10.0 \ neon-macros-0.10.0 \ neon-runtime-0.10.0 \ num-bigint-0.4.3 \ num-integer-0.1.44 \ num-iter-0.1.42 \ num-traits-0.2.14 \ num_cpus-1.13.1 \ num_enum-0.5.7 \ num_enum_derive-0.5.7 \ object-0.27.1 \ oid-0.2.1 \ once_cell-1.10.0 \ oorandom-11.1.3 \ opaque-debug-0.3.0 \ openssl-0.10.38 \ openssl-sys-0.9.72 \ paste-1.0.6 \ pem-0.8.3 \ pest-2.1.3 \ petgraph-0.6.0 \ picky-6.3.0 \ picky-asn1-0.3.3 \ picky-asn1-der-0.2.5 \ picky-asn1-x509-0.6.1 \ pin-project-lite-0.2.8 \ pin-utils-0.1.0 \ pkg-config-0.3.24 \ plotters-0.3.1 \ plotters-backend-0.3.2 \ plotters-svg-0.3.1 \ poly1305-0.7.2 \ polyval-0.5.3 \ ppv-lite86-0.2.16 \ proc-macro-crate-1.1.3 \ proc-macro2-1.0.29 \ prost-0.9.0 \ prost-build-0.9.0 \ prost-derive-0.9.0 \ prost-types-0.9.0 \ quote-1.0.10 \ rand-0.7.3 \ rand-0.8.5 \ rand_chacha-0.2.2 \ rand_chacha-0.3.1 \ rand_core-0.5.1 \ rand_core-0.6.3 \ rand_hc-0.2.0 \ rayon-1.5.1 \ rayon-core-1.9.1 \ redox_syscall-0.2.11 \ regex-1.5.5 \ regex-automata-0.1.10 \ regex-syntax-0.6.25 \ remove_dir_all-0.5.3 \ rsa-0.4.1 \ rustc-demangle-0.1.21 \ rustc_version-0.3.3 \ rustc_version-0.4.0 \ ryu-1.0.9 \ same-file-1.0.6 \ scopeguard-1.1.0 \ semver-0.9.0 \ semver-0.11.0 \ semver-1.0.6 \ semver-parser-0.7.0 \ semver-parser-0.10.2 \ serde-1.0.136 \ serde_bytes-0.11.5 \ serde_cbor-0.11.2 \ serde_derive-1.0.136 \ serde_json-1.0.79 \ sha-1-0.9.8 \ sha2-0.9.9 \ sha3-0.9.1 \ simple_asn1-0.5.4 \ slab-0.4.5 \ smallvec-1.8.0 \ snow-0.8.0 \ spin-0.5.2 \ static_assertions-1.1.0 \ subtle-2.4.1 \ syn-1.0.80 \ syn-mid-0.5.3 \ synstructure-0.12.6 \ tempfile-3.3.0 \ textwrap-0.11.0 \ thiserror-1.0.30 \ thiserror-impl-1.0.30 \ time-0.1.43 \ tinytemplate-1.2.1 \ toml-0.5.8 \ typenum-1.15.0 \ ucd-trie-0.1.3 \ unicode-segmentation-1.9.0 \ unicode-width-0.1.9 \ unicode-xid-0.2.2 \ universal-hash-0.4.1 \ unzip3-1.0.0 \ uuid-0.8.2 \ vcpkg-0.2.15 \ version_check-0.9.4 \ walkdir-2.3.2 \ wasi-0.9.0+wasi-snapshot-preview1 \ wasi-0.10.2+wasi-snapshot-preview1 \ wasm-bindgen-0.2.79 \ wasm-bindgen-backend-0.2.79 \ wasm-bindgen-macro-0.2.79 \ wasm-bindgen-macro-support-0.2.79 \ wasm-bindgen-shared-0.2.79 \ web-sys-0.3.56 \ which-4.2.4 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ winapi-util-0.1.5 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ x25519-dalek-1.1.1 \ zeroize-1.3.0 \ zeroize_derive-1.3.2 \ num-bigint-dig@git+https://github.com/dignifiedquire/num-bigint?rev=56576b592fea6341b7e1711a1629e4cc1bfc419c\#56576b592fea6341b7e1711a1629e4cc1bfc419c \ curve25519-dalek@git+https://github.com/signalapp/curve25519-dalek?branch=3.0.0-lizard2\#b3329ed05ce7ffae5b7c18b9b6e1fd3588eaf468 MAKE_ENV= ELECTRON_OVERRIDE_DIST_PATH=${LOCALBASE}/share/electron18 \ ELECTRON_SKIP_BINARY_DOWNLOAD=1 \ HOME=${WRKDIR} \ PYTHON=${PYTHON_CMD} \ XDG_CACHE_HOME=${WRKDIR}/.cache USE_LDCONFIG= yes PLIST_FILES= lib/libsignal_node.so post-patch: ${REINPLACE_CMD} "s#python3#${PYTHON_CMD}#" \ ${WRKSRC}/node/binding.gyp do-build: - ${ECHO} 'yarn-offline-mirror "../yarn-cache"' > ${WRKSRC}/.yarnrc + ${ECHO_CMD} 'yarn-offline-mirror "../yarn-cache"' > ${WRKSRC}/.yarnrc cd ${WRKSRC}/node && \ ${SETENV} ${MAKE_ENV} yarn install --frozen-lockfile --ignore-optional --offline cd ${WRKSRC}/node && \ ${SETENV} ${MAKE_ENV} yarn tsc do-install: ${INSTALL_DATA} ${WRKSRC}/node/build/Release/obj.target/libsignal_client_freebsd_x64.node/geni/rust/x86_64-unknown-freebsd/release/libsignal_node.so \ ${STAGEDIR}${PREFIX}/lib/ create-caches-tarball: # do some cleanup first ${RM} -r ${WRKDIR}/.cache/yarn/v6/.tmp ${FIND} ${WRKDIR}/.cache -type f -perm 755 -exec file {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM} cd ${WRKDIR} && \ ${TAR} czf libsignal-node-${DISTVERSION}-yarn-cache.tar.gz .cache yarn-cache .include diff --git a/net-im/signal-desktop/Makefile b/net-im/signal-desktop/Makefile index 75f02ca82770..9f2508ae86e9 100644 --- a/net-im/signal-desktop/Makefile +++ b/net-im/signal-desktop/Makefile @@ -1,183 +1,183 @@ PORTNAME= signal-desktop DISTVERSIONPREFIX= v DISTVERSION= 5.46.0 CATEGORIES= net-im MASTER_SITES= LOCAL/mikael/signal-desktop/:yarn \ LOCAL/mikael/signal-desktop/:electron_gyp \ LOCAL/mikael/signal-desktop/:npm \ LOCAL/mikael/signal-desktop/:sqlite DISTFILES= signal-desktop-${DISTVERSION}-yarn-cache.tar.gz:yarn \ signal-desktop-${DISTVERSION}-electron-gyp-cache.tar.gz:electron_gyp \ signal-desktop-${DISTVERSION}-npm-cache.tar.gz:npm \ sqlcipher.tar.gz:sqlite MAINTAINER= mikael@FreeBSD.org COMMENT= Cross-platform centralized encrypted messaging service LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${LOCALBASE}/lib/libringrtc.so:multimedia/ringrtc \ ${LOCALBASE}/lib/libsignal_node.so:net-im/libsignal-node \ app-builder>0:devel/app-builder \ electron18:devel/electron18 \ npm:www/npm-node16 \ openssl>0:security/openssl \ vips>0:graphics/vips \ yarn:www/yarn-node16 LIB_DEPENDS= libasound.so:audio/alsa-lib \ libatk-bridge-2.0.so:accessibility/at-spi2-atk \ libatspi.so:accessibility/at-spi2-core \ libcups.so:print/cups \ libdbus-1.so:devel/dbus \ libdrm.so:graphics/libdrm \ libexpat.so:textproc/expat2 \ libFLAC.so:audio/flac \ libfontconfig.so:x11-fonts/fontconfig \ libharfbuzz-subset.so:print/harfbuzz \ libharfbuzz.so:print/harfbuzz \ libnspr4.so:devel/nspr \ libnss3.so:security/nss \ libnssutil3.so:security/nss \ libopenh264.so:multimedia/openh264 \ libopus.so:audio/opus \ libpci.so:devel/libpci \ libplc4.so:devel/nspr \ libplds4.so:devel/nspr \ libpng16.so:graphics/png \ libsmime3.so:security/nss \ libsnappy.so:archivers/snappy \ libwebp.so:graphics/webp \ libwebpdemux.so:graphics/webp \ libwebpmux.so:graphics/webp \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence USES= desktop-file-utils gettext-runtime gl gnome jpeg xorg USE_GITHUB= yes GH_ACCOUNT= signalapp GH_PROJECT= Signal-Desktop USE_GL= gbm gl USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk30 libxml2 libxslt pango USE_XORG= x11 xcb xcomposite xdamage xext xfixes xi xrandr xrender xtst PACKAGE_ENV= SIGNAL_ENV=production MAKE_ENV+= ELECTRON_OVERRIDE_DIST_PATH=${LOCALBASE}/share/electron18 \ HOME=${WRKDIR} \ PLAYWRIGHT_BROWSERS_PATH=${WRKDIR}/.cache \ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=true \ PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true \ USE_SYSTEM_APP_BUILDER=true # Don't download electron binary distribution on electron node_modules installation MAKE_ENV+= ELECTRON_SKIP_BINARY_DOWNLOAD=1 # Don't create __pycache__ directory when executing node-gyp # This is a workaround to avoid filesystem violations during poudriere build MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1 _BUILD_DATE= $$(date +'%s') NPM_SIGNAL_DIR= npm-@signalapp-libsignal-client-0.16.0-7acba54b7ba05f513cdcf7f555efa1ccc6ce0145-integrity NPM_RINGRTC_DIR= npm-ringrtc-2.20.8-ebd88d19b7a520f5887e5bed529db9fa5631d07e NPM_SQLITE3_DIR= npm-better-sqlite3-7.5.0-3c4a7eebba3d5f5d8cb88fe83be1c01b8c0dea7d NPM_PLAYWRITE_DIR= npm-playwright-core-1.17.1-a16e0f89284a0ed8ae6d77e1c905c84b8a2ba022-integrity NPM_ESBUILD_VERS= 0.14.28 NPM_ESBUILD_DIR= npm-esbuild-${NPM_ESBUILD_VERS}-7738635d2ea19e446bd319d83a1802545e6aebb8-integrity post-patch: ${REINPLACE_CMD} "s#%%EPOCH%%#${_BUILD_DATE}#" \ ${WRKSRC}/ts/scripts/get-expire-time.ts do-build: - ${ECHO} 'yarn-offline-mirror "../yarn-cache"' > ${WRKSRC}/.yarnrc + ${ECHO_CMD} 'yarn-offline-mirror "../yarn-cache"' > ${WRKSRC}/.yarnrc # electron-builder is stupid and tries to open ${LOCALBASE}/share/electron18/electron with WRITE priv # copy ${LOCALBASE}/share/electron18 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) @${CP} -pR ${LOCALBASE}/share/electron18 ${WRKDIR}/electron18 ${CHMOD} -R a+w ${WRKDIR}/electron18 # 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-x64 \ ${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/ringrtc/build/freebsd ${CP} ${LOCALBASE}/lib/libsignal_node.so \ ${WRKDIR}/.cache/yarn/v6/${NPM_SIGNAL_DIR}/node_modules/@signalapp/libsignal-client/prebuilds/freebsd-x64/node.napi.node ${CP} ${LOCALBASE}/lib/libringrtc.so \ ${WRKDIR}/.cache/yarn/v6/${NPM_RINGRTC_DIR}/node_modules/ringrtc/build/freebsd/libringrtc-x64.node # sqlcipher.tar.gz requires git-lfs to fetch, just copy a previously downloaded one (I've had to use ubuntu for that, # as I didn't manage to do it with FreeBSD, see https://github.com/signalapp/Signal-Desktop/blob/development/CONTRIBUTING.md for instructions) ${MKDIR} ${WRKDIR}/.cache/yarn/v6/${NPM_SQLITE3_DIR}/node_modules/better-sqlite3/deps ${CP} ${DISTDIR}/sqlcipher.tar.gz \ ${WRKDIR}/.cache/yarn/v6/${NPM_SQLITE3_DIR}/node_modules/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 ${MKDIR} ${WRKDIR}/esbuild-freebsd-64-${NPM_ESBUILD_VERS} ${TAR} -xf ${WRKDIR}/yarn-cache/esbuild-freebsd-64-${NPM_ESBUILD_VERS}.tgz -C ${WRKDIR}/esbuild-freebsd-64-${NPM_ESBUILD_VERS} ${CP} ${WRKDIR}/esbuild-freebsd-64-${NPM_ESBUILD_VERS}/package/bin/esbuild \ ${WRKDIR}/.cache/yarn/v6/${NPM_ESBUILD_DIR}/node_modules/esbuild/lib/downloaded-esbuild-freebsd-64-esbuild # # For online build # ${RM} ${WRKDIR}/.npmrc # cd ${WRKSRC} && \ # ${SETENV} ${MAKE_ENV} yarn install --frozen-lockfile --ignore-optional # cd ${WRKSRC} && \ # ${SETENV} ${MAKE_ENV} yarn generate # cd ${WRKSRC} && \ # ${SETENV} ${MAKE_ENV} yarn build:webpack # For offline build - ${ECHO} offline=true > ${WRKDIR}/.npmrc + ${ECHO_CMD} offline=true > ${WRKDIR}/.npmrc cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} yarn install --frozen-lockfile --ignore-optional --offline cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} yarn --offline generate cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} yarn --offline build:webpack do-install: # taken from https://github.com/tagattie/FreeBSD-Electron/blob/master/Mk/Uses/electron.mk#L387 # and editors/vscode cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} ${PACKAGE_ENV} yarn run electron-builder \ --linux --dir --config.npmRebuild=false \ --config.electronVersion=18 \ --config.electronDist=${WRKDIR}/electron18 ${MKDIR} ${STAGEDIR}${DATADIR} cd ${BUILD_WRKSRC}/dist/linux-unpacked && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKSRC}/images/signal-logo-desktop-linux.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/signal-desktop.png ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.desktop \ ${STAGEDIR}${PREFIX}/share/applications .for f in chromedriver mksnapshot v8_context_snapshot_generator ${RM} ${STAGEDIR}${DATADIR}/${f} .endfor ${RM} -r ${STAGEDIR}${DATADIR}/gen ${RM} -r ${STAGEDIR}${DATADIR}/node_headers ${RM} -r ${STAGEDIR}${DATADIR}/resources/completions ${RLN} ${STAGEDIR}${DATADIR}/signal-desktop ${STAGEDIR}${PREFIX}/bin create-caches-tarball: # do some cleanup first ${RM} -r ${WRKDIR}/.npm/_logs ${WRKDIR}/.npm/_update-notifier-last-checked ${WRKDIR}/.cache/yarn/v6/.tmp ${FIND} ${WRKDIR}/.cache -type f -perm 755 -exec file {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM} cd ${WRKDIR} && \ ${TAR} czf signal-desktop-${DISTVERSION}-yarn-cache.tar.gz .cache yarn-cache cd ${WRKDIR} && \ ${TAR} czf signal-desktop-${DISTVERSION}-electron-gyp-cache.tar.gz .electron-gyp cd ${WRKDIR} && \ ${TAR} czf signal-desktop-${DISTVERSION}-npm-cache.tar.gz .npm .include