fix(mail): disable EAS provisioning — PHP 8 breaks Z-Push's policy checks
ci / changes (push) Successful in 3s
ci / test_platform_api (push) Has been skipped
ci / build_portal (push) Has been skipped
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / tc_portal (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_booking (push) Has been skipped
ci / tc_website (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / build_zpush (push) Successful in 11s
ci / deploy (push) Successful in 25s

The shipped policies.ini has maxattsize='' and PHP 8's string/int
comparison semantics make SyncProvisioning's '>-1' check fail, so
every Provision command 500'd ('Invalid policies!') and the device
got 449 retry-after-provisioning on FolderSync/Sync/SendMail forever
— account added but no folders, no sent mail, no calendar. dezky
doesn't manage device policies (no remote-wipe promise), so turn
PROVISIONING off rather than patching the policy file.
This commit is contained in:
Ronni Baslund
2026-06-12 15:39:32 +02:00
parent fc621cdf81
commit b6c98e2a65
+9 -1
View File
@@ -43,12 +43,20 @@ COPY --from=source /awl/inc/ /usr/share/awl/inc/
# The greps make the build fail loudly if an upstream config rename ever # The greps make the build fail loudly if an upstream config rename ever
# makes a sed miss instead of shipping a silently unconfigured gateway. # makes a sed miss instead of shipping a silently unconfigured gateway.
# (USE_FULLEMAIL_FOR_LOGIN is already true in the EGroupware fork.) # (USE_FULLEMAIL_FOR_LOGIN is already true in the EGroupware fork.)
#
# PROVISIONING off: dezky doesn't manage device policies (no remote wipe
# promise), and Z-Push's policy checks are PHP 8-broken anyway — the shipped
# policies.ini has maxattsize='' and PHP 8 string/int comparison makes the
# ">-1" SyncProvisioning check fail, 500ing every Provision command and
# blocking ALL folder/calendar sync behind "retry after provisioning".
RUN sed -i \ RUN sed -i \
-e "s|define('TIMEZONE', '');|define('TIMEZONE', 'Europe/Copenhagen');|" \ -e "s|define('TIMEZONE', '');|define('TIMEZONE', 'Europe/Copenhagen');|" \
-e "s|define('BACKEND_PROVIDER', '');|define('BACKEND_PROVIDER', 'BackendCombined');|" \ -e "s|define('BACKEND_PROVIDER', '');|define('BACKEND_PROVIDER', 'BackendCombined');|" \
-e "s|define('PROVISIONING', true);|define('PROVISIONING', false);|" \
/usr/share/z-push/config.php \ /usr/share/z-push/config.php \
&& grep -q "define('BACKEND_PROVIDER', 'BackendCombined')" /usr/share/z-push/config.php \ && grep -q "define('BACKEND_PROVIDER', 'BackendCombined')" /usr/share/z-push/config.php \
&& grep -q "define('USE_FULLEMAIL_FOR_LOGIN', true)" /usr/share/z-push/config.php && grep -q "define('USE_FULLEMAIL_FOR_LOGIN', true)" /usr/share/z-push/config.php \
&& grep -q "define('PROVISIONING', false)" /usr/share/z-push/config.php
# PHP 8 fix (upstream Z-Push 2.6.4 bug): sem_get()/shm_attach() return # PHP 8 fix (upstream Z-Push 2.6.4 bug): sem_get()/shm_attach() return
# objects instead of resources since PHP 8.0 and this debug log line # objects instead of resources since PHP 8.0 and this debug log line