[horde] Horde 6 FRAMEWORK Beta Timeline

Nels Lindquist nlindq at maei.ca
Thu Apr 2 17:12:34 UTC 2026


After getting things running with PHP 8.4, I revisited this based on 
your feedback.

It looks like replacing those two instances in HordeString.php with

$language = setlocale(LC_CTYPE, NULL);

also works, at least for now. (See: 
https://github.com/php/php-src/issues/19070)

Some further reading indicates that setlocale() and associated 
strftime() are being deprecated over time, with ext-intl recommended for 
replacement i18n functionality. Seems like that would be beyond the 
scope of the 6.0 release, but maybe 6.1...?

-- 
Nels Lindquist
nlindq at maei.ca

On 2026-03-31 7:32 PM, Brent wrote:
>   I just changed that line and now things seem to work. Not sure this is 
> the right fix as I'm not a programmer.
> 
> In the file: <inst-dir>/vendor/horde/util/src/HordeString.php
> 
> line 265:
> 
> before:
> 
> $language = setlocale(LC_CTYPE, 0);
> 
> after
> 
> $language = setlocale(LC_CTYPE, '0');
> 
> Same change in the file on line 318:
> 
> before:
> 
> $language = setlocale(LC_CTYPE, 0);
> 
> after:
> 
> $language = setlocale(LC_CTYPE, '0');
> 
> Pages are loading now. I've not fully tested things out, but mail, 
> calendar, contacts, tasks, and the admin page loads. Progress?
> 
> brent
> 
> Quoting Brent <impuser at bitrealm.com>:
> 
>> I note that Fedora is going to 44 release around April 16th. They are 
>> shipping with php 8.5.
>>
>> I just ran a test on that platform. Things "work", but seems like 
>> something with locale changed a bit in php 8.5.
>>
>> On the Contacts main page, I get an error. (similar error on Notes) 
>> and on the Administration->Configuration page. All at line 265 in 
>> HordeString.php.
>>
>> A fatal error has occurred
>> setlocale(): Argument #2 ($locales) must be of type array|string|null, 
>> int given
>> in /var/www/horde/vendor/horde/util/src/HordeString.php:265
>>
>> 1. require_once() /var/www/horde/web/turba/index.php:3
>> 2. require() /var/www/horde/vendor/horde/turba/index.php:25
>> 3. Turba_View_Browse->run() 
>> /var/www/horde/vendor/horde/turba/browse.php:49
>> 4. Turba_View_List->display() 
>> /var/www/horde/vendor/horde/turba/lib/View/Browse.php:473
>> 5. Turba_View_List->getAlpha() 
>> /var/www/horde/vendor/horde/turba/lib/View/List.php:237
>> 6. Turba_View_List_AlphaFilter->__construct() 
>> /var/www/horde/vendor/horde/turba/lib/View/List.php:301
>> 7. Horde\Util\HordeString::lower() 
>> /var/www/horde/vendor/horde/turba/lib/View/List/AlphaFilter.php:24
>> 8. setlocale() /var/www/horde/vendor/horde/util/src/HordeString.php:265
>>
>> Details
>> The full error message is logged in Horde's log file, and is shown 
>> below only to administrators. Non-administrative users will not see 
>> error details.
>>
>> TypeError Object
>> (
>>     [message:protected] => setlocale(): Argument #2 ($locales) must be 
>> of type array|string|null, int given
>>     [string:Error:private] => TypeError: setlocale(): Argument #2 
>> ($locales) must be of type array|string|null, int given in 
>> /var/www/horde/vendor/horde/util/src/HordeString.php:265
>> Stack trace:
>> #0 /var/www/horde/vendor/horde/util/src/HordeString.php(265): setlocale()
>> #1 
>> /var/www/horde/vendor/horde/turba/lib/View/List/AlphaFilter.php(24): 
>> Horde\Util\HordeString::lower()
>> #2 /var/www/horde/vendor/horde/turba/lib/View/List.php(301): 
>> Turba_View_List_AlphaFilter->__construct()
>> #3 /var/www/horde/vendor/horde/turba/lib/View/List.php(237): 
>> Turba_View_List->getAlpha()
>> #4 /var/www/horde/vendor/horde/turba/lib/View/Browse.php(473): 
>> Turba_View_List->display()
>> #5 /var/www/horde/vendor/horde/turba/browse.php(49): 
>> Turba_View_Browse->run()
>> #6 /var/www/horde/vendor/horde/turba/index.php(25): 
>> require('/var/www/horde/...')
>> #7 /var/www/horde/web/turba/index.php(3): 
>> require_once('/var/www/horde/...')
>> #8 {main}
>>     [code:protected] => 0
>>     [file:protected] => 
>> /var/www/horde/vendor/horde/util/src/HordeString.php
>>     [line:protected] => 265
>>     [trace:Error:private] => Array
>>         (
>>             [0] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/util/src/HordeString.php
>>                     [line] => 265
>>                     [function] => setlocale
>>                 )
>>
>>             [1] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/turba/lib/View/List/AlphaFilter.php
>>                     [line] => 24
>>                     [function] => lower
>>                     [class] => Horde\Util\HordeString
>>                     [type] => ::
>>                 )
>>
>>             [2] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/turba/lib/View/List.php
>>                     [line] => 301
>>                     [function] => __construct
>>                     [class] => Turba_View_List_AlphaFilter
>>                     [type] => ->
>>                 )
>>
>>             [3] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/turba/lib/View/List.php
>>                     [line] => 237
>>                     [function] => getAlpha
>>                     [class] => Turba_View_List
>>                     [type] => ->
>>                 )
>>
>>             [4] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/turba/lib/View/Browse.php
>>                     [line] => 473
>>                     [function] => display
>>                     [class] => Turba_View_List
>>                     [type] => ->
>>                 )
>>
>>             [5] => Array
>>                 (
>>                     [file] => 
>> /var/www/horde/vendor/horde/turba/browse.php
>>                     [line] => 49
>>                     [function] => run
>>                     [class] => Turba_View_Browse
>>                     [type] => ->
>>                 )
>>
>>             [6] => Array
>>                 (
>>                     [file] => /var/www/horde/vendor/horde/turba/index.php
>>                     [line] => 25
>>                     [args] => Array
>>                         (
>>                             [0] => 
>> /var/www/horde/vendor/horde/turba/browse.php
>>                         )
>>
>>                     [function] => require
>>                 )
>>
>>             [7] => Array
>>                 (
>>                     [file] => /var/www/horde/web/turba/index.php
>>                     [line] => 3
>>                     [args] => Array
>>                         (
>>                             [0] => 
>> /var/www/horde/vendor/horde/turba/index.php
>>                         )
>>
>>                     [function] => require_once
>>                 )
>>
>>         )
>>
>>     [previous:Error:private] =>
>> )
>>
>> Quoting Torben Dannhauer <torben at dannhauer.info>:
>>
>>> Currently working with 8.4
>>>
>>> I Need anyway to enhance my setup for a second Installation.. why not 
>>> 8.5..n- maybe second half of April.
>>>
>>> If you comb through H6 to create the 8.5 fixes asPRs, I‘ll invest a 
>>> day to get a 8.5 installation and test/merge Your PRs
>>>
>>> Torben
>>>
>>> Von unterwegs gesendet
>>> Sent from mobile
>>>
>>>> Am 31.03.2026 um 23:23 schrieb Nels Lindquist <nlindq at maei.ca>:
>>>>
>>>> On 2026-03-26 1:22 AM, Ralf Lang wrote:
>>>>> just some updates on the beta phase
>>>>> SCOPE:
>>>>> The beta phase includes the horde mainstream apps
>>>>> - horde/horde (base)
>>>>> - horde/imp (webmail)
>>>>> - horde/kronolith (calendar)
>>>>> - horde/nag (tasks)
>>>>> - horde/turba (contacts)
>>>>> - horde/passwd (passwords)
>>>>> - horde/ingo (mail filters)
>>>>> - horde/timeobjects (interop)
>>>>> - horde/content (tagger)
>>>>
>>>> <SNIP>
>>>>
>>>>> All relevant libraries have been released as beta versions or will be
>>>>> released in the next few days. If you miss any item please get in 
>>>>> touch.
>>>>> TIMELINE:
>>>>> The beta phase runs through april. Around May 1st we will release 
>>>>> RC1 for
>>>>> apps and intend to release as stable as soon as no further RCs are 
>>>>> needed.
>>>>
>>>> Are you targeting specific PHP versions, ie 8.0 - 8.4? I did try out 
>>>> PHP 8.5, but ran into trouble getting it working and switched back 
>>>> to 8.4.x. I could work on generating some feedback if you want to 
>>>> achieve 8.5 compatibility during the beta, though.



More information about the horde mailing list