summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Mesa2018-10-21 14:27:00 -0500
committerSamuel Mesa2018-10-21 14:27:00 -0500
commite11da0c12f07bc87c8d3df35071ef6b9b9c39b4d (patch)
tree55d378771303f2d6a715ddf1a10dac7de76fe872
parent7c9cf317d3302a3576d2e55d3807848ff7bb3dff (diff)
downloadaur-e11da0c12f07bc87c8d3df35071ef6b9b9c39b4d.tar.gz
Update to version 2.14.0 and service systemd
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD84
-rw-r--r--geoserver.install22
-rw-r--r--geoserver.service16
-rw-r--r--geoserver.sysusers3
5 files changed, 104 insertions, 36 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ba3a5a49df0c..1f6d35efb4cc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,13 +1,20 @@
pkgbase = geoserver-bin
pkgdesc = Server written in Java that allows users to share and edit geospatial data
- pkgver = 2.13.1
+ pkgver = 2.14.0
pkgrel = 1
url = http://geoserver.org
+ install = geoserver.install
arch = any
license = GPL2+
- depends = java-runtime
- source = http://downloads.sourceforge.net/project/geoserver/GeoServer/2.13.1/geoserver-2.13.1-bin.zip
- sha256sums = a7f619c76e964157da5fd082a9b1db2130050101f5b9eccd6888afa1d675cae0
+ depends = jre8-openjdk-headless
+ source = http://downloads.sourceforge.net/project/geoserver/GeoServer/2.14.0/geoserver-2.14.0-bin.zip
+ source = geoserver.install
+ source = geoserver.service
+ source = geoserver.sysusers
+ sha256sums = 2fd5a58b43e1f6d278249843c0afde22a620a9dd59dceda01b293c0f7e10ef00
+ sha256sums = 576c36670c418aa25730986e592c8b0f4a0657d3129aafbe7c783ff3ed527abe
+ sha256sums = b746621be690e385341a41d850cd297e6c70e936024e6eea43f98022e53cb301
+ sha256sums = edd692b53b71a684b20e0e7a87b0047aaefc2286574355fb5c08770af2652d08
pkgname = geoserver-bin
diff --git a/PKGBUILD b/PKGBUILD
index ddeb51fa0031..8886f2ff7713 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,50 +1,70 @@
-# Maintainer: Marcel Korpel <marcel[dot]korpel[at]gmail>
+# Maintainer: Samuel Mesa <samuelmesa@linuxmail.org>
+# Contributor: Marcel Korpel <marcel[dot]korpel[at]gmail>
# Contributor: Leandro de Assis <leandrodiassis@gmail.com>
# Contributor: Thomas Dziedzic
+# Contributor: Christoph Fink <christoph.fink@gmail.com>
pkgname=geoserver-bin
-pkgver=2.13.1
+pkgver=2.14.0
pkgrel=1
pkgdesc="Server written in Java that allows users to share and edit geospatial data"
-arch=('any')
+arch=("any")
url="http://geoserver.org"
-license=('GPL2+')
-depends=('java-runtime')
+license=("GPL2+")
+depends=("jre8-openjdk-headless")
-source=(http://downloads.sourceforge.net/project/geoserver/GeoServer/$pkgver/geoserver-$pkgver-bin.zip)
-sha256sums=('a7f619c76e964157da5fd082a9b1db2130050101f5b9eccd6888afa1d675cae0')
-####################################################
-# WARNING: GEOSERVER USES A VERY WEIRD CONFIGURATION
-# FOLDERS NEED TO BE 777 IN /OPT
-####################################################
+source=(
+ "http://downloads.sourceforge.net/project/geoserver/GeoServer/${pkgver}/geoserver-${pkgver}-bin.zip"
+ "geoserver.install"
+ "geoserver.service"
+ "geoserver.sysusers"
+)
+sha256sums=('2fd5a58b43e1f6d278249843c0afde22a620a9dd59dceda01b293c0f7e10ef00'
+ '576c36670c418aa25730986e592c8b0f4a0657d3129aafbe7c783ff3ed527abe'
+ 'b746621be690e385341a41d850cd297e6c70e936024e6eea43f98022e53cb301'
+ 'edd692b53b71a684b20e0e7a87b0047aaefc2286574355fb5c08770af2652d08')
+
+install="geoserver.install"
package() {
- cd "$srcdir/geoserver-$pkgver"
- # remove windows files
- rm bin/startup.bat bin/shutdown.bat
+ cd "$srcdir/geoserver-${pkgver}"
+
+ # create a dedicated user
+ install -Dm644 ../geoserver.sysusers "${pkgdir}/usr/lib/sysusers.d/geoserver.conf"
+
+ # clean up: remove windows file, move license file
+ # to /usr/share/licenses
+ rm bin/{startup,shutdown}.bat
+ install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ rm LICENSE.txt
+
+ # install geoserver to /opt/geoserver/${pkgver}
+ mkdir -p "${pkgdir}/opt/geoserver/"
+ cp -R "../geoserver-${pkgver}" "${pkgdir}/opt/geoserver/${pkgver}"
+
+ # adjust data directory permissions
+ find "${pkgdir}/opt/geoserver/${pkgver}/data_dir/data" -type d -exec chmod 0775 {} \;
+ find "${pkgdir}/opt/geoserver/${pkgver}/data_dir/data" -type f -exec chmod 0664 {} \;
- # install
- install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
- rm LICENSE.txt
- cd ..
- mkdir -p "$pkgdir/opt"
- cp -r geoserver-$pkgver "$pkgdir/opt"
+ # install geoserver as a systemd service
+ sed "s/{pkgver}/${pkgver}/g" -i ../geoserver.service
+ install -Dm644 ../geoserver.service "${pkgdir}/usr/lib/systemd/system/geoserver.service"
- # TODO: selectively change file permissions
- # or find a better way to install geoserver
+ # custom startup/shutdown links
+ mkdir -p "${pkgdir}/usr/bin"
+ ln -s "/opt/geoserver/${pkgver}/bin/startup.sh" "${pkgdir}/usr/bin/geoserver-startup"
+ ln -s "/opt/geoserver/${pkgver}/bin/shutdown.sh" "${pkgdir}/usr/bin/geoserver-shutdown"
- # change permissions
- chmod -R a+rwX "$pkgdir/opt/geoserver-$pkgver"
+ # create /etc/profile.d/ file to set environment
+ # variables (used when geoserver is started manually)
+ mkdir -p "${pkgdir}/etc/profile.d"
+ echo "export GEOSERVER_HOME=/opt/geoserver/${pkgver}/" > "${pkgdir}/etc/profile.d/geoserver.sh"
+ chmod +x "${pkgdir}/etc/profile.d/geoserver.sh"
- # make custom startup/shutdown links
- mkdir -p "$pkgdir/usr/bin"
- ln -s "/opt/geoserver-$pkgver/bin/startup.sh" "$pkgdir/usr/bin/geoserver-startup"
- ln -s "/opt/geoserver-$pkgver/bin/shutdown.sh" "$pkgdir/usr/bin/geoserver-shutdown"
+ # install geoserver as a systemd service
+ sed "s/{pkgver}/${pkgver}/g" -i ../geoserver.service
+ install -Dm644 ../geoserver.service "${pkgdir}/usr/lib/systemd/system/geoserver.service"
- # set necessary variables
- mkdir -p "$pkgdir/etc/profile.d"
- echo "export GEOSERVER_HOME=/opt/geoserver-$pkgver/" > "$pkgdir/etc/profile.d/geoserver.sh"
- chmod +x "$pkgdir/etc/profile.d/geoserver.sh"
}
diff --git a/geoserver.install b/geoserver.install
new file mode 100644
index 000000000000..c72c909fb75f
--- /dev/null
+++ b/geoserver.install
@@ -0,0 +1,22 @@
+post_install() {
+ # cut off $pkgrel part
+ pkgver="${1%-*}"
+
+ # force _immediate_ creation of geoserver user
+ systemd-sysusers /usr/lib/sysusers.d/geoserver.conf
+
+ # adjust permissions
+ chgrp -R geoserver "/opt/geoserver/${pkgver}"
+ chown -R geoserver "/opt/geoserver/${pkgver}/data_dir"
+
+ # inform user about new systemd service
+ cat <<EOF
+==> Enable and/or start the \`geoserver.service\` systemd service.
+==> To add data to the geoserver data directory at /opt/geoserver/${pkgver}/data_dir/data/, your user has be in the \`geoserver\` group.
+EOF
+
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/geoserver.service b/geoserver.service
new file mode 100644
index 000000000000..5666d4a0a298
--- /dev/null
+++ b/geoserver.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=GeoServer
+
+[Service]
+Type=simple
+
+User=geoserver
+Group=geoserver
+
+Environment="GEOSERVER_HOME=/opt/geoserver/{pkgver}/"
+ExecStart=/opt/geoserver/{pkgver}/bin/startup.sh
+ExecStop=/opt/geoserver/{pkgver}/bin/shutdown.sh
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/geoserver.sysusers b/geoserver.sysusers
new file mode 100644
index 000000000000..0676486e26a9
--- /dev/null
+++ b/geoserver.sysusers
@@ -0,0 +1,3 @@
+# create a user + group to run geoserver
+g geoserver - -
+u geoserver - "GeoServer" /opt/geoserver/