]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - pkgs/impure/peertube/default.nix
Add peertube (impure) derivation to pkgs
[perso/Immae/Config/Nix.git] / pkgs / impure / peertube / default.nix
1 { stdenv, fetchzip, cacert, mylibs, python, git, yarn, nodejs }:
2 let
3 # Doesn't seem to work
4 # patchedPackages = stdenv.mkDerivation (fetchedGithub ./peertube.json // rec {
5 # patches = [ ./ldap.patch ];
6 # installPhase = ''
7 # mkdir $out
8 # cp package.json yarn.lock $out/
9 # '';
10 # });
11 # yarnModules = pkgs.yarn2nix.mkYarnModules {
12 # name = "peertube-yarn-modules";
13 # packageJSON = "${patchedPackages}/package.json";
14 # yarnLock = "${patchedPackages}/yarn.lock";
15 # yarnNix = ./yarn-packages.nix;
16 # };
17 patchedServer = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec {
18 __noChroot = true;
19 patches = [
20 ./ldap.patch
21 ./sendmail.patch
22 ];
23 buildPhase = ''
24 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
25 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
26 export HOME=$PWD
27 yarn install --pure-lockfile
28 npm run build:server
29 '';
30 installPhase = ''
31 mkdir $out
32 cp -a dist/server $out
33 '';
34 buildInputs = [ python git yarn nodejs ];
35 });
36 in
37 stdenv.mkDerivation rec {
38 __noChroot = true;
39 version = "v1.2.0";
40 name = "peertube-${version}";
41 src = fetchzip {
42 url = "https://github.com/Chocobozzz/PeerTube/releases/download/${version}/${name}.zip";
43 sha256 = "18fp3fy1crw67gdpc29nr38b5zy2f68l70w47zwp7dzhd8bbbipp";
44 };
45 patches = [ ./ldap_yarn.patch ];
46 buildPhase = ''
47 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
48 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
49 export HOME=$PWD
50 yarn install --production --pure-lockfile
51 rm -rf dist/server && cp -a ${patchedServer}/server dist
52 '';
53 installPhase = ''
54 mkdir $out
55 cp -a * $out
56 '';
57 buildInputs = [ yarn git python ];
58 }