manually set up new freetube
This commit is contained in:
parent
36434fbb4b
commit
a7c2609666
5 changed files with 138 additions and 1 deletions
|
@ -21,6 +21,7 @@
|
|||
lutris
|
||||
vscodium
|
||||
intiface-central
|
||||
unrar
|
||||
];
|
||||
|
||||
programs.mangohud = {
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
dvt
|
||||
servo
|
||||
restart
|
||||
freetube-0236
|
||||
|
||||
# System tools
|
||||
aha
|
||||
|
@ -91,7 +92,7 @@
|
|||
#rustdesk
|
||||
])
|
||||
++ (with pkgs-edge; [
|
||||
freetube
|
||||
# freetube
|
||||
# list of latest packages from nixpkgs master
|
||||
# Can be used to install latest version of some packages
|
||||
]);
|
||||
|
|
|
@ -14,4 +14,5 @@ pkgs: {
|
|||
phanpy = pkgs.callPackage ./phanpy {};
|
||||
auto-mount = pkgs.callPackage ./auto-mount {};
|
||||
simple-completion-language-server = pkgs.callPackage ./simple-completion-language-server {};
|
||||
freetube-0236 = pkgs.callPackage ./freetube-0.23.6 {};
|
||||
}
|
||||
|
|
121
pkgs/freetube-0.23.6/default.nix
Normal file
121
pkgs/freetube-0.23.6/default.nix
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
fetchYarnDeps,
|
||||
replaceVars,
|
||||
makeDesktopItem,
|
||||
|
||||
nodejs,
|
||||
yarnConfigHook,
|
||||
yarnBuildHook,
|
||||
makeShellWrapper,
|
||||
copyDesktopItems,
|
||||
electron,
|
||||
|
||||
nixosTests,
|
||||
}:
|
||||
let
|
||||
description = "Open Source YouTube app for privacy";
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "freetube";
|
||||
version = "0.23.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeTubeApp";
|
||||
repo = "FreeTube";
|
||||
tag = "v${finalAttrs.version}-beta";
|
||||
hash = "sha256-Z1L45RHlmylfqKBY37PC5TQ3ubOgH0AHFGM7VkmtkZ0=";
|
||||
};
|
||||
|
||||
# Darwin requires writable Electron dist
|
||||
postUnpack =
|
||||
if stdenvNoCC.hostPlatform.isDarwin then
|
||||
''
|
||||
cp -r ${electron.dist} electron-dist
|
||||
chmod -R u+w electron-dist
|
||||
''
|
||||
else
|
||||
''
|
||||
ln -s ${electron.dist} electron-dist
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(replaceVars ./patch-build-script.patch {
|
||||
electron-version = electron.version;
|
||||
})
|
||||
];
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/yarn.lock";
|
||||
hash = "sha256-ia5wLRt3Hmo4/dsB1/rhGWGJ7LMnVR9ju9lSlQZDTTg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
makeShellWrapper
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
''
|
||||
+ lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
|
||||
mkdir -p $out/share/freetube
|
||||
cp -r build/*-unpacked/{locales,resources{,.pak}} -t $out/share/freetube
|
||||
|
||||
makeWrapper ${lib.getExe electron} $out/bin/freetube \
|
||||
--add-flags "$out/share/freetube/resources/app.asar" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
|
||||
|
||||
install -D _icons/icon.svg $out/share/icons/hicolor/scalable/apps/freetube.svg
|
||||
''
|
||||
+ lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
cp -r build/mac*/FreeTube.app $out/Applications
|
||||
ln -s "$out/Applications/FreeTube.app/Contents/MacOS/FreeTube" $out/bin/freetube
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "freetube";
|
||||
desktopName = "FreeTube";
|
||||
comment = description;
|
||||
exec = "freetube %U";
|
||||
terminal = false;
|
||||
type = "Application";
|
||||
icon = "freetube";
|
||||
startupWMClass = "FreeTube";
|
||||
mimeTypes = [ "x-scheme-handler/freetube" ];
|
||||
categories = [ "Network" ];
|
||||
})
|
||||
];
|
||||
|
||||
passthru.tests = nixosTests.freetube;
|
||||
|
||||
meta = {
|
||||
inherit description;
|
||||
homepage = "https://freetubeapp.io/";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
ryneeverett
|
||||
pentane
|
||||
ryand56
|
||||
sigmasquadron
|
||||
ddogfoodd
|
||||
];
|
||||
badPlatforms = [
|
||||
# output app is called "Electron.app" while derivation expects "FreeTube.app"
|
||||
#see: https://github.com/NixOS/nixpkgs/pull/384596#issuecomment-2677141349
|
||||
lib.systems.inspect.patterns.isDarwin
|
||||
];
|
||||
inherit (electron.meta) platforms;
|
||||
mainProgram = "freetube";
|
||||
};
|
||||
})
|
13
pkgs/freetube-0.23.6/patch-build-script.patch
Normal file
13
pkgs/freetube-0.23.6/patch-build-script.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/_scripts/ebuilder.config.js b/_scripts/ebuilder.config.js
|
||||
index 5b79d961..9f5945d2 100644
|
||||
--- a/_scripts/ebuilder.config.js
|
||||
+++ b/_scripts/ebuilder.config.js
|
||||
@@ -1,6 +1,8 @@
|
||||
const { name, productName } = require('../package.json')
|
||||
|
||||
const config = {
|
||||
+ electronVersion: "@electron-version@",
|
||||
+ electronDist: "electron-dist",
|
||||
appId: `io.freetubeapp.${name}`,
|
||||
copyright: 'Copyleft © 2020-2024 freetubeapp@protonmail.com',
|
||||
// asar: false,
|
Loading…
Add table
Add a link
Reference in a new issue