Bug 27015 - xdg-su don't work in LXDE
Summary: xdg-su don't work in LXDE
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: xdg-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 23155
  Show dependency tree
 
Reported: 2012-03-01 11:50 MSK by Zerg
Modified: 2012-03-08 12:47 MSK (History)
5 users (show)

See Also:


Attachments
xdg-su.patch (524 bytes, patch)
2012-03-01 11:50 MSK, Zerg
no flags Details | Diff
xdg-su-xsu.patch (769 bytes, patch)
2012-03-01 14:08 MSK, Zerg
no flags Details | Diff
xdg-su-xsu.patch (1018 bytes, patch)
2012-03-07 01:13 MSK, Zerg
no flags Details | Diff
xdg-su-gksu.patch (1018 bytes, patch)
2012-03-07 01:31 MSK, Zerg
no flags Details | Diff
xdg-su-lxde-added.patch (1.13 KB, patch)
2012-03-07 20:05 MSK, Radik Usupov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Zerg 2012-03-01 11:50:09 MSK
Created attachment 5340 [details]
xdg-su.patch

Я вчера в apt-indicator сделал запуск программ через xdg-su, а сегодня обнаружил, что в LXDE не работает.

Предлагаю пропатчить и устанавливать по умолчанию gksu в LXDEsktop
Comment 1 Zerg 2012-03-01 12:41:33 MSK
Или то же самое, но beesu
Comment 2 Zerg 2012-03-01 14:08:39 MSK
Created attachment 5341 [details]
xdg-su-xsu.patch

beesu не получиться, т.к. у него нет параметра -u
Comment 3 Radik Usupov 2012-03-01 23:17:42 MSK
Коллеги, давайте разберемся вместе.
По факту в апстриме сейчас xdg-su не используется. Не нашел коммит, это делающий, но факт такой: http://cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/Makefile.in#n24
Я своим патчем (http://git.altlinux.org/people/radik/packages/?p=xdg-utils.git;a=blob;f=patches/added-xdg-su-1.1.0rc1-alt.patch;h=60aa81b6286796c7022215a567d4d5e520646be6;hb=HEAD) в альте продолжаю его использовать.

Правильно ли это? Может стоит приложения, использующие xdg-su переделывать?
Comment 4 Zerg 2012-03-01 23:32:15 MSK
(В ответ на комментарий №3)
> Правильно ли это?
Это сложный вопрос, т.к. универсальной замены нет.

> Может стоит приложения, использующие xdg-su переделывать?
Вроде бы стоит однозначно, но что использовать, непонятно.
Например, у меня придется написать тот-же xdg-su, но чуть более простой, т.к. параметр -u не нужен.
Если бы было что-то с GUI на pinentry, было бы здорово.
Comment 5 Radik Usupov 2012-03-02 06:35:11 MSK
(В ответ на комментарий №4)
> Вроде бы стоит однозначно, но что использовать, непонятно.
> Например, у меня придется написать тот-же xdg-su, но чуть более простой, т.к.
> параметр -u не нужен.
> Если бы было что-то с GUI на pinentry, было бы здорово.

Я в пример приведу gnome-commander, с ним я тоже столкнулся с такой проблемой. В нем реализован перебор: http://git.altlinux.org/people/radik/packages/?p=gnome-commander.git;a=blob;f=gnome-commander/src/utils.cc;h=4cd31ed16d21a7c161f2797491ea05a9f3bc52e6;hb=HEAD#l1356
Я вырубаю использование xdg-su патчем: http://git.altlinux.org/people/radik/packages/?p=gnome-commander.git;a=blob;f=patches/gnome-commander-alt-fix-su-mode.patch;h=5c5ff93548f11f40b1ac698c82c3ae4e05f0e098;hb=HEAD

Но это все растянется во времени наверное.. Сегодня применю патч и отправлю в сизиф, а потом в р6.
Comment 6 Zerg 2012-03-02 11:29:58 MSK
(В ответ на комментарий №5)
> В нем реализован перебор:
"g_find_program_in_path ("kdesu")" никогда не сработает. Их 2 и все не в PATH.
Comment 7 Zerg 2012-03-02 11:30:58 MSK
(В ответ на комментарий №6)
> > В нем реализован перебор:
> "g_find_program_in_path ("kdesu")" никогда не сработает.
Хотя, в KDE3 сработает
Comment 8 viy 2012-03-03 16:41:40 MSK
напомню, на
http://www.altlinux.org/Desktop_Menu_Entry_Policy#.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC_.D0.B8.D0.B7_.D0.BC.D0.B5.D0.BD.D1.8E_.D1.81_.D0.BF.D0.BE.D0.B2.D1.8B.D1.88.D0.B5.D0.BD.D0.B8.D0.B5.D0.BC_.D0.BF.D1.80.D0.B0.D0.B2
зафиксирована текущая ситуация по поводу su утилит.
Если есть какие-то новые идеи, cтоит их обсудить вdevel@.
Comment 9 Zerg 2012-03-04 23:54:55 MSK
(В ответ на комментарий №8)
> зафиксирована текущая ситуация по поводу su утилит.
Ок, но это касательно desktop-файлов, что я и делаю, как в недавнем пакета synaptic-kde, а в apt-indicator мне необходим прямой вызов вызов универсальной утилиты,чтоб без проблем с виртуальной клавиатурой (я слыхал про какой-то новый хак доя X-ов, но в P6 его вроде нет, выясню). Вплоть до того, что я буду не против wrap-ить kdesu(с ним есть проблемы) на beesu при возможности и в p6 X-ы пропатчить.

> Если есть какие-то новые идеи, cтоит их обсудить вdevel@.
Ок, погляжу.
Comment 11 Zerg 2012-03-06 13:19:13 MSK
В KDE* и так все работало
Comment 12 Radik Usupov 2012-03-06 14:09:44 MSK
(В ответ на комментарий №11)
> В KDE* и так все работало

А, ну да :)
Протещу вечером.
Comment 13 Radik Usupov 2012-03-06 18:42:32 MSK
Сергей, простите, а как проверить? Что нужно запустить? У меня ошибки по поводу процесса 3.
Comment 14 Sergey V Turchin 2012-03-06 18:45:35 MSK
Да это у меня apt-indicator так ругается, пытаясь запустить
xdg-su -c /usr/sbin/synaptic
Comment 15 Sergey V Turchin 2012-03-06 19:00:59 MSK
(В ответ на комментарий №10)
> Патч приготовлен такой:
С ним в GNOME, похоже, не будет работать
Comment 16 Sergey V Turchin 2012-03-06 19:03:33 MSK
(В ответ на комментарий №15)
> (В ответ на комментарий №10)
> > Патч приготовлен такой:
> С ним в GNOME, похоже, не будет работать
И в XFCE, т.к. в моем варианте есть затычка для gksu
Comment 17 Sergey V Turchin 2012-03-06 19:08:18 MSK
Возможно, будет лучше к твоему варианту в detectDE() добавить DE=generic, если не определен (про xfce там не забыть).
Comment 18 Radik Usupov 2012-03-06 21:39:33 MSK
Сергей, в ближайшую неделю я не смогу понять что нужно сделать.. Если Вам не будет в тягость, можно Вас попросить приготовить правильный патч?
Я пока не въезжаю в то что нужно сделать, а значит адекватный патч приготовить тоже не получиться...
Comment 19 Zerg 2012-03-07 01:13:38 MSK
Created attachment 5360 [details]
xdg-su-xsu.patch

Все-таки мой вариант с одним дополнением. Видимо, его для .in-файла нужно будет переделать только.
Comment 20 Zerg 2012-03-07 01:18:05 MSK
Ну и единственная инструкция,
если не нравиться xterm при запросе пароля: "установите gksu"
Comment 21 Zerg 2012-03-07 01:31:26 MSK
Created attachment 5361 [details]
xdg-su-gksu.patch

В предыдущий раз ошибся с опциями
Comment 22 Radik Usupov 2012-03-07 04:58:25 MSK
Сергей, спасибо!
Если можно, прошу разъяснить мне различия между gksu и beesu.
Дело в том, что у меня уже используется beesu: http://git.altlinux.org/people/radik/packages/?p=branding.git;a=blob;f=lxde-settings/pcmanfm/lxde.conf;h=97c4a7f10d294199834f418d92159526d129f167;hb=refs/heads/lxdesktop#l3
Но я не уверен, что это правильно - было подсмотрено у мандривы и например у нас для XFCE может не сработать.
Если gksu правильнее, тогда я и для pcmanfm переделаю.
Еще раз спасибо!
Comment 23 Zerg 2012-03-07 12:19:00 MSK
(В ответ на комментарий №22)
> Дело в том, что у меня уже используется beesu:
А-а-а. Мне в общем-то все равно.

> Если gksu правильнее
Я не знаю, можно у ldv проконсультироваться. gksu мне показался более прогрессивным и что-то видел про поддержку там ConsoleKit.
Comment 24 Zerg 2012-03-07 12:21:29 MSK
Только не забудьте, что у beesu перед командой нужно -с указывать, а опция -l есть у обоих
Comment 25 Sergey V Turchin 2012-03-07 13:58:39 MSK
(В ответ на комментарий №22)
> Дело в том, что у меня уже используется beesu:
Кстати:
- он там без -l используется
- можно там написать xdg-su, в котором уже гадать, кого использовать
Comment 26 Sergey V Turchin 2012-03-07 14:01:40 MSK
(В ответ на комментарий №22)
> прошу разъяснить мне различия между gksu и beesu.
В xdg-su нельзя beesu, т.к. у него нет параметра -u
gksu единественный вариант получается
Comment 27 Sergey V Turchin 2012-03-07 15:19:35 MSK
xdg-utils-1.1.0-alt4
Comment 28 Andrey Cherepanov 2012-03-07 15:40:12 MSK
Исправление xdg-utils бы проверить на p6/LXDE: 

apt-repo add 65874
apt-get update
apt-get install xdg-utils
Comment 29 Sergey V Turchin 2012-03-07 16:39:31 MSK
(В ответ на комментарий №28)
> apt-get install xdg-utils
вместо этого
apt-get install gksu

P.S.
Все касается только тех, у кого перестало работать
Comment 30 Radik Usupov 2012-03-07 17:50:27 MSK
Проблема конечно решается, но у меня одного gksu на английском языке? Зачем такое нужно в нашем русском дистре?

(В ответ на комментарий №26)
> В xdg-su нельзя beesu, т.к. у него нет параметра -u
> gksu единественный вариант получается

Посмотрел гит, русский очень-очень скудный. 
Вообщем не очень :(

Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander, данный выше?
Comment 31 Sergey V Turchin 2012-03-07 17:53:34 MSK
(В ответ на комментарий №30)
> Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander,
> данный выше?
Можно, но только для каждого DE отдельный. Получится xdg-su
Comment 32 Sergey V Turchin 2012-03-07 17:58:35 MSK
(В ответ на комментарий №30)
> Проблема конечно решается, но у меня одного gksu
У всех, кроме kde*, по идее

> на английском языке?
Да

> Зачем такое нужно в нашем русском дистре?
Видимо, чтоб желающие заполнили ru.po в libgksu
Comment 33 Radik Usupov 2012-03-07 18:28:15 MSK
(В ответ на комментарий №31)
> (В ответ на комментарий №30)
> > Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander,
> > данный выше?
> Можно, но только для каждого DE отдельный. Получится xdg-su

Сергей, простите, а мы разве не его патчим?

(В ответ на комментарий №32)
> > Зачем такое нужно в нашем русском дистре?
> Видимо, чтоб желающие заполнили ru.po в libgksu

Хренова.
Comment 34 Sergey V Turchin 2012-03-07 18:30:35 MSK
(В ответ на комментарий №33)
> Сергей, простите, а мы разве не его патчим?
Ок. Получится то, что сейчас. Зачем в KDE* gksu или в LXDE kdesu?
Comment 35 Radik Usupov 2012-03-07 19:37:17 MSK
У меня стойкое ощущение, что мы говорим о разных вещах.
Попробую покопаться и на примере показать что я хочу сделать.
Comment 36 Radik Usupov 2012-03-07 19:56:54 MSK
Вот:
--- a/xdg-utils/scripts/xdg-su
+++ b/xdg-utils/scripts/xdg-su
@@ -300,6 +300,7 @@


     elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
+    elif [ x"$XDG_CURRENT_DESKTOP" = x"LXDE" ]; then DE=lxde;


 }
@@ -355,6 +356,29 @@ su_gnome()
     fi
 }
 
+su_lxde()
+{
+    LXSU=`which beesu 2>/dev/null`
+    if [ $? -ne 0 ] ; then
+        LXSU=`which gksu 2>/dev/null`
+    fi
+    if [ $? -eq 0 ] ; then
+        if [ -z "$user" ] ; then
+            $GSU -c "$cmd"
+        else
+            $GSU -u "$user" -c "$cmd"
+        fi
+
+        if [ $? -eq 0 ]; then
+            exit_success
+        else
+            exit_failure_operation_failed
+        fi
+    else
+        su_generic
+    fi
+}
+
 su_generic()


Как такое решение?

P.S. Спасибо gns@ за подсказку по поводу $XDG_CURRENT_DESKTOP"
Comment 37 Radik Usupov 2012-03-07 20:05:56 MSK
Created attachment 5365 [details]
xdg-su-lxde-added.patch
Comment 38 Radik Usupov 2012-03-07 20:07:13 MSK
Сергей, прошу Вас посмотреть мой патч. Я проверю на работу. Если заработает, предлагаю добавить поддержку XFCE4 и уже отправлять в сизиф и р6.
Comment 39 Radik Usupov 2012-03-07 21:09:36 MSK
Ну или XFCE будет работать по предложенному Сергеем варианту.
Comment 40 Radik Usupov 2012-03-08 01:05:09 MSK
В сизиф ушел alt5 с патчем: http://git.altlinux.org/people/radik/packages/?p=xdg-utils.git;a=blob;f=patches/xdg-su-added-lxde-and-gksu-support.patch;h=712f97cd6b2681094cfd766f95ef8dabbfb64fb2;hb=77af0059401c93b8caeac4854fc88355da060ebb

Вроде ничего сломаться не должно. 
Для тестирования в р6 прошу в #65848

На этом таске сейчас буду собирать RC2.
Comment 41 Zerg 2012-03-08 12:04:35 MSK
(В ответ на комментарий №40)
> В сизиф ушел alt5 с патчем:
Ок, но не вижу там ни одного вызова функции su_lxde
Comment 42 Zerg 2012-03-08 12:07:32 MSK
(В ответ на комментарий №40)
> Вроде ничего сломаться не должно. 
Пока оно не работает, не сломается.
Когда исправите, сломается `xdg-su -u root xterm` и только в LXDE
Comment 43 Zerg 2012-03-08 12:12:19 MSK
(В ответ на комментарий №42)
> сломается `xdg-su -u root xterm` и только в LXDE
Ой, `xdg-su -u root -c xterm`. Сам путаюсь с парамертрами
Comment 44 Radik Usupov 2012-03-08 12:19:14 MSK
Сергей, я не обладаю знаниями в программировании.. Я исправляю больше на интуитивном уровне, чем четко понимаю что делаю.
Проверил, работает. Вроде для xfce тоже ничего сломаться не должно.
Если Вы знаете где я допустил ошибку, прошу мне ее указать или скорее всего получится так, что пока пользователи жаловаться не начнут, я себя искать причину не заставлю...
Comment 45 Zerg 2012-03-08 12:47:12 MSK
(В ответ на комментарий №44)
> Сергей, я не обладаю знаниями в программировании.
Я тоже, но приходится.

> Проверил, работает.
А, да. По ссылке в git есть вызов su_lxde()

> Вроде для xfce тоже ничего сломаться не должно.
Проверьте в LXDE `xsg-su -u root -c xterm`
100% не работает

P.S.
Я уже 2 раза писал, почему beesu нельзя.
Вы не используете опцию -l, что очень плохо.