Merge pull request #16650 from RamKromberg/fix/spacefm-issue-15758

spacefm: sudo and gksu fixes #15758 and license update
This commit is contained in:
Arseniy Seroka 2016-07-05 13:02:43 +03:00 committed by GitHub
commit 7926a98a71
3 changed files with 69 additions and 6 deletions

View File

@ -76,6 +76,7 @@
./programs/screen.nix
./programs/shadow.nix
./programs/shell.nix
./programs/spacefm.nix
./programs/ssh.nix
./programs/ssmtp.nix
./programs/tmux.nix

View File

@ -0,0 +1,55 @@
# Global configuration for spacefm.
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.programs.spacefm;
in
{
###### interface
options = {
programs.spacefm = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install SpaceFM and create <filename>/etc/spacefm/spacefm.conf<filename>.
'';
};
settings = mkOption {
type = types.attrs;
default = {
tmp_dir = "/tmp";
terminal_su = "${pkgs.sudo}/bin/sudo";
graphical_su = "${pkgs.gksu}/bin/gksu";
};
example = literalExample ''{
tmp_dir = "/tmp";
terminal_su = "''${pkgs.sudo}/bin/sudo";
graphical_su = "''${pkgs.gksu}/bin/gksu";
}'';
description = ''
The system-wide spacefm configuration.
Parameters to be written to <filename>/etc/spacefm/spacefm.conf</filename>.
Refer to the <link xlink:href="https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#programfiles-etc">relevant entry</link> in the SpaceFM manual.
'';
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.spaceFM ];
environment.etc."spacefm/spacefm.conf".text =
concatStrings (mapAttrsToList (n: v: "${n}=${toString v}\n") cfg.settings);
};
}

View File

@ -1,6 +1,6 @@
{ pkgs, fetchFromGitHub, stdenv, gtk3, udev, desktop_file_utils, shared_mime_info
, intltool, pkgconfig, wrapGAppsHook, ffmpegthumbnailer, jmtpfs, ifuse, lsof, udisks
, hicolor_icon_theme, adwaita-icon-theme }:
{ pkgs, fetchFromGitHub, stdenv, gtk3, udev, desktop_file_utils
, shared_mime_info, intltool, pkgconfig, wrapGAppsHook, ffmpegthumbnailer
, jmtpfs, ifuse, lsof, udisks, hicolor_icon_theme, adwaita-icon-theme }:
stdenv.mkDerivation rec {
name = "spacefm-${version}";
@ -15,14 +15,21 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-bash-path=${pkgs.bash}/bin/bash"
"--with-preferable-sudo=${pkgs.sudo}/bin/sudo"
];
preConfigure = ''
configureFlags="$configureFlags --sysconfdir=$out/etc"
'';
buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig wrapGAppsHook ffmpegthumbnailer jmtpfs ifuse lsof udisks ];
postInstall = ''
rm -f $out/etc/spacefm/spacefm.conf
ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf
'';
buildInputs = [
gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig
wrapGAppsHook ffmpegthumbnailer jmtpfs ifuse lsof udisks
];
meta = with stdenv.lib; {
description = "A multi-panel tabbed file manager";
@ -33,7 +40,7 @@ stdenv.mkDerivation rec {
'';
homepage = http://ignorantguru.github.io/spacefm/;
platforms = platforms.linux;
license = licenses.gpl3;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jagajaga obadz ];
};
}