nixpkgs/pkgs/applications/misc/spacefm/default.nix
Claudio Bley 5937a4aff8 spaceFM: Avoid segfault when running under Wayland
SpaceFM is a Gtk+ application that was written with only the X11 backend in
mind. By explicitly allowing only the "x11" backend, it will not try to use
the wayland backend when it is run under sway, for example.

Fixes #107242
2021-02-10 12:08:38 +01:00

62 lines
1.7 KiB
Nix

{ pkgs, fetchFromGitHub, lib, stdenv, gtk3, udev, desktop-file-utils
, shared-mime-info, intltool, pkg-config, wrapGAppsHook, ffmpegthumbnailer
, jmtpfs, ifuseSupport ? false, ifuse ? null, lsof, udisks2 }:
stdenv.mkDerivation rec {
pname = "spacefm";
version = "1.0.6";
src = fetchFromGitHub {
owner = "IgnorantGuru";
repo = "spacefm";
rev = version;
sha256 = "089r6i40lxcwzp60553b18f130asspnzqldlpii53smz52kvpirx";
};
patches = [
# fix compilation error due to missing include
./glibc-fix.patch
# restrict GDK backends to only X11
./x11-only.patch
];
configureFlags = [
"--with-bash-path=${pkgs.bash}/bin/bash"
];
preConfigure = ''
configureFlags="$configureFlags --sysconfdir=$out/etc"
'';
postInstall = ''
rm -f $out/etc/spacefm/spacefm.conf
ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf
'';
preFixup = ''
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gtk3 udev desktop-file-utils shared-mime-info intltool
wrapGAppsHook ffmpegthumbnailer jmtpfs lsof udisks2
] ++ (if ifuseSupport then [ ifuse ] else []);
# Introduced because ifuse doesn't build due to CVEs in libplist
# Revert when libplist builds again…
meta = with lib; {
description = "A multi-panel tabbed file manager";
longDescription = ''
Multi-panel tabbed file and desktop manager for Linux
with built-in VFS, udev- or HAL-based device manager,
customizable menu system, and bash integration
'';
homepage = "http://ignorantguru.github.io/spacefm/";
platforms = platforms.linux;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jagajaga obadz ];
};
}