diff --git a/.cvsignore b/.gitignore
similarity index 100%
rename from .cvsignore
rename to .gitignore
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 460a38b..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: sectool
-# $Id$
-NAME := sectool
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
diff --git a/sectool-0.9.4-dbus-fix.patch b/sectool-0.9.4-dbus-fix.patch
new file mode 100644
index 0000000..de4da67
--- /dev/null
+++ b/sectool-0.9.4-dbus-fix.patch
@@ -0,0 +1,156 @@
+diff -up sectool-0.9.4/org.fedoraproject.sectool.mechanism.conf.old sectool-0.9.4/org.fedoraproject.sectool.mechanism.conf
+--- sectool-0.9.4/org.fedoraproject.sectool.mechanism.conf.old 2009-09-01 10:20:23.000000000 +0200
++++ sectool-0.9.4/org.fedoraproject.sectool.mechanism.conf 2010-03-10 14:51:48.564326918 +0100
+@@ -9,7 +9,7 @@
+
+
+
+-
++
+
+
+
+diff -up sectool-0.9.4/org.fedoraproject.sectool.policy.old sectool-0.9.4/org.fedoraproject.sectool.policy
+--- sectool-0.9.4/org.fedoraproject.sectool.policy.old 2009-08-24 16:43:10.000000000 +0200
++++ sectool-0.9.4/org.fedoraproject.sectool.policy 2010-03-10 14:51:51.858326825 +0100
+@@ -20,8 +20,9 @@
+ Run level
+ System policy prevents run level
+
+- no
+- auth_admin
++ no
++ auth_admin_keep
++ auth_admin_keep
+
+
+
+@@ -29,9 +30,9 @@
+ Run tests
+ System policy prevents run tests
+
+- no
+- no
+- auth_admin
++ auth_admin_keep
++ auth_admin_keep
++ auth_admin_keep
+
+
+
+diff -up sectool-0.9.4/src/sectool-gui.py.old sectool-0.9.4/src/sectool-gui.py
+--- sectool-0.9.4/src/sectool-gui.py.old 2010-03-10 14:50:07.111201828 +0100
++++ sectool-0.9.4/src/sectool-gui.py 2010-03-10 14:52:01.219201762 +0100
+@@ -712,10 +712,14 @@ class DBusCaller(object):
+
+ def __init__(self):
+
++ #print "DBusCaller::init::start"
+ self.timeout = -1
++ self.auth = 0
++ #print "DBusCaller::init::SystemBus()"
+ self.bus = dbus.SystemBus ()
+ #self.bus_name = dbus.service.BusName('org.fedoraproject.sectool.mechanism', self.bus)
+- self.dbus_action_object = self.bus.get_object ("org.fedoraproject.sectool.mechanism", "/org/fedoraproject/sectool/object")
++ #self.dbus_action_object = self.bus.get_object ("org.fedoraproject.sectool.mechanism", "/org/fedoraproject/sectool/object")
++ #print "DBusCaller::init::end"
+
+ def get_action(self, action):
+ """ Get action from dbus sectool mechanism """
+@@ -723,7 +727,7 @@ class DBusCaller(object):
+
+ @staticmethod
+ def error_handler(error):
+- #print "ERROR: ", error
++ print "[ASYNC ERROR]: ", error
+ pass # We will recieve an error that timeout has expired
+
+ @staticmethod
+@@ -736,12 +740,16 @@ class DBusCaller(object):
+
+ def close(self):
+ self.bus.flush()
+- self.bus.close()
++ #self.bus.close() # can't close this, cause it will close main loop
+
+ def run( self, args, file ):
+
+- auth = slip.dbus.polkit.IsSystemBusNameAuthorized( self.bus.get_unique_name(), "org.fedoraproject.sectool.runtests" )
++ #print "DBusCaller::run::start"
++ #if (self.auth != 1):
++ self.auth = slip.dbus.polkit.IsSystemBusNameAuthorized( self.bus.get_unique_name(), "org.fedoraproject.sectool.runtests" )
++ #print "DBusCaller::run::auth: \"",self.auth,"\" end"
+ self.runtests(args, file)
++ #print "DBusCaller::run::end"
+
+ @slip.dbus.polkit.enable_proxy
+ def runtests( self, args, file ):
+@@ -754,7 +762,7 @@ class DBusCaller(object):
+ [args, file],
+ reply_handler=self.reply_handler,
+ error_handler=self.error_handler,
+- timeout=0.00)
++ timeout=10)
+
+
+ class ThreadHandler(threading.Thread, Handler):
+@@ -845,6 +853,9 @@ class ThreadHandler(threading.Thread, Ha
+ """
+
+ self.readers = []
++ # get action from dbus
++ #print "start dbus"
++ self.bus = DBusCaller()
+ for test in self.__suite:
+
+ self.test = test
+@@ -869,12 +880,10 @@ class ThreadHandler(threading.Thread, Ha
+
+ # Block for dbus exceptions handling, here should be all code that manipulate with dBus
+ try:
+- # get action from dbus
+- bus = DBusCaller()
+-
+ # Start new thread - reader to listen on socket and update GUI if something from dBus comes up
+ # We need to call reader here, because of passing bus to close connection and save processes
+- reader = Reader( file, test.dsc['HEADER']['NAME'], self.fill_form, self.test_done, iter, bus )
++ #print "start reader"
++ reader = Reader( file, test.dsc['HEADER']['NAME'], self.fill_form, self.test_done, iter, self.bus )
+ reader.start()
+ # Add reader to readers pool
+ self.readers.append( reader )
+@@ -886,12 +895,15 @@ class ThreadHandler(threading.Thread, Ha
+ TODO: Look for async call, this is workaround using 0-timeout
+ If you use timeout=-1, it will be sequencial, all positives numbers are seconds in float
+ """
+-
+- bus.run( self.__make_dbus_call( test.dsc["HEADER"]["NAME"] ), file )
++ #print "run start"
++ self.bus.run( self.__make_dbus_call( test.dsc["HEADER"]["NAME"] ), file )
++ #print "run end"
+ #bus.call( test.dsc["HEADER"]["NAME"], file )
+ except dbus.DBusException, e:
+ # This should always happend. We need to be stopped by dBus to start new test in separate thread
++ raise e
+ if 'org.freedesktop.DBus.Error.NoReply' in e.get_dbus_name():
++ print >>sys.stderr, "Not reply from DBus"
+ pass # maybe continue ?
+ # catch Authorization exception
+ elif 'NotAuthorizedException' in e.get_dbus_name():
+@@ -939,6 +951,7 @@ class ThreadHandler(threading.Thread, Ha
+ The testing process is going to die .. we have a little time to stop all tests correctly
+ """
+ self.__stopthread.set( )
++ self.bus.close()
+ for reader in self.readers:
+ reader.stop_thread()
+
+@@ -1056,7 +1069,7 @@ class Reader(threading.Thread):
+ def stop_thread(self):
+
+ self.stop = True
+- self.bus.close()
++ #self.bus.close()
+
+
+
diff --git a/sectool-0.9.4-pk1.patch b/sectool-0.9.4-pk1.patch
new file mode 100644
index 0000000..016efee
--- /dev/null
+++ b/sectool-0.9.4-pk1.patch
@@ -0,0 +1,21 @@
+diff -up sectool-0.9.4/Makefile.old sectool-0.9.4/Makefile
+--- sectool-0.9.4/Makefile.old 2009-11-19 13:36:45.680545213 +0100
++++ sectool-0.9.4/Makefile 2009-11-19 13:37:05.108513565 +0100
+@@ -25,7 +25,7 @@ install:
+ mkdir -p $(DESTDIR)$(PKGDATADIR)
+ mkdir -p $(DESTDIR)$(PKGDATADIR)/scheduler
+ #mkdir -p $(DESTDIR)$(PKGDATADIR)/tests
+- mkdir -p $(DESTDIR)$(DATADIR)/PolicyKit/policy/
++ mkdir -p $(DESTDIR)$(DATADIR)/polkit-1/actions/
+ mkdir -p $(DESTDIR)$(SYSCONFDIR)/dbus-1/system.d/
+ mkdir -p $(DESTDIR)$(DATADIR)/dbus-1/system-services/
+ mkdir -p $(DESTDIR)$(LIBEXECDIR)/sectool/tests
+@@ -78,7 +78,7 @@ install:
+ done && test -z "$$fail"
+ chmod a+x $(DESTDIR)$(PKGDATADIR)/sectool-mechanism.py
+ # PolicyKit
+- install -p -m644 org.fedoraproject.sectool.policy $(DESTDIR)$(DATADIR)/PolicyKit/policy/
++ install -p -m644 org.fedoraproject.sectool.policy $(DESTDIR)$(DATADIR)/polkit-1/actions/
+ install -p -m644 org.fedoraproject.sectool.mechanism.conf $(DESTDIR)$(SYSCONFDIR)/dbus-1/system.d/
+ install -p -m644 org.fedoraproject.sectool.mechanism.service $(DESTDIR)$(DATADIR)/dbus-1/system-services/
+
diff --git a/sectool-0.9.4-policykit-fix.patch b/sectool-0.9.4-policykit-fix.patch
new file mode 100644
index 0000000..5c46c4a
--- /dev/null
+++ b/sectool-0.9.4-policykit-fix.patch
@@ -0,0 +1,84 @@
+diff -up sectool-0.9.4/src/sectool-gui.py.old sectool-0.9.4/src/sectool-gui.py
+--- sectool-0.9.4/src/sectool-gui.py.old 2009-12-08 17:11:31.417357216 +0100
++++ sectool-0.9.4/src/sectool-gui.py 2010-01-13 14:37:49.817461379 +0100
+@@ -645,7 +645,7 @@ class TestHandler( Handler ):
+ """ Stop button has been pressed """
+
+ self.threadHandler.stop() #: give a short amount of time to stop the test by itself
+- self.__signalHandler.kill_thread() #: kill the test by unix-style kill through os library
++ #self.__signalHandler.kill_thread() #: kill the test by unix-style kill through os library
+
+ def show_message_hint( self, test, msg_id ):
+ """ Show info message in hintWindow """
+@@ -721,6 +721,16 @@ class DBusCaller(object):
+ """ Get action from dbus sectool mechanism """
+ return self.dbus_action_object.get_dbus_method( action, "org.fedoraproject.sectool.mechanism" )
+
++ @staticmethod
++ def error_handler(error):
++ #print "ERROR: ", error
++ pass # We will recieve an error that timeout has expired
++
++ @staticmethod
++ def reply_handler():
++ #print "REPLY done."
++ pass
++
+ def call(self, *p, **k):
+ self.bus.call_async(*p, **k)
+
+@@ -728,13 +738,23 @@ class DBusCaller(object):
+ self.bus.flush()
+ self.bus.close()
+
++ def run( self, args, file ):
++
++ auth = slip.dbus.polkit.IsSystemBusNameAuthorized( self.bus.get_unique_name(), "org.fedoraproject.sectool.runtests" )
++ self.runtests(args, file)
++
+ @slip.dbus.polkit.enable_proxy
+ def runtests( self, args, file ):
+
+- auth = slip.dbus.polkit.IsSystemBusNameAuthorized( self.bus.get_unique_name(), "org.fedoraproject.sectool.runtests" )
+- if auth == "yes": self.timeout = 0.00
+- self.dbus_action_object.runtests( args, file, timeout=self.timeout, dbus_interface = "org.fedoraproject.sectool.mechanism" )
+- #dbus_action( self.__make_dbus_call( test.dsc["HEADER"]["NAME"] ), file, timeout=0.00 )
++ self.bus.call_async("org.fedoraproject.sectool.mechanism",
++ "/org/fedoraproject/sectool/object",
++ "org.fedoraproject.sectool.mechanism",
++ "runtests",
++ "ass",
++ [args, file],
++ reply_handler=self.reply_handler,
++ error_handler=self.error_handler,
++ timeout=0.00)
+
+
+ class ThreadHandler(threading.Thread, Handler):
+@@ -867,7 +887,7 @@ class ThreadHandler(threading.Thread, Ha
+ If you use timeout=-1, it will be sequencial, all positives numbers are seconds in float
+ """
+
+- bus.runtests( self.__make_dbus_call( test.dsc["HEADER"]["NAME"] ), file )
++ bus.run( self.__make_dbus_call( test.dsc["HEADER"]["NAME"] ), file )
+ #bus.call( test.dsc["HEADER"]["NAME"], file )
+ except dbus.DBusException, e:
+ # This should always happend. We need to be stopped by dBus to start new test in separate thread
+@@ -889,8 +909,6 @@ class ThreadHandler(threading.Thread, Ha
+
+ while self.done < count:
+ if self.__stopthread.isSet():
+- for reader in self.readers:
+- reader.stop_thread()
+ #self.__formatter.stopProgressBar()
+ break
+ time.sleep(2)
+@@ -921,6 +939,8 @@ class ThreadHandler(threading.Thread, Ha
+ The testing process is going to die .. we have a little time to stop all tests correctly
+ """
+ self.__stopthread.set( )
++ for reader in self.readers:
++ reader.stop_thread()
+
+ def __make_tmp_file( self ):
+ """
diff --git a/sectool.spec b/sectool.spec
index 1f88b50..3df460d 100644
--- a/sectool.spec
+++ b/sectool.spec
@@ -1,12 +1,14 @@
Summary: A security audit system and intrusion detection system
Name: sectool
Version: 0.9.4
-Release: 1%{?dist}
+Release: 5%{?dist}
URL: https://hosted.fedoraproject.org/sectool/wiki/WikiStart
Source0: %{name}-%{version}.tar.bz2
Source1: sectool.log
Patch1: sectool-0.9.2-optflags.patch
-#Patch2: sectool-0.9.3-ext4.patch
+Patch2: sectool-0.9.4-pk1.patch
+Patch3: sectool-0.9.4-policykit-fix.patch
+Patch4: sectool-0.9.4-dbus-fix.patch
License: GPLv2+
Group: Applications/System
Requires: gettext coreutils libselinux python-slip-dbus PolicyKit dbus
@@ -26,7 +28,7 @@ Summary: GUI for sectool - security audit system and intrusion detection system
License: GPLv2+
Group: Applications/System
Requires: sectool = %{version}-%{release}
-Requires: pygtk2 usermode
+Requires: pygtk2
%description
sectool is a security tool that can be used both as a security audit
@@ -42,7 +44,9 @@ sectool-gui provides a GTK-based graphical user interface to sectool.
%prep
%setup -q
%patch1 -p1 -b .optflags
-#%patch2 -p1 -b .ext4
+%patch2 -p1 -b .pk1
+%patch3 -p1 -b .policykit
+%patch4 -p1 -b .dbus
%build
make %{?_smp_mflags}
@@ -95,7 +99,7 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man8/sectool.8.gz
# PolicyKit
%{_sysconfdir}/dbus-1/system.d/org.fedoraproject.sectool.mechanism.conf
-%{_datadir}/PolicyKit/policy/org.fedoraproject.sectool.policy
+%{_datadir}/polkit-1/actions/org.fedoraproject.sectool.policy
%{_datadir}/dbus-1/system-services/org.fedoraproject.sectool.mechanism.service
%files gui
@@ -112,6 +116,17 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Wed Mar 10 2010 Maros Barabas - 0.9.4-5
+- fixed dBus problems in sectool-gui
+
+* Thu Nov 19 2009 Maros Barabas - 0.9.4-4
+- change dbus sync call to async
+- removed killing python test scripts
+
+* Thu Nov 19 2009 Maros Barabas - 0.9.4-3
+- change policy file path
+- removed usermod requirement
+
* Wed Sep 09 2009 Maros Barabas - 0.9.4-2
- upgrade with PolicyKit integration
- dbus update