openxray: 2188-november-2023-rc1 -> 2921-january-2025-rc1 (#375925)
[NixPkgs.git] / pkgs / by-name / li / libredwg / package.nix
blob557ae44b2071aa53b37b0bf206200f2b3c51968e
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   autoreconfHook,
6   writeShellScript,
7   pkg-config,
8   texinfo,
9   pcre2,
10   swig,
11   libxml2,
12   ncurses,
13   enablePython ? false,
14   python ? null,
16 let
17   isPython3 = enablePython && python.pythonAtLeast "3";
19 stdenv.mkDerivation rec {
20   pname = "libredwg";
21   version = "0.13.3";
23   src = fetchFromGitHub {
24     owner = "LibreDWG";
25     repo = pname;
26     rev = version;
27     hash = "sha256-FlBHwNsqVSBE8dTDewoKkCbs8Jd/4d69MPpEFzg6Ruc=";
28     fetchSubmodules = true;
29   };
31   postPatch =
32     let
33       printVersion = writeShellScript "print-version" ''
34         echo -n ${lib.escapeShellArg version}
35       '';
36     in
37     ''
38       # avoid git dependency
39       cp ${printVersion} build-aux/git-version-gen
40     '';
42   preConfigure = lib.optionalString (stdenv.hostPlatform.isDarwin && enablePython) ''
43     # prevent configure picking up stack_size from distutils.sysconfig
44     export PYTHON_EXTRA_LDFLAGS=" "
45   '';
47   nativeBuildInputs = [
48     autoreconfHook
49     pkg-config
50     texinfo
51   ] ++ lib.optional enablePython swig;
53   buildInputs =
54     [ pcre2 ]
55     ++ lib.optionals enablePython [ python ]
56     # configurePhase fails with python 3 when ncurses is missing
57     ++ lib.optional isPython3 ncurses;
59   # prevent python tests from running when not building with python
60   configureFlags = lib.optional (!enablePython) "--disable-python";
62   # FAIL: alive.test
63   doCheck = !stdenv.hostPlatform.isLinux;
65   # the "xmlsuite" test requires the libxml2 c library as well as the python module
66   nativeCheckInputs = lib.optionals enablePython [
67     libxml2
68     libxml2.dev
69   ];
71   meta = with lib; {
72     description = "Free implementation of the DWG file format";
73     homepage = "https://savannah.gnu.org/projects/libredwg/";
74     maintainers = with maintainers; [ tweber ];
75     license = licenses.gpl3Plus;
76     platforms = platforms.all;
77   };