{ stdenv, fetchzip, cacert, mylibs, python, git, yarn, nodejs }: let # Doesn't seem to work # patchedPackages = stdenv.mkDerivation (fetchedGithub ./peertube.json // rec { # patches = [ ./ldap.patch ]; # installPhase = '' # mkdir $out # cp package.json yarn.lock $out/ # ''; # }); # yarnModules = pkgs.yarn2nix.mkYarnModules { # name = "peertube-yarn-modules"; # packageJSON = "${patchedPackages}/package.json"; # yarnLock = "${patchedPackages}/yarn.lock"; # yarnNix = ./yarn-packages.nix; # }; patchedServer = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec { __noChroot = true; patches = [ ./ldap.patch ./sendmail.patch ]; buildPhase = '' export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt export HOME=$PWD yarn install --pure-lockfile npm run build:server ''; installPhase = '' mkdir $out cp -a dist/server $out ''; buildInputs = [ python git yarn nodejs ]; }); in stdenv.mkDerivation rec { __noChroot = true; version = "v1.2.0"; name = "peertube-${version}"; src = fetchzip { url = "https://github.com/Chocobozzz/PeerTube/releases/download/${version}/${name}.zip"; sha256 = "18fp3fy1crw67gdpc29nr38b5zy2f68l70w47zwp7dzhd8bbbipp"; }; patches = [ ./ldap_yarn.patch ]; buildPhase = '' export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt export HOME=$PWD yarn install --production --pure-lockfile rm -rf dist/server && cp -a ${patchedServer}/server dist ''; installPhase = '' mkdir $out cp -a * $out ''; buildInputs = [ yarn git python ]; }