Bug 27015 - xdg-su don't work in LXDE
: xdg-su don't work in LXDE
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/xdg-utils)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
: 23155
  Show dependency tree
 
Reported: 2012-03-01 11:50 by
Modified: 2012-03-08 12:47 (History)


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


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2012-03-01 11:50:09
Created an attachment (id=5340) [details]
xdg-su.patch

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

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

beesu не получиться, т.к. у него нет параметра -u
------- Comment #3 From 2012-03-01 23:17:42 -------
Коллеги, давайте разберемся вместе.
По факту в апстриме сейчас 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 From 2012-03-01 23:32:15 -------
(В ответ на комментарий №3)
> Правильно ли это?
Это сложный вопрос, т.к. универсальной замены нет.

> Может стоит приложения, использующие xdg-su переделывать?
Вроде бы стоит однозначно, но что использовать, непонятно.
Например, у меня придется написать тот-же xdg-su, но чуть более простой, т.к.
параметр -u не нужен.
Если бы было что-то с GUI на pinentry, было бы здорово.
------- Comment #5 From 2012-03-02 06:35:11 -------
(В ответ на комментарий №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 From 2012-03-02 11:29:58 -------
(В ответ на комментарий №5)
> В нем реализован перебор:
"g_find_program_in_path ("kdesu")" никогда не сработает. Их 2 и все не в PATH.
------- Comment #7 From 2012-03-02 11:30:58 -------
(В ответ на комментарий №6)
> > В нем реализован перебор:
> "g_find_program_in_path ("kdesu")" никогда не сработает.
Хотя, в KDE3 сработает
------- Comment #8 From 2012-03-03 16:41:40 -------
напомню, на
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 From 2012-03-04 23:54:55 -------
(В ответ на комментарий №8)
> зафиксирована текущая ситуация по поводу su утилит.
Ок, но это касательно desktop-файлов, что я и делаю, как в недавнем пакета
synaptic-kde, а в apt-indicator мне необходим прямой вызов вызов универсальной
утилиты,чтоб без проблем с виртуальной клавиатурой (я слыхал про какой-то новый
хак доя X-ов, но в P6 его вроде нет, выясню). Вплоть до того, что я буду не
против wrap-ить kdesu(с ним есть проблемы) на beesu при возможности и в p6 X-ы
пропатчить.

> Если есть какие-то новые идеи, cтоит их обсудить вdevel@.
Ок, погляжу.
------- Comment #10 From 2012-03-06 09:32:10 -------
Коллеги, прошу Вас протестировать http://git.altlinux.org/tasks/65797/

Патч приготовлен такой:
http://git.altlinux.org/people/radik/packages/?p=xdg-utils.git;a=blob;f=patches/xdg-su-xsu.patch;h=11ea729eb96d949efeae1c1e11dcc671eb7288c5;hb=9c898c13ae75d998ae36891b7e811799f0c56bf9
------- Comment #11 From 2012-03-06 13:19:13 -------
В KDE* и так все работало
------- Comment #12 From 2012-03-06 14:09:44 -------
(В ответ на комментарий №11)
> В KDE* и так все работало

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

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

В предыдущий раз ошибся с опциями
------- Comment #22 From 2012-03-07 04:58:25 -------
Сергей, спасибо!
Если можно, прошу разъяснить мне различия между 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 From 2012-03-07 12:19:00 -------
(В ответ на комментарий №22)
> Дело в том, что у меня уже используется beesu:
А-а-а. Мне в общем-то все равно.

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

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

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

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

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

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

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

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

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

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

Хренова.
------- Comment #34 From 2012-03-07 18:30:35 -------
(В ответ на комментарий №33)
> Сергей, простите, а мы разве не его патчим?
Ок. Получится то, что сейчас. Зачем в KDE* gksu или в LXDE kdesu?
------- Comment #35 From 2012-03-07 19:37:17 -------
У меня стойкое ощущение, что мы говорим о разных вещах.
Попробую покопаться и на примере показать что я хочу сделать.
------- Comment #36 From 2012-03-07 19:56:54 -------
Вот:
--- 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 From 2012-03-07 20:05:56 -------
Created an attachment (id=5365) [details]
xdg-su-lxde-added.patch
------- Comment #38 From 2012-03-07 20:07:13 -------
Сергей, прошу Вас посмотреть мой патч. Я проверю на работу. Если заработает,
предлагаю добавить поддержку XFCE4 и уже отправлять в сизиф и р6.
------- Comment #39 From 2012-03-07 21:09:36 -------
Ну или XFCE будет работать по предложенному Сергеем варианту.
------- Comment #40 From 2012-03-08 01:05:09 -------
В сизиф ушел 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 From 2012-03-08 12:04:35 -------
(В ответ на комментарий №40)
> В сизиф ушел alt5 с патчем:
Ок, но не вижу там ни одного вызова функции su_lxde
------- Comment #42 From 2012-03-08 12:07:32 -------
(В ответ на комментарий №40)
> Вроде ничего сломаться не должно. 
Пока оно не работает, не сломается.
Когда исправите, сломается `xdg-su -u root xterm` и только в LXDE
------- Comment #43 From 2012-03-08 12:12:19 -------
(В ответ на комментарий №42)
> сломается `xdg-su -u root xterm` и только в LXDE
Ой, `xdg-su -u root -c xterm`. Сам путаюсь с парамертрами
------- Comment #44 From 2012-03-08 12:19:14 -------
Сергей, я не обладаю знаниями в программировании.. Я исправляю больше на
интуитивном уровне, чем четко понимаю что делаю.
Проверил, работает. Вроде для xfce тоже ничего сломаться не должно.
Если Вы знаете где я допустил ошибку, прошу мне ее указать или скорее всего
получится так, что пока пользователи жаловаться не начнут, я себя искать
причину не заставлю...
------- Comment #45 From 2012-03-08 12:47:12 -------
(В ответ на комментарий №44)
> Сергей, я не обладаю знаниями в программировании.
Я тоже, но приходится.

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

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

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