lucenepp: Add new package, version 3.0.6.

Required as a dependency of the Tomahawk music player.

The latest upstream release needs to be patched quite a bit in order to
build and to correctly install the header files. Other distributions
seem to largely use the latest Git master version, because all those
build problems have been fixed there already.

In order to ensure we have version 3.0.6, we just cherry-pick the
relevant patches, so as soon as the next upstream version is released we
just need to drop the patches/postPatch attributes.

The postPatch is needed in order to get rid of the subversion
dependency, which the upstream build process tries to use for fetching
gtest. We don't have networking support inside the Nix build process, so
let's pass that dependency directly.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2014-11-17 01:22:27 +01:00
parent 281a95b454
commit 0a271c00be
No known key found for this signature in database
GPG key ID: D0EBD0EC8C2DC961
2 changed files with 48 additions and 0 deletions

View file

@ -0,0 +1,46 @@
{ stdenv, fetchurl, fetchpatch, cmake, boost, gtest }:
stdenv.mkDerivation rec {
name = "lucene++-${version}";
version = "3.0.6";
src = fetchurl {
url = "https://github.com/luceneplusplus/LucenePlusPlus/"
+ "archive/rel_${version}.tar.gz";
sha256 = "068msvh05gsbfj1wwdqj698kxxfjdqy8zb6pqvail3ayjfj94w1y";
};
patches = let
baseurl = "https://github.com/luceneplusplus/LucenePlusPlus";
in [
(fetchpatch {
url = "${baseurl}/pull/62.diff";
sha256 = "0v314877mjb0hljg4mcqi317m1p1v27rgsgf5wdr9swix43vmhgw";
})
(fetchpatch {
url = "${baseurl}/commit/994f03cf736229044a168835ae7387696041658f.diff";
sha256 = "0fcm5b87nxw062wjd7b4qrfcwsyblmcw19s64004pklj9grk30zz";
})
];
postPatch = ''
sed -i -e '/Subversion *REQUIRED/d' \
-e '/include.*CMakeExternal/d' \
CMakeLists.txt
# not using -f because we want it to fail for the next release
rm CMakeExternal.txt
'';
cmakeFlags = [ "-DGTEST_INCLUDE_DIR=${gtest}/include" ];
buildInputs = [ cmake boost gtest ];
enableParallelBuilding = true;
doCheck = true;
checkTarget = "test";
meta = {
description = "C++ port of the popular Java Lucene search engine";
homepage = "https://github.com/luceneplusplus/LucenePlusPlus";
license = with stdenv.lib.licenses; [ asl20 lgpl3Plus ];
};
}

View file

@ -7198,6 +7198,8 @@ let
lucene = callPackage ../development/libraries/java/lucene { };
lucenepp = callPackage ../development/libraries/lucene++ { };
mockobjects = callPackage ../development/libraries/java/mockobjects { };
saxon = callPackage ../development/libraries/java/saxon { };