Name: osrm-backend Version: 26.4.1 Release: 1%{?dist} Summary: High performance routing engine for OpenStreetMap data # Disable LTO to avoid Boost.Spirit X3 template warnings failing under -Werror %undefine _lto_cflags License: BSD-2-Clause URL: https://github.com/Project-OSRM/osrm-backend Source0: https://github.com/Project-OSRM/osrm-backend/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: osrm-backend.service Source2: osrm-backend.env # Build dependencies BuildRequires: cmake >= 3.18 BuildRequires: gcc-c++ BuildRequires: pkgconf-pkg-config BuildRequires: boost-devel >= 1.70 BuildRequires: lua-devel >= 5.3 BuildRequires: tbb-devel >= 2020 BuildRequires: libosmium-devel >= 2.16 BuildRequires: expat-devel BuildRequires: bzip2-devel BuildRequires: sol2-devel >= 3.3 BuildRequires: fmt-devel >= 8.0 BuildRequires: systemd-rpm-macros Requires(pre): shadow-utils # Runtime dependencies Requires: boost >= 1.70 Requires: lua >= 5.3 Requires: tbb >= 2020 Requires: libosmium >= 2.16 Requires: expat Requires: bzip2 Requires: sol2 >= 3.3 Requires: fmt >= 8.0 %description Open Source Routing Machine (OSRM) is a high-performance routing engine written in C++17 designed to run on OpenStreetMap data. It supports various routing services via HTTP API and C++ library interface including Route, Table, Nearest, Match, Trip, and Tile. %prep %autosetup -p1 -n %{name}-%{version} # Neutralize -Werror in all CMake files to prevent GCC 14+ false positives # (sol2/boost template code triggers maybe-uninitialized warnings) grep -rl --include="CMakeLists.txt" --include="*.cmake" "\-Werror" . | \ xargs sed -i 's/-Werror\b/-Wno-error/g' %build %cmake \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_CONAN=OFF \ -DENABLE_NODE_BINDINGS=OFF \ -DENABLE_LTO=OFF \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ -DBUILD_TOOLS=ON \ -DBUILD_LIBRARY=ON \ -DCMAKE_CXX_FLAGS="%{optflags} -Wno-maybe-uninitialized" %cmake_build %install %cmake_install # Move libraries from lib to lib64 if needed if [ -d %{buildroot}%{_prefix}/lib ] && [ ! -d %{buildroot}%{_libdir} ]; then mkdir -p %{buildroot}%{_libdir} mv %{buildroot}%{_prefix}/lib/* %{buildroot}%{_libdir}/ rmdir %{buildroot}%{_prefix}/lib fi # Install systemd service file install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service # Install sysconfig file install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/%{name} # Create data and log directories install -d -m 0755 %{buildroot}/var/lib/osrm install -d -m 0755 %{buildroot}/var/log/osrm # Manually install the License file install -m 0755 -d %{buildroot}%{_licensedir}/%{name}/ find %{_builddir}/%{name}-%{version} -maxdepth 1 -type f \( -iname 'license*' -o -iname 'copying*' \) -exec install -m 0644 -t %{buildroot}%{_licensedir}/%{name}/ {} + %pre getent group osrm >/dev/null || groupadd -r osrm getent passwd osrm >/dev/null || \ useradd -r -g osrm -d /var/lib/osrm -s /sbin/nologin \ -c "OSRM Backend service user" osrm exit 0 %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service if [ $1 -eq 0 ]; then # Remove user only on complete uninstall userdel osrm 2>/dev/null || : groupdel osrm 2>/dev/null || : fi %files # CLI binaries %{_bindir}/osrm-extract %{_bindir}/osrm-partition %{_bindir}/osrm-customize %{_bindir}/osrm-contract %{_bindir}/osrm-routed %{_bindir}/osrm-datastore %{_bindir}/osrm-components %{_bindir}/osrm-io-benchmark # Shared libraries in lib64 %{_libdir}/libosrm*.so # CMake pkg-config file %{_libdir}/pkgconfig/libosrm.pc # Public headers %{_includedir}/osrm/ %{_includedir}/flatbuffers/ # Lua profiles and data files %{_datadir}/osrm/ # Systemd service file %{_unitdir}/%{name}.service # Sysconfig file %config(noreplace) %{_sysconfdir}/sysconfig/%{name} # Data and log directories %dir %attr(0755,osrm,osrm) /var/lib/osrm %dir %attr(0755,osrm,osrm) /var/log/osrm # Documentation and License %doc README.md %license %{_licensedir}/%{name}/ %changelog * Fri May 01 2026 W. Hadi HSW - 26.4.1-1 - Initial package for Fedora 43 - Build osrm-backend v26.4.1 from upstream release