Version: 1.1.5 (using KDE KDE 3.2.1) Installed from: SuSE RPMs Compiler: gcc (GCC) 3.3.3 (SuSE Linux) OS: Linux Right after start, when I try to right-click into alarms list, kalarm crashes. I compiled it from source. It happens whether kalarmd is or isn't running. When I try to do anything else, the popup like "Can't enable alarms:Failed to register with kalarmd daemon" appears. =============Console output: 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::saveCal("/home/juro/.kde/share/apps/kalarm/calendar.ics", 0) libkcal: ICalFormat::save(): /home/juro/.kde/share/apps/kalarm/calendar.ics kalarm: Daemon::reload() 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::saveCal("/home/juro/.kde/share/apps/kalarm/displaying.ics", 2) libkcal: ICalFormat::save(): /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::saveCal("/home/juro/.kde/share/apps/kalarm/expired.ics", 1) libkcal: ICalFormat::save(): /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(50697s) 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: WARNING: KXMLGUIClient::setXMLFile: cannot find .rc file kalarmui.rc QObject::connect: Cannot connect (null)::aboutToShow() to KAlarmMainWindow::updateActionsMenu() kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: Daemon::updateRegisteredStatus() -> 1 kalarm: AlarmEnableAction::setCheckedActual(false) kalarm: TrayWindow::TrayWindow() kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x8333768 ): 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 = 0x8333768 ): KAccel object already contains an action name "file_quit" kalarm: KAlarmMainWindow::slotUpdateTimeTo() juro@backup:~/soft> 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: DaemonGuiHandler::alarmDaemonUpdate(6) kalarm: DaemonGuiHandler::alarmDaemonUpdate(ENABLE_CALENDAR) kalarm: AlarmEnableAction::setCheckedActual(true) kalarm: AlarmEnableAction::setCheckedActual(true) kalarm: TrayWindow::setEnabledStatus(1) kalarm: KAlarmMainWindow::slotMouseClicked(right) KCrash: Application 'kalarm' crashing... =========== Trace: Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 1101021952 (LWP 6262)] 0xffffe410 in ?? () #0 0xffffe410 in ?? () #1 0xbfffdd5c in ?? () #2 0x00000000 in ?? () #3 0x00000000 in ?? () #4 0x4178fe63 in __waitpid_nocancel () from /lib/tls/libpthread.so.0 #5 0x40870862 in KCrash::defaultCrashHandler () from /opt/kde3/lib/libkdecore.so.4 #6 <signal handler called> #7 0x40d7aa6a in QPopupMenu::popup () from /usr/lib/qt3/lib/libqt-mt.so.3 #8 0x080ad42c in KAlarmMainWindow::slotMouseClicked () #9 0x080b31ce in KAlarmMainWindow::qt_invoke () #10 0x40c6edaa in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #11 0x40fc23d1 in QListView::mouseButtonClicked () from /usr/lib/qt3/lib/libqt-mt.so.3 #12 0x40d56765 in QListView::contentsMouseReleaseEventEx () from /usr/lib/qt3/lib/libqt-mt.so.3 #13 0x40d56fa4 in QListView::contentsMouseReleaseEvent () from /usr/lib/qt3/lib/libqt-mt.so.3 #14 0x4067cdf3 in KListView::contentsMouseReleaseEvent () from /opt/kde3/lib/libkdeui.so.4 #15 0x40d86c72 in QScrollView::viewportMouseReleaseEvent () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0x40d88057 in QScrollView::eventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3 #17 0x40d58098 in QListView::eventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3 #18 0x40c6f6fe in QObject::activate_filters () from /usr/lib/qt3/lib/libqt-mt.so.3 #19 0x40c6f7e0 in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3 #20 0x40ca42df in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3 #21 0x40c0dddf in QApplication::internalNotify () from /usr/lib/qt3/lib/libqt-mt.so.3 #22 0x40c0ffb8 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3 #23 0x408b8ca4 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4 #24 0x40ba9633 in QETWidget::translateMouseEvent () from /usr/lib/qt3/lib/libqt-mt.so.3 #25 0x40ba8225 in QApplication::x11ProcessEvent () from /usr/lib/qt3/lib/libqt-mt.so.3 #26 0x40bbc875 in QEventLoop::processEvents () from /usr/lib/qt3/lib/libqt-mt.so.3 #27 0x40c25811 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3 #28 0x40c25656 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3 #29 0x40c0f6cf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3 #30 0x0807870d in main ()
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?
From there: http://www.astrojar.org.uk/linux/download/kalarm-1.1.5.kde3.tar.bz2
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.