Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 pkg-config, 6 vala, 7 gi-docgen, 8 gobject-introspection, 9 glib, 10 babl, 11 libpng, 12 llvmPackages, 13 cairo, 14 libjpeg, 15 librsvg, 16 lensfun, 17 libspiro, 18 maxflow, 19 netsurf, 20 pango, 21 poly2tri-c, 22 poppler, 23 bzip2, 24 json-glib, 25 gettext, 26 meson, 27 ninja, 28 libraw, 29 gexiv2, 30 libwebp, 31 luajit, 32 openexr, 33 suitesparse, 34 withLuaJIT ? lib.meta.availableOn stdenv.hostPlatform luajit, 35 gimp, 36}: 37 38stdenv.mkDerivation (finalAttrs: { 39 pname = "gegl"; 40 version = "0.4.62"; 41 42 outputs = [ 43 "out" 44 "dev" 45 "devdoc" 46 ]; 47 outputBin = "dev"; 48 49 src = fetchurl { 50 url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor finalAttrs.version}/gegl-${finalAttrs.version}.tar.xz"; 51 hash = "sha256-WIdXY3Hr8dnpB5fRDkuafxZYIo1IJ1g+eeHbPZRQXGw="; 52 }; 53 54 nativeBuildInputs = [ 55 pkg-config 56 gettext 57 meson 58 ninja 59 vala 60 gobject-introspection 61 gi-docgen 62 ]; 63 64 buildInputs = [ 65 libpng 66 cairo 67 libjpeg 68 librsvg 69 lensfun 70 libspiro 71 maxflow 72 netsurf.libnsgif 73 pango 74 poly2tri-c 75 poppler 76 bzip2 77 libraw 78 libwebp 79 gexiv2 80 openexr 81 suitesparse 82 ] 83 ++ lib.optionals stdenv.cc.isClang [ 84 llvmPackages.openmp 85 ] 86 ++ lib.optionals withLuaJIT [ 87 luajit 88 ]; 89 90 # for gegl-4.0.pc 91 propagatedBuildInputs = [ 92 glib 93 json-glib 94 babl 95 ]; 96 97 mesonFlags = [ 98 "-Dmrg=disabled" # not sure what that is 99 "-Dsdl2=disabled" 100 "-Dpygobject=disabled" 101 "-Dlibav=disabled" 102 "-Dlibv4l=disabled" 103 "-Dlibv4l2=disabled" 104 # Disabled due to multiple vulnerabilities, see 105 # https://github.com/NixOS/nixpkgs/pull/73586 106 "-Djasper=disabled" 107 ] 108 ++ lib.optionals (!withLuaJIT) [ 109 "-Dlua=disabled" 110 ]; 111 112 postPatch = '' 113 chmod +x tests/opencl/opencl_test.sh 114 patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh 115 ''; 116 117 postFixup = '' 118 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. 119 moveToOutput "share/doc" "$devdoc" 120 ''; 121 122 # tests fail to connect to the com.apple.fonts daemon in sandboxed mode 123 doCheck = !stdenv.hostPlatform.isDarwin; 124 125 passthru = { 126 tests = { 127 inherit gimp; 128 }; 129 }; 130 131 meta = with lib; { 132 description = "Graph-based image processing framework"; 133 homepage = "https://www.gegl.org"; 134 license = licenses.lgpl3Plus; 135 maintainers = with maintainers; [ jtojnar ]; 136 platforms = platforms.unix; 137 }; 138})