Hide Forgot
Description of problem: adobe reader leaves files owned by root in your home directory alacarte doesn't deal with that elegantly Version-Release number of selected component (if applicable): How reproducible: yes Steps to Reproduce: 1. sudo rpm -i AdbeRdr9.4-1_i486linux_enu.rpm 2. sudo yum install alacarte -y 3. (gratuitously) move the Adobe desktop icon to the trash Actual results: acroread works alacarte blows up Expected results: acroread works alacarte works Additional info: workaround is... $ sudo find .??* -name .gvfs -prune -o -user root -ls 180225 4 drwx------ 3 root root 4096 Jan 29 17:51 .config/menus 180226 4 drwx------ 2 root root 4096 Jan 29 17:51 .config/menus/applications-merged 168415 0 -rw------- 1 root root 0 Jan 29 17:51 .config/menus/applications-merged/xdg-desktop-menu-dummy.menu find: `.gvfs': Permission denied 168419 4 -rw------- 1 root root 39 Jan 29 17:51 .kde/share/config/kdeglobals 168418 8 -rwxrwxrwx 1 root root 371 Jan 29 17:51 .local/share/Trash/files/AdobeReader.desktop 131294 4 -rw------- 1 root root 1024 Aug 2 2010 .rnd.root $ sudo find .??* -name .gvfs -prune -o -user root -print | sudo xargs chown wbaker:wbaker $ alacarte <fires up to a gui tool> (abrt failed to be able to file this in bugzilla, this is the stuff that was in /var/log/abrt.log) architecture: i686 component: alacarte executable: /usr/bin/alacarte kernel: 2.6.34.7-56.fc13.i686.PAE package: alacarte-0.13.1-1.fc13 reason: MenuEditor.py:67:save:IOError: [Errno 13] Permission denied: '/home/wbaker/.config/menus/applications.menu' release: Fedora release 13 (Goddard) time: 1296791511 uid: 500 backtrace ----- MenuEditor.py:67:save:IOError: [Errno 13] Permission denied: '/home/wbaker/.config/menus/applications.menu' Traceback (most recent call last): File "/usr/bin/alacarte", line 36, in <module> main() File "/usr/bin/alacarte", line 32, in main app = MainWindow(datadir, version, sys.argv) File "/usr/lib/python2.6/site-packages/Alacarte/MainWindow.py", line 48, in __init__ self.editor = MenuEditor() File "/usr/lib/python2.6/site-packages/Alacarte/MenuEditor.py", line 36, in __init__ self.__loadMenus() File "/usr/lib/python2.6/site-packages/Alacarte/MenuEditor.py", line 63, in __loadMenus self.save(True) File "/usr/lib/python2.6/site-packages/Alacarte/MenuEditor.py", line 67, in save fd = open(getattr(self, menu).path, 'w') IOError: [Errno 13] Permission denied: '/home/wbaker/.config/menus/applications.menu' Local variables in innermost frame: menu: 'applications' self: <Alacarte.MenuEditor.MenuEditor instance at 0xa2893cc> from_loading: True comment ----- I have dotfiles in my home directory that are owned by root. How did that transpire? $ sudo find .??* -name .gvfs -prune -o -user root -ls 180225 4 drwx------ 3 root root 4096 Jan 29 17:51 .config/menus 180226 4 drwx------ 2 root root 4096 Jan 29 17:51 .config/menus/applications-merged 168415 0 -rw------- 1 root root 0 Jan 29 17:51 .config/menus/applications-merged/xdg-desktop-menu-dummy.menu find: `.gvfs': Permission denied 168419 4 -rw------- 1 root root 39 Jan 29 17:51 .kde/share/config/kdeglobals 168418 8 -rwxrwxrwx 1 root root 371 Jan 29 17:51 .local/share/Trash/files/AdobeReader.desktop 131294 4 -rw------- 1 root root 1024 Aug 2 2010 .rnd.root That AdobeReader.desktop is in the trash is explicable because the rpm dropped something on the desktop and I wished it away. The evidence points to the adobe rpm leaving these files root-owned Indeed, that is the case. $ rpm -q --scripts -p /borg/emerson/rpms/acroread/AdbeRdr9.4-1_i486linux_enu.rpm preinstall program: /bin/sh postinstall scriptlet (using /bin/sh): # # Check a given file in given path # Which() { OLD_IFS="$IFS" IFS=":" status=1 for i in $PATH; do if [ -x "$i/$1" ]; then echo "$i/$1" status=0 break fi done IFS="$OLD_IFS" return $status } ReadInstallDir="$RPM_INSTALL_PREFIX" ##SOFT LINK #remove any leftover if ( echo foo > /usr/bin/AcroWriteTest ) 2> /dev/null ; then rm -f /usr/bin/AcroWriteTest rm -f /usr/bin/acroread 2> /dev/null ##install link if [ -n "$ReadInstallDir" ]; then ln -s "$ReadInstallDir/Adobe/Reader9/bin/acroread" /usr/bin/acroread else ln -s /opt/Adobe/Reader9/bin/acroread /usr/bin/acroread fi fi if ( echo foo > /etc/bash_completion.d/AcroWriteTest ) 2> /dev/null ; then rm -f /etc/bash_completion.d/AcroWriteTest rm -f /etc/bash_completion.d/acroread.sh 2> /dev/null ##install link if [ -n "$ReadInstallDir" ]; then ln -s "$ReadInstallDir/Adobe/Reader9/Resource/Shell/acroread_tab" /etc/bash_completion.d/acroread.sh else ln -s /opt/Adobe/Reader9/Resource/Shell/acroread_tab /etc/bash_completion.d/acroread.sh fi fi if ( echo foo > /usr/share/man/man1/AcroWriteTest ) 2> /dev/null ; then rm -f /usr/share/man/man1/AcroWriteTest rm -f /usr/share/man/man1/acroread.1.gz 2> /dev/null ##install link if [ -n "$ReadInstallDir" ]; then ln -s "$ReadInstallDir/Adobe/Reader9/Resource/Shell/acroread.1.gz" /usr/share/man/man1/acroread.1.gz else ln -s /opt/Adobe/Reader9/Resource/Shell/acroread.1.gz /usr/share/man/man1/acroread.1.gz fi fi record_config() { config_file="$ReadInstallDir/Adobe/Reader9/Reader/GlobalPrefs/.config" echo "$@" >> "$config_file" } install_icon() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-icon-resource install "$@" >/dev/null 2>&1 } install_desktop_menu() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-menu uninstall --mode system "$@" >/dev/null 2>&1 PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-menu uninstall --mode user "$@" >/dev/null 2>&1 PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-menu install "$@" >/dev/null 2>&1 } install_desktop_icon() { eval desktop_file="\$$#" PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-icon uninstall "$@" >/dev/null 2>&1 PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-icon install "$@" >/dev/null 2>&1 && chmod 777 "$HOME/Desktop/`basename "$desktop_file"`" 2>/dev/null } install_mime() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-mime install "$@" >/dev/null 2>&1 } InstallIcons() { install_dir="$1/Adobe/Reader9/Resource/Icons" for icon_size in 16 20 22 24 32 36 48 64 96 128 192; do install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/AdobeReader9.png" install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/adobe.pdf.png" install_icon --noupdate --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/adobe.pdf.png" 'application-pdf' install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.fdf.png" install_icon --noupdate --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.fdf.png" 'application-fdf' install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.pdx.png" install_icon --noupdate --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.pdx.png" 'application-pdx' install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xdp+xml.png" install_icon --noupdate --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xdp+xml.png" 'application-xdp+xml' install_icon --noupdate --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xfdf.png" install_icon --noupdate --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xfdf.png" 'application-xfdf' done } MakeLibGnomeSpeechLinks() { install_dir="$1/Adobe/Reader9/Reader" configured_dir="$2" lib_dir="$install_dir/$configured_dir/lib" if TESTSPEECHEXEC="`Which test-speech`" && Which ldd >/dev/null && Which awk >/dev/null; then rm -f "$lib_dir/libORBit-2.so" 2>/dev/null rm -f "$lib_dir/libbonobo-2.so" 2>/dev/null rm -f "$lib_dir/libbonobo-activation.so" 2>/dev/null rm -f "$lib_dir/libgnomespeech.so" 2>/dev/null lib_orbit2="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i libORBit-2.* | cut -d '>' -f2 | cut -d '(' -f 1 |awk '{print $1}' `" lib_bonobo="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i bonobo-2.* | cut -d '>' -f2 | cut -d '(' -f 1 |awk '{print $1}' `" lib_bonoboactivation="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i bonobo-activation.* | cut -d '>' -f2 | cut -d '(' -f 1 |awk '{print $1}' `" lib_gnomespeech="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i libgnomespeech.* | cut -d '>' -f2 | cut -d '(' -f 1 |awk '{print $1}' `" if [ -f "$lib_orbit2" -a -f "$lib_bonobo" -a -f "$lib_bonoboactivation" -a -f "$lib_gnomespeech" ]; then ln -s "$lib_orbit2" "$lib_dir/libORBit-2.so" && record_config remove "$lib_dir/libORBit-2.so" ln -s "$lib_bonobo" "$lib_dir/libbonobo-2.so" && record_config remove "$lib_dir/libbonobo-2.so" ln -s "$lib_bonoboactivation" "$lib_dir/libbonobo-activation.so" && record_config remove "$lib_dir/libbonobo-activation.so" ln -s "$lib_gnomespeech" "$lib_dir/libgnomespeech.so" && record_config remove "$lib_dir/libgnomespeech.so" fi fi } MakeLibLDAPLinks() { install_dir="$1/Adobe/Reader9/Reader" if [ ! -e /usr/lib/libldap.so ] then rm -f "$install_dir/intellinux/lib/libldap.so" 2>/dev/null LIB_LDAP="`ls -tr /usr/lib/libldap.so* 2>/dev/null | tail -n 1`" if [ "$LIB_LDAP" = "" ] then LIB_LDAP="`ls -tr /usr/lib/libldap* 2>/dev/null | grep -v libldap_r | grep -v libldapcpp | grep '\.so' | tail -n 1`" fi if [ "$LIB_LDAP" != "" ] then ln -s "$LIB_LDAP" "$install_dir/intellinux/lib/libldap.so" && record_config remove "$install_dir/intellinux/lib/libldap.so" fi fi if [ ! -e /usr/lib/liblber.so ] then rm -f "$install_dir/intellinux/lib/liblber.so" 2>/dev/null LIB_LBER="`ls -tr /usr/lib/liblber.so* 2>/dev/null | tail -n 1`" if [ "$LIB_LBER" = "" ] then LIB_LBER="`ls -tr /usr/lib/liblber* 2>/dev/null | grep -v liblber_r | grep '\.so' | tail -n 1`" fi if [ "$LIB_LBER" != "" ] then ln -s "$LIB_LBER" "$install_dir/intellinux/lib/liblber.so" && record_config remove "$install_dir/intellinux/lib/liblber.so" fi fi } if Which kde-config >/dev/null 2>&1; then KDE_BASE_DIR="`kde-config --prefix`" elif [ -x /opt/kde3/bin/kde-config ]; then KDE_BASE_DIR="/opt/kde3" elif [ -x /opt/kde/bin/kde-config ]; then KDE_BASE_DIR="/opt/kde" else KDE_BASE_DIR="/usr" fi if GNOME_BASE_DIR="`Which gnome-open 2>/dev/null`"; then GNOME_BASE_DIR=`dirname "$GNOME_BASE_DIR"` GNOME_BASE_DIR=`dirname "$GNOME_BASE_DIR"` elif [ -x /opt/gnome/bin/gnome-open ]; then GNOME_BASE_DIR="/opt/gnome" else GNOME_BASE_DIR="/usr" fi MakeLibLDAPLinks "$ReadInstallDir" 2>/dev/null MakeLibGnomeSpeechLinks "$ReadInstallDir" intellinux 2>/dev/null InstallIcons "$ReadInstallDir" install_mime --novendor "$ReadInstallDir/Adobe/Reader9/Resource/Support/AdobeReader.xml" for i in application/pdf application/vnd.adobe.xfdf application/vnd.fdf application/vnd.adobe.xdp+xml application/vnd.adobe.pdx application/fdf application/xdp application/xfdf application/pdx do PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-mime default "AdobeReader.desktop" "$i" >/dev/null 2>&1 done install_desktop_menu --novendor "$ReadInstallDir/Adobe/Reader9/Resource/Support/AdobeReader.desktop" install_desktop_icon --novendor "$ReadInstallDir/Adobe/Reader9/Resource/Support/AdobeReader.desktop" PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-icon-resource forceupdate >/dev/null 2>&1 "$ReadInstallDir/Adobe/Reader9/Browser/install_browser_plugin" -silent -global -user "$ReadInstallDir" >/dev/null 2>&1 exit 0 preuninstall scriptlet (using /bin/sh): if [ "$1" != "0" ] ; then exit 0; fi remove() { rm -f "$@" } uninstall_icon() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-icon-resource uninstall "$@" >/dev/null 2>&1 } uninstall_desktop_menu() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-menu uninstall "$@" >/dev/null 2>&1 } uninstall_desktop_icon() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-desktop-icon uninstall "$@" >/dev/null 2>&1 } uninstall_mime() { PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-mime uninstall "$@" >/dev/null 2>&1 } unset_mime() { for i in application/pdf application/vnd.adobe.xfdf application/vnd.fdf application/vnd.adobe.xdp+xml application/vnd.adobe.pdx application/fdf application/xdp application/xfdf application/pdx; do PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-mime unset "$@" "${i}" done } UnInstallIcons() { install_dir="$1/Adobe/Reader9/Resource/Icons" for icon_size in 16 22 24 32 48 64 128; do uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/AdobeReader9.png" uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/adobe.pdf.png" uninstall_icon --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/adobe.pdf.png" 'application-pdf' uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.fdf.png" uninstall_icon --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.fdf.png" 'application-fdf' uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.pdx.png" uninstall_icon --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.pdx.png" 'application-pdx' uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xdp+xml.png" uninstall_icon --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xdp+xml.png" 'application-xdp+xml' uninstall_icon --novendor --context apps --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xfdf.png" uninstall_icon --novendor --context mimetypes --size $icon_size "$install_dir/${icon_size}x${icon_size}/vnd.adobe.xfdf.png" 'application-xfdf' done } TrimSpaces() { OLD_IFS_Trim_Spaces="$IFS" IFS=' ' echo $@ IFS="$OLD_IFS_Trim_Spaces" } ProcessConfigFile() { OLD_IFS_RestoreFiles="$IFS" config_file="$1" cat "$config_file" | grep -v "^[ ]*#" | \ while : do IFS=' ' read op args if [ $? -ne 0 -o -z "$op" ]; then break fi op="`TrimSpaces $op`" case "$op" in remove | uninstall_icon | uninstall_desktop_menu | uninstall_mime) "$op" $args 2>/dev/null ;; esac done IFS="$OLD_IFS_RestoreFiles" } ReadInstallDir="$RPM_INSTALL_PREFIX" config_file="$ReadInstallDir/Adobe/Reader9/Reader/GlobalPrefs/.config" UnInstallIcons "$ReadInstallDir" uninstall_desktop_menu "$ReadInstallDir/Adobe/Reader9/Resource/Support/AdobeReader.desktop" uninstall_desktop_icon "$ReadInstallDir/Adobe/Reader9/Resource/Support/AdobeReader.desktop" unset_mime "AdobeReader.desktop" if [ -f "$config_file" ]; then ProcessConfigFile "$config_file" rm -f "$config_file" fi PATH="$ReadInstallDir/Adobe/Reader9/Reader/intellinux/bin:$PATH" xdg-icon-resource forceupdate >/dev/null 2>&1 postuninstall scriptlet (using /bin/sh): if [ "$1" != "0" ] ; then exit 0; fi MkTempInternal() { if [ "${mktemp_count+set}" != "set" ]; then mktemp_count="0" fi mktemp_file="/tmp/acrobat.$$.${mktemp_count}" while /usr/bin/test -e "$mktemp_file" do mktemp_count="`expr $mktemp_count + 1`" mktemp_file="/tmp/acrobat.$$.${mktemp_count}" done touch "$mktemp_file" && chmod 600 "$mktemp_file" && echo "$mktemp_file" } MkTemp() { template="tmp.XXXXXXXXXX"; MKTEMP="`which mktemp 2>/dev/null`"; if [ "$MKTEMP" != "" ]; then : else MKTEMP="MkTempInternal"; fi $MKTEMP /tmp/acrobat.$template } ## kill synchronizerapp tmpfile="`MkTemp`" ps -ef 2>/dev/null > "$tmpfile" synchronizerapp_pid="`awk '{ print $8, $2 }' < "$tmpfile" | grep -w "^$ReadInstallDir/Adobe/Reader9/Reader/intellinux/SynchronizerApp" | awk '{ print $NF; exit }'`" if [ -z "$synchronizerapp_pid" ]; then ps auwwwxg 2>/dev/null > "$tmpfile" synchronizerapp_pid="`awk '{ print $11, $2 }' < "$tmpfile" | grep -w "^$ReadInstallDir/Adobe/Reader9/Reader/intellinux/SynchronizerApp" | awk '{ print $NF; exit }'`" if [ -z "$synchronizerapp_pid" ]; then rm -f "$tmpfile" exit 0 fi fi rm -f "$tmpfile" if [ -n "$synchronizerapp_pid" ]; then kill -KILL "$synchronizerapp_pid" fi exit 0 I logged in on the console on 2010-12-19 ... so on 2011-01-29 I did something that created these root-owned files. /var/log/secure-20110130 says ... Jan 29 17:50:10 suffragette sudo: wbaker : TTY=pts/5 ; PWD=/borg/emerson/rpms/acroread ; USER=root ; COMMAND=/bin/rpm -i AdbeRdr9.4-1_i486linux_enu.rpm Jan 29 17:51:29 suffragette sudo[23383]: Authenticated: `wbaker' as `wbaker' using /root/.ssh/authorized_keys2 Jan 29 17:51:29 suffragette sudo: wbaker : TTY=pts/3 ; PWD=/home/wbaker/Desktop/Red Hat Bugzilla ; USER=root ; COMMAND=/usr/bin/debuginfo-install evince-2.30.3-1.fc13.i686 Jan 29 20:56:57 suffragette userhelper[467]: pam_timestamp(galternatives:auth): timestamp file `/var/run/sudo/wbaker/unknown:root' has unacceptable age (2584923 seconds), disallowing access to galternatives for user wbaker Jan 29 20:57:03 suffragette userhelper[467]: pam_timestamp(galternatives:session): updated timestamp file `/var/run/sudo/wbaker/unknown:root' Jan 29 20:57:03 suffragette userhelper[477]: running '/usr/sbin/galternatives ' with root privileges on behalf of 'wbaker' Jan 30 04:36:05 suffragette runuser: pam_unix(runuser:session): session opened for user beaglidx by (uid=0) reproduce ----- 1. sudo yum install alacarte -y 2. GNOME desktop ... System->Preferences->Main Menu 3. see the crash
This message is a reminder that Fedora 13 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 13. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '13'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 13's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 13 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Fedora 13 changed to end-of-life (EOL) status on 2011-06-25. Fedora 13 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.