nixpkgs/pkgs/servers/osrm-backend/default.nix
2024-09-27 20:54:02 +05:30

96 lines
2.1 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
bzip2,
libxml2,
libzip,
boost,
lua,
luabind,
tbb,
expat,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "osrm-backend";
version = "5.27.1";
src = fetchFromGitHub {
owner = "Project-OSRM";
repo = "osrm-backend";
rev = "v${version}";
sha256 = "sha256-3oA/U5O4GLfwMF7x99JQuFK7ewDrLJLh6BBLYfnyNaM=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
bzip2
libxml2
libzip
boost
lua
luabind
tbb
expat
];
patches = [
# gcc-13 build fix:
# https://github.com/Project-OSRM/osrm-backend/pull/6632
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/Project-OSRM/osrm-backend/commit/af59a9cfaee4d601b5c88391624a05f2a38da17b.patch";
hash = "sha256-dB9JP/DrJXpFGLD/paein2z64UtHIYZ17ycb91XWpEI=";
})
];
env.NIX_CFLAGS_COMPILE = toString (
[
# Needed with GCC 12
"-Wno-error=stringop-overflow"
"-Wno-error=uninitialized"
# Needed for GCC 13
"-Wno-error=array-bounds"
]
++
# error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
(lib.optionals
(
stdenv.hostPlatform.isDarwin
&& stdenv.hostPlatform.isx86_64
&& lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13"
)
[
"-faligned-allocation"
]
)
);
postInstall = ''
mkdir -p $out/share/osrm-backend
cp -r ../profiles $out/share/osrm-backend/profiles
'';
passthru.tests = {
inherit (nixosTests) osrm-backend;
};
meta = {
homepage = "https://github.com/Project-OSRM/osrm-backend/wiki";
description = "Open Source Routing Machine computes shortest paths in a graph. It was designed to run well with map data from the Openstreetmap Project";
changelog = "https://github.com/Project-OSRM/osrm-backend/blob/master/CHANGELOG.md";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ erictapen ];
platforms = lib.platforms.unix;
};
}