Hello community,
here is the log from the commit of package k3b for openSUSE:Factory
checked in at Tue Dec 14 11:03:16 CET 2010.
--------
--- KDE/k3b/k3b.changes 2010-10-22 16:28:49.000000000 +0200
+++ /mounts/work_src_done/STABLE/k3b/k3b.changes 2010-11-28 10:17:51.000000000 +0100
@@ -1,0 +2,5 @@
+Sun Nov 28 10:17:07 CET 2010 - jslaby@suse.de
+
+- Device detection crash fix
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
device-detection-fix.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ k3b.spec ++++++
--- /var/tmp/diff_new_pack.BuUHzV/_old 2010-12-14 11:01:53.000000000 +0100
+++ /var/tmp/diff_new_pack.BuUHzV/_new 2010-12-14 11:01:53.000000000 +0100
@@ -43,10 +43,11 @@
Requires: /usr/bin/cdrecord /usr/bin/mkisofs /usr/bin/cdrdao dvd+rw-tools
Requires: hal
Version: 2.0.1
-Release: 3
+Release: 4
%define rversion %version
# svn.kde.org/home/kde/trunk/extragear/multimedia/k3b
Source0: k3b-%{version}.tar.bz2
+Patch0: device-detection-fix.patch
Patch1: initial-preference.diff
# fixed in 2.0.2 / 2.1: https://bugs.kde.org/show_bug.cgi?id=238819
Patch2: k3b-2.0.1-qt47_settings_crash.patch
@@ -88,6 +89,7 @@
%lang_package
%prep
%setup -q -n k3b-%{version}
+%patch0 -p1
%patch1
%patch2
++++++ device-detection-fix.patch ++++++
Don't assume optical Solid device has also Solid::Block interface. For some reason it can lack it (hardware issue or Solid bug)
BUG: 249371
---
--- k3b/libk3bdevice/k3bdevicemanager.cpp 2010/09/09 18:58:01 1173574
+++ k3b/libk3bdevice/k3bdevicemanager.cpp 2010/09/09 19:01:06 1173575
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2003-2009 Sebastian Trueg
+ * Copyright (C) 2010 Michal Malek
*
* This file is part of the K3b project.
* Copyright (C) 1998-2009 Sebastian Trueg
@@ -290,7 +291,7 @@
emit changed( this );
emit changed();
-
+
qDeleteAll( devicesToDelete );
}
@@ -354,12 +355,13 @@
K3b::Device::Device* K3b::Device::DeviceManager::addDevice( const Solid::Device& solidDevice )
{
- if ( findDevice( solidDevice.asSolid::Block()->device() ) ) {
- kDebug() << "(K3b::Device::DeviceManager) dev " << solidDevice.asSolid::Block()->device() << " already found";
- return 0;
+ if( const Solid::Block* blockDevice = solidDevice.asSolid::Block() ) {
+ if( !findDevice( blockDevice->device() ) )
+ return addDevice( new K3b::Device::Device( solidDevice ) );
+ else
+ kDebug() << "(K3b::Device::DeviceManager) dev " << blockDevice->device() << " already found";
}
-
- return addDevice( new K3b::Device::Device( solidDevice ) );
+ return 0;
}
@@ -409,19 +411,21 @@
void K3b::Device::DeviceManager::removeDevice( const Solid::Device& dev )
{
- if( Device* device = findDevice( dev.asSolid::Block()->device() ) ) {
- d->cdReader.removeAll( device );
- d->dvdReader.removeAll( device );
- d->bdReader.removeAll( device );
- d->cdWriter.removeAll( device );
- d->dvdWriter.removeAll( device );
- d->bdWriter.removeAll( device );
- d->allDevices.removeAll( device );
+ if( const Solid::Block* blockDevice = dev.asSolid::Block() ) {
+ if( Device* device = findDevice( blockDevice->device() ) ) {
+ d->cdReader.removeAll( device );
+ d->dvdReader.removeAll( device );
+ d->bdReader.removeAll( device );
+ d->cdWriter.removeAll( device );
+ d->dvdWriter.removeAll( device );
+ d->bdWriter.removeAll( device );
+ d->allDevices.removeAll( device );
- emit changed( this );
- emit changed();
+ emit changed( this );
+ emit changed();
- delete device;
+ delete device;
+ }
}
}
--- k3b/src/k3bappdevicemanager.cpp 2010/09/09 18:58:01 1173574
+++ k3b/src/k3bappdevicemanager.cpp 2010/09/09 19:01:06 1173575
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2005-2008 Sebastian Trueg
+ * Copyright (C) 2010 Michal Malek
*
* This file is part of the K3b project.
* Copyright (C) 1998-2008 Sebastian Trueg
@@ -125,13 +126,15 @@
void K3b::AppDeviceManager::removeDevice( const Solid::Device& solidDev )
{
- if( findDevice( solidDev.asSolid::Block()->device() ) == currentDevice() )
- setCurrentDevice( 0 );
+ if( const Solid::Block* blockDevice = solidDev.asSolid::Block() ) {
+ if( findDevice( blockDevice->device() ) == currentDevice() )
+ setCurrentDevice( 0 );
- K3b::Device::DeviceManager::removeDevice( solidDev );
+ K3b::Device::DeviceManager::removeDevice( solidDev );
- if( currentDevice() == 0 && !allDevices().isEmpty() )
- setCurrentDevice( allDevices().first() );
+ if( currentDevice() == 0 && !allDevices().isEmpty() )
+ setCurrentDevice( allDevices().first() );
+ }
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org