ks: add completions for bash and zsh (#364049)
[NixPkgs.git] / pkgs / desktops / rox / rox-filer / default.nix
blobb8d0b1c5b3cc73a6b96c4cc99d8b4911497bd2a4
2   lib,
3   stdenv,
4   fetchurl,
5   fetchpatch,
6   pkg-config,
7   wrapGAppsHook3,
8   libxml2,
9   gtk,
10   libSM,
11   shared-mime-info,
14 stdenv.mkDerivation rec {
15   pname = "rox-filer";
16   version = "2.11";
18   src = fetchurl {
19     url = "mirror://sourceforge/rox/rox-filer-${version}.tar.bz2";
20     sha256 = "a929bd32ee18ef7a2ed48b971574574592c42e34ae09f36604bf663d7c101ba8";
21   };
23   nativeBuildInputs = [
24     pkg-config
25     wrapGAppsHook3
26   ];
27   buildInputs = [
28     libxml2
29     gtk
30     shared-mime-info
31     libSM
32   ];
33   NIX_LDFLAGS = "-lm";
35   patches = [
36     ./rox-filer-2.11-in-source-build.patch
37     # Pull upstream fix for -fno-common toolchains like upstream gcc-10:
38     #   https://github.com/rox-desktop/rox-filer/pull/15
39     (fetchpatch {
40       name = "fno-common.patch";
41       url = "https://github.com/rox-desktop/rox-filer/commit/86b0bb9144186d51ea9b898905111bd8b143b552.patch";
42       sha256 = "1csyx229i09p00lbdlkdqdhn3x2lb5zby1h9rkjgzlr2qz74gc69";
43     })
44   ];
46   # go to the source directory after unpacking the sources
47   sourceRoot = "rox-filer-${version}/ROX-Filer";
49   # account for 'setSourceRoot' offset
50   patchFlags = [ "-p2" ];
52   # patch the main.c to disable the lookup of the APP_DIR environment variable,
53   # which is used to lookup the location for certain images when rox-filer
54   # starts; rather override the location with an absolute path to the directory
55   # where images are stored to prevent having to use a wrapper, which sets the
56   # APP_DIR environment variable prior to starting rox-filer
57   preConfigure = ''
58     sed -i -e "s:g_strdup(getenv(\"APP_DIR\")):\"$out\":" src/main.c
59     mkdir build
60     cd build
61   '';
63   configureScript = "../src/configure";
65   installPhase = ''
66     mkdir -p "$out"
67     cd ..
68     cp -av Help Messages Options.xml ROX images style.css .DirIcon "$out"
70     # create the man/ directory, which will be moved from $out to share/ in the fixup phase
71     mkdir "$out/man/"
72     cp -av ../rox.1 "$out/man/"
74     # the main executable
75     mkdir "$out/bin/"
76     cp -v ROX-Filer "$out/bin/rox"
78     # mime types
79     mkdir -p "$out/ROX/MIME"
80     cd "$out/ROX/MIME"
81     ln -sv text-x-{diff,patch}.png
82     ln -sv application-x-font-{afm,type1}.png
83     ln -sv application-xml{,-dtd}.png
84     ln -sv application-xml{,-external-parsed-entity}.png
85     ln -sv application-{,rdf+}xml.png
86     ln -sv application-x{ml,-xbel}.png
87     ln -sv application-{x-shell,java}script.png
88     ln -sv application-x-{bzip,xz}-compressed-tar.png
89     ln -sv application-x-{bzip,lzma}-compressed-tar.png
90     ln -sv application-x-{bzip-compressed-tar,lzo}.png
91     ln -sv application-x-{bzip,xz}.png
92     ln -sv application-x-{gzip,lzma}.png
93     ln -sv application-{msword,rtf}.png
94   '';
96   meta = with lib; {
97     description = "Fast, lightweight, gtk2 file manager";
98     mainProgram = "rox";
99     homepage = "http://rox.sourceforge.net/desktop";
100     license = with licenses; [
101       gpl2
102       lgpl2
103     ];
104     platforms = platforms.linux;
105     maintainers = [ maintainers.eleanor ];
106   };