[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