[slock] Make hardened builds and use the dualcolor patch

Petr Šabata psabata at fedoraproject.org
Fri Apr 13 14:12:19 UTC 2012


commit fb4f23ef920d29f5cebda0deb01d93922392d916
Author: Petr Šabata <contyk at redhat.com>
Date:   Fri Apr 13 16:12:08 2012 +0200

    Make hardened builds and use the dualcolor patch

 slock-0.9-flags.patch     |   14 ------
 slock-1.0-config.patch    |   17 +++++++
 slock-1.0-dualcolor.patch |  103 +++++++++++++++++++++++++++++++++++++++++++++
 slock.spec                |   13 ++++--
 4 files changed, 129 insertions(+), 18 deletions(-)
---
diff --git a/slock-1.0-config.patch b/slock-1.0-config.patch
new file mode 100644
index 0000000..4d50dbc
--- /dev/null
+++ b/slock-1.0-config.patch
@@ -0,0 +1,17 @@
+diff --git a/config.mk b/config.mk
+index addb499..c7ed127 100644
+--- a/config.mk
++++ b/config.mk
+@@ -14,9 +14,9 @@ INCS = -I. -I/usr/include -I${X11INC}
+ LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext
+ 
+ # flags
+-CPPFLAGS = -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H -DCOLOR1=\"black\" -DCOLOR2=\"\#005577\"
+-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+-LDFLAGS = -s ${LIBS}
++CPPFLAGS = -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H -DCOLOR1=\"black\" -DCOLOR2=\"\#3c6eb4\"
++CFLAGS = -fPIC ${RPM_OPT_FLAGS} ${INCS} ${CPPFLAGS}
++LDFLAGS = -z now ${LIBS}
+ 
+ # On *BSD remove -DHAVE_SHADOW_H from CPPFLAGS and add -DHAVE_BSD_AUTH
+ # On OpenBSD and Darwin remove -lcrypt from LIBS
diff --git a/slock-1.0-dualcolor.patch b/slock-1.0-dualcolor.patch
new file mode 100644
index 0000000..b91842a
--- /dev/null
+++ b/slock-1.0-dualcolor.patch
@@ -0,0 +1,103 @@
+# HG changeset patch
+# User anselm at garbe.us
+# Date 1332003805 -3600
+# Node ID 0eade055cef0f34bf8d1340166d0bdd80d33b27c
+# Parent  e0d42e1276563cb0f34982c4cbcfc307a44f7ac5
+applied Eckehard Bern's dualcolor patch to slock
+
+diff -r e0d42e127656 -r 0eade055cef0 config.mk
+--- a/config.mk	Sat Feb 11 10:51:31 2012 +0100
++++ b/config.mk	Sat Mar 17 18:03:25 2012 +0100
+@@ -1,5 +1,5 @@
+ # slock version
+-VERSION = 1.0
++VERSION = 1.0-tip
+ 
+ # Customize below to fit your system
+ 
+@@ -14,7 +14,7 @@
+ LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext
+ 
+ # flags
+-CPPFLAGS = -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H
++CPPFLAGS = -DVERSION=\"${VERSION}\" -DHAVE_SHADOW_H -DCOLOR1=\"black\" -DCOLOR2=\"\#005577\"
+ CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+ LDFLAGS = -s ${LIBS}
+ 
+diff -r e0d42e127656 -r 0eade055cef0 slock.c
+--- a/slock.c	Sat Feb 11 10:51:31 2012 +0100
++++ b/slock.c	Sat Mar 17 18:03:25 2012 +0100
+@@ -26,6 +26,7 @@
+ 	int screen;
+ 	Window root, win;
+ 	Pixmap pmap;
++	unsigned long colors[2];
+ } Lock;
+ 
+ static Lock **locks;
+@@ -81,11 +82,11 @@
+ {
+ 	char buf[32], passwd[256];
+ 	int num, screen;
+-	unsigned int len;
++	unsigned int len, llen;
+ 	KeySym ksym;
+ 	XEvent ev;
+ 
+-	len = 0;
++	len = llen = 0;
+ 	running = True;
+ 
+ 	/* As "slock" stands for "Simple X display locker", the DPMS settings
+@@ -132,6 +133,18 @@
+ 				}
+ 				break;
+ 			}
++			if(llen == 0 && len != 0) {
++				for(screen = 0; screen < nscreens; screen++) {
++					XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[1]);
++					XClearWindow(dpy, locks[screen]->win);
++				}
++			} else if(llen != 0 && len == 0) {
++				for(screen = 0; screen < nscreens; screen++) {
++					XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[0]);
++					XClearWindow(dpy, locks[screen]->win);
++				}
++			}
++			llen = len;
+ 		}
+ 		else for(screen = 0; screen < nscreens; screen++)
+ 			XRaiseWindow(dpy, locks[screen]->win);
+@@ -144,6 +157,7 @@
+ 		return;
+ 
+ 	XUngrabPointer(dpy, CurrentTime);
++	XFreeColors(dpy, DefaultColormap(dpy, lock->screen), lock->colors, 2, 0);
+ 	XFreePixmap(dpy, lock->pmap);
+ 	XDestroyWindow(dpy, lock->win);
+ 
+@@ -155,7 +169,7 @@
+ 	char curs[] = {0, 0, 0, 0, 0, 0, 0, 0};
+ 	unsigned int len;
+ 	Lock *lock;
+-	XColor black, dummy;
++	XColor color, dummy;
+ 	XSetWindowAttributes wa;
+ 	Cursor invisible;
+ 
+@@ -176,9 +190,12 @@
+ 	lock->win = XCreateWindow(dpy, lock->root, 0, 0, DisplayWidth(dpy, lock->screen), DisplayHeight(dpy, lock->screen),
+ 			0, DefaultDepth(dpy, lock->screen), CopyFromParent,
+ 			DefaultVisual(dpy, lock->screen), CWOverrideRedirect | CWBackPixel, &wa);
+-	XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), "black", &black, &dummy);
++	XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), COLOR2, &color, &dummy);
++	lock->colors[1] = color.pixel;
++	XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), COLOR1, &color, &dummy);
++	lock->colors[0] = color.pixel;
+ 	lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8);
+-	invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap, &black, &black, 0, 0);
++	invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap, &color, &color, 0, 0);
+ 	XDefineCursor(dpy, lock->win, invisible);
+ 	XMapRaised(dpy, lock->win);
+ 	for(len = 1000; len; len--) {
+
diff --git a/slock.spec b/slock.spec
index 6f14a62..454e975 100644
--- a/slock.spec
+++ b/slock.spec
@@ -1,12 +1,13 @@
 Name:           slock
 Version:        1.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Simple X display locker
 Group:          User Interface/X
 License:        MIT
 URL:            http://tools.suckless.org/%{name}
 Source0:        http://dl.suckless.org/tools/%{name}-%{version}.tar.gz
-Patch0:         slock-0.9-flags.patch
+Patch0:         slock-1.0-dualcolor.patch
+Patch1:         slock-1.0-config.patch
 BuildRequires:  libX11-devel libXext-devel 
 
 %description
@@ -16,8 +17,8 @@ are out with friends or fetching some food from the local pub.
 
 %prep
 %setup -q
-# set fedora generic compiler flags and allow debuginfo generation
-%patch0 -p1 -b .flags
+%patch0 -p1 -b .dualcolor
+%patch1 -p1 -b .config
 
 %build
 make %{?_smp_mflags}
@@ -32,6 +33,10 @@ make install PREFIX=%{buildroot}/usr
 # binary for light windowmanagers, and it shouldn't appear in applications menu
 
 %changelog
+* Fri Apr 13 2012 Petr Šabata <contyk at redhat.com> - 1.0-2
+- Make hardened builds; this is done in the config patch
+- Apply 0eade055cef0 (dualcolor patch) and patch it to use Fedora light blue
+
 * Mon Feb 13 2012 Petr Šabata <contyk at redhat.com> - 1.0-1
 - 1.0 bump
 - Update to new upstream description


More information about the scm-commits mailing list