Bug 42742

Summary: Не запускается dbus-org.bluez.obex.service
Product: Sisyphus Reporter: jqt4
Component: bluezAssignee: Valery Inozemtsev <shrek>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, aris, cas, iv, jqt4, lakostis, mike, sem, shaba, shrek, sysoevas, zerg, zxyframe
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description jqt4 2022-05-12 16:48:49 MSK
Проблема в p10 аналогична:
https://bugzilla.altlinux.org/37016
https://bugzilla.altlinux.org/38279

Образ alt-server-10.0-x86_64.iso установлен на Intel Nuc, профиль "Рабочая станция".
bluetoothd.service по умолчанию не работает. Запустил
# systemctl start bluetoothd.service

Подключил смартфон по BT.
Попытался включить передачу файлов от удаленных устройств - не удалось, сразу выключается.
В лог при этом выдаётся:
мая 12 17:26:31 host-128 dbus-daemon[3665]: [session uid=500 pid=3665] Activating via systemd: service name='org.bluez.obex' unit='dbus-org.bluez.obex.service' requested by ':1.49' (uid=500 pid=4533 comm="blueberry-obex-agent                              ")
мая 12 17:26:31 host-128 dbus-daemon[3665]: [session uid=500 pid=3665] Activation via systemd failed for unit 'dbus-org.bluez.obex.service': Unit dbus-org.bluez.obex.service not found.

При попытке передать файл на смартфон выдаются сообщения:
мая 12 17:36:30 host-128 dbus-daemon[3665]: [session uid=500 pid=3665] Activating via systemd: service name='org.bluez.obex' unit='dbus-org.bluez.obex.service' requested by ':1.50' (uid=500 pid=4618 comm="bluetooth-sendto --device=C0:47:54:12:C8:2C --name")
мая 12 17:36:30 host-128 dbus-daemon[3665]: [session uid=500 pid=3665] Activation via systemd failed for unit 'dbus-org.bluez.obex.service': Unit dbus-org.bluez.obex.service not found.
Comment 1 Антон Мидюков 2022-05-12 17:01:17 MSK
Симлинк /etc/systemd/user/dbus-org.bluez.obex.service -> /usr/lib/systemd/user/obex.service есть или нет?
Comment 2 jqt4 2022-05-12 17:07:22 MSK
(Ответ для Антон Мидюков на комментарий #1)
> Симлинк /etc/systemd/user/dbus-org.bluez.obex.service ->
> /usr/lib/systemd/user/obex.service есть или нет?

Нет.
В этом, собственно, проблема.
Comment 3 Антон Мидюков 2022-05-12 17:48:47 MSK
(Ответ для jqt4 на комментарий #2)
> (Ответ для Антон Мидюков на комментарий #1)
> > Симлинк /etc/systemd/user/dbus-org.bluez.obex.service ->
> > /usr/lib/systemd/user/obex.service есть или нет?
> 
> Нет.
> В этом, собственно, проблема.

Это регрессия версии 5.62-alt2
* Mon Nov 29 2021 Alexey Shabalin <shaba@altlinux.org> 5.62-alt2
- Avoid /bin/systemctl requirements (ALT #41458).

В hasher не отрабатывает условие
%post_service bluetoothd
if [ $1 = 1 ] && sd_booted && "$SYSTEMCTL" --version >/dev/null 2>&1; then
    "$SYSTEMCTL" -q --user --global preset obex.service >/dev/null 2>&1 || :
fi

sd_booted при установке и в hasher не выполняется. Нужно из этого условия убрать его.
Comment 4 Ivan A. Melnikov 2022-05-13 11:53:44 MSK
As an unrelated note...

> if [ $1 = 1 ] && sd_booted && "$SYSTEMCTL" --version >/dev/null 2>&1; then
>     "$SYSTEMCTL" -q --user --global preset obex.service >/dev/null 2>&1 || :
> fi

Правильно ли я понимаю, что если админ сделает

systemctl --user --global disable obex.service

то при обновлении пакета сервис снова включится?
Comment 5 Антон Мидюков 2022-05-13 12:00:14 MSK
(Ответ для Ivan A. Melnikov на комментарий #4)
> As an unrelated note...
> 
> > if [ $1 = 1 ] && sd_booted && "$SYSTEMCTL" --version >/dev/null 2>&1; then
> >     "$SYSTEMCTL" -q --user --global preset obex.service >/dev/null 2>&1 || :
> > fi
> 
> Правильно ли я понимаю, что если админ сделает
> 
> systemctl --user --global disable obex.service
> 
> то при обновлении пакета сервис снова включится?

Нет. Только при первой установке пакета. За это отвечает условие [ $1 = 1 ].
Comment 6 Антон Мидюков 2022-05-20 16:15:48 MSK
Сделал задание с исправлением
#300199 EPERM #3 sisyphus bluez.git=5.64-alt2

Но мне его не одобрили до сих пор. Мантейнерам из ACL писал письмо:
bluez	shrek aris zerg

Подписал их же на баг.
Comment 7 Aleksandr Sysoev 2022-06-09 17:10:23 MSK
На системе:
p10-workstation
p10-education-kde
p10-kworkstation

С версией пакета: bluez-5.64-alt2

Ошибка НЕ воспроизводится. Передача файлов в обе стороны корректна.
Comment 8 Aleksandr Sysoev 2023-01-24 12:53:03 MSK
На системе:
p10-server-10-x86-64

Версия пакета: 5.66-alt1
Ошибка воспроизводится.
Проверялось на Sisyphus, ошибка воспроизвелась.
Comment 9 Aleksandr Sysoev 2023-01-24 12:55:00 MSK
Доп: 
если сделать 
systemctl --user --global enable obex.service
то передача файлов выполняется успешно
Comment 10 jqt4@altlinux.org 2023-01-24 15:17:11 MSK
Образ alt-server-10.0-x86_64.iso установлен на Intel Nuc, профиль "Рабочая станция". Воспроизвёл исходную проблему.

Обновил bluez на bluez-5.66-alt1.x86_64.
Проблема воспроизводится, симлинк  /etc/systemd/user/dbus-org.bluez.obex.service -> /usr/lib/systemd/user/obex.service отсутствует.

Повторил тот же эксперимент с образом alt-server-10.1-rc2-x86_64.iso
"Из коробки" в нём bluez-5.64-alt2.x86_64, проблемы нет, симлинк есть.
Обновил bluez на bluez-5.66-alt1.x86_64.
Проблемы нет, симлинк есть.
Comment 11 jqt4@altlinux.org 2023-01-24 15:38:03 MSK
Повторил тот же эксперимент с тестовым образом alt-server-20230119-x86_64.iso 
"Из коробки" bluez-5.66-alt1.x86_64, проблемы нет, симлинк есть.
Comment 12 Антон Мидюков 2023-01-24 15:59:27 MSK
(Ответ для jqt4@altlinux.org на комментарий #10)
> Образ alt-server-10.0-x86_64.iso установлен на Intel Nuc, профиль "Рабочая
> станция". Воспроизвёл исходную проблему.
> 
> Обновил bluez на bluez-5.66-alt1.x86_64.
> Проблема воспроизводится, симлинк 
> /etc/systemd/user/dbus-org.bluez.obex.service ->
> /usr/lib/systemd/user/obex.service отсутствует.
> 
> Повторил тот же эксперимент с образом alt-server-10.1-rc2-x86_64.iso
> "Из коробки" в нём bluez-5.64-alt2.x86_64, проблемы нет, симлинк есть.
> Обновил bluez на bluez-5.66-alt1.x86_64.
> Проблемы нет, симлинк есть.

Симлинк создаётся только при первой установке. Считаю, что ошибки нет.
Comment 13 Александр 2024-02-11 12:15:08 MSK
Аналогичная проблема была после установки http://nightly.altlinux.org/sisyphus/tested/regular-gnome-latest-x86_64.iso .
Отстутствала ссылка  /etc/systemd/user/dbus-org.bluez.obex.service -> /usr/lib/systemd/user/obex.service  
и появлялись ошибки в логе:
Activation via systemd failed for unit 'dbus-org.bluez.obex.service': Unit dbus-org.bluez.obex.service not found.
Comment 14 Антон Мидюков 2024-02-11 17:45:18 MSK
(Ответ для Александр на комментарий #13)
> Аналогичная проблема была после установки
> http://nightly.altlinux.org/sisyphus/tested/regular-gnome-latest-x86_64.iso .
> Отстутствала ссылка  /etc/systemd/user/dbus-org.bluez.obex.service ->
> /usr/lib/systemd/user/obex.service  
> и появлялись ошибки в логе:
> Activation via systemd failed for unit 'dbus-org.bluez.obex.service': Unit
> dbus-org.bluez.obex.service not found.

Действительно. Скриптлет при сборке live не отрабатывает.
Думаю, что лучше включать в профиле сборки, чтобы наверняка.
Сделал для профиля фичу use/services/bluetooth-enable, чтобы было удобнее включать:
https://git.altlinux.org/people/antohami/packages/?p=mkimage-profiles.git;a=commit;h=cdc1914ec3a067a17df66551d9a6efd0f017b87a
Comment 15 Konstantin A Lepikhov (L.A. Kostis) 2024-03-16 13:06:31 MSK
(In reply to Александр from comment #13)
> Аналогичная проблема была после установки
> http://nightly.altlinux.org/sisyphus/tested/regular-gnome-latest-x86_64.iso .
> Отстутствала ссылка  /etc/systemd/user/dbus-org.bluez.obex.service ->
> /usr/lib/systemd/user/obex.service  
> и появлялись ошибки в логе:
> Activation via systemd failed for unit 'dbus-org.bluez.obex.service': Unit
> dbus-org.bluez.obex.service not found.

В версии 5.73-alt1 ссылки упакованы правильно:

❯ ll /usr/lib/systemd/user/|fgrep obex
fgrep: warning: fgrep is obsolescent; using grep -F
lrwxrwxrwx  1 root root   12 Mar 16 09:35 dbus-org.bluez.obex.service -> obex.service
-rw-r--r--  1 root root  170 Mar 16 09:35 obex.service