Bug 193850 - Juk crashes when open several mp3 from Dolphin using "open with..." menu (PlaylistCollection::time, StatusLabel::updateData)
Summary: Juk crashes when open several mp3 from Dolphin using "open with..." menu (Pla...
Status: RESOLVED WORKSFORME
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: 3.2.3
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
: 194628 197451 207859 208724 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-05-24 10:21 UTC by jose maturana
Modified: 2018-11-28 04:48 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jose maturana 2009-05-24 10:21:27 UTC
Version:           3.2.3 (using KDE 4.2.3)
Compiler:          GCC 4.3.2 
OS:                Linux
Installed from:    Fedora RPMs

Application: JuK (juk), signal SIGSEGV
0x0000003204ea7f81 in nanosleep () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7ff7af518810 (LWP 11573))]

Thread 7 (Thread 0x7ff7a2f0c950 (LWP 11595)):
#0  0x0000003205a0b58d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff7a8301a91 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7ff7a1e89950 (LWP 11596)):
#0  0x0000003204edc886 in poll () from /lib64/libc.so.6
#1  0x000000303863ae28 in ?? () from /lib64/libglib-2.0.so.0
#2  0x000000303863b14b in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x000000303c36cd3e in QEventDispatcherGlib::processEvents () from /usr/lib64/libQtCore.so.4
#4  0x000000303c341eb2 in QEventLoop::processEvents () from /usr/lib64/libQtCore.so.4
#5  0x000000303c34227d in QEventLoop::exec () from /usr/lib64/libQtCore.so.4
#6  0x000000303c257738 in QThread::exec () from /usr/lib64/libQtCore.so.4
#7  0x00007ff7a855bd9c in Phonon::MediaSource::type () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x000000303c25a6d2 in ?? () from /usr/lib64/libQtCore.so.4
#9  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#10 0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7ff79d078950 (LWP 11606)):
#0  0x0000003205a08d80 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007ff7a20e9a86 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007ff7a20b9040 in ?? () from /usr/lib64/libpulse.so.0
#3  0x00007ff7a20a9c62 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#4  0x00007ff7a20aa015 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#5  0x00007ff7a20aa08a in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#6  0x00007ff7a20b90a2 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007ff7a20ea22d in ?? () from /usr/lib64/libpulse.so.0
#8  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#9  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7ff7a0e74950 (LWP 11607)):
#0  0x0000003205a08d80 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007ff7a20e9a86 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007ff7a20b9712 in pa_threaded_mainloop_lock () from /usr/lib64/libpulse.so.0
#3  0x00007ff7a0e77d00 in snd_config_iterator_end () from /usr/lib64/alsa-lib/libasound_module_ctl_pulse.so
#4  0x0000003c5463b568 in snd_hctl_handle_events () from /lib64/libasound.so.2
#5  0x0000003c54645145 in snd_mixer_handle_events () from /lib64/libasound.so.2
#6  0x00007ff7a12845f8 in snd_pcm_sw_params_set_start_threshold () from /usr/lib64/xine/plugins/1.26/xineplug_ao_out_alsa.so
#7  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#8  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7ff7a0473950 (LWP 11608)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff7a8312eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7ff79f871950 (LWP 11609)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff7a8312eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ff7af518810 (LWP 11573)):
[KCrash Handler]
#5  0x0000000000493a70 in PlaylistCollection::time (this=<value optimized out>) at /usr/src/debug/kdemultimedia-4.2.3/juk/playlistcollection.cpp:124
#6  0x00000000004acb5f in StatusLabel::updateData (this=0x1656870) at /usr/src/debug/kdemultimedia-4.2.3/juk/statuslabel.cpp:128
#7  0x00000000004ad61f in StatusLabel (this=0x1656870, playlist=<value optimized out>, parent=<value optimized out>) at /usr/src/debug/kdemultimedia-4.2.3/juk/statuslabel.cpp:97
#8  0x0000000000467eb3 in JuK::setupLayout (this=0x15d5a00) at /usr/src/debug/kdemultimedia-4.2.3/juk/juk.cpp:131
#9  0x000000000046bf3f in JuK (this=0x15d5a00, parent=0x0) at /usr/src/debug/kdemultimedia-4.2.3/juk/juk.cpp:87
#10 0x00000000004710a7 in JuKApplication::newInstance (this=0x7fffb7568510) at /usr/src/debug/kdemultimedia-4.2.3/juk/main.cpp:65
#11 0x00000030eee0faf6 in KUniqueApplicationAdaptor::newInstance (this=0x126d020, asn_id=<value optimized out>, args=@0x13f0f90) at /usr/src/debug/kdelibs-4.2.3/kdeui/kernel/kuniqueapplication_p.h:77
#12 0x00000030eee0dec2 in KUniqueApplicationAdaptor::qt_metacall (this=0x126d020, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffb75677b0)
    at /usr/src/debug/kdelibs-4.2.3/x86_64-redhat-linux-gnu/kdeui/kuniqueapplication_p.moc:75
#13 0x000000303b623503 in ?? () from /usr/lib64/libQtDBus.so.4
#14 0x000000303b624828 in ?? () from /usr/lib64/libQtDBus.so.4
#15 0x000000303b624e51 in ?? () from /usr/lib64/libQtDBus.so.4
#16 0x000000303b625168 in ?? () from /usr/lib64/libQtDBus.so.4
#17 0x000000303c3536f8 in QObject::event () from /usr/lib64/libQtCore.so.4
#18 0x00000030ecf91b4a in QApplication::event () from /usr/lib64/libQtGui.so.4
#19 0x00000030ecf8e73d in QApplicationPrivate::notify_helper () from /usr/lib64/libQtGui.so.4
#20 0x00000030ecf9692a in QApplication::notify () from /usr/lib64/libQtGui.so.4
#21 0x00000030eee0717b in KApplication::notify (this=0x7fffb7568510, receiver=0x7fffb7568510, event=0x14243d0) at /usr/src/debug/kdelibs-4.2.3/kdeui/kernel/kapplication.cpp:307
#22 0x000000303c34360c in QCoreApplication::notifyInternal () from /usr/lib64/libQtCore.so.4
#23 0x000000303c34427a in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib64/libQtCore.so.4
#24 0x000000303c36d093 in ?? () from /usr/lib64/libQtCore.so.4
#25 0x00000030386377bb in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#26 0x000000303863af8d in ?? () from /lib64/libglib-2.0.so.0
#27 0x000000303863b14b in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#28 0x000000303c36cd1f in QEventDispatcherGlib::processEvents () from /usr/lib64/libQtCore.so.4
#29 0x00000030ed02533f in ?? () from /usr/lib64/libQtGui.so.4
#30 0x000000303c341eb2 in QEventLoop::processEvents () from /usr/lib64/libQtCore.so.4
#31 0x000000303c34227d in QEventLoop::exec () from /usr/lib64/libQtCore.so.4
#32 0x000000303c344544 in QCoreApplication::exec () from /usr/lib64/libQtCore.so.4
#33 0x000000000047064b in main (argc=6, argv=0x7fffb7568b68) at /usr/src/debug/kdemultimedia-4.2.3/juk/main.cpp:123
Comment 1 jose maturana 2009-05-24 10:24:24 UTC
when select ten o more mp3 from dolphin and use "open with..." menu, juk start loading but not open and crashes
Comment 2 Dario Andres 2009-05-30 15:52:49 UTC
*** Bug 194628 has been marked as a duplicate of this bug. ***
Comment 3 Dario Andres 2009-05-30 15:57:01 UTC
Bug 194628 has another testcase steps.
Comment 4 Dario Andres 2009-06-22 15:13:04 UTC
*** Bug 197451 has been marked as a duplicate of this bug. ***
Comment 5 jose maturana 2009-08-30 08:51:49 UTC
With kde 4.3 and fedora 10 x64 
Application: JuK (juk), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f8833af3810 (LWP 12303))]

Thread 12 (Thread 0x7f88274c3950 (LWP 12316)):
#0  0x0000003205a0b58d in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e13a91 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 11 (Thread 0x7f8826645950 (LWP 12317)):
#0  0x0000003204edc886 in poll () from /lib64/libc.so.6
#1  0x000000303863ae28 in ?? () from /lib64/libglib-2.0.so.0
#2  0x000000303863b14b in g_main_context_iteration () from
/lib64/libglib-2.0.so.0
#3  0x000000391716d5ae in QEventDispatcherGlib::processEvents () from
/usr/lib64/libQtCore.so.4
#4  0x0000003917142912 in QEventLoop::processEvents () from
/usr/lib64/libQtCore.so.4
#5  0x0000003917142ce4 in QEventLoop::exec () from /usr/lib64/libQtCore.so.4
#6  0x0000003917057648 in QThread::exec () from /usr/lib64/libQtCore.so.4
#7  0x00007f8829ca4d9c in Phonon::MediaSource::type () from
/usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x000000391705a5d5 in ?? () from /usr/lib64/libQtCore.so.4
#9  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#10 0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7f8821834950 (LWP 12326)):
#0  0x0000003204edc886 in poll () from /lib64/libc.so.6
#1  0x00007f8826670034 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007f8826660c62 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#3  0x00007f8826661015 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#4  0x00007f882666108a in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#5  0x00007f88266700a2 in ?? () from /usr/lib64/libpulse.so.0
#6  0x00007f88266a122d in ?? () from /usr/lib64/libpulse.so.0
#7  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#8  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7f8825630950 (LWP 12327)):
#0  0x0000003205a0a43c in __pthread_mutex_unlock_usercnt () from
/lib64/libpthread.so.0
#1  0x00007f88266a0c57 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007f8826670844 in pa_threaded_mainloop_unlock () from
/usr/lib64/libpulse.so.0
#3  0x00007f8825633d1e in snd_config_iterator_end () from
/usr/lib64/alsa-lib/libasound_module_ctl_pulse.so
#4  0x0000003c5463b568 in snd_hctl_handle_events () from /lib64/libasound.so.2
#5  0x0000003c54645145 in snd_mixer_handle_events () from /lib64/libasound.so.2
#6  0x00007f8825a405f8 in snd_pcm_sw_params_set_start_threshold () from
/usr/lib64/xine/plugins/1.26/xineplug_ao_out_alsa.so
#7  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#8  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7f8824c2f950 (LWP 12328)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e24eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f882402d950 (LWP 12329)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e24eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f882362c950 (LWP 12330)):
#0  0x0000003205a0b58d in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e13a91 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f8822c2b950 (LWP 12339)):
#0  0x0000003205a0a40b in __pthread_mutex_unlock_usercnt () from
/lib64/libpthread.so.0
#1  0x00007f88266a0c57 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007f8826670024 in ?? () from /usr/lib64/libpulse.so.0
#3  0x00007f8826660c62 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#4  0x00007f8826661015 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#5  0x00007f882666108a in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#6  0x00007f88266700a2 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007f88266a122d in ?? () from /usr/lib64/libpulse.so.0
#8  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#9  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f881ce32950 (LWP 12340)):
#0  0x0000003205a0a43c in __pthread_mutex_unlock_usercnt () from
/lib64/libpthread.so.0
#1  0x00007f88266a0c57 in ?? () from /usr/lib64/libpulse.so.0
#2  0x00007f8826670844 in pa_threaded_mainloop_unlock () from
/usr/lib64/libpulse.so.0
#3  0x00007f8825633d1e in snd_config_iterator_end () from
/usr/lib64/alsa-lib/libasound_module_ctl_pulse.so
#4  0x0000003c5463b568 in snd_hctl_handle_events () from /lib64/libasound.so.2
#5  0x0000003c54645145 in snd_mixer_handle_events () from /lib64/libasound.so.2
#6  0x00007f8825a405f8 in snd_pcm_sw_params_set_start_threshold () from
/usr/lib64/xine/plugins/1.26/xineplug_ao_out_alsa.so
#7  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#8  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f8813ffe950 (LWP 12341)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e24eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f88135fd950 (LWP 12342)):
#0  0x0000003205a0b309 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000003c61e24eb3 in ?? () from /usr/lib64/libxine.so.1
#2  0x0000003205a073da in start_thread () from /lib64/libpthread.so.0
#3  0x0000003204ee62bd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f8833af3810 (LWP 12303)):
[KCrash Handler]
#5  0x0000000000497d10 in PlaylistCollection::time (this=<value optimized out>)
at /usr/src/debug/kdemultimedia-4.3.0/juk/playlistcollection.cpp:124
#6  0x00000000004b119f in StatusLabel::updateData (this=0x28a1020) at
/usr/src/debug/kdemultimedia-4.3.0/juk/statuslabel.cpp:128
#7  0x00000000004b1c5f in StatusLabel (this=0x28a1020, playlist=<value
optimized out>, parent=<value optimized out>) at
/usr/src/debug/kdemultimedia-4.3.0/juk/statuslabel.cpp:97
#8  0x000000000046b113 in JuK::setupLayout (this=0x2824660) at
/usr/src/debug/kdemultimedia-4.3.0/juk/juk.cpp:147
#9  0x000000000046f1af in JuK (this=0x2824660, parent=0x0) at
/usr/src/debug/kdemultimedia-4.3.0/juk/juk.cpp:88
#10 0x0000000000474547 in JuKApplication::newInstance (this=0x7fff12f028d0) at
/usr/src/debug/kdemultimedia-4.3.0/juk/main.cpp:65
#11 0x00000033cf619986 in KUniqueApplicationAdaptor::newInstance
(this=0x1f26130, asn_id=<value optimized out>, args=@0x1e59c10)
    at /usr/src/debug/kdelibs-4.3.0/kdeui/kernel/kuniqueapplication.cpp:459
#12 0x00000033cf619a12 in KUniqueApplicationAdaptor::qt_metacall
(this=0x1f26130, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff12f01b70)
    at
/usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kdeui/kuniqueapplication_p.moc:75
#13 0x0000003917a23723 in ?? () from /usr/lib64/libQtDBus.so.4
#14 0x0000003917a24a48 in ?? () from /usr/lib64/libQtDBus.so.4
#15 0x0000003917a25071 in ?? () from /usr/lib64/libQtDBus.so.4
#16 0x0000003917a25388 in ?? () from /usr/lib64/libQtDBus.so.4
#17 0x00000039171540d8 in QObject::event () from /usr/lib64/libQtCore.so.4
#18 0x000000391839580a in QApplication::event () from /usr/lib64/libQtGui.so.4
#19 0x000000391839008d in QApplicationPrivate::notify_helper () from
/usr/lib64/libQtGui.so.4
#20 0x00000039183982ca in QApplication::notify () from /usr/lib64/libQtGui.so.4
#21 0x00000033cf612bbb in KApplication::notify (this=0x7fff12f028d0,
receiver=0x7fff12f028d0, event=0x1f292f0) at
/usr/src/debug/kdelibs-4.3.0/kdeui/kernel/kapplication.cpp:302
#22 0x000000391714407c in QCoreApplication::notifyInternal () from
/usr/lib64/libQtCore.so.4
#23 0x0000003917144cea in QCoreApplicationPrivate::sendPostedEvents () from
/usr/lib64/libQtCore.so.4
#24 0x000000391716d903 in ?? () from /usr/lib64/libQtCore.so.4
#25 0x00000030386377bb in g_main_context_dispatch () from
/lib64/libglib-2.0.so.0
#26 0x000000303863af8d in ?? () from /lib64/libglib-2.0.so.0
#27 0x000000303863b14b in g_main_context_iteration () from
/lib64/libglib-2.0.so.0
#28 0x000000391716d58f in QEventDispatcherGlib::processEvents () from
/usr/lib64/libQtCore.so.4
#29 0x00000039184274cf in ?? () from /usr/lib64/libQtGui.so.4
#30 0x0000003917142912 in QEventLoop::processEvents () from
/usr/lib64/libQtCore.so.4
#31 0x0000003917142ce4 in QEventLoop::exec () from /usr/lib64/libQtCore.so.4
#32 0x0000003917144fb4 in QCoreApplication::exec () from
/usr/lib64/libQtCore.so.4
#33 0x0000000000473aeb in main (argc=6, argv=0x7fff12f02f28) at
/usr/src/debug/kdemultimedia-4.3.0/juk/main.cpp:123
Comment 6 Dario Andres 2009-09-19 18:16:41 UTC
*** Bug 207859 has been marked as a duplicate of this bug. ***
Comment 7 Dario Andres 2009-09-28 00:28:19 UTC
*** Bug 208724 has been marked as a duplicate of this bug. ***
Comment 8 Andrew Crouthamel 2018-10-29 22:43:20 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 9 Bug Janitor Service 2018-11-13 14:19:40 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 10 Bug Janitor Service 2018-11-28 04:48:08 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!