[arch-commits] Commit in mattermost/repos (5 files)

Caleb Maclennan alerque at gemini.archlinux.org
Mon Jan 24 20:18:24 UTC 2022


    Date: Monday, January 24, 2022 @ 20:18:23
  Author: alerque
Revision: 1114880

archrelease: copy trunk to community-testing-x86_64

Added:
  mattermost/repos/community-testing-x86_64/
  mattermost/repos/community-testing-x86_64/PKGBUILD
    (from rev 1114879, mattermost/trunk/PKGBUILD)
  mattermost/repos/community-testing-x86_64/mattermost.service
    (from rev 1114879, mattermost/trunk/mattermost.service)
  mattermost/repos/community-testing-x86_64/mattermost.sysusers
    (from rev 1114879, mattermost/trunk/mattermost.sysusers)
  mattermost/repos/community-testing-x86_64/mattermost.tmpfiles
    (from rev 1114879, mattermost/trunk/mattermost.tmpfiles)

---------------------+
 PKGBUILD            |  147 ++++++++++++++++++++++++++++++++++++++++++++++++++
 mattermost.service  |   44 ++++++++++++++
 mattermost.sysusers |    1 
 mattermost.tmpfiles |    3 +
 4 files changed, 195 insertions(+)

Copied: mattermost/repos/community-testing-x86_64/PKGBUILD (from rev 1114879, mattermost/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD	                        (rev 0)
+++ community-testing-x86_64/PKGBUILD	2022-01-24 20:18:23 UTC (rev 1114880)
@@ -0,0 +1,147 @@
+# Maintainer: Bruno Pagani <archange at archlinux.org>
+# Maintainer: Caleb Maclennan <alerque.com>
+# Contributor: William Gathoye <william + aur at gathoye dot be>
+# Contributor: Massimiliano Torromeo <massimiliano dot torromeo at gmail dot com>
+
+pkgname=mattermost
+pkgver=6.3.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-lts-gallium npm git python)
+optdepends=('mariadb: SQL server storage'
+            'percona-server: SQL server storage'
+            'postgresql: SQL server storage')
+options=(!lto)
+backup=(etc/webapps/${pkgname}/config.json)
+_server_archive="$pkgname-server-$pkgver"
+_webapp_archive="$pkgname-webapp-$pkgver"
+source=(https://github.com/$pkgname/$pkgname-server/archive/v$pkgver/$_server_archive.tar.gz
+        https://github.com/$pkgname/$pkgname-webapp/archive/v$pkgver/$_webapp_archive.tar.gz
+        $pkgname.service
+        $pkgname.sysusers
+        $pkgname.tmpfiles)
+sha256sums=('dc30aab660d64006490ab809cc54d6e80a399cd9e86ddd122c5009003867cfd2'
+            '607fcac8913d1524a59c5ef065f9996499f0b8c99ca794155e756028c270d59a'
+            'e5ba4a4f9c5f32816b997d5c02f6ddf3ef1e8259ae8dff5ef18865d076b70316'
+            'f7bd36f6d7874f1345d205c6dcb79af1804362fc977a658db88951a172d1dfa0'
+            '8dfeee28655b91dc75aca2317846284013ac3d5a837d360eba9641e9fbcf3aa2')
+
+prepare() {
+    cd "$_server_archive"
+    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/'
+
+    # Don’t embed a precompiled mmctl
+    sed '/@#Download MMCTL/,+2d' -i build/release.mk
+
+    # Remove platform specific precompiled plugin downloads
+    sed '/# Download prepackaged plugins/,+8d' -i build/release.mk
+
+    cd "../$_webapp_archive"
+
+    # Upstream 6.3.1 release has outdated checksum for their own toolkit
+    sed -i package-lock.json \
+        -e 's!sha512-wHUORQrEsVFMgSBJvkXnRPJ1/PpcyNP9B+SHzN35/Y0tGvRqGAN+ZwIPBewIq91b5iEZWxRZX1ufrDnI0rAOwg==!sha512-zfhfE1GH3uedf2eA/tfkFRyS7GnxMne2tEdnhdKFbs7CQe4DkNCmgWYb6MZCsPNaVHNYqnteyUYgtMuhiK51og==!'
+
+    # Modify npm commands to always use srcdir cache
+    sed -r -i Makefile \
+        -e "/^\tnpm /s!npm!npm --cache '$srcdir/npm-cache' --no-audit --no-fund!"
+    make node_modules -W package.json
+
+    # Enforce build hash to Arch Linux for the field corresponding to the webapp.
+    sed -r -i webpack.config.js \
+        -e "s/^(\s*)COMMIT_HASH:(.*),$/\1COMMIT_HASH: JSON.stringify\(\"$pkgver-$pkgrel Arch Linux \($CARCH\)\"\),/"
+}
+
+build() {
+    cd "$_server_archive"
+    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 "-linkmode external
+                   -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 "../$_webapp_archive"
+    make build
+    cd "../$_server_archive"
+    export BUILD_WEBAPP_DIR="$srcdir"/$_webapp_archive
+    make package-prep
+}
+
+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 "$_server_archive"
+
+    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-testing-x86_64/mattermost.service (from rev 1114879, mattermost/trunk/mattermost.service)
===================================================================
--- community-testing-x86_64/mattermost.service	                        (rev 0)
+++ community-testing-x86_64/mattermost.service	2022-01-24 20:18:23 UTC (rev 1114880)
@@ -0,0 +1,44 @@
+[Unit]
+Description=Mattermost Chat Server
+After=mysqld.service
+After=postgresql.service
+
+[Service]
+Type=simple
+User=mattermost
+Group=mattermost
+PermissionsStartOnly=true
+WorkingDirectory=/usr/share/webapps/mattermost/
+StateDirectory=mattermost
+LogsDirectory=mattermost
+ExecStart=/usr/bin/mattermost
+Restart=on-failure
+ReadWritePaths=/etc/webapps/mattermost/config.json
+CapabilityBoundingSet=
+LockPersonality=true
+#Not compatible with NodeJS
+#MemoryDenyWriteExecute=true
+NoNewPrivileges=True
+PrivateDevices=true
+PrivateTmp=true
+PrivateUsers=true
+ProtectClock=true
+ProtectControlGroups=true
+ProtectHome=true
+ProtectHostname=true
+ProtectKernelLogs=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectProc=invisible
+ProtectSystem=strict
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=true
+RestrictRealtime=true
+RestrictSUIDSGID=true
+#SecureBits=noroot-locked
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+SystemCallErrorNumber=EPERM
+
+[Install]
+WantedBy=multi-user.target

Copied: mattermost/repos/community-testing-x86_64/mattermost.sysusers (from rev 1114879, mattermost/trunk/mattermost.sysusers)
===================================================================
--- community-testing-x86_64/mattermost.sysusers	                        (rev 0)
+++ community-testing-x86_64/mattermost.sysusers	2022-01-24 20:18:23 UTC (rev 1114880)
@@ -0,0 +1 @@
+u mattermost - "mattermost user"

Copied: mattermost/repos/community-testing-x86_64/mattermost.tmpfiles (from rev 1114879, mattermost/trunk/mattermost.tmpfiles)
===================================================================
--- community-testing-x86_64/mattermost.tmpfiles	                        (rev 0)
+++ community-testing-x86_64/mattermost.tmpfiles	2022-01-24 20:18:23 UTC (rev 1114880)
@@ -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