25 directoryListingUpdater,
32 extraRuntimeDeps ? [ ],
35 stdenv.mkDerivation rec {
40 url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
41 hash = "sha256:1al5n2mcjp0hmsvi4hsdmzd7i0id5i3255xplk0il1nmzydh312a";
44 # Fixes "Error: No time zones found." on the clock
46 substituteInPlace src/emClock/emTimeZonesModel.cpp --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
72 # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
73 # trick on NIX_LDFLAGS and dontPatchELF to make it find them.
76 export NIX_LDFLAGS="$NIX_LDFLAGS -lXxf86vm -lXext -lXinerama"
82 # eaglemode expects doc to be in the root directory
90 runtimeDeps = lib.makeBinPath (
92 ghostscript # renders the manual
93 htmldoc # renders HTML files in file browser
94 perl # various display scripts use Perl
96 # archive formats in the file browser:
108 perl make.pl install dir=$out
109 wrapProgram $out/bin/eaglemode --set EM_DIR "$out" --prefix LD_LIBRARY_PATH : "$out/lib" --prefix PATH : "${runtimeDeps}"
110 for i in 32 48 96; do
111 mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
112 ln -s $out/res/icons/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
122 desktopName = "Eagle Mode";
123 genericName = meta.description;
133 passthru.updateScript = directoryListingUpdater {
134 url = "https://eaglemode.sourceforge.net/download.html";
135 extraRegex = "(?!.*(x86_64|setup64|livecd)).*";
139 homepage = "https://eaglemode.sourceforge.net";
140 description = "Zoomable User Interface";
141 changelog = "https://eaglemode.sourceforge.net/ChangeLog.html";
142 license = licenses.gpl3;
143 maintainers = with maintainers; [
147 platforms = platforms.linux;