[arch-commits] Commit in mattermost/repos (5 files)
Bruno Pagani
archange at archlinux.org
Sat Jul 25 16:58:20 UTC 2020
Date: Saturday, July 25, 2020 @ 16:58:20
Author: archange
Revision: 665281
archrelease: copy trunk to community-x86_64
Added:
mattermost/repos/community-x86_64/
mattermost/repos/community-x86_64/PKGBUILD
(from rev 665280, mattermost/trunk/PKGBUILD)
mattermost/repos/community-x86_64/mattermost.service
(from rev 665280, mattermost/trunk/mattermost.service)
mattermost/repos/community-x86_64/mattermost.sysusers
(from rev 665280, mattermost/trunk/mattermost.sysusers)
mattermost/repos/community-x86_64/mattermost.tmpfiles
(from rev 665280, mattermost/trunk/mattermost.tmpfiles)
---------------------+
PKGBUILD | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++
mattermost.service | 40 +++++++++++++++
mattermost.sysusers | 1
mattermost.tmpfiles | 3 +
4 files changed, 176 insertions(+)
Copied: mattermost/repos/community-x86_64/PKGBUILD (from rev 665280, mattermost/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD (rev 0)
+++ community-x86_64/PKGBUILD 2020-07-25 16:58:20 UTC (rev 665281)
@@ -0,0 +1,132 @@
+# Maintainer: Bruno Pagani <archange at archlinux.org>
+# Contributor: William Gathoye <william + aur at gathoye dot be>
+# Contributor: Caleb Maclennan <caleb at alerque.com>
+# Contributor: Massimiliano Torromeo <massimiliano dot torromeo at gmail dot com>
+
+pkgname=mattermost
+pkgver=5.25.1
+pkgrel=1
+pkgdesc="Open source Slack-alternative in Golang and React"
+arch=(x86_64)
+url="https://mattermost.com"
+license=(AGPL Apache)
+depends=(glibc)
+makedepends=(go jq nodejs npm git python2)
+optdepends=('mariadb: SQL server storage'
+ 'percona-server: SQL server storage'
+ 'postgresql: SQL server storage')
+backup=(etc/webapps/${pkgname}/config.json)
+source=(${pkgname}-server-${pkgver}.tar.gz::https://github.com/${pkgname}/${pkgname}-server/archive/v${pkgver}.tar.gz
+ ${pkgname}-webapp-${pkgver}.tar.gz::https://github.com/${pkgname}/${pkgname}-webapp/archive/v${pkgver}.tar.gz
+ ${pkgname}.service
+ ${pkgname}.sysusers
+ ${pkgname}.tmpfiles)
+sha256sums=('9035f0e952cbf181159f09f0615a1a7f0ef18f237cfad2f8b6afe6b0cdb55b86'
+ 'ebc18fd0c4df8cf6bf0d6cc97288e1f7f9c632bbf1b3317f89970ccaa7c5da09'
+ 'f48e3885cfb71d665c092fb8a5113881a2555a65f26dfb34656ca59d648e92be'
+ '92de9ac17a89c88ef3b049ecbe0bbb5707696f783d3c7eaf0d7902384d88b3a8'
+ '8dfeee28655b91dc75aca2317846284013ac3d5a837d360eba9641e9fbcf3aa2')
+
+prepare() {
+ cd ${pkgname}-server-${pkgver}
+ go mod vendor
+
+ # The configuration isn't available at this time yet, modify the default.
+ sed -r -i build/release.mk \
+ -e 's!config/config.json!config/default.json!' \
+ -e 's/\$\(DIST_PATH\)\/config\/config.json/\$\(DIST_PATH\)\/config\/default.json/'
+
+ # Remove platform specific lines from the Makefile from the line beginning
+ # with that statement to the end of file (we do not care of the additional
+ # file copy, nor the tar compression defined below the file).
+ sed '/# Download prepackaged plugins/,//d' -i build/release.mk
+
+ # Enforce build hash to Arch Linux for the field corresponding to the webapp.
+ cd ../${pkgname}-webapp-${pkgver}
+ sed -r -i webpack.config.js \
+ -e "s/^(\s*)COMMIT_HASH:(.*),$/\1COMMIT_HASH: JSON.stringify\(\"${pkgver}-${pkgrel} Arch Linux \(${CARCH}\)\"\),/"
+}
+
+build() {
+ cd ${pkgname}-server-${pkgver}
+ export CGO_CPPFLAGS="${CPPFLAGS}"
+ export CGO_CFLAGS="${CFLAGS}"
+ export CGO_CXXFLAGS="${CXXFLAGS}"
+ export CGO_LDFLAGS="${LDFLAGS}"
+ export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
+ go build -v \
+ -ldflags "-X \"github.com/mattermost/mattermost-server/v5/model.BuildNumber=${pkgver}-${pkgrel}\" \
+ -X \"github.com/mattermost/mattermost-server/v5/model.BuildDate=$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%d %H:%M:%S")\" \
+ -X \"github.com/mattermost/mattermost-server/v5/model.BuildHash=${pkgver}-${pkgrel} Arch Linux \(${CARCH}\)\" \
+ -X \"github.com/mattermost/mattermost-server/v5/model.BuildHashEnterprise=none\" \
+ -X \"github.com/mattermost/mattermost-server/v5/model.BuildEnterpriseReady=false\"" \
+ -o bin/ ./...
+ # Move to the client directory to avoid LDFLAGS pollution of a `make build-client` invocation
+ cd ../${pkgname}-webapp-${pkgver}
+ make build
+ cd ../${pkgname}-server-${pkgver}
+ export BUILD_WEBAPP_DIR="${srcdir}/${pkgname}-webapp-${pkgver}"
+ make package
+}
+
+package() {
+ # systemd files
+ install -Dm644 ${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/
+ install -Dm644 ${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf
+ install -Dm644 ${pkgname}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
+
+ # core stuff
+ cd ${pkgname}-server-${pkgver}
+
+ install -dm755 "${pkgdir}"/usr/share/webapps
+ cp -a dist/${pkgname} "${pkgdir}"/usr/share/webapps/
+
+ install -Dm755 bin/${pkgname} -t "${pkgdir}"/usr/bin
+ install -dm755 "${pkgdir}"/usr/share/webapps/${pkgname}/bin/
+ ln -sf /usr/bin/${pkgname} "${pkgdir}"/usr/share/webapps/${pkgname}/bin/${pkgname}
+
+ # fixes
+ cd "${pkgdir}"/usr/share/webapps/${pkgname}
+
+ # Move logs to right location
+ rm -rf logs
+ ln -s "/var/log/${pkgname}" logs
+
+ # Readme and docs
+ install -dm755 "${pkgdir}"/usr/share/doc/${pkgname}
+ mv NOTICE.txt README.md "${pkgdir}"/usr/share/doc/${pkgname}
+
+ # Config file management
+ cp config/default.json config/config.json
+
+ # Hashtags are needed to escape the Bash escape sequence. jq will consider
+ # it as a comment and won't interpret it.
+ jq '.FileSettings.Directory |= $mmVarLib + "/files/" | # \
+ .ComplianceSettings.Directory |= $mmVarLib + "/compliance/" | # \
+ .PluginSettings.Directory |= $mmVarLib + "/plugins/" | # \
+ .PluginSettings.ClientDirectory |= $mmVarLib + "/client/plugins/"' \
+ --arg mmVarLib '/var/lib/mattermost' \
+ config/config.json > config/config-new.json
+ mv config/config-new.json config/config.json
+ install -dm755 "${pkgdir}"/etc/webapps
+ mv config "${pkgdir}"/etc/webapps/${pkgname}
+ ln -sf /etc/webapps/${pkgname} config
+
+ # Avoid access denied when Mattermost tries to rewrite its asset data
+ # (root.html, manifest.json and *.css) during runtime. Reuse var tmpfile
+ # directory SELinux security context.
+ # cf. https://github.com/mattermost/mattermost-server/blob/f8d31def8eb463fcd866ebd08f3e6ef7a24e2109/utils/subpath.go#L48
+ # cf. https://wiki.archlinux.org/index.php/Web_application_package_guidelines
+ install -dm770 "${pkgdir}"/var/lib/mattermost/client
+
+ # We want recursivity as Mattermost wants to modify files in
+ # client/files/code_themes/ as well.
+ # Not recursive: for file in root.html manifest.json *.css; do
+ find client -type f -iname 'root.html' -o -iname 'manifest.json' -o -iname '*.css' |
+ while IFS= read -r fileAndPath; do
+ install -dm770 "${pkgdir}"/var/lib/mattermost/"${fileAndPath%/*}"
+ install -m660 "${fileAndPath}" "${pkgdir}"/var/lib/mattermost/"${fileAndPath%/*}"
+ rm "${fileAndPath}"
+ ln -s /var/lib/mattermost/"${fileAndPath}" "${fileAndPath}"
+ done
+}
Copied: mattermost/repos/community-x86_64/mattermost.service (from rev 665280, mattermost/trunk/mattermost.service)
===================================================================
--- community-x86_64/mattermost.service (rev 0)
+++ community-x86_64/mattermost.service 2020-07-25 16:58:20 UTC (rev 665281)
@@ -0,0 +1,40 @@
+[Unit]
+Description=Mattermost Chat Server
+After=mysqld.service
+After=postgresql.service
+
+[Service]
+Type=simple
+User=mattermost
+Group=mattermost
+PermissionsStartOnly=true
+WorkingDirectory=~
+StateDirectory=mattermost
+LogsDirectory=mattermost
+ExecStart=/usr/bin/mattermost
+Restart=on-failure
+CapabilityBoundingSet=
+NoNewPrivileges=True
+#SecureBits=noroot-locked
+ProtectSystem=strict
+ProtectHome=true
+ReadWritePaths=/etc/webapps/mattermost/config.json
+PrivateTmp=true
+PrivateDevices=true
+PrivateUsers=true
+ProtectHostname=true
+ProtectClock=true
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+LockPersonality=true
+#Not compatible with NodeJS
+#MemoryDenyWriteExecute=true
+RestrictRealtime=true
+RestrictSUIDSGID=true
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+
+[Install]
+WantedBy=multi-user.target
Copied: mattermost/repos/community-x86_64/mattermost.sysusers (from rev 665280, mattermost/trunk/mattermost.sysusers)
===================================================================
--- community-x86_64/mattermost.sysusers (rev 0)
+++ community-x86_64/mattermost.sysusers 2020-07-25 16:58:20 UTC (rev 665281)
@@ -0,0 +1 @@
+u mattermost - "mattermost user" /usr/share/webapps/mattermost/
Copied: mattermost/repos/community-x86_64/mattermost.tmpfiles (from rev 665280, mattermost/trunk/mattermost.tmpfiles)
===================================================================
--- community-x86_64/mattermost.tmpfiles (rev 0)
+++ community-x86_64/mattermost.tmpfiles 2020-07-25 16:58:20 UTC (rev 665281)
@@ -0,0 +1,3 @@
+d /var/log/mattermost 0755 mattermost mattermost
+Z /var/lib/mattermost ~0770 mattermost mattermost
+z /etc/webapps/mattermost/config.json 0660 mattermost mattermost
More information about the arch-commits
mailing list