svn commit: r314748 - in head/x11/i3lock: . files
Baptiste Daroussin
bapt at FreeBSD.org
Wed Mar 20 17:13:43 UTC 2013
Author: bapt
Date: Wed Mar 20 17:13:42 2013
New Revision: 314748
URL: http://svnweb.freebsd.org/changeset/ports/314748
Log:
Add a patch:
- stop using mlock as it requires root credential
- call ev_loop_fork so that forking actually works with kqueue
Added:
head/x11/i3lock/files/patch-i3lock.c (contents, props changed)
Modified:
head/x11/i3lock/Makefile
Modified: head/x11/i3lock/Makefile
==============================================================================
--- head/x11/i3lock/Makefile Wed Mar 20 17:03:00 2013 (r314747)
+++ head/x11/i3lock/Makefile Wed Mar 20 17:13:42 2013 (r314748)
@@ -1,13 +1,9 @@
-# New ports collection makefile for: i3lock
-# Date created: 2009-05-22
-# Whom: Dennis Herrmann <dhn at FreeBSD.org>
-#
+# Created by: Dennis Herrmann <dhn at 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/ \
Added: head/x11/i3lock/files/patch-i3lock.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/x11/i3lock/files/patch-i3lock.c Wed Mar 20 17:13:42 2013 (r314748)
@@ -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). */
More information about the svn-ports-all
mailing list