summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO12
-rw-r--r--.gitignore2
-rw-r--r--PKGBUILD60
-rw-r--r--ddnet-server.service13
-rw-r--r--ddnet-sysusers.conf2
-rw-r--r--ddnet-tmpfiles.conf2
6 files changed, 41 insertions, 50 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0e254a188636..8a56e80dd4cd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = ddnet-git
pkgdesc = A Teeworlds modification with a unique cooperative gameplay.
- pkgver = 12.5.r15.g9c9264db8
- pkgrel = 2
+ pkgver = 12.5.r24.g6e24bf9ae
+ pkgrel = 1
url = https://ddnet.tw
arch = x86_64
license = custom:BSD
@@ -11,8 +11,6 @@ pkgbase = ddnet-git
makedepends = cmake
makedepends = ninja
makedepends = python
- makedepends = imagemagick
- makedepends = gendesk
depends = sdl2
depends = freetype2
depends = opusfile
@@ -26,7 +24,13 @@ pkgbase = ddnet-git
provides = ddnet
conflicts = ddnet
source = git+https://github.com/ddnet/ddnet
+ source = ddnet-server.service
+ source = ddnet-sysusers.conf
+ source = ddnet-tmpfiles.conf
sha256sums = SKIP
+ sha256sums = 9377a9d7c87abae166c8fa98cd79a61c74482f80f80bc930ae043349e9a84965
+ sha256sums = 70034f237270b38bf312238a26cfd322e212ca5714bfea4ae91e80c639ce8738
+ sha256sums = 043452f4de3c86d903973009bb3e59b3492a6669b86d0b1410e59a1476a87369
pkgname = ddnet-git
diff --git a/.gitignore b/.gitignore
index 1aace9926737..ddfe915b4f92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,8 @@
!*.desktop
!*.png
!LICENSE
+!*.service
+!*.conf
# ... except files from PKGBUILD fields
!*.changelog
diff --git a/PKGBUILD b/PKGBUILD
index 381bc41b737a..055f255e65d5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,21 +2,25 @@
# Maintainer: Ryozuki <ryo@ryozuki.xyz>
pkgname=ddnet-git
-pkgver=12.5.r15.g9c9264db8
-pkgrel=2
+pkgver=12.5.r24.g6e24bf9ae
+pkgrel=1
pkgdesc="A Teeworlds modification with a unique cooperative gameplay."
arch=('x86_64')
url="https://ddnet.tw"
license=('custom:BSD' 'CCPL:by-nc-sa')
depends=('sdl2' 'freetype2' 'opusfile' 'curl' 'glew' 'wavpack' 'libwebsockets' 'pnglite')
-makedepends=('git' 'cmake' 'ninja' 'python' 'imagemagick' 'gendesk')
+makedepends=('git' 'cmake' 'ninja' 'python')
checkdepends=('gtest')
optdepends=('ddnet-skins: A collection with more than 700 custom tee skins.'
'ddnet-maps-git: All the maps used on the official DDNet Servers')
provides=('ddnet')
conflicts=('ddnet')
-source=("git+https://github.com/ddnet/ddnet")
-sha256sums=('SKIP')
+source=("git+https://github.com/ddnet/ddnet"
+ 'ddnet-server.service' 'ddnet-sysusers.conf' 'ddnet-tmpfiles.conf')
+sha256sums=('SKIP'
+ '9377a9d7c87abae166c8fa98cd79a61c74482f80f80bc930ae043349e9a84965'
+ '70034f237270b38bf312238a26cfd322e212ca5714bfea4ae91e80c639ce8738'
+ '043452f4de3c86d903973009bb3e59b3492a6669b86d0b1410e59a1476a87369')
# Set 1 to enable MySQL support and add dependencies
_enable_mysql=0
@@ -36,35 +40,8 @@ pkgver() {
printf $v.r$r.g$h
}
-prepare() {
- [ -d build ] && rm -rf build; mkdir build
- [ -d prep ] && rm -rf prep; mkdir prep
- cd prep
-
- # Extract icons in .png from .ico (name must be lowercase)
- convert ../DDNet-$pkgver/other/icons/DDNet-Server.ico ddnet-server.png
-
- # Generate the server .desktop file
- gendesk --pkgname="DDNet-Server" --name="DDNet Server" \
- --pkgdesc="DDNet Server" --terminal=true \
- --icon="ddnet-server" --categories="Game;ArcadeGame" \
- --exec='sh -c "cd /usr/share/ddnet/data && DDNet-Server"'
-
- # Create icon files' structure, for installing in package(). How:
- # For each png file, check its dimensions (e.g. 128 x 128) using
- # the output of 'file' command. Then double-check the 's' as a
- # number, then install it into a "size/filename.png" notation
- for f in ddnet-server-?.png; do
- s=$(file $f | cut -d' ' -f5)
- if [ ! -z "${s##*[!0-9]*}" ]; then
- install -Dm644 $f ${s}x${s}/apps/${f/-[0-9]/}
- rm $f
- fi
- done
-}
-
-
build() {
+ [ -d build ] && rm -rf build; mkdir build
cd build
cmake ../ddnet \
-DCMAKE_BUILD_TYPE=Release \
@@ -82,17 +59,8 @@ check() {
package() {
DESTDIR="$pkgdir" ninja install -C build
-
- # Install desktop files and folder
- install -dvm755 "$pkgdir/usr/share/applications/"
- install -vm644 prep/DDNet-Server.desktop "$pkgdir/usr/share/applications/"
-
- # Install icon files and folders
- for f in $(find prep -type f -name '*.png'); do
- install -Dvm644 $f "$pkgdir/usr/share/icons/hicolor"/${f/prep\/}
- done
-
- # Install license file
- install -dvm755 "$pkgdir/usr/share/licenses/$pkgname/"
- install -vm644 ddnet/license.txt "$pkgdir/usr/share/licenses/$pkgname/"
+ install -vDm644 ddnet/license.txt "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+ install -vDm644 ddnet-server.service "$pkgdir/usr/lib/systemd/system/ddnet-server.service"
+ install -vDm644 "$srcdir/ddnet-sysusers.conf" "$pkgdir/usr/lib/sysusers.d/ddnet.conf"
+ install -vDm644 "$srcdir/ddnet-tmpfiles.conf" "$pkgdir/usr/lib/tmpfiles.d/ddnet.conf"
}
diff --git a/ddnet-server.service b/ddnet-server.service
new file mode 100644
index 000000000000..452fea2d4c9e
--- /dev/null
+++ b/ddnet-server.service
@@ -0,0 +1,13 @@
+[Unit]
+Description = DDNet Server
+After = network-online.target
+Wants = network-online.target
+
+[Service]
+ExecStart = /usr/bin/DDNet-Server
+WorkingDirectory = /var/lib/ddnet
+User = ddnet
+Group = ddnet
+
+[Install]
+WantedBy = multi-user.target
diff --git a/ddnet-sysusers.conf b/ddnet-sysusers.conf
new file mode 100644
index 000000000000..9d1ff5249d7d
--- /dev/null
+++ b/ddnet-sysusers.conf
@@ -0,0 +1,2 @@
+#Type Name ID GECOS Home directory Shell
+u ddnet - "DDNet user" /var/lib/ddnet
diff --git a/ddnet-tmpfiles.conf b/ddnet-tmpfiles.conf
new file mode 100644
index 000000000000..861bf8a37c86
--- /dev/null
+++ b/ddnet-tmpfiles.conf
@@ -0,0 +1,2 @@
+#Type Path Mode User Group Age Argument
+d /var/lib/ddnet 0755 ddnet ddnet