[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