diff options
author | bapt <bapt@FreeBSD.org> | 2013-03-21 01:13:42 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2013-03-21 01:13:42 +0800 |
commit | 69de3879926ff2186272cfeb7073e696e06e61e6 (patch) | |
tree | e1dc2f2735da1b4a21d5bed48c24c1577f061a88 | |
parent | 24763ad730d8f1d8204c1a9f4f0b32e7fabe05c0 (diff) | |
download | freebsd-ports-gnome-69de3879926ff2186272cfeb7073e696e06e61e6.tar.gz freebsd-ports-gnome-69de3879926ff2186272cfeb7073e696e06e61e6.tar.zst freebsd-ports-gnome-69de3879926ff2186272cfeb7073e696e06e61e6.zip |
Add a patch:
- stop using mlock as it requires root credential
- call ev_loop_fork so that forking actually works with kqueue
-rw-r--r-- | x11/i3lock/Makefile | 8 | ||||
-rw-r--r-- | x11/i3lock/files/patch-i3lock.c | 40 |
2 files changed, 42 insertions, 6 deletions
diff --git a/x11/i3lock/Makefile b/x11/i3lock/Makefile index d15893c59ba8..254cfd010de3 100644 --- a/x11/i3lock/Makefile +++ b/x11/i3lock/Makefile @@ -1,13 +1,9 @@ -# New ports collection makefile for: i3lock -# Date created: 2009-05-22 -# Whom: Dennis Herrmann <dhn@FreeBSD.org> -# +# Created by: Dennis Herrmann <dhn@FreeBSD.org> # $FreeBSD$ -# PORTNAME= i3lock PORTVERSION= 2.4.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 MASTER_SITES= http://i3wm.org/${PORTNAME}/ \ http://mirror.4bit.ws/ \ diff --git a/x11/i3lock/files/patch-i3lock.c b/x11/i3lock/files/patch-i3lock.c new file mode 100644 index 000000000000..6cf6bda57750 --- /dev/null +++ b/x11/i3lock/files/patch-i3lock.c @@ -0,0 +1,40 @@ +--- ./i3lock.c.orig 2013-03-19 21:44:37.876383724 +0100 ++++ ./i3lock.c 2013-03-20 19:23:55.060606716 +0100 +@@ -525,6 +525,8 @@ + /* In the parent process, we exit */ + if (fork() != 0) + exit(0); ++ ++ ev_loop_fork(EV_DEFAULT); + } + break; + +@@ -645,11 +647,16 @@ + if (ret != PAM_SUCCESS) + errx(EXIT_FAILURE, "PAM: %s", pam_strerror(pam_handle, ret)); + ++/* Using mlock() as non-super-user seems only possible in Linux. Users of other ++ * operating systems should use encrypted swap/no swap (or remove the ifdef and ++ * run i3lock as super-user). */ ++#if defined(__linux__) + /* Lock the area where we store the password in memory, we don’t want it to + * be swapped to disk. Since Linux 2.6.9, this does not require any + * privileges, just enough bytes in the RLIMIT_MEMLOCK limit. */ + if (mlock(password, sizeof(password)) != 0) + err(EXIT_FAILURE, "Could not lock page in memory, check RLIMIT_MEMLOCK"); ++#endif + + /* Initialize connection to X11 */ + if ((conn = xcb_connect(NULL, &nscreen)) == NULL || +@@ -731,9 +738,11 @@ + ev_check_init(xcb_check, xcb_check_cb); + ev_check_start(main_loop, xcb_check); + ++ ev_check_init(xcb_check, xcb_check_cb); + ev_prepare_init(xcb_prepare, xcb_prepare_cb); + ev_prepare_start(main_loop, xcb_prepare); + ++ ev_check_init(xcb_check, xcb_check_cb); + /* Invoke the event callback once to catch all the events which were + * received up until now. ev will only pick up new events (when the X11 + * file descriptor becomes readable). */ |