Rebase to flake parts #10
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
dpkg,
|
||||
makeWrapper,
|
||||
autoPatchelfHook,
|
||||
wrapGAppsHook3,
|
||||
adwaita-icon-theme,
|
||||
ffmpeg,
|
||||
gdk-pixbuf,
|
||||
glib,
|
||||
glib-networking,
|
||||
gst_all_1,
|
||||
gtk3,
|
||||
hicolor-icon-theme,
|
||||
libsoup_3,
|
||||
webkitgtk_4_1,
|
||||
xdotool,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.0.0-alpha.2";
|
||||
|
||||
srcInfo =
|
||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
{
|
||||
url = "https://github.com/spacedriveapp/spacedrive/releases/download/v${version}/Spacedrive-linux-x86_64.deb";
|
||||
hash = "sha256-KzRPBtyX5x4ZLlZd6SgAS/cy/7irXt7v+b3Yuq9GETo=";
|
||||
}
|
||||
else if stdenv.hostPlatform.system == "aarch64-linux" then
|
||||
{
|
||||
url = "https://github.com/spacedriveapp/spacedrive/releases/download/v${version}/Spacedrive-linux-aarch64.deb";
|
||||
hash = "sha256-Arq4seJxd69XdraIaYJSv1p9g+Bz/7rez/l9EP6dc9k=";
|
||||
}
|
||||
else
|
||||
throw "spacedrive ${version}: unsupported platform: ${stdenv.hostPlatform.system}";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "spacedrive";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl srcInfo;
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
makeWrapper
|
||||
autoPatchelfHook
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
ffmpeg
|
||||
gdk-pixbuf
|
||||
glib
|
||||
glib-networking
|
||||
gtk3
|
||||
hicolor-icon-theme
|
||||
libsoup_3
|
||||
webkitgtk_4_1
|
||||
xdotool
|
||||
gst_all_1.gst-plugins-ugly
|
||||
gst_all_1.gst-plugins-bad
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gstreamer
|
||||
];
|
||||
|
||||
# WebKitGTK + TLS + icons; ffmpeg/ffprobe on PATH (alpha Linux builds omit bundled ffmpeg).
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
"--prefix" "PATH" ":" "${lib.makeBinPath [ ffmpeg ]}"
|
||||
"--set-default" "WEBKIT_DISABLE_DMABUF_RENDERER" "1"
|
||||
)
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Core daemon is not GTK-linked; wrapGAppsHook3 skips it — still needs ffmpeg for media paths.
|
||||
wrapProgram $out/bin/sd-daemon --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}"
|
||||
'';
|
||||
|
||||
unpackPhase = "dpkg-deb -x $src source";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,lib,share}
|
||||
cp -r source/usr/bin/* $out/bin/
|
||||
cp -r source/usr/lib/* $out/lib/
|
||||
cp -r source/usr/share/* $out/share/
|
||||
|
||||
ln -sf Spacedrive $out/bin/spacedrive
|
||||
|
||||
substituteInPlace $out/share/applications/Spacedrive.desktop \
|
||||
--replace-fail 'Exec=Spacedrive' 'Exec=spacedrive'
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Local-first file manager and virtual distributed filesystem (v2 alpha)";
|
||||
homepage = "https://spacedrive.com";
|
||||
changelog = "https://github.com/spacedriveapp/spacedrive/releases/tag/v${version}";
|
||||
license = licenses.agpl3Plus;
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
mainProgram = "spacedrive";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user