Skip to content

Commit

Permalink
qpid-cpp: fix build
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Ma27 authored and garbas committed Mar 27, 2018
1 parent a7d6297 commit 27ae4ce
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 18 deletions.
56 changes: 38 additions & 18 deletions pkgs/servers/amqp/qpid-cpp/default.nix
@@ -1,33 +1,53 @@
{ 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 {
url = "mirror://apache/qpid/cpp/${version}/${name}.tar.gz";
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 ];
}
1 change: 1 addition & 0 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -12647,6 +12647,7 @@ with pkgs;

qpid-cpp = callPackage ../servers/amqp/qpid-cpp {
boost = boost155;
inherit (pythonPackages) buildPythonPackage qpid-python;
};

quagga = callPackage ../servers/quagga { };
Expand Down

0 comments on commit 27ae4ce

Please sign in to comment.