[packman] [PM] gparted 0.3.3 (openSUSE 10.3/i586)
Oliver Bengs
appleonkel at flashgrafik.de
Tue Jan 15 14:23:06 CET 2008
Am Mon, 14 Jan 2008 08:51:27 -0500
schrieb Mark Gordon <mtgordon at novell.com>:
> Are you aware of this bug?
>
> https://bugzilla.novell.com/show_bug.cgi?id=348285
>
> -Mark Gordon
I already sent a patch, which I found in the debian bugtracker, for this
bug. Not sure if it works, but it should do it.
Here is the patch again.
diff -Nur gparted-0.3.3/src/GParted_Core.cc
gparted-0.3.3.new/src/GParted_Core.cc ---
gparted-0.3.3/src/GParted_Core.cc 2006-12-05 20:39:31.000000000
+0100 +++ gparted-0.3.3.new/src/GParted_Core.cc 2007-10-01
08:34:03.000000000 +0200 @@ -38,6 +38,8 @@ #include "../include/ufs.h"
#include <cerrno>
+#include <cstdio>
+#include <csignal>
#include <sys/statvfs.h>
std::vector<Glib::ustring> libparted_messages ; //see
ped_exception_handler() @@ -45,6 +47,13 @@
namespace GParted
{
+// Clean up the fdi when terminating
+void sig_fdi_cleanup( int signum )
+{
+
remove( "/usr/share/hal/fdi/policy/gparted-disable-automount.fdi" );
+ raise( signum );
+}
+
GParted_Core::GParted_Core()
{
lp_device = NULL ;
@@ -53,6 +62,29 @@
p_filesystem = NULL ;
ped_exception_set_handler( ped_exception_handler ) ;
+
+ //make sure that the fdi is cleaned up on all but the most
forceful
+ //program exits
+ struct sigaction sa;
+ sa.sa_handler = sig_fdi_cleanup;
+ sigemptyset( &sa.sa_mask );
+ sa.sa_flags = SA_RESETHAND;
+ if( sigaction( SIGHUP, &sa, NULL ) == -1 ||
+ sigaction( SIGINT, &sa, NULL ) == -1 ||
+ sigaction( SIGQUIT, &sa, NULL ) == -1 ||
+ sigaction( SIGILL, &sa, NULL ) == -1 ||
+ sigaction( SIGABRT, &sa, NULL ) == -1 ||
+ sigaction( SIGFPE, &sa, NULL ) == -1 ||
+ sigaction( SIGSEGV, &sa, NULL ) == -1 ||
+ sigaction( SIGPIPE, &sa, NULL ) == -1 ||
+ sigaction( SIGALRM, &sa, NULL ) == -1 ||
+ sigaction( SIGTERM, &sa, NULL ) == -1 ||
+ sigaction( SIGUSR1, &sa, NULL ) == -1 ||
+ sigaction( SIGUSR2, &sa, NULL ) == -1 ||
+ sigaction( SIGBUS, &sa, NULL ) == -1 ||
+ sigaction( SIGXCPU, &sa, NULL ) == -1 ||
+ sigaction( SIGXFSZ, &sa, NULL ) == -1 )
+ perror( "Could not set signal handler" );
//disable automount //FIXME: temporary hack, till i find a
better solution... std::ofstream
fdi_file( "/usr/share/hal/fdi/policy/gparted-disable-automount.fdi" ) ;
@@ -60,8 +92,8 @@ {
fdi_file << "<deviceinfo version='0.2'>" ;
fdi_file << "<device>" ;
- fdi_file << "<match
key='@block.storage_device:storage.hotpluggable' bool='true'>" ;
- fdi_file << "<merge key='volume.ignore'
type='bool'>true</merge>" ;
+ fdi_file << "<match key='storage.hotpluggable'
bool='true'>" ;
+ fdi_file << "<merge
key='storage.automount_enabled_hint' type='bool'>false</merge>" ;
fdi_file << "</match>" ; fdi_file << "</device>" ;
fdi_file << "</deviceinfo>" ;
--
Oliver Bengs
Key fingerprint = 8F45 91CA 4038 41D3 2FF7 8A65 D3A3 3358 A16E A024
http://jacklab.org
More information about the Packman
mailing list