diff --git a/pkgs/by-name/el/element-web-unwrapped/package.nix b/pkgs/by-name/el/element-web-unwrapped/package.nix index 284a790e4a05..577dcd831cc4 100644 --- a/pkgs/by-name/el/element-web-unwrapped/package.nix +++ b/pkgs/by-name/el/element-web-unwrapped/package.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation ( runHook preInstall cp -R webapp $out - tar --extract --to-stdout --file ${jitsi-meet.src} jitsi-meet/libs/external_api.min.js > $out/jitsi_external_api.min.js + cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js echo "${finalAttrs.version}" > "$out/version" jq -s '.[0] * $conf' "config.sample.json" --argjson "conf" '${builtins.toJSON noPhoningHome}' > "$out/config.json" diff --git a/pkgs/by-name/ji/jitsi-meet/package.nix b/pkgs/by-name/ji/jitsi-meet/package.nix index 90cad423959c..50425b233027 100644 --- a/pkgs/by-name/ji/jitsi-meet/package.nix +++ b/pkgs/by-name/ji/jitsi-meet/package.nix @@ -1,26 +1,50 @@ { lib, stdenv, - fetchurl, nixosTests, + + fetchFromGitHub, + fetchNpmDeps, + npmHooks, + + libarchive, + nodejs, + olm, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "jitsi-meet"; - version = "1.0.8043"; + version = "1.0.8792"; - src = fetchurl { - url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2"; - sha256 = "XJlfCMQXnHjfHQhK916RXsdPzrU2U2IaOMiXIHL1sCI="; + src = fetchFromGitHub { + owner = "jitsi"; + repo = "jitsi-meet"; + tag = lib.last (lib.splitVersion finalAttrs.version); + hash = "sha256-K4Xrse1kpNqlUChbQnAjP5lRCRuDfJKiN/022tCmMVQ="; }; - dontBuild = true; + env = { + makeFlags = "source-package"; + makeCacheWritable = true; + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-2NPfr3gskHz9zSGs//uzyCCuE+CZ295hhitDPlS9xuY="; + }; + }; + nativeBuildInputs = [ + libarchive + nodejs + npmHooks.npmConfigHook + ]; + + # yes, the only way in the build system is to generate a tarball and extract + # it immediately after installPhase = '' runHook preInstall - mkdir $out - mv * $out/ + mkdir -p $out + bsdtar -xf jitsi-meet.tar.bz2 -C $out --strip-components 1 runHook postInstall ''; @@ -31,16 +55,16 @@ stdenv.mkDerivation rec { passthru.updateScript = ./update.sh; - meta = with lib; { + meta = { description = "Secure, Simple and Scalable Video Conferences"; longDescription = '' Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Jitsi Videobridge to provide high quality, secure and scalable video conferences. ''; homepage = "https://github.com/jitsi/jitsi-meet"; - license = licenses.asl20; - teams = [ teams.jitsi ]; - platforms = platforms.all; + license = lib.licenses.asl20; + teams = [ lib.teams.jitsi ]; + inherit (nodejs.meta) platforms; inherit (olm.meta) knownVulnerabilities; }; -} +}) diff --git a/pkgs/by-name/ji/jitsi-meet/update.sh b/pkgs/by-name/ji/jitsi-meet/update.sh index 1ccf45fd1a4c..12fb08e99c02 100755 --- a/pkgs/by-name/ji/jitsi-meet/update.sh +++ b/pkgs/by-name/ji/jitsi-meet/update.sh @@ -1,12 +1,12 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl pup common-updater-scripts +#!nix-shell -i bash -p curl pup nix-update set -eu -o pipefail -version="$(curl https://download.jitsi.org/stable/ | \ - pup 'a[href] text{}' | \ - awk -F'[_-]' '/jitsi-meet-web_/ {printf $4"\n"}' | \ - sort -Vu | \ - tail -n 1)" +version="$(curl https://download.jitsi.org/jitsi-meet/src/ | + pup 'a[href] text{}' | + awk -F'-|.tar.bz2' '/jitsi-meet-/ {printf $3"\n"}' | + sort -Vu | + tail -n 1)" -update-source-version jitsi-meet "$version" +nix-update --version="$version" jitsi-meet