diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2018-03-23 23:56:45 +0100 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2018-03-27 19:24:16 +0200 |
commit | b71ffc1b25b46297f1e52fd0c0ac491d296160f2 (patch) | |
tree | 1df1265331372a2fa0fd55a8678eefeb3d941d20 /pkgs/servers/amqp | |
parent | 95a819c0026a7a3c0dd2099e1c53fea95430c505 (diff) | |
download | nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar.gz nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar.bz2 nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar.lz nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar.xz nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.tar.zst nixpkgs-b71ffc1b25b46297f1e52fd0c0ac491d296160f2.zip |
qpid-cpp: fix build
The compilation broke due to the flag `-Werror=int-in-bool-context` which caused several compilation errors with GCC v7. Disabling this warning manually with `-Wno-error` in `NIX_CFLAGS_COMPILE` should be fine. This package experienced several radical changes as the entire python build in `$src/management/python` was broken since the given Python interpreter missed several needed modules (including `pythonPackages.qpid-python`). As the CMake build tried to invoke the affected `setup.py` manually and patched the shebangs with `disutil` and caused non-functional executables, I split the package up into two parts, the actual `qpid-cpp` lib and the Python module that will be composed using `buildEnv`. Furthermore I added myself as maintainer for the package as the diff became quite huge and we should have more folks available to maintain this. See https://hydra.nixos.org/build/71519082/log See tickets #36453 and #31747
Diffstat (limited to 'pkgs/servers/amqp')
-rw-r--r-- | pkgs/servers/amqp/qpid-cpp/default.nix | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/pkgs/servers/amqp/qpid-cpp/default.nix b/pkgs/servers/amqp/qpid-cpp/default.nix index ea2c0325148..a838fa3b904 100644 --- a/pkgs/servers/amqp/qpid-cpp/default.nix +++ b/pkgs/servers/amqp/qpid-cpp/default.nix @@ -1,8 +1,7 @@ -{ stdenv, fetchurl, cmake, python2, boost, libuuid, ruby }: +{ stdenv, fetchurl, cmake, python2, boost, libuuid, ruby, buildEnv, buildPythonPackage, qpid-python }: -stdenv.mkDerivation rec { +let name = "qpid-cpp-${version}"; - version = "1.37.0"; src = fetchurl { @@ -10,24 +9,45 @@ stdenv.mkDerivation rec { sha256 = "1s4hyi867i0lqn81c1crrk6fga1gmsv61675vjv5v41skz56lrsb"; }; - buildInputs = [ cmake python2 boost libuuid ruby ]; - - # the subdir managementgen wants to install python stuff in ${python} and - # the installation tries to create some folders in /var - patchPhase = '' - sed -i '/managementgen/d' CMakeLists.txt - sed -i '/ENV/d' src/CMakeLists.txt - ''; - - NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations -Wno-error=unused-function"; - - meta = { + meta = with stdenv.lib; { homepage = http://qpid.apache.org; repositories.git = git://git.apache.org/qpid.git; repositories.svn = http://svn.apache.org/repos/asf/qpid; description = "An AMQP message broker and a C++ messaging API"; - license = stdenv.lib.licenses.asl20; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.cpages ]; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ cpages ma27 ]; + }; + + qpid-cpp = stdenv.mkDerivation { + inherit src meta name; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ boost libuuid ruby python2 ]; + + # the subdir managementgen wants to install python stuff in ${python} and + # the installation tries to create some folders in /var + postPatch = '' + sed -i '/managementgen/d' CMakeLists.txt + sed -i '/ENV/d' src/CMakeLists.txt + sed -i '/management/d' CMakeLists.txt + ''; + + NIX_CFLAGS_COMPILE = [ + "-Wno-error=deprecated-declarations" + "-Wno-error=unused-function" + "-Wno-error=int-in-bool-context" + ]; + }; + + python-frontend = buildPythonPackage { + inherit name meta src; + + sourceRoot = "${name}/management/python"; + + propagatedBuildInputs = [ qpid-python ]; }; +in buildEnv { + name = "${name}-env"; + paths = [ qpid-cpp python-frontend ]; } |