diff options
author | Samuel Mesa | 2018-10-21 14:27:00 -0500 |
---|---|---|
committer | Samuel Mesa | 2018-10-21 14:27:00 -0500 |
commit | e11da0c12f07bc87c8d3df35071ef6b9b9c39b4d (patch) | |
tree | 55d378771303f2d6a715ddf1a10dac7de76fe872 | |
parent | 7c9cf317d3302a3576d2e55d3807848ff7bb3dff (diff) | |
download | aur-e11da0c12f07bc87c8d3df35071ef6b9b9c39b4d.tar.gz |
Update to version 2.14.0 and service systemd
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | PKGBUILD | 84 | ||||
-rw-r--r-- | geoserver.install | 22 | ||||
-rw-r--r-- | geoserver.service | 16 | ||||
-rw-r--r-- | geoserver.sysusers | 3 |
5 files changed, 104 insertions, 36 deletions
@@ -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 @@ -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/ |