Summary: | crash after click right mouse button failed to register | ||
---|---|---|---|
Product: | [Applications] kalarm | Reporter: | Juraj Variny <rini17> |
Component: | general | Assignee: | David Jarvie <djarvie> |
Status: | CLOSED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | make install output |
Description
Juraj Variny
2004-09-16 10:12:50 UTC
Thanks for the useful output which you submitted - this pointed me straight to the problem. The reason for the crash is that the file kalarmui.rc, which defines KAlarm's menus, is missing. This should have been installed by the RPM into /opt/kde3/share/apps/kalarm (or similar directory). There must either be a fault in the SuSE RPM, or for some reason your installation got messed up. I have put in a fix in CVS which prevents KAlarm from crashing in these circumstances, and in KDE version 3.4 will output an error message. This fix should appear in KDE 3.3.1 and KDE 3.4. Rest of KDE _is_ from SuSE 9.1 RPMS. But I didn't found it there so I compiled it myself. Maybe really something is weird with these RPMs, because while kalarmd was installed, kalarm was not and search for it with YaST revealed no results. Are you saying that you installed kdepim from SuSE RPMs, but that you compiled KAlarm from sources? Yes, exactly. Where did you get the source for KAlarm? Was it the standalone version, or was it from a kdepim package? Did you install it into your normal KDE directory (which I think is probably /opt/kde3 on SuSE), or did you install it somewhere else? If you could run the install again and capture the terminal output, that would help work out what happened to kalarmui.rc. Created attachment 7642 [details]
make install output
Attached is output of make install.
I ran configure without any options. I tried building and installing it into /usr/local/kde, and then removing kalarmui.rc from my normal KDE directory to ensure that it would have to use the copy in /usr/local/kde, but it ran without problem. On your system, is the file /usr/local/kde/share/apps/kalarm/kalarmui.rc still there, and is it identical to kalarm-1.1.5/kalarm/kalarmui.rc in the source package? The /usr/local/kde/share/apps/kalarm/kalarmui.rc is there and identical with source package. The directory /opt/kde3/share/apps/kalarm does not exist (and thus no previous kalarmui.rc). It appears that you need to modify the environment variable KDEDIRS. It is probably something like /etc/opt/kde3:/opt/kde3 currently. Change it to add the additional path /usr/local/kde (which you installed KAlarm into). Do export KDEDIRS=$KDEDIRS:/usr/local/kde in the shell before running KAlarm. Or change your startup files to set it globally. I will add something to the configure script to warn that this is necessary, to try to avoid others being caught out by this. Please let me know whether this works for you. Yes, it worked. Variable KDEDIRS was not set before at all. Now if I can get it to successfully register with kalarmd ... It shows a popup that it can't register with alarm daemon, albeit kalarmd is running. The console output is now: main(): initialising kalarm: DcopHandler::DcopHandler() kalarm: KAlarmApp::newInstance() kalarm: KAlarmApp::newInstance(): interactive kalarm: KAlarmApp::initCheck(): opening active calendar kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/calendar.ics) kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/calendar.ics kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/calendar.ics libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/calendar.ics kalarm: AlarmCalendar::load(): KAlarm version 10105 kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/displaying.ics) kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/displaying.ics kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/displaying.ics libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/displaying.ics kalarm: AlarmCalendar::load(): KAlarm version 10105 kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/expired.ics) kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/expired.ics kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/expired.ics libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/expired.ics kalarm: AlarmCalendar::load(): KAlarm version 10105 kalarm: StartOfDayTimer::start(25313s) kalarm: DaemonGuiHandler::DaemonGuiHandler() kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: Daemon::start() kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: Daemon::start() kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: KAlarmMainWindow::KAlarmMainWindow() kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: TrayWindow::TrayWindow() kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x833f4d8 ): KAccel object already contains an action name "file_quit" kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: TrayWindow::setEnabledStatus(0) kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x833f4d8 ): KAccel object already contains an action name "file_quit" kalarm: KAlarmMainWindow::slotUpdateTimeTo() juro@backup:~> kalarm: KAlarmApp::processQueue() kalarm: AlarmCalendar::purgeIfQueued(7) kalarm: Daemon::start() kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::registerWith(): NO_START kalarm: DaemonGuiHandler::registerWith() kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: KAlarmApp::checkSystemTray(): no change = true kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::start() kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::registrationResult(false) kalarm: ERROR: Daemon::registrationResult(false): registerApp dcop call failed kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: KAlarmMainWindow::slotMouseClicked(right) kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: KAlarmPrefDlg::restore() kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: KAlarmPrefDlg::slotCancel() kalarm: KAlarmPrefDlg::restore() kalarm: KAlarmApp::checkSystemTray(): no change = true kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 kalarm: Daemon::updateRegisteredStatus() -> 2 When kalarm registers with kalarmd, kalarmd checks whether it can find the kalarm executable. The problem you are having indicates that it can't find it. Actually, this isn't always a critical fault, so I will be modifying kalarmd to simply output a warning message where appropriate. But the fix is probably to make sure that kalarm's path is included in KDEDIRS when kalarmd is invoked. I'm not sure of the best place to do this - perhaps in startkde. After some unsuccessful attempts to set KDEDIRS variable globally, I tried to install kalarm into PREFIX=/opt/kde3, mercilessly overwriting whatever was there before. Now it works fine... Thanks very much, anyway. |