Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 fetchpatch, 6 dbus, 7 glib, 8 pkg-config, 9 expat, 10}: 11 12stdenv.mkDerivation rec { 13 pname = "dbus-cplusplus"; 14 version = "0.9.0"; 15 16 src = fetchurl { 17 url = "mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/0.9.0/libdbus-c%2B%2B-0.9.0.tar.gz"; 18 name = "${pname}-${version}.tar.gz"; 19 sha256 = "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"; 20 }; 21 22 patches = [ 23 (fetchurl { 24 name = "gcc-4.7.patch"; 25 url = 26 "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/" 27 + "dbus-c++/files/dbus-c++-0.9.0-gcc-4.7.patch?id=dec60bb6900d6ebdaaa6aa1dcb845b30b739f9b5"; 28 sha256 = "0rwcz9pvc13b3yfr0lkifnfz0vb5q6dg240bzgf37ni4s8rpc72g"; 29 }) 30 (fetchpatch { 31 name = "writechar.patch"; # since gcc7 32 url = "https://src.fedoraproject.org/rpms/dbus-c++/raw/9f515ace0594c8b2b9f0d41ffe71bc5b78d30eee/f/dbus-c++-writechar.patch"; 33 sha256 = "1kkg4gbpm4hp87l25zw2a3r9c58g7vvgzcqgiman734i66zsbb9l"; 34 }) 35 (fetchpatch { 36 name = "threading.patch"; # since gcc7 37 url = "https://src.fedoraproject.org/rpms/dbus-c++/raw/9f515ace0594c8b2b9f0d41ffe71bc5b78d30eee/f/dbus-c++-threading.patch"; 38 sha256 = "1h362anx3wyxm5lq0v8girmip1jmkdbijrmbrq7k5pp47zkhwwrq"; 39 }) 40 (fetchpatch { 41 name = "template-operators.patch"; # since gcc12 42 url = "https://src.fedoraproject.org/rpms/dbus-c++/raw/9f515ace0594c8b2b9f0d41ffe71bc5b78d30eee/f/dbus-c++-template-operators.patch"; 43 hash = "sha256-B8S7z/YH2YEQgaRsBJBBVTx8vHQhHW7z171TZmogpL8="; 44 }) 45 (fetchpatch { 46 name = "0001-src-eventloop.cpp-use-portable-method-for-initializi.patch"; 47 url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-src-eventloop.cpp-use-portable-method-for-initializi.patch"; 48 hash = "sha256-GJWvp5F26c88OCGLrFcXaqUl2FMSDCluppMrRQO3rzc="; 49 }) 50 (fetchpatch { 51 name = "0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch"; 52 url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch"; 53 hash = "sha256-P9JuG/6k5L6NTiAGH9JRfNcwpNVOV29RQC6fTj0fKZE="; 54 }) 55 (fetchpatch { 56 name = "0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch"; 57 url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch"; 58 hash = "sha256-/RCpDvaLIw0kmuBvUGbfnVEvgTKjIQWcSKWheCfgSmM="; 59 }) 60 ]; 61 62 nativeBuildInputs = [ pkg-config ]; 63 buildInputs = [ 64 dbus 65 glib 66 expat 67 ]; 68 69 configureFlags = [ 70 "--disable-ecore" 71 "--disable-tests" 72 ] 73 ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ 74 "--disable-examples" 75 ]; 76 77 meta = with lib; { 78 homepage = "https://dbus-cplusplus.sourceforge.net"; 79 description = "C++ API for D-BUS"; 80 license = licenses.gpl2Plus; 81 platforms = platforms.linux; 82 maintainers = [ ]; 83 }; 84}