Bug 18902

Summary: Ximper KDE: Некорректное поведение Klipper
Product: Ximper Linux Reporter: Жора Змейкин <katze>
Component: ОбщееAssignee: Жора Змейкин <katze>
Status: ASSIGNED --- QA Contact: Жора Змейкин <katze>
Severity: normal    
Priority: P4 CC: fiersik
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 18682    

Description Жора Змейкин 2026-02-18 22:48:59 MSK
В сборке с KDE некорректно работает Klipper - буфер обмена в KDE Plasma. История буфера обмена сохраняется, но другой элемент буфера не копируется в буфер. Проблема, вероятно, связана с патчами в ALT. Баг репортов не найдено, нужно зарепортить и приложить дополнительную информацию, которая поможет быстрее решить неисправность.
Comment 1 Жора Змейкин 2026-02-19 00:48:15 MSK
Ожидаемо, проблема оказалась в kf6-kguiaddons.

Установил из таска новую версию KDE Frameworks 6.23, чтобы проверить, воспроизводится ли в новой версии. К сожалению, воспроизводится. Выяснил, что дело в патче alt-fix-multiple-clipboard-insertions.patch.

Описал ситуацию здесь:
https://bugzilla.altlinux.org/57926

Пересобрал kf6-kguiaddons без патча и проблема исчезла. Из дополнительного: узнал, что в rpmbsh можно указать переменную ETERBUILD_APTREPO= для указания дополнительных репозиториев. Это помогло мне подключить репозиторий с таском.

Пока буду ожидать новостей по баге. В крайнем случае соберём свою версию библиотеки без патча.
Comment 2 Жора Змейкин 2026-03-29 10:26:46 MSK
(Ответ Жора Змейкин на комментарий #1)
> Описал ситуацию здесь:
> https://bugzilla.altlinux.org/57926

Баг исправили, патч не убрали, а скорректировали. К сожалению, некоторые последствия патча остались. Описал баг здесь:
https://bugzilla.altlinux.org/58423

Предложил исправленный патч, который исправил метод ClipboardProcessingQueue::processNext(). После вызова device->setSelection(std::move(source)) указатель source становился nullptr и последующий вызов connect(source.get(), ...) передавал nullptr как отправителя сигнала. Из-за этого соединение не создавалось и QEventLoop блокировался, мешая работе буфера обмена. Плюс он не соответствовал исходникам KF 6.24.

Чтобы убедиться в работе, создал мини-тест, который создавал несколько изображений с высоким разрешением и быстро копировал их в буфер обмена. Ошибка больше не проявлялась, всё работает стабильно. Вновь жду новостей по баге.