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

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

    <bug>
          <bug_id>22221</bug_id>
          
          <creation_ts>2009-11-09 13:28:46 +0300</creation_ts>
          <short_desc>Неверное поведение системы при нажатии ACPI кнопки выключения питания</short_desc>
          <delta_ts>2009-11-14 21:11:27 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Школьный</product>
          <component>usability</component>
          <version>5.0</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон">fynjy-007</reporter>
          <assigned_to name="Anton V. Boyarshinov">boyarsh</assigned_to>
          <cc>fynjy-007</cc>
          
          <qa_contact name="Andrey Cherepanov">cas</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102851</commentid>
    <comment_count>0</comment_count>
    <who name="Антон">fynjy-007</who>
    <bug_when>2009-11-09 13:28:46 +0300</bug_when>
    <thetext>Проблема: при нажатии ACPI кнопки выключения питания kde4 выкидывает диалог завершения работы и компьютер через секунду, без подтверждения от пользователя, начинает последовательность выключения.

Ожидаемое поведение: при нажатии ACPI кнопки выключения питания kde4 выкидывает диалог завершения работы, ждёт реакции пользователя и продолжает работу, в зависимости от того что нажмёт юзер (выход, выключение, перезагрузка или отмена).

Воспроизведение проблемы:
1. В настройках текущего профиля установить &quot;При нажатии кнопки питания&quot; = &quot;Диалог подтверждения выхода&quot;.
2. Нажать кнопку выключения.

Дистрибутив: Альт Линукс школьный мастер.
b1b136ed3a6fd7eb0780809bb25e1d9c  altlinux-5.0.0-school-master-i586-ru-install-dvd5.is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103137</commentid>
    <comment_count>1</comment_count>
    <who name="Антон">fynjy-007</who>
    <bug_when>2009-11-14 21:11:27 +0300</bug_when>
    <thetext>Лечение:

файл /etc/acpi/events/power
#----------------------------cut here----------------------------
event=button/power.*
action=/usr/lib/acpid/power_button
#----------------------------end cut-----------------------------

файл /usr/lib/acpid/power_button
#----------------------------cut here----------------------------
#!/bin/bash                                                       
#                                                                 
# check if a X session is running and active.                     
# If not, shut down the system                                    
#                                                                 
# Copyright (C) 2008 Holger Macht &lt;hmacht@suse.de&gt;                
#                                                                 
# This file is released under the GPLv2.                          
#                                                                 

EXEC=&quot;/sbin/shutdown -h now&quot;

# check if we have pm-profiler and an active profile. If so, $EXEC can be
# overwritten by the active profile&apos;s configuration                      
. /etc/pm-profiler.conf &gt; /dev/null 2&gt;&amp;1                                 
if [ &quot;$?&quot; = &quot;0&quot; ]; then
    . /etc/pm-profiler/$PM_PROFILER_PROFILE/config &gt;/dev/null 2&gt;&amp;1
fi
[ -z &quot;$POWER_BUTTON_HOOK&quot; ] || EXEC=&quot;$POWER_BUTTON_HOOK&quot;


# iterate over all sessions. If a active X session is found, do nothing
while read A; do
    SESSION=`echo $A | sed &apos;s/\(Session[0-9]*\)://g&apos;`
    [ -z &quot;$SESSION&quot; ] || continue

    SESSION=`echo $A | sed &apos;s/\(Session[0-9]*\):/\1/g&apos;`
    IS_X=`dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit \
        /org/freedesktop/ConsoleKit/$SESSION \
        org.freedesktop.ConsoleKit.Session.GetX11Display`

    # check if this is a X session, if not, go on
    DISP=`echo $IS_X | sed -e &apos;s/^.* string &quot;\(.*\)&quot;/\1/&apos;`
    [ -n &quot;$DISP&quot; ] || continue

    IS_ACTIVE=`dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit \
        /org/freedesktop/ConsoleKit/$SESSION \
        org.freedesktop.ConsoleKit.Session.IsActive`
    IS_ACTIVE=`echo $IS_ACTIVE | sed -e &apos;s/^.* boolean \(.*\)$/\1/&apos;`

    # debug
    #if [ &quot;$IS_ACTIVE&quot; = &quot;true&quot; ]; then
    #   echo &quot;and is active&quot;
    #else
    #   echo &quot;and is not active&quot;
    #fi

    if [ &quot;$IS_ACTIVE&quot; = &quot;true&quot; -a -n &quot;$DISP&quot; ]; then
        # additional check, if none of these two apps are running, go on
        if [ -n &quot;`pidof kpowersave`&quot; -o -n &quot;`pidof gnome-power-manager`&quot; -o -n &quot;`pidof kded4`&quot; ]; then
            echo doing nothing...
            exit 0
        fi
    fi
done &lt; &lt;(ck-list-sessions)

logger -s -t pm-profiler &quot;Power Button pressed, executing $EXEC&quot;
$EXEC
#------------------------------end of cut--------------------------------

Результат: в консоли кнопка выключения питания выключает комп без разговоров. В иксах ожидается использование встроенных в оконный менеджер возможностей (в kde4 появляется диалог завершения работы и ожидается реакция пользователя).

Решение скопировано из openSuSE 11.1 пакет acpid-1.0.6-89.14 и не, возможно, не является оптимальным для альта.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>