1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch,
6 autoconf,
7 automake,
8 libtool,
9}:
10
11stdenv.mkDerivation rec {
12 pname = "quickfix";
13 version = "1.15.1";
14
15 src = fetchFromGitHub {
16 owner = "quickfix";
17 repo = "quickfix";
18 rev = "v${version}";
19 sha256 = "1fgpwgvyw992mbiawgza34427aakn5zrik3sjld0i924a9d17qwg";
20 };
21
22 patches = [
23 # Improved C++17 compatibility
24 (fetchpatch {
25 url = "https://github.com/quickfix/quickfix/commit/a46708090444826c5f46a5dbf2ba4b069b413c58.diff";
26 sha256 = "1wlk4j0wmck0zm6a70g3nrnq8fz0id7wnyxn81f7w048061ldhyd";
27 })
28 ./disableUnitTests.patch
29 ];
30
31 # autoreconfHook does not work
32 nativeBuildInputs = [
33 autoconf
34 automake
35 libtool
36 ];
37
38 enableParallelBuilding = true;
39
40 postPatch = ''
41 substituteInPlace bootstrap --replace-fail glibtoolize libtoolize
42 '';
43
44 preConfigure = ''
45 ./bootstrap
46 '';
47
48 # More hacking out of the unittests
49 preBuild = ''
50 substituteInPlace Makefile --replace 'UnitTest++' ' '
51 '';
52
53 meta = with lib; {
54 description = "QuickFIX C++ Fix Engine Library";
55 homepage = "http://www.quickfixengine.org";
56 license = licenses.free; # similar to BSD 4-clause
57 maintainers = with maintainers; [ bhipple ];
58 broken = stdenv.hostPlatform.isAarch64;
59 };
60}