frigate.web: fix build on Node 22.12, add missing meta (#375967)
[NixPkgs.git] / pkgs / by-name / me / mepo / package.nix
blob06f6b22d4ea415ae340859c87fd83ae5767a91c8
2   lib,
3   stdenv,
4   fetchFromSourcehut,
5   SDL2,
6   SDL2_gfx,
7   SDL2_image,
8   SDL2_ttf,
9   busybox,
10   curl,
11   findutils,
12   geoclue2-with-demo-agent,
13   gpsd,
14   jq,
15   makeWrapper,
16   ncurses,
17   pkg-config,
18   util-linux,
19   xwininfo,
20   zenity,
21   zig_0_12,
24 stdenv.mkDerivation (finalAttrs: {
25   pname = "mepo";
26   version = "1.2.1";
28   src = fetchFromSourcehut {
29     owner = "~mil";
30     repo = "mepo";
31     rev = finalAttrs.version;
32     hash = "sha256-Ii5E9TgUxzlVIdkKS/6RtasOETeclMm1yoU86gs4hB8=";
33   };
35   nativeBuildInputs = [
36     pkg-config
37     zig_0_12.hook
38     makeWrapper
39   ];
41   buildInputs = [
42     curl
43     SDL2
44     SDL2_gfx
45     SDL2_image
46     SDL2_ttf
47     jq
48     ncurses
49   ];
51   doCheck = true;
53   postInstall = ''
54     install -d $out/share/man/man1
55     $out/bin/mepo -docman > $out/share/man/man1/mepo.1
56   '';
58   postFixup = ''
59     substituteInPlace $out/bin/mepo_ui_menu_user_pin_updater.sh \
60       --replace-fail /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
61     substituteInPlace $out/bin/mepo_ui_central_menu.sh \
62       --replace-fail "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
63       --replace-fail " ls " " ls -a " #circumvent wrapping for script detection
64     for program in $out/bin/* ; do
65       wrapProgram $program \
66         --suffix PATH : $out/bin:${
67           lib.makeBinPath ([
68             busybox
69             curl
70             findutils
71             gpsd
72             jq
73             ncurses
74             util-linux
75             xwininfo
76             zenity
77           ])
78         }
79     done
80   '';
82   meta = {
83     homepage = "https://mepo.milesalan.com";
84     description = "Fast, simple, and hackable OSM map viewer";
85     longDescription = ''
86       Mepo is a fast, simple, and hackable OSM map viewer for desktop & mobile
87       Linux devices (like the PinePhone, Librem 5, postmarketOS devices etc.)
88       and both environment's various user interfaces (Wayland & X
89       inclusive). Environments supported include Phosh, Sxmo, Plasma Mobile,
90       desktop X, and desktop Wayland. Mepo works both offline and online,
91       features a minimalist both touch/mouse and keyboard compatible interface,
92       and offers a UNIX-philosophy inspired underlying design, exposing a
93       powerful command language called Mepolang capable of being scripted to
94       provide things like custom bounding-box search scripts, bookmarks, and
95       more.
96     '';
97     license = lib.licenses.gpl3Plus;
98     maintainers = with lib.maintainers; [
99       sikmir
100       McSinyx
101       laalsaas
102     ];
103     platforms = lib.platforms.linux;
104   };