rpms/WindowMaker/devel WindowMaker-wakeup-delayedAction.patch, NONE, 1.1 WindowMaker-wakeup-dnotify.patch, NONE, 1.1 WindowMaker-wakeup-timer.patch, NONE, 1.1 WindowMaker.spec, 1.24, 1.25

Andreas Bierfert (awjb) fedora-extras-commits at redhat.com
Sun Dec 9 16:53:02 UTC 2007


Author: awjb

Update of /cvs/pkgs/rpms/WindowMaker/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32039/devel

Modified Files:
	WindowMaker.spec 
Added Files:
	WindowMaker-wakeup-delayedAction.patch 
	WindowMaker-wakeup-dnotify.patch 
	WindowMaker-wakeup-timer.patch 
Log Message:
- add patches from #267041
- multilib fixes for #343431


WindowMaker-wakeup-delayedAction.patch:

--- NEW FILE WindowMaker-wakeup-delayedAction.patch ---
diff -uNr WindowMaker-0.92.0/src/startup.c WindowMaker-0.92.0-delayed/src/startup.c
--- WindowMaker-0.92.0/src/startup.c	2005-03-11 22:11:30.000000000 -0300
+++ WindowMaker-0.92.0-delayed/src/startup.c	2007-06-27 23:41:29.000000000 -0300
@@ -694,8 +694,6 @@
         XFreePixmap(dpy, cur);
     }
 
-    /* signal handler stuff that gets called when a signal is caught */
-    WMAddPersistentTimerHandler(500, delayedAction, NULL);
 
     /* emergency exit... */
     sig_action.sa_handler = handleSig;


WindowMaker-wakeup-dnotify.patch:

--- NEW FILE WindowMaker-wakeup-dnotify.patch ---
diff -uNr -B -b WindowMaker-0.92.0/src/defaults.c WindowMaker-0.92.0-dnotify2/src/defaults.c
--- WindowMaker-0.92.0/src/defaults.c	2005-04-08 07:59:16.000000000 -0300
+++ WindowMaker-0.92.0-dnotify2/src/defaults.c	2007-06-27 23:26:46.000000000 -0300
@@ -1348,8 +1348,6 @@
     }
 #endif /* !LITE */
 
-    if (!foo)
-        WMAddTimerHandler(DEFAULTS_CHECK_INTERVAL, wDefaultsCheckDomains, foo);
 }
 
 
diff -uNr -B -b WindowMaker-0.92.0/src/event.c WindowMaker-0.92.0-dnotify2/src/event.c
--- WindowMaker-0.92.0/src/event.c	2005-03-12 21:13:55.000000000 -0300
+++ WindowMaker-0.92.0-dnotify2/src/event.c	2007-06-27 23:26:50.000000000 -0300
@@ -319,10 +319,20 @@
 EventLoop()
 {
     XEvent event;
+    extern volatile int filesChanged;
+    extern void wDefaultsCheckDomains();
 
     for(;;) {
         WMNextEvent(dpy, &event);
         WMHandleEvent(&event);
+	    
+	/* If configuration files in defaults database have 
+	 changed we read them. */
+	if (filesChanged){
+		fprintf(stdout,"Rereading config files in defaults database...\n");
+		wDefaultsCheckDomains(NULL);
+		filesChanged = 0;
+	}
     }
 }
 
diff -uNr -B -b WindowMaker-0.92.0/src/main.c WindowMaker-0.92.0-dnotify2/src/main.c
--- WindowMaker-0.92.0/src/main.c	2004-10-24 22:32:51.000000000 -0300
+++ WindowMaker-0.92.0-dnotify2/src/main.c	2007-06-27 23:26:56.000000000 -0300
@@ -19,6 +19,14 @@
  *  USA.
  */
 
+/* The notify code was copied from Documentation/dnotify.txt
+ * in the linux kernel.
+ */
+
+#define _GNU_SOURCE	/* needed to get the defines in glibc 2.2 */
+#include <fcntl.h>	/* this has the needed values defined */
+#include <signal.h>
+
 #include "wconfig.h"
 
 #include <stdio.h>
@@ -62,6 +70,7 @@
 char *ProgName;
 
 unsigned int ValidModMask = 0xff;
+volatile int filesChanged;
 
 /* locale to use. NULL==POSIX or C */
 char *Locale=NULL;
@@ -451,7 +460,6 @@
     puts(_(" --create-stdcmap	create the standard colormap hint in PseudoColor visuals"));
     puts(_(" --visual-id visualid	visual id of visual to use"));
     puts(_(" --static		do not update or save configurations"));
-    puts(_(" --no-polling		do not periodically check for configuration updates"));
 #ifdef DEBUG
     puts(_(" --synchronous		turn on synchronous display mode"));
 #endif
@@ -490,10 +498,32 @@
 }
 
 
+/* This is the handler used to notify if configuration
+ * files have changed.
+ */
+void handler(int sig, siginfo_t *si, void *data)
+{
+	filesChanged = si->si_fd;
+}
+
 static void
 execInitScript()
 {
-    char *file, *paths;
+	char *file, *path, *paths;
+	struct sigaction act;
+	volatile int fd;
+	
+	path = wstrconcat(wusergnusteppath(), "/Defaults");
+		
+	act.sa_sigaction = handler;
+	sigemptyset(&act.sa_mask);
+	act.sa_flags = SA_SIGINFO;
+	sigaction(SIGRTMIN + 1, &act, NULL);
+
+	fd = open(path, O_RDONLY);
+	fcntl(fd, F_SETSIG, SIGRTMIN + 1);
+	fcntl(fd, F_NOTIFY, DN_MODIFY|DN_MULTISHOT);
+	wfree(path);
 
     paths = wstrconcat(wusergnusteppath(), "/Library/WindowMaker");
     paths = wstrappend(paths, ":"DEF_CONFIG_PATHS);
@@ -746,10 +776,6 @@
                            || strcmp(argv[i], "--static")==0) {
 
                     wPreferences.flags.noupdates = 1;
-                } else if (strcmp(argv[i], "-nopolling")==0
-                           || strcmp(argv[i], "--no-polling")==0) {
-
-                    wPreferences.flags.nopolling = 1;
 #ifdef XSMP_ENABLED
                 } else if (strcmp(argv[i], "-clientid")==0
                            || strcmp(argv[i], "-restore")==0) {
diff -uNr -B -b WindowMaker-0.92.0/src/startup.c WindowMaker-0.92.0-dnotify2/src/startup.c
--- WindowMaker-0.92.0/src/startup.c	2005-03-11 22:11:30.000000000 -0300
+++ WindowMaker-0.92.0-dnotify2/src/startup.c	2007-06-27 23:27:10.000000000 -0300
@@ -885,10 +885,6 @@
         Exit(1);
     }
 
-    if (!wPreferences.flags.nopolling && !wPreferences.flags.noupdates) {
-        /* setup defaults file polling */
-        WMAddTimerHandler(3000, wDefaultsCheckDomains, NULL);
-    }
 }
 
 
diff -uNr -B -b WindowMaker-0.92.0/src/wconfig.h.in WindowMaker-0.92.0-dnotify2/src/wconfig.h.in
--- WindowMaker-0.92.0/src/wconfig.h.in	2004-11-11 11:23:38.000000000 -0200
+++ WindowMaker-0.92.0-dnotify2/src/wconfig.h.in	2007-06-27 23:27:17.000000000 -0300
@@ -457,8 +457,6 @@
 #define MAX_WINDOWLIST_WIDTH	160     /* max width of window title in
                                          * window list */
 
-#define DEFAULTS_CHECK_INTERVAL 2000	/* how often wmaker will check for
-                                         * changes in the config files */
 
 /* if your keyboard don't have arrow keys */
 #undef ARROWLESS_KBD
diff -uNr -B -b WindowMaker-0.92.0/src/WindowMaker.h WindowMaker-0.92.0-dnotify2/src/WindowMaker.h
--- WindowMaker-0.92.0/src/WindowMaker.h	2004-10-24 22:48:39.000000000 -0300
+++ WindowMaker-0.92.0-dnotify2/src/WindowMaker.h	2007-06-27 23:27:21.000000000 -0300
@@ -483,7 +483,6 @@
         unsigned int noautolaunch:1;   /* don't autolaunch apps */
         unsigned int norestore:1;      /* don't restore session */
         unsigned int create_stdcmap:1; /* create std colormap */
-        unsigned int nopolling:1;      /* don't poll for defaults changes */
         unsigned int restarting:2;
     } flags;			       /* internal flags */
 } WPreferences;


WindowMaker-wakeup-timer.patch:

--- NEW FILE WindowMaker-wakeup-timer.patch ---
diff -uNr WindowMaker-0.92.0/WINGs/userdefaults.c WindowMaker-0.92.0-synchro/WINGs/userdefaults.c
--- WindowMaker-0.92.0/WINGs/userdefaults.c	2004-10-12 15:32:29.000000000 -0300
+++ WindowMaker-0.92.0-synchro/WINGs/userdefaults.c	2007-06-27 23:48:27.000000000 -0300
@@ -45,7 +45,6 @@
 
 #define DEFAULTS_DIR "/Defaults"
 
-#define UD_SYNC_INTERVAL  2000
 
 
 
@@ -135,17 +134,6 @@
 }
 
 
-static void
-addSynchronizeTimerHandler(void)
-{
-    static Bool initialized = False;
-
-    if (!initialized) {
-        WMAddPersistentTimerHandler(UD_SYNC_INTERVAL, synchronizeUserDefaults,
-                                    NULL);
-        initialized = True;
-    }
-}
 
 
 void
@@ -335,7 +323,6 @@
         defaults->next = sharedUserDefaults;
     sharedUserDefaults = defaults;
 
-    addSynchronizeTimerHandler();
     registerSaveOnExit();
 
     return defaults;
@@ -412,7 +399,6 @@
         defaults->next = sharedUserDefaults;
     sharedUserDefaults = defaults;
 
-    addSynchronizeTimerHandler();
     registerSaveOnExit();
 
     return defaults;



Index: WindowMaker.spec
===================================================================
RCS file: /cvs/pkgs/rpms/WindowMaker/devel/WindowMaker.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- WindowMaker.spec	23 Aug 2007 05:53:51 -0000	1.24
+++ WindowMaker.spec	9 Dec 2007 16:52:29 -0000	1.25
@@ -1,7 +1,7 @@
 Summary:	A fast, feature rich Window Manager
 Name:		WindowMaker
 Version:	0.92.0
-Release:	14%{?dist}
+Release:	15%{?dist}
 
 License:	GPLv2+
 Group:		User Interface/Desktops
@@ -20,7 +20,6 @@
 # cvs snapshot
 Patch0:         WindowMaker-0.92.0-cvs20060123.patch
 Patch1:         WindowMaker-gcc41.patch
-
 #patches from altlinux
 Patch101:       WindowMaker-0.91.0-alt-sowings.patch
 Patch102:       WindowMaker-0.91.0-alt-session.patch
@@ -49,6 +48,11 @@
 Patch211:       WindowMaker-0.91.0-sga-swpanel-customization.patch
 Patch212:       WindowMaker-0.92.0-alt-newpo.patch
 
+# wakeup enhancements to save power (#267041)
+Patch301:       WindowMaker-wakeup-dnotify.patch
+Patch302:       WindowMaker-wakeup-delayedAction.patch
+Patch303:       WindowMaker-wakeup-timer.patch
+
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-buildroot
 BuildRequires:	libpng-devel libjpeg-devel libungif-devel
 BuildRequires:	libtiff-devel zlib-devel gettext-devel
@@ -141,6 +145,9 @@
 %patch210 -p1 
 %patch211 -p1
 %patch212 -p1 -b .vns
+%patch301 -p1
+%patch302 -p1
+%patch303 -p1
 
 cp %{SOURCE3} po/uk.po
 cp %{SOURCE4} WPrefs.app/po/uk.po
@@ -195,6 +202,11 @@
 # clean up wmlib.pc
 sed -i -e 's:-lWUtil::' $RPM_BUILD_ROOT%{_libdir}/pkgconfig/wmlib.pc
 
+#multilib fun
+sed -i -e 's:^WLFLAGS[\w="]*::' \
+    $RPM_BUILD_ROOT%{_bindir}/get-{wutil,wings,wraster}-flags
+touch -r NEWS $RPM_BUILD_ROOT%{_bindir}/get-{wutil,wings,wraster}-flags
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -248,6 +260,11 @@
 %{_includedir}/wraster.h
 
 %changelog
+* Sun Dec 09 2007 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 0.92.0-15
+- add patches from #267041 for less wakeup calls
+- fix multilib stuff #343431
+
 * Thu Aug 23 2007 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
 - 0.92.0-14
 - new license tag




More information about the fedora-extras-commits mailing list