diff options
Diffstat (limited to 'flakes/peertube/flake.nix')
-rw-r--r-- | flakes/peertube/flake.nix | 56 |
1 files changed, 11 insertions, 45 deletions
diff --git a/flakes/peertube/flake.nix b/flakes/peertube/flake.nix index 2a594c0..9a5c557 100644 --- a/flakes/peertube/flake.nix +++ b/flakes/peertube/flake.nix | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | outputs = { self, myuids, nixpkgs, peertube, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: | 15 | outputs = { self, myuids, nixpkgs, peertube, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: |
16 | let | 16 | let |
17 | version = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.peertube.locked.rev; | ||
18 | pkgs = import nixpkgs { inherit system; overlays = [ | 17 | pkgs = import nixpkgs { inherit system; overlays = [ |
19 | (self: super: { nodejs = self.nodejs-12_x; }) | 18 | (self: super: { nodejs = self.nodejs-12_x; }) |
20 | ]; }; | 19 | ]; }; |
@@ -22,7 +21,7 @@ | |||
22 | 21 | ||
23 | patchedSource = stdenv.mkDerivation { | 22 | patchedSource = stdenv.mkDerivation { |
24 | pname = "peertube"; | 23 | pname = "peertube"; |
25 | inherit version; | 24 | version = peertube.rev; |
26 | src = peertube; | 25 | src = peertube; |
27 | phases = [ "unpackPhase" "patchPhase" "installPhase" ]; | 26 | phases = [ "unpackPhase" "patchPhase" "installPhase" ]; |
28 | patches = [ ./fix_yarn_lock.patch ]; | 27 | patches = [ ./fix_yarn_lock.patch ]; |
@@ -71,55 +70,16 @@ | |||
71 | }); | 70 | }); |
72 | 71 | ||
73 | server = callPackage ./server.nix { | 72 | server = callPackage ./server.nix { |
74 | inherit version yarnModulesConfig mkYarnModules'; | 73 | inherit yarnModulesConfig mkYarnModules'; |
75 | sources = patchedSource; | 74 | sources = patchedSource; |
76 | }; | 75 | }; |
77 | client = callPackage ./client.nix { | 76 | client = callPackage ./client.nix { |
78 | inherit server version yarnModulesConfig mkYarnModules'; | 77 | inherit server yarnModulesConfig mkYarnModules'; |
79 | sources = patchedSource; | 78 | sources = patchedSource; |
80 | }; | 79 | }; |
81 | 80 | ||
82 | in rec { | 81 | in rec { |
83 | packages.peertube = stdenv.mkDerivation rec { | 82 | packages.peertube = callPackage ./. { inherit server client; src = patchedSource; }; |
84 | inherit version; | ||
85 | pname = "peertube"; | ||
86 | src = patchedSource; | ||
87 | buildPhase = '' | ||
88 | ln -s ${server.modules}/node_modules . | ||
89 | rm -rf dist && cp -a ${server.dist}/dist dist | ||
90 | rm -rf client/dist && cp -a ${client.dist}/dist client/ | ||
91 | ''; | ||
92 | installPhase = '' | ||
93 | mkdir $out | ||
94 | cp -a * $out | ||
95 | ln -s /tmp $out/.cache | ||
96 | ''; | ||
97 | |||
98 | meta = { | ||
99 | description = "A free software to take back control of your videos"; | ||
100 | |||
101 | longDescription = '' | ||
102 | PeerTube aspires to be a decentralized and free/libre alternative to video | ||
103 | broadcasting services. | ||
104 | PeerTube is not meant to become a huge platform that would centralize | ||
105 | videos from all around the world. Rather, it is a network of | ||
106 | inter-connected small videos hosters. | ||
107 | Anyone with a modicum of technical skills can host a PeerTube server, aka | ||
108 | an instance. Each instance hosts its users and their videos. In this way, | ||
109 | every instance is created, moderated and maintained independently by | ||
110 | various administrators. | ||
111 | You can still watch from your account videos hosted by other instances | ||
112 | though if the administrator of your instance had previously connected it | ||
113 | with other instances. | ||
114 | ''; | ||
115 | |||
116 | license = stdenv.lib.licenses.agpl3Plus; | ||
117 | |||
118 | homepage = "https://joinpeertube.org/"; | ||
119 | |||
120 | platforms = stdenv.lib.platforms.unix; | ||
121 | }; | ||
122 | }; | ||
123 | defaultPackage = packages.peertube; | 83 | defaultPackage = packages.peertube; |
124 | legacyPackages.peertube = packages.peertube; | 84 | legacyPackages.peertube = packages.peertube; |
125 | checks = { | 85 | checks = { |
@@ -196,7 +156,13 @@ | |||
196 | }; | 156 | }; |
197 | }; | 157 | }; |
198 | } | 158 | } |
199 | ) // { | 159 | ) // rec { |
160 | overlays = { | ||
161 | peertube = final: prev: { | ||
162 | peertube = self.defaultPackage."${final.system}"; | ||
163 | }; | ||
164 | }; | ||
165 | overlay = overlays.peertube; | ||
200 | nixosModule = { lib, pkgs, config, ... }: | 166 | nixosModule = { lib, pkgs, config, ... }: |
201 | let | 167 | let |
202 | name = "peertube"; | 168 | name = "peertube"; |