{ ldap ? false, sendmail ? false, light ? null, syden ? false, runCommand, libsass , lib, stdenv, rsync, fetchzip, youtube-dl, fetchurl, mylibs, python, nodejs, nodePackages, yarn2nix-moretea }: let nodeHeaders = fetchurl { url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz"; sha256 = "17kf05a92r4y4n1lj78265wr6zhkpzbr1k8nbwrl8sq71npd6n5j"; }; source = mylibs.fetchedGithub ./peertube.json; patchedSource = stdenv.mkDerivation (source // rec { phases = [ "unpackPhase" "patchPhase" "installPhase" ]; patches = [ ./yarn_fix_http_node.patch ] ++ lib.optionals ldap [ ./ldap.patch ] ++ lib.optionals sendmail [ ./sendmail.patch ] ++ lib.optionals syden [ ./syden.patch ]; installPhase = '' mkdir $out cp -a . $out/ ''; }); serverPatchedPackage = runCommand "server-package" {} '' mkdir -p $out cp ${patchedSource}/package.json $out/ cp ${patchedSource}/yarn.lock $out/ ''; clientPatchedPackage = runCommand "client-package" {} '' mkdir -p $out cp ${patchedSource}/client/package.json $out/ cp ${patchedSource}/client/yarn.lock $out/ ''; yarnModulesConfig = { bcrypt = { buildInputs = [ nodePackages.node-pre-gyp ]; postInstall = let node_module_version = "72"; bcrypt_lib = fetchurl { url = "https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.7/bcrypt_lib-v3.0.7-node-v${node_module_version}-linux-x64-glibc.tar.gz"; sha256 = "0kpm9j0yc4lqsafldfsql3m72rr1fapljlb6ddxvy3zi13rb7ppx"; }; in '' if [ "$(node -e "console.log(process.versions.modules)")" != "${node_module_version}" ]; then echo "mismatching version with nodejs please update bcrypt derivation" false fi mkdir lib && tar -C lib -xf ${bcrypt_lib} patchShebangs ../node-pre-gyp npm run install ''; }; dtrace-provider = { buildInputs = [ python nodePackages.node-gyp ]; postInstall = '' npx node-gyp rebuild --tarball=${nodeHeaders} ''; }; node-sass = { buildInputs = [ libsass python ]; postInstall = '' node scripts/build.js --tarball=${nodeHeaders} ''; }; sharp = { buildInputs = [ python nodePackages.node-gyp ]; postInstall = let tarball = fetchurl { url = "https://github.com/lovell/sharp-libvips/releases/download/v8.8.1/libvips-8.8.1-linux-x64.tar.gz"; sha256 = "0xqv61g6s6rkvc31zq9a3bf8rp56ijnpw0xhr91hc88asqprd5yh"; }; in '' mkdir vendor tar -C vendor -xf ${tarball} patchShebangs ../prebuild-install npx node install/libvips npx node install/dll-copy npx prebuild-install || npx node-gyp rebuild --tarball=${nodeHeaders} ''; }; utf-8-validate = { buildInputs = [ nodePackages.node-gyp-build ]; }; youtube-dl = { postInstall = '' mkdir bin ln -s ${youtube-dl}/bin/youtube-dl bin/youtube-dl cat > bin/details <