diff --git a/www/nextcloud/Makefile b/www/nextcloud/Makefile index 6f9cbeeca176..94ca6d40a8b1 100644 --- a/www/nextcloud/Makefile +++ b/www/nextcloud/Makefile @@ -1,91 +1,92 @@ PORTNAME= nextcloud PORTVERSION= 34.0.1 +PORTREVISION= 1 CATEGORIES= www MASTER_SITES= https://github.com/nextcloud-releases/server/releases/download/v${PORTVERSION}/ \ https://download.nextcloud.com/server/releases/ PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX} DIST_SUBDIR= ${PORTNAME} MAINTAINER= brnrd@FreeBSD.org COMMENT= Collaboration platform which runs on your own server WWW= https://nextcloud.com LICENSE= AGPLv3 USES= cpe gettext-runtime php:flavors,web tar:bzip2 USE_PHP= bcmath bz2 ctype curl dom fileinfo filter gd gmp iconv \ mbstring pcntl pdo posix session simplexml sodium \ xml xmlreader xmlwriter xsl zip zlib NEXTCLOUD_USERNAME?= ${WWWOWN} NEXTCLOUD_GROUPNAME?= ${WWWGRP} WRKSRC= ${WRKDIR}/${PORTNAME} NO_BUILD= yes NO_ARCH= yes SUB_FILES= config.sample.php occ pkg-message plist.post SUB_LIST= NEXTCLOUD_USERNAME=${NEXTCLOUD_USERNAME} \ NEXTCLOUD_GROUPNAME=${NEXTCLOUD_GROUPNAME} PLIST_SUB= ${SUB_LIST} OPTIONS_DEFINE= EXIF IMAGICK INTL LDAP PCNTL SMB SYSVSEM OPTIONS_GROUP= CACHING OPTIONS_GROUP_CACHING= APCU OPCACHE REDIS OPTIONS_MULTI= DB OPTIONS_MULTI_DB= MYSQL PGSQL SQLITE OPTIONS_DEFAULT= APCU EXIF INTL LDAP MYSQL OPCACHE SYSVSEM OPTIONS_SUB= yes APCU_DESC= Local data caching using APCu (recommended) CACHING_DESC= Caching DB_DESC= Database backend(s) EXIF_DESC= Image rotation support IMAGICK_DESC= Thumbnail support (recommended) INTL_DESC= International character support (recommended) OPCACHE_DESC= Enable OPcode caching (recommended) PCNTL_DESC= Long-running process control (recommended) REDIS_DESC= Distributed data caching using Redis SYSVSEM_DESC= Enable System V semaphore support (recommended) APCU_RUN_DEPENDS= ${PECL_PKGNAMEPREFIX}APCu>0:devel/pecl-APCu@${PHP_FLAVOR} EXIF_USE= PHP=exif IMAGICK_RUN_DEPENDS= ${PECL_PKGNAMEPREFIX}imagick>=2.2.2:graphics/pecl-imagick@${PHP_FLAVOR} INTL_USE= PHP=intl LDAP_USE= PHP=ldap MYSQL_USE= PHP=pdo_mysql OPCACHE_USE= PHP=opcache PCNTL_USE= PHP=pcntl PGSQL_USE= PHP=pdo_pgsql,pgsql REDIS_RUN_DEPENDS= ${PECL_PKGNAMEPREFIX}redis>=2.2.6:databases/pecl-redis@${PHP_FLAVOR} SMB_RUN_DEPENDS= ${PECL_PKGNAMEPREFIX}smbclient>=0.9.0:net/pecl-smbclient@${PHP_FLAVOR} SQLITE_USE= PHP=pdo_sqlite,sqlite3 SYSVSEM_USE= PHP=sysvsem .include post-extract: @${MV} ${WRKSRC}/config/config.sample.php ${WRKSRC}/config/config.documented.php @${MV} ${WRKSRC}/.htaccess ${WRKSRC}/.htaccess.dist post-patch: @${REINPLACE_CMD} -e 's|/var/www/${PORTNAME}|${WWWDIR}|;s|/var/log/|/var/log/${PORTNAME}/|' \ ${WRKSRC}/config/config.documented.php @${RM} ${WRKSRC}/config/config.documented.php.* \ ${WRKSRC}/updater/updater.phar @${MV} ${WRKSRC}/apps ${WRKSRC}/apps-pkg do-install: @${MKDIR} -m 0755 ${STAGEDIR}${WWWDIR} @(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}) ${INSTALL_SCRIPT} ${WRKDIR}/config.sample.php \ ${STAGEDIR}${WWWDIR}/config/config.sample.php @${MKDIR} ${STAGEDIR}${WWWDIR}/data ${STAGEDIR}${WWWDIR}/apps \ ${STAGEDIR}/var/log/${PORTNAME} (cd ${WRKSRC}; ${FIND} . -type f -or -type l) | ${SORT} | \ ${SED} -Ee '/^\.\/\.(htaccess\.dist|user\.ini)/d' \ -e '/^\.\/config\/config\.sample\.php/d' \ -e 's,^\.,${WWWDIR_REL},' >> ${TMPPLIST} ${CAT} ${WRKDIR}/plist.post >> ${TMPPLIST} ${INSTALL_SCRIPT} ${WRKDIR}/occ ${STAGEDIR}${LOCALBASE}/bin/occ .include diff --git a/www/nextcloud/files/patch-PR296323 b/www/nextcloud/files/patch-PR296323 new file mode 100644 index 000000000000..e4e82f9ed434 --- /dev/null +++ b/www/nextcloud/files/patch-PR296323 @@ -0,0 +1,25 @@ +--- core/BackgroundJobs/CleanupBackgroundJobsJob.php.orig 2026-06-25 12:29:12 UTC ++++ core/BackgroundJobs/CleanupBackgroundJobsJob.php +@@ -47,10 +47,8 @@ class CleanupBackgroundJobsJob extends TimedJob { + if ($job->serverId !== $currentServerId) { + continue; + } +- $output = []; +- $result = 0; +- exec('ps -p ' . escapeshellarg((string)$job->pid) . ' -o cmd', $output, $result); +- if (count($output) === 1 && current($output) === 'CMD' && $result === 1) { ++ $processExists = posix_kill($job->pid, 0) || posix_get_last_error() === POSIX_EPERM; ++ if (!$processExists) { + // Process doesn't exists anymore + $maxDuration = (new DateTimeImmutable())->diff($job->startedAt); + $maxDuration +--- lib/private/BackgroundJob/JobRuns.php.orig 2026-06-29 20:06:31 UTC ++++ lib/private/BackgroundJob/JobRuns.php +@@ -63,7 +63,6 @@ final readonly class JobRuns implements IJobRuns { + + public function deleteBefore(int $timestamp): int { + $beforeSnowflake = $this->snowflakeGenerator->minForTimeId($timestamp); +- $beforeSnowflake = '91480652934574081'; + $qb = $this->connection->getQueryBuilder(); + $result = $qb + ->delete(self::TABLE)