--- /dev/null
+{ 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 ];
+}