<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>49009</bug_id>
          
          <creation_ts>2024-01-06 16:27:08 +0300</creation_ts>
          <short_desc>Не запускать для пользователей, которых нет в группе audio</short_desc>
          <delta_ts>2024-01-06 20:13:29 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>pipewire</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Yuri N. Sedunov">aris</assigned_to>
          <cc>aris</cc>
    
    <cc>arseny</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239928</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2024-01-06 16:27:08 +0300</bug_when>
    <thetext>Глобальное включение pipewire.service:
# systemctl --global enable pipewire.service

Приводит к тому, что он запускается вообще у всех пользователей, включая root.
Решение проблемы видится мне в том, чтобы запускать его только у тех пользователей, которые состоят в группе audio.
Для этого нужно добавить в pipewire.service в секцию [Unit] строчку:
ConditionGroup=audio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239929</commentid>
    <comment_count>1</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2024-01-06 16:36:54 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #0)
&gt; Глобальное включение pipewire.service:
&gt; # systemctl --global enable pipewire.service

Зачем --global?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239930</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2024-01-06 16:40:33 +0300</bug_when>
    <thetext>(Ответ для Yuri N. Sedunov на комментарий #1)
&gt; (Ответ для Антон Мидюков на комментарий #0)
&gt; &gt; Глобальное включение pipewire.service:
&gt; &gt; # systemctl --global enable pipewire.service
&gt; 
&gt; Зачем --global?

Чтобы у всех пользователей, которые будут созданы в будущем был включен pipewire.
А есть какой-то другой способ включить будущим пользователям?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239931</commentid>
    <comment_count>3</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2024-01-06 16:44:33 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #2)
&gt; (Ответ для Yuri N. Sedunov на комментарий #1)
&gt; &gt; (Ответ для Антон Мидюков на комментарий #0)
&gt; &gt; &gt; Глобальное включение pipewire.service:
&gt; &gt; &gt; # systemctl --global enable pipewire.service
&gt; &gt; 
&gt; &gt; Зачем --global?
&gt; 
&gt; Чтобы у всех пользователей, которые будут созданы в будущем был включен
&gt; pipewire.
&gt; А есть какой-то другой способ включить будущим пользователям?

У системы есть администратор -- включит, если надо.

И у юзера gdm, включит если надо, чтоб, например, orca работала.

В общем, ты сам напросился нарисовать какой-нибудь развесистый control для pipewire.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239934</commentid>
    <comment_count>4</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-01-06 17:05:55 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #0)
&gt; Глобальное включение pipewire.service:
&gt; # systemctl --global enable pipewire.service
&gt; 
&gt; Приводит к тому, что он запускается вообще у всех пользователей, включая
&gt; root.
&gt; Решение проблемы видится мне в том, чтобы запускать его только у тех
&gt; пользователей, которые состоят в группе audio.
&gt; Для этого нужно добавить в pipewire.service в секцию [Unit] строчку:
&gt; ConditionGroup=audio

IMHO, Condition*= лучше вешать на {pipewire,pipewire-pulse,wireplumber}.socket, а не на сервис. Как и включать с --global, если хочется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239935</commentid>
    <comment_count>5</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-01-06 17:06:29 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #0)
&gt; Глобальное включение pipewire.service:
&gt; # systemctl --global enable pipewire.service
&gt; 
&gt; Приводит к тому, что он запускается вообще у всех пользователей, включая
&gt; root.
&gt; Решение проблемы видится мне в том, чтобы запускать его только у тех
&gt; пользователей, которые состоят в группе audio.
&gt; Для этого нужно добавить в pipewire.service в секцию [Unit] строчку:
&gt; ConditionGroup=audio

Не лучше ли ConditionUser=!0?
Значение !root взято из юнитов для pulseaudio, но оно не учитывает ситуации, где аккаунтов с uid 0 и разными shadow несколько.

Более того, pipewire — это ещё и видео; странно его завязывать на группу audio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239937</commentid>
    <comment_count>6</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2024-01-06 20:13:29 +0300</bug_when>
    <thetext>(Ответ для Arseny Maslennikov на комментарий #4)
&gt; (In reply to Антон Мидюков from comment #0)
&gt; &gt; Глобальное включение pipewire.service:
&gt; &gt; # systemctl --global enable pipewire.service
&gt; &gt; 
&gt; &gt; Приводит к тому, что он запускается вообще у всех пользователей, включая
&gt; &gt; root.
&gt; &gt; Решение проблемы видится мне в том, чтобы запускать его только у тех
&gt; &gt; пользователей, которые состоят в группе audio.
&gt; &gt; Для этого нужно добавить в pipewire.service в секцию [Unit] строчку:
&gt; &gt; ConditionGroup=audio
&gt; 
&gt; IMHO, Condition*= лучше вешать на
&gt; {pipewire,pipewire-pulse,wireplumber}.socket, а не на сервис. Как и включать
&gt; с --global, если хочется.

Действительно, проблема с запуском pipewire там, где не нужно, решается включением сокетов вместо сервисов. Для wireplumber нет сокета, но он не включится без pipewire.service.
Спасибо! Я закрываю багу, как notabug.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>