From b5cf1da5484d69a70db818cd6a41fd738f0a3421 Mon Sep 17 00:00:00 2001 From: s3lph Date: Thu, 14 Dec 2023 00:56:30 +0100 Subject: [PATCH] feat: nextcloud-28 --- .forgejo/workflows/package.yml | 22 ++++++ README.md | 22 +++++- nextcloud-28-app-calendar/package.sh | 10 +++ nextcloud-28-app-contacts/package.sh | 10 +++ nextcloud-28-app-deck/package.sh | 10 +++ nextcloud-28-app-forms/package.sh | 9 +++ nextcloud-28-app-gpoddersync/package.sh | 10 +++ nextcloud-28-app-gpxpod/package.sh | 10 +++ nextcloud-28-app-groupfolders/package.sh | 10 +++ nextcloud-28-app-mail/package.sh | 9 +++ nextcloud-28-app-news/package.sh | 9 +++ nextcloud-28-app-nextpod/package.sh | 8 ++ nextcloud-28-app-notes/package.sh | 9 +++ .../nextcloud-notify-push.default | 25 ++++++ .../nextcloud-notify-push.service | 12 +++ nextcloud-28-app-notify-push/package.sh | 49 ++++++++++++ nextcloud-28-app-polls/package.sh | 10 +++ .../nextcloud-preview-generator.service | 8 ++ .../nextcloud-preview-generator.timer | 9 +++ nextcloud-28-app-previewgenerator/package.sh | 17 ++++ nextcloud-28-app-richdocuments/package.sh | 10 +++ nextcloud-28-app-richdocumentscode/package.sh | 15 ++++ nextcloud-28-app-talk/package.sh | 10 +++ nextcloud-28-app-tasks/package.sh | 10 +++ .../package.sh | 10 +++ nextcloud-28-app-user-oidc/package.sh | 10 +++ nextcloud-28/config.php | 26 ++++++ nextcloud-28/debian.conffiles | 2 + nextcloud-28/debian.control | 16 ++++ nextcloud-28/debian.postinst | 15 ++++ nextcloud-28/nextcloud-cron.service | 8 ++ nextcloud-28/nextcloud-cron.timer | 9 +++ nextcloud-28/nextcloud.site.conf | 33 ++++++++ nextcloud-28/occ.sh | 4 + nextcloud-28/package.sh | 79 +++++++++++++++++++ .../patches/01_isfairuse_userfacing_ui.patch | 33 ++++++++ 36 files changed, 567 insertions(+), 1 deletion(-) create mode 100755 nextcloud-28-app-calendar/package.sh create mode 100755 nextcloud-28-app-contacts/package.sh create mode 100755 nextcloud-28-app-deck/package.sh create mode 100755 nextcloud-28-app-forms/package.sh create mode 100755 nextcloud-28-app-gpoddersync/package.sh create mode 100755 nextcloud-28-app-gpxpod/package.sh create mode 100755 nextcloud-28-app-groupfolders/package.sh create mode 100755 nextcloud-28-app-mail/package.sh create mode 100755 nextcloud-28-app-news/package.sh create mode 100755 nextcloud-28-app-nextpod/package.sh create mode 100755 nextcloud-28-app-notes/package.sh create mode 100644 nextcloud-28-app-notify-push/nextcloud-notify-push.default create mode 100644 nextcloud-28-app-notify-push/nextcloud-notify-push.service create mode 100755 nextcloud-28-app-notify-push/package.sh create mode 100755 nextcloud-28-app-polls/package.sh create mode 100644 nextcloud-28-app-previewgenerator/nextcloud-preview-generator.service create mode 100644 nextcloud-28-app-previewgenerator/nextcloud-preview-generator.timer create mode 100755 nextcloud-28-app-previewgenerator/package.sh create mode 100755 nextcloud-28-app-richdocuments/package.sh create mode 100755 nextcloud-28-app-richdocumentscode/package.sh create mode 100755 nextcloud-28-app-talk/package.sh create mode 100755 nextcloud-28-app-tasks/package.sh create mode 100755 nextcloud-28-app-twofactor-webauthn/package.sh create mode 100755 nextcloud-28-app-user-oidc/package.sh create mode 100644 nextcloud-28/config.php create mode 100644 nextcloud-28/debian.conffiles create mode 100644 nextcloud-28/debian.control create mode 100755 nextcloud-28/debian.postinst create mode 100644 nextcloud-28/nextcloud-cron.service create mode 100644 nextcloud-28/nextcloud-cron.timer create mode 100644 nextcloud-28/nextcloud.site.conf create mode 100755 nextcloud-28/occ.sh create mode 100755 nextcloud-28/package.sh create mode 100644 nextcloud-28/patches/01_isfairuse_userfacing_ui.patch diff --git a/.forgejo/workflows/package.yml b/.forgejo/workflows/package.yml index 9a0fea1..8966ea5 100644 --- a/.forgejo/workflows/package.yml +++ b/.forgejo/workflows/package.yml @@ -55,3 +55,25 @@ jobs: nextcloud-27-app-twofactor-webauthn: *job nextcloud-27-app-user-oidc: *job + nextcloud-28: *job + nextcloud-28-app-calendar: *job + nextcloud-28-app-contacts: *job + nextcloud-28-app-deck: *job + nextcloud-28-app-forms: *job + nextcloud-28-app-gpoddersync: *job + nextcloud-28-app-gpxpod: *job + nextcloud-28-app-groupfolders: *job + nextcloud-28-app-polls: *job + nextcloud-28-app-previewgenerator: *job + nextcloud-28-app-mail: *job + nextcloud-28-app-news: *job + nextcloud-28-app-nextpod: *job + nextcloud-28-app-notes: *job + nextcloud-28-app-notify-push: *job + nextcloud-28-app-richdocuments: *job + nextcloud-28-app-richdocumentscode: *job + nextcloud-28-app-talk: *job + nextcloud-28-app-tasks: *job + nextcloud-28-app-twofactor-webauthn: *job + nextcloud-28-app-user-oidc: *job + diff --git a/README.md b/README.md index ea03181..2588ca9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This project automatically builds Debian packages for Nextcloud and some of its apps for my personal use (and sometimes adapted to my -needs) . +needs). There is a daily Gitlab-CI run which builds the latest stable version of each package and pushes them to my private repository. For more @@ -30,3 +30,23 @@ information, please see [https://repo.s3lph.me/](https://repo.s3lph.me/). - [nextcloud-27-app-tasks](https://apps.nextcloud.com/apps/tasks) - [nextcloud-27-app-twofactor-webauthn](https://apps.nextcloud.com/apps/twofactor_webauthn) - [nextcloud-27-app-user-oidc](https://apps.nextcloud.com/apps/user_oidc) +- [nextcloud-28](https://github.com/nextcloud/server) (Code integrity check fails due to patches applied during build process!) +- [nextcloud-28-app-calendar](https://apps.nextcloud.com/apps/calendar) +- [nextcloud-28-app-contacts](https://apps.nextcloud.com/apps/contacts) +- [nextcloud-28-app-deck](https://apps.nextcloud.com/apps/deck) +- [nextcloud-28-app-forms](https://apps.nextcloud.com/apps/forms) +- [nextcloud-28-app-gpoddersync](https://apps.nextcloud.com/apps/gpoddersync) +- [nextcloud-28-app-gpxpod](https://apps.nextcloud.com/apps/gpxpod) +- [nextcloud-28-app-groupfolders](https://apps.nextcloud.com/apps/groupfolders) +- [nextcloud-28-app-polls](https://apps.nextcloud.com/apps/polls) +- [nextcloud-28-app-previewgenerator](https://apps.nextcloud.com/apps/previewgenerator) +- [nextcloud-28-app-mail](https://apps.nextcloud.com/apps/mail) +- [nextcloud-28-app-news](https://apps.nextcloud.com/apps/news) +- [nextcloud-28-app-nextpod](https://apps.nextcloud.com/apps/nextpod) +- [nextcloud-28-app-notes](https://apps.nextcloud.com/apps/notes) +- [nextcloud-28-app-notify-push](https://apps.nextcloud.com/apps/notify_push) +- [nextcloud-28-app-richdocuments](https://apps.nextcloud.com/apps/richdocuments) +- [nextcloud-28-app-richdocumentscode](https://apps.nextcloud.com/apps/richdocumentscode) +- [nextcloud-28-app-tasks](https://apps.nextcloud.com/apps/tasks) +- [nextcloud-28-app-twofactor-webauthn](https://apps.nextcloud.com/apps/twofactor_webauthn) +- [nextcloud-28-app-user-oidc](https://apps.nextcloud.com/apps/user_oidc) diff --git a/nextcloud-28-app-calendar/package.sh b/nextcloud-28-app-calendar/package.sh new file mode 100755 index 0000000..f4dc865 --- /dev/null +++ b/nextcloud-28-app-calendar/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/calendar +} + +build_nextcloud_app calendar 28 + diff --git a/nextcloud-28-app-contacts/package.sh b/nextcloud-28-app-contacts/package.sh new file mode 100755 index 0000000..305ae24 --- /dev/null +++ b/nextcloud-28-app-contacts/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/contacts +} + +build_nextcloud_app contacts 28 + diff --git a/nextcloud-28-app-deck/package.sh b/nextcloud-28-app-deck/package.sh new file mode 100755 index 0000000..2e79e79 --- /dev/null +++ b/nextcloud-28-app-deck/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/deck +} + +build_nextcloud_app deck 28 + diff --git a/nextcloud-28-app-forms/package.sh b/nextcloud-28-app-forms/package.sh new file mode 100755 index 0000000..e4a507e --- /dev/null +++ b/nextcloud-28-app-forms/package.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/forms +} + +build_nextcloud_app forms 28 diff --git a/nextcloud-28-app-gpoddersync/package.sh b/nextcloud-28-app-gpoddersync/package.sh new file mode 100755 index 0000000..e456dad --- /dev/null +++ b/nextcloud-28-app-gpoddersync/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + cat "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/${APP}/CHANGELOG.md" | gzip -9n > "${PKGDIR}/usr/share/doc/${PKGNAME}/changelog.gz" +} + +build_nextcloud_app gpoddersync 28 + diff --git a/nextcloud-28-app-gpxpod/package.sh b/nextcloud-28-app-gpxpod/package.sh new file mode 100755 index 0000000..75d8f64 --- /dev/null +++ b/nextcloud-28-app-gpxpod/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog julien-nc/gpxpod +} + +build_nextcloud_app gpxpod 28 + diff --git a/nextcloud-28-app-groupfolders/package.sh b/nextcloud-28-app-groupfolders/package.sh new file mode 100755 index 0000000..7441e65 --- /dev/null +++ b/nextcloud-28-app-groupfolders/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/groupfolders +} + +build_nextcloud_app groupfolders 28 + diff --git a/nextcloud-28-app-mail/package.sh b/nextcloud-28-app-mail/package.sh new file mode 100755 index 0000000..10cd748 --- /dev/null +++ b/nextcloud-28-app-mail/package.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/mail +} + +build_nextcloud_app mail 28 diff --git a/nextcloud-28-app-news/package.sh b/nextcloud-28-app-news/package.sh new file mode 100755 index 0000000..e0289b8 --- /dev/null +++ b/nextcloud-28-app-news/package.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/news +} + +build_nextcloud_app news 28 diff --git a/nextcloud-28-app-nextpod/package.sh b/nextcloud-28-app-nextpod/package.sh new file mode 100755 index 0000000..54dbf45 --- /dev/null +++ b/nextcloud-28-app-nextpod/package.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +export ADDITIONAL_DEPS=", nextcloud-28-app-gpoddersync" + +build_nextcloud_app nextpod 28 + diff --git a/nextcloud-28-app-notes/package.sh b/nextcloud-28-app-notes/package.sh new file mode 100755 index 0000000..002fe05 --- /dev/null +++ b/nextcloud-28-app-notes/package.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/notes +} + +build_nextcloud_app notes 28 diff --git a/nextcloud-28-app-notify-push/nextcloud-notify-push.default b/nextcloud-28-app-notify-push/nextcloud-notify-push.default new file mode 100644 index 0000000..f22165e --- /dev/null +++ b/nextcloud-28-app-notify-push/nextcloud-notify-push.default @@ -0,0 +1,25 @@ +# Mandatory: TCP port to listen on +PORT=7867 + +# The push server can be configured either by loading the config from +# the nextcloud config.php or by setting all options through +# environment variables. +# +# Re-using the configuration from nextcloud is the recommended way, as +# it ensures that the configuration remains in sync. +CONFIG=/var/lib/nextcloud/webroot/config/config.php + +# If using the config.php isn't possible, you can configure the push +# server by setting the following environment variables: + +# connection url for the Nextcloud database +#DATABASE_URL=postgres://user:password@db_host/db_name + +# database prefix configured in Nextcloud +#DATABASE_PREFIX=oc_ + +# connection url for redis +#REDIS_URL=redis://localhost + +# url for the nextcloud instance +#NEXTCLOUD_URL=https://cloud.example.com \ No newline at end of file diff --git a/nextcloud-28-app-notify-push/nextcloud-notify-push.service b/nextcloud-28-app-notify-push/nextcloud-notify-push.service new file mode 100644 index 0000000..df4c955 --- /dev/null +++ b/nextcloud-28-app-notify-push/nextcloud-notify-push.service @@ -0,0 +1,12 @@ +[Unit] +Description=Push daemon for Nextcloud clients + +[Service] +EnvironmentFile=-/etc/default/nextcloud-notify-push +ExecStart=/usr/lib/nextcloud/nextcloud-apps/notify_push/bin/notify_push $CONFIG +User=www-data +Group=www-data +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/nextcloud-28-app-notify-push/package.sh b/nextcloud-28-app-notify-push/package.sh new file mode 100755 index 0000000..b2d4643 --- /dev/null +++ b/nextcloud-28-app-notify-push/package.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +export ARCHS=(amd64 arm64 armhf) + +function _ncarch() { + case "$1" in + amd64) + echo x86_64 + ;; + arm64) + echo aarch64 + ;; + armhf) + echo armv7 + ;; + *) + echo no such architecture + exit 1 + esac +} + +function post_prepare() { + NCARCH=$(_ncarch $ARCH) + mkdir -p \ + "${PKGDIR}/lib/systemd/system" \ + "${PKGDIR}/etc/default" + mv "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/notify_push/bin/${NCARCH}/notify_push" \ + "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/notify_push/bin/notify_push" + find "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/notify_push/bin/" -type d -mindepth 1 -maxdepth 1 -exec rm -rf {} \; + cp "${ROOT}/nextcloud-notify-push.service" "${PKGDIR}/lib/systemd/system/nextcloud-notify-push.service" + cp "${ROOT}/nextcloud-notify-push.default" "${PKGDIR}/etc/default/nextcloud-notify-push" + cp "${SRCDIR}/notify_push/LICENSE" "${PKGDIR}/usr/share/doc/nextcloud-${NCMAJOR}-app-${APP//_/-}/copyright" + echo '/etc/default/nextcloud-notify-push' > "${PKGDIR}/DEBIAN/conffiles" + github_changelog nextcloud/notify_push +} + +function post_chown() { + chmod 0600 "${PKGDIR}/etc/default/nextcloud-notify-push" + chmod 0755 "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/notify_push/bin/notify_push" +} + +function postinst_configure_post() { + deb-systemd-helper enable nextcloud-notify-push.service + deb-systemd-invoke restart nextcloud-notify-push.service +} + +build_nextcloud_app notify_push 28 diff --git a/nextcloud-28-app-polls/package.sh b/nextcloud-28-app-polls/package.sh new file mode 100755 index 0000000..7095544 --- /dev/null +++ b/nextcloud-28-app-polls/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/polls +} + +build_nextcloud_app polls 28 + diff --git a/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.service b/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.service new file mode 100644 index 0000000..e9f36bc --- /dev/null +++ b/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.service @@ -0,0 +1,8 @@ +[Unit] +Description=Pre-Generate Nextcloud preview thumbnails + +[Service] +Type=oneshot +ExecStart=/usr/bin/php /var/lib/nextcloud/webroot/occ preview:pre-generate +User=www-data +Group=www-data diff --git a/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.timer b/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.timer new file mode 100644 index 0000000..b718e19 --- /dev/null +++ b/nextcloud-28-app-previewgenerator/nextcloud-preview-generator.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Pre-Generate Nextcloud preview thumbnails + +[Timer] +OnCalendar=*:0/15 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/nextcloud-28-app-previewgenerator/package.sh b/nextcloud-28-app-previewgenerator/package.sh new file mode 100755 index 0000000..d0ab898 --- /dev/null +++ b/nextcloud-28-app-previewgenerator/package.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + mkdir -p "${PKGDIR}/lib/systemd/system/" + cp "${ROOT}/nextcloud-preview-generator.service" "${PKGDIR}/lib/systemd/system/nextcloud-preview-generator.service" + cp "${ROOT}/nextcloud-preview-generator.timer" "${PKGDIR}/lib/systemd/system/nextcloud-preview-generator.timer" + github_changelog nextcloud/previewgenerator +} + +postinst_configure_post() { + deb-systemd-helper enable nextcloud-preview-generator.timer +} + +build_nextcloud_app previewgenerator 28 + diff --git a/nextcloud-28-app-richdocuments/package.sh b/nextcloud-28-app-richdocuments/package.sh new file mode 100755 index 0000000..5a6344c --- /dev/null +++ b/nextcloud-28-app-richdocuments/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/richdocuments +} + +build_nextcloud_app richdocuments 28 + diff --git a/nextcloud-28-app-richdocumentscode/package.sh b/nextcloud-28-app-richdocumentscode/package.sh new file mode 100755 index 0000000..22ee6eb --- /dev/null +++ b/nextcloud-28-app-richdocumentscode/package.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +export ARCHS=(amd64) + +post_prepare() { + github_changelog CollaboraOnline/richdocumentscode +} + +post_chown() { + chmod 0755 "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/${APP}/collabora/Collabora_Online.AppImage" +} + +build_nextcloud_app richdocumentscode 28 diff --git a/nextcloud-28-app-talk/package.sh b/nextcloud-28-app-talk/package.sh new file mode 100755 index 0000000..25bc1c2 --- /dev/null +++ b/nextcloud-28-app-talk/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/spreed +} + +build_nextcloud_app spreed 28 + diff --git a/nextcloud-28-app-tasks/package.sh b/nextcloud-28-app-tasks/package.sh new file mode 100755 index 0000000..e50ce50 --- /dev/null +++ b/nextcloud-28-app-tasks/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + github_changelog nextcloud/tasks +} + +build_nextcloud_app tasks 28 + diff --git a/nextcloud-28-app-twofactor-webauthn/package.sh b/nextcloud-28-app-twofactor-webauthn/package.sh new file mode 100755 index 0000000..80f0745 --- /dev/null +++ b/nextcloud-28-app-twofactor-webauthn/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + cat "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/${APP}/CHANGELOG.md" | gzip -9n > "${PKGDIR}/usr/share/doc/${PKGNAME}/changelog.gz" +} + +build_nextcloud_app twofactor_webauthn 28 + diff --git a/nextcloud-28-app-user-oidc/package.sh b/nextcloud-28-app-user-oidc/package.sh new file mode 100755 index 0000000..2a8a84e --- /dev/null +++ b/nextcloud-28-app-user-oidc/package.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. ../.skel/nextcloud-app/build-nextcloud-app + +post_prepare() { + cat "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/${APP}/CHANGELOG.md" | gzip -9n > "${PKGDIR}/usr/share/doc/${PKGNAME}/changelog.gz" +} + +build_nextcloud_app user_oidc 28 + diff --git a/nextcloud-28/config.php b/nextcloud-28/config.php new file mode 100644 index 0000000..863fdba --- /dev/null +++ b/nextcloud-28/config.php @@ -0,0 +1,26 @@ + false, + + 'trusted_domains' => [ + 'nextcloud.example.com' + ], + 'overwrite.cli.url' => 'http://nextcloud.example.com', + 'datadirectory' => '/var/lib/nextcloud/data', + 'logfile' => '/var/log/nextcloud/nextcloud.log', + + 'mysql.utf8mb4' => true, + + 'connectivity_check_domains' => ['localhost'], + + 'appstoreenabled' => false, + 'apps_paths' => [ + [ + 'path'=> '/usr/lib/nextcloud/nextcloud-apps', + 'url' => '/dist-apps', + 'writable' => false, + ] + ], + +); diff --git a/nextcloud-28/debian.conffiles b/nextcloud-28/debian.conffiles new file mode 100644 index 0000000..167e38d --- /dev/null +++ b/nextcloud-28/debian.conffiles @@ -0,0 +1,2 @@ +/var/lib/nextcloud/webroot/config/config.php +/etc/apache2/sites-available/nextcloud.site.conf diff --git a/nextcloud-28/debian.control b/nextcloud-28/debian.control new file mode 100644 index 0000000..4c133af --- /dev/null +++ b/nextcloud-28/debian.control @@ -0,0 +1,16 @@ +Package: nextcloud-28 +Version: __VERSION__ +Maintainer: __MAINTAINER__ +Section: web +Priority: optional +Architecture: all +Depends: php-cli (>=8.0), php-curl, php-gd, php-mbstring, php-xml, php-zip, php-bz2, php-intl +Suggests: apache2, mariadb-server, php-mysql, php-redis +Provides: nextcloud, nextcloud-app-twofactor-totp +Conflicts: nextcloud, nextcloud-app-twofactor-totp +Replaces: nextcloud-app-twofactor-totp +Description: A safe home for all your data. + Nextcloud Hub is the first completely integrated on-premises content + collaboration platform on the market, ready for a new generation of + users who expect seamless online collaboration capabilities out of + the box. diff --git a/nextcloud-28/debian.postinst b/nextcloud-28/debian.postinst new file mode 100755 index 0000000..b4c6f07 --- /dev/null +++ b/nextcloud-28/debian.postinst @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +if [[ "$1" == "configure" ]]; then + + deb-systemd-helper enable nextcloud-cron.timer + + # Only run occ upgrade if nextcloud has been configured + if [[ -z "$(grep installed /var/lib/nextcloud/webroot/config/config.php | grep false)" ]]; then + sudo -u www-data php /var/lib/nextcloud/webroot/occ upgrade + sudo -u www-data php /var/lib/nextcloud/webroot/occ maintenance:mode --off + fi + +fi diff --git a/nextcloud-28/nextcloud-cron.service b/nextcloud-28/nextcloud-cron.service new file mode 100644 index 0000000..0b689ca --- /dev/null +++ b/nextcloud-28/nextcloud-cron.service @@ -0,0 +1,8 @@ +[Unit] +Description=Nextcloud Cronjob + +[Service] +Type=oneshot +ExecStart=/usr/bin/php /var/lib/nextcloud/webroot/cron.php +User=www-data +Group=www-data diff --git a/nextcloud-28/nextcloud-cron.timer b/nextcloud-28/nextcloud-cron.timer new file mode 100644 index 0000000..9295c86 --- /dev/null +++ b/nextcloud-28/nextcloud-cron.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Nextcloud Cronjob + +[Timer] +OnCalendar=*:0/5 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/nextcloud-28/nextcloud.site.conf b/nextcloud-28/nextcloud.site.conf new file mode 100644 index 0000000..0aa033d --- /dev/null +++ b/nextcloud-28/nextcloud.site.conf @@ -0,0 +1,33 @@ + + + ServerName nextcloud.example.com + + DocumentRoot /var/lib/nextcloud/webroot + Alias /dist-apps /usr/lib/nextcloud/nextcloud-apps + + + Require all granted + AllowOverride All + Options FollowSymLinks MultiViews + + + + Require all granted + AllowOverride All + Options FollowSymLinks MultiViews + + + + Dav off + + + + RewriteEngine on + RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L] + RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L] + RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L] + RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L] + RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L] + + + \ No newline at end of file diff --git a/nextcloud-28/occ.sh b/nextcloud-28/occ.sh new file mode 100755 index 0000000..541b5ed --- /dev/null +++ b/nextcloud-28/occ.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/sudo -u www-data -- /usr/bin/php /var/lib/nextcloud/webroot/occ $@ + diff --git a/nextcloud-28/package.sh b/nextcloud-28/package.sh new file mode 100755 index 0000000..4e9f2b8 --- /dev/null +++ b/nextcloud-28/package.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +set -exo pipefail + +. ../.skel/helpers.sh + +VERSION=28 + +URL="https://download.nextcloud.com/server/releases/latest-${VERSION}.tar.bz2" + +ROOT=$(pwd) +function fetch() { + cd "${SRCDIR}" + wget "${URL}" --output-document "nextcloud-${VERSION}.tar.bz2" + tar -xf "nextcloud-${VERSION}.tar.bz2" + patch --strip=1 --directory="${SRCDIR}" --ignore-whitespace < "${ROOT}/patches/01_isfairuse_userfacing_ui.patch" +} + +function prepare() { + mkdir -p \ + "${PKGDIR}/DEBIAN" \ + "${PKGDIR}/var/lib/nextcloud" \ + "${PKGDIR}/usr/lib/nextcloud" \ + "${PKGDIR}/var/lib/nextcloud/data" \ + "${PKGDIR}/lib/systemd/system" \ + "${PKGDIR}/var/log/nextcloud" \ + "${PKGDIR}/usr/local/bin" \ + "${PKGDIR}/etc/apache2/sites-available" \ + "${PKGDIR}/usr/share/doc/${PKGNAME}" + VERSION=$(cat "${SRCDIR}/nextcloud/version.php" | grep "OC_VersionString" | cut -d"'" -f2) + cp -r "${SRCDIR}/nextcloud" "${PKGDIR}/var/lib/nextcloud/webroot" + mv "${PKGDIR}/var/lib/nextcloud/webroot/apps" "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps" + cp "${ROOT}/config.php" "${PKGDIR}/var/lib/nextcloud/webroot/config/config.php" + cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control" + cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles" + cp "${ROOT}/debian.postinst" "${PKGDIR}/DEBIAN/postinst" + cp "${ROOT}/nextcloud-cron.service" "${ROOT}/nextcloud-cron.timer" "${PKGDIR}/lib/systemd/system/" + cp "${ROOT}/nextcloud.site.conf" "${PKGDIR}/etc/apache2/sites-available/" + cp "${ROOT}/occ.sh" "${PKGDIR}/usr/local/bin/occ" + sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control" + sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control" + cp "${SRCDIR}/nextcloud/COPYING" "${PKGDIR}/usr/share/doc/${PKGNAME}/copyright" + github_changelog nextcloud/server + find "${PKGDIR}" -exec touch -m --reference "${SRCDIR}/nextcloud/version.php" {} \; +} + +function _chown() { + chown 0:0 -R "${PKGDIR}/" + # www-data:www-data + chown 33:33 -R \ + "${PKGDIR}/var/lib/nextcloud" \ + "${PKGDIR}/var/log/nextcloud" \ + "${PKGDIR}/usr/lib/nextcloud" + find "${PKGDIR}/var/lib/nextcloud/webroot" "${PKGDIR}/var/log/nextcloud" -type f -exec chmod 0640 {} \; + find "${PKGDIR}/var/lib/nextcloud/webroot" "${PKGDIR}/var/log/nextcloud" -type d -exec chmod 0750 {} \; + find "${PKGDIR}/usr/lib/nextcloud" -type f -exec chmod 0644 {} \; + find "${PKGDIR}/usr/lib/nextcloud" -type d -exec chmod 0755 {} \; + ln -sf "/var/lib/nextcloud/webroot/core" "${PKGDIR}/usr/lib/nextcloud/core" +} + +function package() { + cd "${BUILDDIR}" + dpkg-deb --build "${PKGDIR}" "${BUILDDIR}" +} + +function build() { + export PKGNAME="nextcloud-${VERSION}" + export BUILDDIR=${ROOT}/build + export SRCDIR=${ROOT}/build/srcdir + export PKGDIR=${ROOT}/build/pkgdir + mkdir -p ${SRCDIR} ${PKGDIR} + fetch + prepare + _chown + package +} + + +build diff --git a/nextcloud-28/patches/01_isfairuse_userfacing_ui.patch b/nextcloud-28/patches/01_isfairuse_userfacing_ui.patch new file mode 100644 index 0000000..a983b8f --- /dev/null +++ b/nextcloud-28/patches/01_isfairuse_userfacing_ui.patch @@ -0,0 +1,33 @@ +diff -3ur a/nextcloud/apps/settings/templates/settings/personal/personal.info.php b/nextcloud/apps/settings/templates/settings/personal/personal.info.php +--- a/nextcloud/apps/settings/templates/settings/personal/personal.info.php 2022-10-21 16:18:20.730871392 +0200 ++++ b/nextcloud/apps/settings/templates/settings/personal/personal.info.php 2022-10-21 16:23:38.133437330 +0200 +@@ -35,13 +35,6 @@ + 'vue-settings-personal-info', + ]); + ?> +- +-
+-
+- t('This community release of Nextcloud is unsupported and instant notifications are unavailable.')); ?> +-
+-
+- + +
+diff -3ur a/nextcloud/core/Controller/LoginController.php b/nextcloud/core/Controller/LoginController.php +--- a/nextcloud/core/Controller/LoginController.php 2022-10-21 16:18:20.610870426 +0200 ++++ b/nextcloud/core/Controller/LoginController.php 2022-10-21 16:19:52.921615072 +0200 +@@ -147,12 +147,6 @@ + } + + $loginMessages = $this->session->get('loginMessages'); +- if (!$this->manager->isFairUseOfFreePushService()) { +- if (!is_array($loginMessages)) { +- $loginMessages = [[], []]; +- } +- $loginMessages[1][] = $this->l10n->t('This community release of Nextcloud is unsupported and push notifications are limited.'); +- } + if (is_array($loginMessages)) { + [$errors, $messages] = $loginMessages; + $this->initialStateService->provideInitialState('core', 'loginMessages', $messages);