]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - pkgs/impure/peertube/default.nix
Add peertube (impure) derivation to pkgs
[perso/Immae/Config/Nix.git] / pkgs / impure / peertube / default.nix
diff --git a/pkgs/impure/peertube/default.nix b/pkgs/impure/peertube/default.nix
new file mode 100644 (file)
index 0000000..89fcb04
--- /dev/null
@@ -0,0 +1,58 @@
+{ 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 ];
+}