Created attachment 5340 [details] xdg-su.patch Я вчера в apt-indicator сделал запуск программ через xdg-su, а сегодня обнаружил, что в LXDE не работает. Предлагаю пропатчить и устанавливать по умолчанию gksu в LXDEsktop
Или то же самое, но beesu
Created attachment 5341 [details] xdg-su-xsu.patch beesu не получиться, т.к. у него нет параметра -u
Коллеги, давайте разберемся вместе. По факту в апстриме сейчас 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 переделывать?
(В ответ на комментарий №3) > Правильно ли это? Это сложный вопрос, т.к. универсальной замены нет. > Может стоит приложения, использующие xdg-su переделывать? Вроде бы стоит однозначно, но что использовать, непонятно. Например, у меня придется написать тот-же xdg-su, но чуть более простой, т.к. параметр -u не нужен. Если бы было что-то с GUI на pinentry, было бы здорово.
(В ответ на комментарий №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.
(В ответ на комментарий №5) > В нем реализован перебор: "g_find_program_in_path ("kdesu")" никогда не сработает. Их 2 и все не в PATH.
(В ответ на комментарий №6) > > В нем реализован перебор: > "g_find_program_in_path ("kdesu")" никогда не сработает. Хотя, в KDE3 сработает
напомню, на 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@.
(В ответ на комментарий №8) > зафиксирована текущая ситуация по поводу su утилит. Ок, но это касательно desktop-файлов, что я и делаю, как в недавнем пакета synaptic-kde, а в apt-indicator мне необходим прямой вызов вызов универсальной утилиты,чтоб без проблем с виртуальной клавиатурой (я слыхал про какой-то новый хак доя X-ов, но в P6 его вроде нет, выясню). Вплоть до того, что я буду не против wrap-ить kdesu(с ним есть проблемы) на beesu при возможности и в p6 X-ы пропатчить. > Если есть какие-то новые идеи, cтоит их обсудить вdevel@. Ок, погляжу.
Коллеги, прошу Вас протестировать 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
В KDE* и так все работало
(В ответ на комментарий №11) > В KDE* и так все работало А, ну да :) Протещу вечером.
Сергей, простите, а как проверить? Что нужно запустить? У меня ошибки по поводу процесса 3.
Да это у меня apt-indicator так ругается, пытаясь запустить xdg-su -c /usr/sbin/synaptic
(В ответ на комментарий №10) > Патч приготовлен такой: С ним в GNOME, похоже, не будет работать
(В ответ на комментарий №15) > (В ответ на комментарий №10) > > Патч приготовлен такой: > С ним в GNOME, похоже, не будет работать И в XFCE, т.к. в моем варианте есть затычка для gksu
Возможно, будет лучше к твоему варианту в detectDE() добавить DE=generic, если не определен (про xfce там не забыть).
Сергей, в ближайшую неделю я не смогу понять что нужно сделать.. Если Вам не будет в тягость, можно Вас попросить приготовить правильный патч? Я пока не въезжаю в то что нужно сделать, а значит адекватный патч приготовить тоже не получиться...
Created attachment 5360 [details] xdg-su-xsu.patch Все-таки мой вариант с одним дополнением. Видимо, его для .in-файла нужно будет переделать только.
Ну и единственная инструкция, если не нравиться xterm при запросе пароля: "установите gksu"
Created attachment 5361 [details] xdg-su-gksu.patch В предыдущий раз ошибся с опциями
Сергей, спасибо! Если можно, прошу разъяснить мне различия между 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 переделаю. Еще раз спасибо!
(В ответ на комментарий №22) > Дело в том, что у меня уже используется beesu: А-а-а. Мне в общем-то все равно. > Если gksu правильнее Я не знаю, можно у ldv проконсультироваться. gksu мне показался более прогрессивным и что-то видел про поддержку там ConsoleKit.
Только не забудьте, что у beesu перед командой нужно -с указывать, а опция -l есть у обоих
(В ответ на комментарий №22) > Дело в том, что у меня уже используется beesu: Кстати: - он там без -l используется - можно там написать xdg-su, в котором уже гадать, кого использовать
(В ответ на комментарий №22) > прошу разъяснить мне различия между gksu и beesu. В xdg-su нельзя beesu, т.к. у него нет параметра -u gksu единественный вариант получается
xdg-utils-1.1.0-alt4
Исправление xdg-utils бы проверить на p6/LXDE: apt-repo add 65874 apt-get update apt-get install xdg-utils
(В ответ на комментарий №28) > apt-get install xdg-utils вместо этого apt-get install gksu P.S. Все касается только тех, у кого перестало работать
Проблема конечно решается, но у меня одного gksu на английском языке? Зачем такое нужно в нашем русском дистре? (В ответ на комментарий №26) > В xdg-su нельзя beesu, т.к. у него нет параметра -u > gksu единественный вариант получается Посмотрел гит, русский очень-очень скудный. Вообщем не очень :( Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander, данный выше?
(В ответ на комментарий №30) > Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander, > данный выше? Можно, но только для каждого DE отдельный. Получится xdg-su
(В ответ на комментарий №30) > Проблема конечно решается, но у меня одного gksu У всех, кроме kde*, по идее > на английском языке? Да > Зачем такое нужно в нашем русском дистре? Видимо, чтоб желающие заполнили ru.po в libgksu
(В ответ на комментарий №31) > (В ответ на комментарий №30) > > Можно ли в xdg-utils реализовать перебор, как в примере с gnome-commander, > > данный выше? > Можно, но только для каждого DE отдельный. Получится xdg-su Сергей, простите, а мы разве не его патчим? (В ответ на комментарий №32) > > Зачем такое нужно в нашем русском дистре? > Видимо, чтоб желающие заполнили ru.po в libgksu Хренова.
(В ответ на комментарий №33) > Сергей, простите, а мы разве не его патчим? Ок. Получится то, что сейчас. Зачем в KDE* gksu или в LXDE kdesu?
У меня стойкое ощущение, что мы говорим о разных вещах. Попробую покопаться и на примере показать что я хочу сделать.
Вот: --- 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"
Created attachment 5365 [details] xdg-su-lxde-added.patch
Сергей, прошу Вас посмотреть мой патч. Я проверю на работу. Если заработает, предлагаю добавить поддержку XFCE4 и уже отправлять в сизиф и р6.
Ну или XFCE будет работать по предложенному Сергеем варианту.
В сизиф ушел 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.
(В ответ на комментарий №40) > В сизиф ушел alt5 с патчем: Ок, но не вижу там ни одного вызова функции su_lxde
(В ответ на комментарий №40) > Вроде ничего сломаться не должно. Пока оно не работает, не сломается. Когда исправите, сломается `xdg-su -u root xterm` и только в LXDE
(В ответ на комментарий №42) > сломается `xdg-su -u root xterm` и только в LXDE Ой, `xdg-su -u root -c xterm`. Сам путаюсь с парамертрами
Сергей, я не обладаю знаниями в программировании.. Я исправляю больше на интуитивном уровне, чем четко понимаю что делаю. Проверил, работает. Вроде для xfce тоже ничего сломаться не должно. Если Вы знаете где я допустил ошибку, прошу мне ее указать или скорее всего получится так, что пока пользователи жаловаться не начнут, я себя искать причину не заставлю...
(В ответ на комментарий №44) > Сергей, я не обладаю знаниями в программировании. Я тоже, но приходится. > Проверил, работает. А, да. По ссылке в git есть вызов su_lxde() > Вроде для xfce тоже ничего сломаться не должно. Проверьте в LXDE `xsg-su -u root -c xterm` 100% не работает P.S. Я уже 2 раза писал, почему beesu нельзя. Вы не используете опцию -l, что очень плохо.