Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37423638
en ru br
Репозитории ALT

Группа :: Игры/Прочее
Пакет: minetest

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%def_with l10n
%define _hardened_build 1
%global gitname celeron55
%define irrlichtmt_version 1.9.0mt10

Name: minetest
Version: 5.7.0
Release: alt1
Summary: Multiplayer infinite-world block sandbox with survival mode
License: LGPL-2.0+ and CC-BY-SA-3.0
Group: Games/Other
URL: https://www.minetest.net

# VCS (executable): https://github.com/minetest/minetest.git

# VCS (data files): https://github.com/minetest/minetest_game.git

# wget https://raw.github.com/RussianFedora/minetest/fedora/minetest.desktop

# wget https://raw.github.com/RussianFedora/minetest/fedora/minetest.service
# wget https://raw.github.com/RussianFedora/minetest/fedora/minetest.rsyslog
# wget https://raw.github.com/RussianFedora/minetest/fedora/minetest.logrotate
# wget https://raw.github.com/RussianFedora/minetest/fedora/minetest.README
Source0: %name-%version.tar.gz
Source2: %{name}.service
Source3: %{name}.rsyslog
Source4: %{name}.logrotate
Source5: %{name}.README
Source6: %{name}_game-%version.tar.gz
Source7: http://www.gnu.org/licenses/lgpl-2.1.txt
# Now using its own Minetest-specific fork of irrlicht.
Source8: https://github.com/minetest/irrlicht/archive/%{irrlichtmt_version}/irrlicht-%{irrlichtmt_version}.tar.gz

Patch0:   %{name}-gcc11.patch
#ExcludeArch: aarch64
BuildRequires(pre): cmake
BuildRequires(pre): rpm-build-ninja
BuildRequires: gcc-c++
#BuildRequires: libirrlicht-devel
BuildRequires: bzip2-devel jthread-devel libsqlite3-devel
BuildRequires: libpng-devel libjpeg-devel libXxf86vm-devel libGL-devel libX11-devel libXcm-devel libXi-devel libXv-devel libXext-devel libGLU-devel
BuildRequires: libopenal-devel libvorbis-devel libzstd-devel doxygen  libgraphviz-devel libgmp-devel
#libdotconf-devel graphviz
BuildRequires: libfreetype-devel
BuildRequires: systemd
BuildRequires: gettext-tools
BuildRequires: libcurl-devel
BuildRequires: libuuid-devel
BuildRequires: libbrotli-devel
%ifnarch %e2k
BuildRequires: libluajit-devel
%else
BuildRequires: libluajit-e2k-devel
%endif

BuildRequires: libncurses-devel
BuildRequires: libleveldb-devel
BuildRequires: spatialindex-devel jsoncpp-devel libpcre-devel

Requires: %name-server = %version-%release
Requires: icon-theme-hicolor

# Extra deps for irrlichtMT:

BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xft)
BuildRequires:  pkgconfig(xxf86vm)



%description
Game of mining, crafting and building in the infinite world of cubic
blocks with optional hostile creatures, features both single and the
network multiplayer mode.

%package server
Summary: Minetest multiplayer server
Group: Games/Other

Requires(pre): shadow-utils

%description server
Minetest multiplayer server. This package does not require X Window
System.

%prep
#%setup -q -n %gitname-%name
%setup -q
# -a 1 -a 2
%patch0 -p1

pushd games
tar xf %SOURCE6
mv %{name}_game-%version %{name}_game
popd

cp %SOURCE7 doc/

tar xf %SOURCE8
mv irrlicht-%{irrlichtmt_version} lib/irrlichtmt

# purge bundled jsoncpp and lua, and gmp

rm -rf lib/jsoncpp lib/lua lib/gmp

%build
%ifarch aarch64
%define _lto_cflags %{nil}
%endif

%cmake_insource -GNinja\
%if_with l10n
   -DENABLE_GETTEXT=TRUE \
%endif
   -DJTHREAD_INCLUDE_DIR=%_builddir/%name/src/jthread
   #-DJTHREAD_INCLUDE_DIR=%_builddir/%gitname-%name/src/jthread
%ninja_build

%install
%ninja_install

# Systemd unit file

mkdir -p %buildroot%_unitdir
cp -p %SOURCE2 %buildroot%_unitdir

# /etc/rsyslog.d/minetest.conf

mkdir -p %buildroot%_sysconfdir/rsyslog.d
cp -p %SOURCE3 %buildroot%_sysconfdir/rsyslog.d/%{name}.conf

# /etc/logrotate.d/minetest

mkdir -p %buildroot/%{_sysconfdir}/logrotate.d
cp -p %SOURCE4 %buildroot/%{_sysconfdir}/logrotate.d/%{name}-server

# /var/lib/minetest directory for server data files

mkdir -p %buildroot%{_sharedstatedir}/%{name}

# /etc/minetest.conf

mkdir -p %buildroot%{_sysconfdir}
cp -p minetest.conf.example %buildroot%{_sysconfdir}/%{name}.conf

cp -p %SOURCE5 README

%if_with l10n
%find_lang %name
%else
touch %name.lang
%endif

%pre server
getent group %{name} >/dev/null || groupadd -r %{name}
getent passwd %{name} >/dev/null || \
   useradd -r -g %{name} -d /var/lib/%{name} -s /sbin/nologin \
   -c "Minetest multiplayer server" %{name}
exit 0

%post server
if [ $1 -eq 1 ] ; then
   # Initial installation
   /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi

%preun server
if [ $1 -eq 0 ] ; then
   # Package removal, not upgrade
   /bin/systemctl --no-reload disable %{name}.service > /dev/null 2>&1 || :
   /bin/systemctl stop %{name}.service > /dev/null 2>&1 || :
fi

%postun server
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
   # Package upgrade, not uninstall
   /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
fi

%files -f %{name}.lang
%doc README.md doc/lgpl-2.1.txt README
%doc %_docdir/%name
%_bindir/%name
%_datadir/%name
%_desktopdir/*.desktop
%_iconsdir/hicolor/scalable/apps/%name.svg
%_iconsdir/hicolor/128x128/apps/%name.png
%_man6dir/minetest.*
%_datadir/metainfo/*.appdata.xml

%files server
%doc README.md doc/lgpl-2.1.txt doc/world_format.txt doc/protocol.txt README
#_bindir/%{name}server
%_unitdir/%{name}.service
%config(noreplace) %{_sysconfdir}/%{name}.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-server
%config(noreplace) %{_sysconfdir}/rsyslog.d/%{name}.conf
%attr(0755,minetest,minetest) %dir %{_sharedstatedir}/%{name}
%_man6dir/minetestserver.6*

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin