Bug 44407

Summary: Поддержка синхронизации списков контактов между SOGo и Thunderbird по CardDAV
Product: Sisyphus Reporter: Alexander Makeenkov <amakeenk>
Component: sogoAssignee: Andrey Cherepanov <cas>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: belayaav, bozhchenkopa, cas, gluhovid, ivanovav, klesovnk, kolesnikovaj, monastirskiyii, rauty, varaksaaa, velikijro
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
скриншот адресной книги
none
Список контактов none

Description Alexander Makeenkov 2022-11-23 16:26:18 MSK
Created attachment 11930 [details]
скриншот адресной книги

Пакеты:
thunderbird-102.5.0-alt1
sogo-5.7.1-alt2

Настроено sogo по инструкции https://www.altlinux.org/SOGo
В thunderbird добавлен календарь (протокол CalDAV) и адресная книга (протокол CardDAV) из sogo.

В thunderbird не отображаются события и задачи из календаря sogo, при этом, если добавить задачу или событие через thunderbird, то оно отобразится в web интерфейсе sogo.

Контакты из адресной книги тоже не отображаются, но с одним отличием: созданный через thunderbird контакт не отображается в thunderbird, а созданный через sogo контакт отображается в thunderbird (пример на скриншоте).
Comment 1 Repository Robot 2022-11-24 08:41:54 MSK
sogo-5.7.1-alt3 -> sisyphus:

 Thu Nov 24 2022 Andrey Cherepanov <cas@altlinux> 5.7.1-alt3
 - Fixed empty patch to fix https://bugs.sogo.nu/view.php?id=5416 (ALT #44407).
Comment 2 Alexander Makeenkov 2022-11-24 10:40:15 MSK
С sogo 5.7.1-alt3 ошибка не воспроизводится.
Comment 3 Белая Алёна 2022-12-12 14:44:45 MSK
Created attachment 12073 [details]
Список контактов

sogo 5.7.1-alt3
thunderbird-102.5.1-alt1
Ошибка воспроизводится для списков контактов. 

Шаги воспроизведения:
1. В sogo зайти в "Адресная книга" (верхний правыл угол)
2. Внизу нажать на Добавить (+) -> Создать новый список
3. Задать имя списка, опционально добавить участников, сохранить
4. Проверить отображение в Thunderbird

Ожидаемый результат: информация отображается в thunderbird

Реальный результат: отображается "пустая" запись (скриншот прилагаю)

Дополнительно: 
1. Ошибка воспроизводится для пустых список и списков с занесенными контактами
2. Ошибка не воспроизводится для отдельных контактов, они отображаются корректно
Comment 4 Белая Алёна 2022-12-12 14:45:15 MSK
Переоткрываю
Comment 5 Alexander Makeenkov 2022-12-12 17:47:56 MSK
Воспроизводится с sogo-5.8.0-alt1
Comment 6 Монастырский Илья 2023-03-30 14:15:34 MSK
Ошибка также воспроизводится с sogo-5.8.0-alt3
Comment 7 Artem Varaksa 2025-09-23 17:48:34 MSK
По состоянию на thunderbird-141.0-alt0.p10.1.x86_64 + sogo-5.11.1-alt1.x86_64 пустых строк нет, но и никакой информации о списках всё так же нет.
Comment 8 Колесников Алексей Юрьевич 2025-11-01 12:06:34 MSK
Воспроизводится с sogo-5.12.4-alt1 , thunderbird 143.0-alt1 на p11
Аналогично, пустых строк нет, но и никакой информации о списках всё так же нет.
Comment 9 Божченко Павел Александрович 2025-12-24 14:37:07 MSK
Воспроизводится с sogo-5.12.4-alt1 и thunderbird-146.0.1-alt1
Пустых строк нет, списки не отображаются
Comment 10 Клёсов Никита Константинович 2026-04-01 15:28:39 MSK
Воспроизводится с sogo-5.12.7-alt1 и thunderbird-148.0.1-alt1
Пустых строк нет, списки не отображаются
Comment 11 Иванов Александр Владимирович 2026-05-20 12:14:50 MSK
Ошибка с отображением списков в thunderbird после создания в веб-интерфейсе SOGO воспроизводится в версии thunderbird-150.0.2-alt1 на Sisyphus и thunderbird-150.0.1-alt2 на p11
Comment 12 Ajrat Makhmutov 2026-05-22 16:58:44 MSK
Провёл расследование по этому багу с воспроизведением на стенде
(SOGo 5.12.8 + Thunderbird 151). Ниже — что выяснилось и почему фикс
средствами одного пакета thunderbird невозможен.

== Воспроизведение ==

Стенд: сервер SOGo 5.12.8 (бэкенд PostgreSQL, CardDAV через Apache),
клиент Thunderbird 151, адресная книга подключена по CardDAV нативными
средствами TB.

Создал в веб-интерфейсе SOGo список контактов с двумя участниками.
В ответе CardDAV-запроса addressbook-query REPORT (именно его делает
Thunderbird при синхронизации) этот список приходит так:

  BEGIN:VLIST
  UID:mylist-001
  VERSION:1.0
  CARD;EMAIL=carol@test.alt:7207-6A104280-1-11E043E0.vcf
  CARD;EMAIL=dave@test.alt:7207-6A104280-3-11E043E0.vcf
  END:VLIST

Это «BEGIN:VLIST» — собственный (проприетарный) формат SOGo, а НЕ vCard.
RFC 6352 (CardDAV) требует, чтобы тело address-data было vCard. SOGo
здесь нарушает стандарт: отдаёт в CardDAV-коллекции не-vCard ресурс.

== Поведение Thunderbird (матрица) ==

Проверил три формата, сняв базу адресной книги TB после синхронизации:

 * BEGIN:VLIST (список из веб-UI SOGo) — Thunderbird не может это
   разобрать как vCard и молча выбрасывает ресурс. В базе адресной
   книги TB его нет вообще. Это и есть «списки пропадают» из бага.

 * Корректный group-vCard с X-ADDRESSBOOKSERVER-KIND:group и
   X-ADDRESSBOOKSERVER-MEMBER — Thunderbird сохраняет карточку, но
   показывает её как ПУСТОЙ ОБЫЧНЫЙ КОНТАКТ, а не как список рассылки.
   Свойства KIND/MEMBER лежат в сыром _vCard, но TB их не
   интерпретирует.

 * vCard 4.0 с KIND:group / MEMBER — то же самое: пустой контакт.

 * Обычные контакты синхронизируются корректно.

== Вывод: два независимых дефекта в двух пакетах ==

Баг заведён и на sogo, и на thunderbird — и это правильно, причин две:

1. SOGo отдаёт списки в проприетарном BEGIN:VLIST вместо стандартного
   vCard. Ни один CardDAV-клиент не обязан понимать этот формат.

2. Thunderbird не понимает vCard-группы (KIND:group) даже в корректном
   виде — превращает группу в пустой контакт.

== Почему нельзя починить только в thunderbird ==

 * Формат BEGIN:VLIST — не vCard. Thunderbird, отбрасывая невалидный
   ресурс, ведёт себя корректно по отношению к CardDAV. Чинить нужно
   сторону, которая этот формат ОТДАЁТ, то есть SOGo. Заставить TB
   разбирать чужой нестандартный формат — неверное решение.

 * Даже если бы мы научили TB показывать корректный group-vCard как
   список — это РЕАЛИЗАЦИЯ ОТСУТСТВУЮЩЕЙ ФИЧИ. Поддержки vCard-групп
   (KIND:group) в Thunderbird нет в принципе; это давно известная
   незакрытая задача апстрима (Mozilla bug 1807394, статус NEW, по
   словам разработчика Mozilla — «нужно реализовывать с нуля»).
   Тащить в пакет downstream-патч, реализующий крупную фичу впереди
   апстрима, мы не будем: такой патч затронет ядро адресной книги,
   будет сильно расходиться с апстримом и требовать сопровождения на
   каждом обновлении версии. Это не сопровождение пакета, а форк.

Итог: средствами пакета thunderbird баг закрыть нельзя. Более того,
даже починка одного SOGo проблему полностью не решит — список
перестанет «пропадать», но появится в TB как пустой контакт, пока
Mozilla не реализует KIND:group.

== Что сделано / планируется ==

 * Заведён feature request в апстрим SOGo:
   https://bugs.sogo.nu/view.php?id=6217 — отдавать списки по CardDAV
   как стандартный group-vCard (X-ADDRESSBOOKSERVER-KIND:group), а не
   VLIST. Это основной чинимый дефект.

 * В Mozilla bug 1807394 добавляется cross-reference на SOGo bug 6217
   и результаты этого тестирования.

Предлагаю основную (чинимую) часть бага вести по пакету sogo;
по thunderbird — оставить как зависящую от апстрима (Mozilla
bug 1807394), downstream-фикс невозможен.

== Ссылки ==

Thunderbird / Mozilla:
 * https://bugzilla.mozilla.org/show_bug.cgi?id=1807394
   — Cannot import vCard group with mailto members (KIND:group).
   Ключевой баг: поддержки KIND:group в TB нет. Статус NEW.
 * https://bugzilla.mozilla.org/show_bug.cgi?id=1793415
   — Invalid vCards throw error messages and break the addressBook API.
   Объясняет, почему невалидный ресурс (VLIST) ломает синхронизацию.
 * https://bugzilla.mozilla.org/show_bug.cgi?id=546932
   — (carddav) зонтичный баг поддержки CardDAV в Thunderbird.
 * https://bugzilla.mozilla.org/show_bug.cgi?id=1522453
   — Not all members of mailing lists are displayed after restart of TB.
 * https://connect.mozilla.org/t5/ideas/use-native-vcard-4-0-quot-member-quot-attribute-for-lists-to/idi-p/30602
   — предложение использовать нативный vCard 4.0 MEMBER для списков
   (чтобы списки вообще синхронизировались по CardDAV). Статус «idea».

SOGo (трекер bugs.sogo.nu):
 * https://bugs.sogo.nu/view.php?id=6217
   — feature request, заведённый по этому багу: отдавать списки по
   CardDAV как стандартный group-vCard вместо VLIST.
 * https://bugs.sogo.nu/view.php?id=3950
   — problems with support of VLIST regarding VLIST entry and
   accidently created new VCARDs. Подтверждает проблемы формата VLIST
   и побочно создаваемые «обрубки» vCard. Статус New.
 * https://bugs.sogo.nu/view.php?id=2547
   — SOGo Connector should also handle CardDAV responses with
   additional header lines before BEGIN:VCARD.
Comment 13 Великий Руслан Олегович 2026-06-09 17:41:09 MSK
Ошибка не воспроизвелась

На Sisyphus (thunderbird-151.0.1-alt1 и sogo-5.12.9-alt1) не воспроизвелась
На p11 (thunderbird-151.0-alt4 и sogo-5.12.8-alt1) не воспроизвелась
Comment 14 Глухов Илья Денисович 2026-06-26 14:34:52 MSK
Ошибка не воспроизвелась для версий пакетов thunderbird-152.0-alt1 и sogo-5.12.9-alt1