File minetest.spec of Package minetest
#
# spec file for package minetest
#
%define minetestuser %{name}
%define minetestgroup %{name}
Name: minetest
Version: 202405281402+5.9.0+f836a47bc
Release: 0
Summary: A InfiniMiner/Minecraft inspired game
License: CC-BY-SA-3.0 AND LGPL-2.1-or-later
Group: Amusements/Games/3D/Simulation
URL: https://minetest.org
Source: minetest_202405281402+5.9.0+f836a47bc.tar.xz
%if 0%{?suse_version}
Requires(pre): shadow
%endif
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: gmp-devel
BuildRequires: hicolor-icon-theme
BuildRequires: libXxf86vm-devel
BuildRequires: libjpeg-devel
BuildRequires: libzstd-devel
BuildRequires: ncurses-devel
BuildRequires: SDL2-devel
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig
BuildRequires: spatialindex-devel
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(luajit)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(zlib)
BuildRequires: leveldb-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(hiredis)
BuildRequires: postgresql-devel
%if 0%{?suse_version}
BuildRequires: postgresql-server-devel
%else
BuildRequires: libpq-devel
%endif
BuildRequires: openssl-devel
## Workaround for CMake's FindPostgreSQL.cmake depending on internal
## server headers even if just building a client application.
# BuildRequires: postgresql-server-devel
Provides: %{name}-data = %{version}
Conflicts: %{name}-data < %{version}
Conflicts: %{name}-game
Conflicts: %{name}-lang
Provides: %{name}-runtime = %{version}
Provides: bundled(irrlicht)
Provides: group(%{minetestgroup})
Provides: user(%{minetestuser})
%description
An infinite-world block sandbox game and a game engine, inspired by
InfiniMiner, Minecraft and the like.
%prep
%setup -q
%build
%undefine _hardened_build
%undefine _annotated_build
%if 0%{?fedora_version} > 33
%define _legacy_common_support 1
%endif
%cmake -DPNG_PNG_INCLUDE_DIR=$(pkg-config libpng --variable=includedir) \
%ifarch aarch64
-DCMAKE_CXX_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -fpermissive -Wall -mbranch-protection=none" \
-DCMAKE_C_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -fpermissive -Wall -mbranch-protection=none" \
%else
-DCMAKE_CXX_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -fpermissive -Wall" \
-DCMAKE_C_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -fpermissive -Wall" \
%ifarch %{ix86}
-DCMAKE_CXX_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -march=pentium3 -mtune=nocona -mmmx -msse -msse2 -mfpmath=sse -Wall" \
-DCMAKE_C_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -march=pentium3 -mtune=nocona -mmmx -msse -msse2 -mfpmath=sse -Wall" \
%endif
%ifarch x86_64
-DCMAKE_CXX_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -mtune=nocona -mmmx -msse -msse2 -mfpmath=sse -Wall" \
-DCMAKE_C_FLAGS="-O3 -fomit-frame-pointer -fexpensive-optimizations -mtune=nocona -mmmx -msse -msse2 -mfpmath=sse -Wall" \
%endif
%endif
-DCUSTOM_DOCDIR="%{_docdir}/%{name}" \
-DCUSTOM_LOCALEDIR="%{_datadir}/locale" \
-DCUSTOM_SHAREDIR="%{_datadir}/games/%{name}" \
-DENABLE_CURSES=1 \
-DRUN_IN_PLACE=0 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DENABLE_SYSTEM_JSONCPP=1 \
-DENABLE_SYSTEM_GMP=1 \
-DJSON_INCLUDE_DIR=/usr/include/jsoncpp \
-DENABLE_GETTEXT=1 \
-DENABLE_FREETYPE=1 \
-DFREETYPE_INCLUDE_DIR_freetype2=/usr/include/freetype2 \
-DFREETYPE_INCLUDE_DIR_ft2build=/usr/include \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SERVER=1 \
-DBUILD_CLIENT=1 \
-DENABLE_UPDATE_CHECKER=OFF \
-DENABLE_LEVELDB=ON \
-DENABLE_REDIS=ON \
-DENABLE_POSTGRESQL=ON \
%{nil}
%if 0%{?fedora_version} > 32
%cmake_build
%else
%if 0%{?suse_version}
%cmake_build
%else
%make_build
%endif
%endif
%install
%if 0%{?fedora_version} > 32
%cmake_install
%else
%if 0%{?suse_version}
%cmake_install
%else
%make_install
%endif
%endif
# Clean up.
%fdupes %{buildroot}%{_datadir}/
mkdir -p %{buildroot}%{_localstatedir}/games/%{name}/
cat >%{buildroot}%{_sysconfdir}/%{name}/%{name}.env.example <<%%
# mintestet options for further configuration, e.g. to set the gameid with "--gameid ..."
MINETEST_OPTIONS=""
%%
%post
desktop-file-validate %{_datadir}/applications/net.minetest.minetest.desktop
%pre
getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{minetestgroup}
getent passwd %{name} > /dev/null || \
%{_sbindir}/useradd -r -g %{minetestgroup} -d %{_localstatedir}/games/%{name} \
-s /sbin/nologin -c "%{name}server" %{minetestuser}
%files
%license LICENSE.txt
%dir %{_datadir}/metainfo/
%dir %{_localstatedir}/games/%{name}/
%doc %{_docdir}/%{name}/
%{_bindir}/%{name}
%{_bindir}/%{name}server
%{_datadir}/applications/net.minetest.%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.*
%{_datadir}/metainfo/*%{name}.appdata.xml
%attr(0755,%{minetestuser},%{minetestgroup}) %{_localstatedir}/games/%{name}/
%{_datadir}/games/%{name}/
%{_datadir}/locale/
%{_datadir}/man/man6/
%{_sysconfdir}/%{name}
%changelog