tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
freetube: build from source
pluie.me
1 year ago
13faeaf2
c4435d0b
verified
This commit was signed with the committer's
known signature
.
pluie.me
SSH Key Fingerprint:
SHA256:YtI1D7vlcZ4obaiJ4tQihtswcMhHKdfYZuc4whOX2y8=
+98
-33
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
fr
freetube
package.nix
patch-build-script.patch
+85
-33
pkgs/by-name/fr/freetube/package.nix
···
1
{
2
-
stdenv,
3
lib,
4
-
fetchurl,
5
-
appimageTools,
6
-
makeWrapper,
0
0
0
0
0
0
0
0
7
electron,
0
8
nixosTests,
9
}:
10
-
11
-
stdenv.mkDerivation rec {
0
0
12
pname = "freetube";
13
version = "0.22.1";
14
15
-
src = fetchurl {
16
-
url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
17
-
hash = "sha256-HbU5yRSP5Gk473ZoQL3HD2Bph/U/sq1Dd0eFpxyKc9s=";
0
0
18
};
19
20
-
passthru.tests = nixosTests.freetube;
0
0
0
0
0
0
0
0
0
0
21
22
-
appimageContents = appimageTools.extractType2 { inherit pname version src; };
23
-
24
-
dontUnpack = true;
25
-
dontConfigure = true;
26
-
dontBuild = true;
27
28
-
nativeBuildInputs = [ makeWrapper ];
0
0
0
29
30
-
installPhase = ''
31
-
runHook preInstall
0
0
0
0
0
32
33
-
mkdir -p $out/bin $out/share/${pname} $out/share/applications $out/share/icons/hicolor/scalable/apps
0
0
0
0
0
0
34
35
-
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
36
-
cp -a ${appimageContents}/freetube.desktop $out/share/applications/${pname}.desktop
37
-
cp -a ${appimageContents}/usr/share/icons/hicolor/scalable/freetube.svg $out/share/icons/hicolor/scalable/apps
38
39
-
substituteInPlace $out/share/applications/${pname}.desktop \
40
-
--replace 'Exec=AppRun' 'Exec=${pname}'
0
0
0
0
0
0
0
0
41
42
-
runHook postInstall
43
-
'';
0
0
0
0
0
0
0
0
0
0
0
0
44
45
-
postFixup = ''
46
-
makeWrapper ${electron}/bin/electron $out/bin/${pname} \
47
-
--add-flags $out/share/${pname}/resources/app.asar \
48
-
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime=true}}"
49
-
'';
50
51
meta = {
52
-
description = "Open Source YouTube app for privacy";
53
homepage = "https://freetubeapp.io/";
54
license = lib.licenses.agpl3Only;
55
maintainers = with lib.maintainers; [
···
61
inherit (electron.meta) platforms;
62
mainProgram = "freetube";
63
};
64
-
}
···
1
{
0
2
lib,
3
+
stdenvNoCC,
4
+
fetchFromGitHub,
5
+
fetchYarnDeps,
6
+
replaceVars,
7
+
makeDesktopItem,
8
+
9
+
nodejs,
10
+
yarnConfigHook,
11
+
yarnBuildHook,
12
+
makeShellWrapper,
13
+
copyDesktopItems,
14
electron,
15
+
16
nixosTests,
17
}:
18
+
let
19
+
description = "Open Source YouTube app for privacy";
20
+
in
21
+
stdenvNoCC.mkDerivation (finalAttrs: {
22
pname = "freetube";
23
version = "0.22.1";
24
25
+
src = fetchFromGitHub {
26
+
owner = "FreeTubeApp";
27
+
repo = "FreeTube";
28
+
tag = "v${finalAttrs.version}-beta";
29
+
hash = "sha256-FND4jYnNeqsyCXkVB+DKr8hu720+XEjOZJ/iRZGI3y8=";
30
};
31
32
+
# Darwin requires writable Electron dist
33
+
postUnpack =
34
+
if stdenvNoCC.hostPlatform.isDarwin then
35
+
''
36
+
cp -r ${electron.dist} electron-dist
37
+
chmod -R u+w electron-dist
38
+
''
39
+
else
40
+
''
41
+
ln -s ${electron.dist} electron-dist
42
+
'';
43
44
+
patches = [
45
+
(replaceVars ./patch-build-script.patch {
46
+
electron-version = electron.version;
47
+
})
48
+
];
49
50
+
yarnOfflineCache = fetchYarnDeps {
51
+
yarnLock = "${finalAttrs.src}/yarn.lock";
52
+
hash = "sha256-cvRnPxRy3oawZUu97qYu+IgbXLYej/kykrCDJ4qLvIg=";
53
+
};
54
55
+
nativeBuildInputs = [
56
+
nodejs
57
+
yarnConfigHook
58
+
yarnBuildHook
59
+
makeShellWrapper
60
+
copyDesktopItems
61
+
];
62
63
+
installPhase =
64
+
''
65
+
runHook preInstall
66
+
''
67
+
+ lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
68
+
mkdir -p $out/share/freetube
69
+
cp -r build/*-unpacked/{locales,resources{,.pak}} -t $out/share/freetube
70
71
+
makeWrapper ${lib.getExe electron} $out/bin/freetube \
72
+
--add-flags "$out/share/freetube/resources/app.asar" \
73
+
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
74
75
+
install -D _icons/icon.svg $out/share/icons/hicolor/scalable/apps/freetube.svg
76
+
''
77
+
+ lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
78
+
mkdir -p $out/Applications
79
+
cp -r build/mac*/FreeTube.app $out/Applications
80
+
ln -s "$out/Applications/FreeTube.app/Contents/MacOS/FreeTube" $out/bin/freetube
81
+
''
82
+
+ ''
83
+
runHook postInstall
84
+
'';
85
86
+
desktopItems = [
87
+
(makeDesktopItem {
88
+
name = "freetube";
89
+
desktopName = "FreeTube";
90
+
comment = description;
91
+
exec = "freetube %U";
92
+
terminal = false;
93
+
type = "Application";
94
+
icon = "freetube";
95
+
startupWMClass = "FreeTube";
96
+
mimeTypes = [ "x-scheme-handler/freetube" ];
97
+
categories = [ "Network" ];
98
+
})
99
+
];
100
101
+
passthru.tests = nixosTests.freetube;
0
0
0
0
102
103
meta = {
104
+
inherit description;
105
homepage = "https://freetubeapp.io/";
106
license = lib.licenses.agpl3Only;
107
maintainers = with lib.maintainers; [
···
113
inherit (electron.meta) platforms;
114
mainProgram = "freetube";
115
};
116
+
})
+13
pkgs/by-name/fr/freetube/patch-build-script.patch
···
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
diff --git a/_scripts/ebuilder.config.js b/_scripts/ebuilder.config.js
2
+
index 5b79d961..9f5945d2 100644
3
+
--- a/_scripts/ebuilder.config.js
4
+
+++ b/_scripts/ebuilder.config.js
5
+
@@ -1,6 +1,8 @@
6
+
const { name, productName } = require('../package.json')
7
+
8
+
const config = {
9
+
+ electronVersion: "@electron-version@",
10
+
+ electronDist: "electron-dist",
11
+
appId: `io.freetubeapp.${name}`,
12
+
copyright: 'Copyleft © 2020-2024 freetubeapp@protonmail.com',
13
+
// asar: false,