[minetest] Multiple server cfg systemd unit, fix perms on cfgs
Igor Gnatenko
ignatenkobrain at fedoraproject.org
Mon Nov 25 19:08:32 UTC 2013
commit c7668f4ba6b37d1cefe5461676aefc0530f6ade5
Author: Igor Gnatenko <i.gnatenko.brain at gmail.com>
Date: Mon Nov 25 23:03:00 2013 +0400
Multiple server cfg systemd unit, fix perms on cfgs
- add support of multiple server cfgs
- allow acces for group to server parts
- Shared irrlicht (patch from gentoo)
Signed-off-by: Igor Gnatenko <i.gnatenko.brain at gmail.com>
default.conf | 1 +
minetest-0.4.8-shared-irrlicht.patch | 23 +++++++++++++
minetest.service | 13 -------
minetest.spec | 61 ++++++++++++++++++++-------------
minetest at .service | 12 +++++++
5 files changed, 73 insertions(+), 37 deletions(-)
---
diff --git a/default.conf b/default.conf
new file mode 100644
index 0000000..c56e19d
--- /dev/null
+++ b/default.conf
@@ -0,0 +1 @@
+PORT=30000
diff --git a/minetest-0.4.8-shared-irrlicht.patch b/minetest-0.4.8-shared-irrlicht.patch
new file mode 100644
index 0000000..b552c09
--- /dev/null
+++ b/minetest-0.4.8-shared-irrlicht.patch
@@ -0,0 +1,23 @@
+commit 11d35e62fe13b47c5b34139559e650dfe6ebbd84
+Author: hasufell <julian.ospald at googlemail.com>
+Date: Sat Jun 8 13:40:30 2013 +0200
+
+ CMAKE: use shared lib from Irrlicht
+
+diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake
+index bd00422..4632993 100644
+--- a/cmake/Modules/FindIrrlicht.cmake
++++ b/cmake/Modules/FindIrrlicht.cmake
+@@ -50,10 +50,11 @@ else()
+ /usr/include/irrlicht
+ )
+
+- FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.a Irrlicht
++ FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.so Irrlicht
+ PATHS
+ /usr/local/lib
+ /usr/lib
++ /usr/lib64
+ )
+ endif()
+
diff --git a/minetest.spec b/minetest.spec
index e7d3269..dc7f062 100644
--- a/minetest.spec
+++ b/minetest.spec
@@ -1,29 +1,26 @@
Name: minetest
Version: 0.4.8
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Multiplayer infinite-world block sandbox with survival mode
# bundled(jthread) uses MIT license
License: LGPLv2+ and CC-BY-SA and MIT
URL: http://minetest.net/
-# 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: https://github.com/minetest/minetest/archive/%{version}/%{name}-%{version}.tar.gz
Source1: %{name}.desktop
-Source2: %{name}.service
+Source2: %{name}@.service
Source3: %{name}.rsyslog
Source4: %{name}.logrotate
Source5: %{name}.README
Source6: https://github.com/minetest/minetest_game/archive/%{version}/%{name}_game-%{version}.tar.gz
Source7: http://www.gnu.org/licenses/lgpl-2.1.txt
+Source8: default.conf
# https://github.com/minetest/minetest/pull/954
Patch0: 0001-FindJson.cmake-now-will-correctly-find-system-module.patch
+# Shared irrlicht (patch from gentoo)
+Patch1: minetest-0.4.8-shared-irrlicht.patch
# https://fedorahosted.org/fpc/ticket/347
Provides: bundled(jthread)
@@ -37,6 +34,9 @@ BuildRequires: systemd
BuildRequires: openal-soft-devel
BuildRequires: libvorbis-devel
BuildRequires: jsoncpp-devel
+BuildRequires: libcurl-devel
+# TODO: add unicode patches to irrlicht
+#BuildRequires: freetype-devel
Requires: %{name}-server = %{version}-%{release}
Requires: hicolor-icon-theme
@@ -60,6 +60,7 @@ Minetest multiplayer server. This package does not require X Window System
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
pushd games
tar xf %{SOURCE6}
@@ -72,6 +73,7 @@ cp %{SOURCE7} doc/
rm -rf src/json
%build
+# -DENABLE_FREETYPE=ON needed for Unicode in text chat
%cmake .
make %{?_smp_mflags}
@@ -82,23 +84,28 @@ make %{?_smp_mflags}
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
# Systemd unit file
-mkdir -p %{buildroot}%{_unitdir}
-install -p -m0644 %{SOURCE2} %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_unitdir}/
+install -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}
# /etc/rsyslog.d/minetest.conf
-mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d
-install -p -m0644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/rsyslog.d/%{name}.conf
+mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/
+install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/rsyslog.d/%{name}.conf
# /etc/logrotate.d/minetest
-mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
-install -p -m0644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}-server
+mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/
+install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}-server
# /var/lib/minetest directory for server data files
-mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
+install -d -m 0775 %{buildroot}%{_sharedstatedir}/%{name}/
+install -d -m 0775 %{buildroot}%{_sharedstatedir}/%{name}/default/
+
+# /etc/minetest/default.conf
+install -d -m 0775 %{buildroot}%{_sysconfdir}/%{name}/
+install -m 0664 minetest.conf.example %{buildroot}%{_sysconfdir}/%{name}/default.conf
-# /etc/minetest.conf
-mkdir -p %{buildroot}%{_sysconfdir}
-install -p -m0644 minetest.conf.example %{buildroot}%{_sysconfdir}/%{name}.conf
+# /etc/sysconfig/default.conf
+install -d -m 0775 %{buildroot}%{_sysconfdir}/sysconfig/%{name}/
+install -m 0664 %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
cp -p %{SOURCE5} README.fedora
@@ -129,13 +136,13 @@ getent passwd %{name} >/dev/null || \
exit 0
%post server
-%systemd_post %{name}.service
+%systemd_post %{name}@default.service
%preun server
-%systemd_preun %{name}.service
+%systemd_preun %{name}@default.service
%postun server
-%systemd_postun_with_restart %{name}.service
+%systemd_postun_with_restart %{name}@default.service
# %%files -f %%{name}.lang
%files
@@ -149,14 +156,20 @@ exit 0
%files server
%doc README.txt doc/lgpl-2.1.txt src/jthread/LICENSE.MIT doc/mapformat.txt doc/protocol.txt README.fedora
%{_bindir}/%{name}server
-%{_unitdir}/%{name}.service
-%config(noreplace) %{_sysconfdir}/%{name}.conf
+%{_unitdir}/%{name}@.service
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-server
%config(noreplace) %{_sysconfdir}/rsyslog.d/%{name}.conf
-%attr(0755,minetest,minetest) %dir %{_sharedstatedir}/%{name}
+%attr(-,minetest,minetest)%{_sharedstatedir}/%{name}/
+%attr(-,minetest,minetest)%{_sysconfdir}/%{name}/
+%attr(-,minetest,minetest)%{_sysconfdir}/sysconfig/%{name}/
%{_mandir}/man6/minetestserver.*
%changelog
+* Mon Nov 25 2013 Igor Gnatenko <i.gnatenko.brain at gmail.com> - 0.4.8-2
+- add support of multiple server cfgs
+- allow acces for group to server parts
+- Shared irrlicht (patch from gentoo)
+
* Sun Nov 24 2013 Igor Gnatenko <i.gnatenko.brain at gmail.com> - 0.4.8-1
- Update to 0.4.8 (Changelog: http://dev.minetest.net/Changelog#0.4.7_.E2.86.92_0.4.8)
diff --git a/minetest at .service b/minetest at .service
new file mode 100644
index 0000000..c2d91a9
--- /dev/null
+++ b/minetest at .service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Minetest multiplayer server w/ %i.conf server config
+After=syslog.target network.target
+
+[Service]
+EnvironmentFile=/etc/sysconfig/minetest/%i.conf
+User=minetest
+Type=simple
+ExecStart=/usr/bin/minetestserver --config /etc/minetest/%i.conf --port $PORT --map-dir /var/lib/minetest/%i/
+
+[Install]
+WantedBy=multi-user.target
More information about the scm-commits
mailing list