Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / survex / default.nix
blob6f2098ea4778beb84b33d280cbe75a5a6feafa2c
1 { lib
2 , stdenv
3 , fetchurl
4 , fetchpatch
5 , Carbon
6 , Cocoa
7 , ffmpeg
8 , glib
9 , libGLU
10 , libICE
11 , libX11
12 , mesa
13 , perl
14 , pkg-config
15 , proj
16 , python3
17 , wrapGAppsHook
18 , wxGTK32
21 stdenv.mkDerivation rec {
22   pname = "survex";
23   version = "1.4.3";
25   src = fetchurl {
26     url = "https://survex.com/software/${version}/${pname}-${version}.tar.gz";
27     hash = "sha256-7NtGTe9xNRPEvG9fQ2fC6htQLEMHfqGmBM2ezhi6oNM=";
28   };
30   patches = [
31     # Fix cavern.tst to work with SOURCE_DATE_EPOCH set
32     (fetchpatch {
33       url = "https://github.com/ojwb/survex/commit/b1200a60be7bdea20ffebbd8bb15386041727fa6.patch";
34       hash = "sha256-OtFjqpU+u8XGy+PAHg2iea++b681p/Kl8YslisBs4sA=";
35     })
36   ];
38   nativeBuildInputs = [
39     perl
40     pkg-config
41     python3
42     wrapGAppsHook
43   ];
45   buildInputs = [
46     ffmpeg
47     glib
48     proj
49     wxGTK32
50   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
51     Carbon
52     Cocoa
53   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
54     # TODO: libGLU doesn't build for macOS because of Mesa issues
55     # (#233265); is it required for anything?
56     libGLU
57     mesa
58     libICE
59     libX11
60   ];
62   postPatch = ''
63     patchShebangs .
64   '';
66   enableParallelBuilding = true;
67   doCheck = (!stdenv.isDarwin); # times out
68   enableParallelChecking = false;
70   meta = with lib; {
71     description = "Free Software/Open Source software package for mapping caves";
72     longDescription = ''
73       Survex is a Free Software/Open Source software package for mapping caves,
74       licensed under the GPL. It is designed to be portable and can be run on a
75       variety of platforms, including Linux/Unix, macOS, and Microsoft Windows.
76     '';
77     homepage = "https://survex.com/";
78     changelog = "https://github.com/ojwb/survex/raw/v${version}/NEWS";
79     license = licenses.gpl2Plus;
80     maintainers = [ maintainers.matthewcroughan ];
81     platforms = platforms.all;
82   };