summaryrefslogtreecommitdiff
path: root/x11-misc/alock
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /x11-misc/alock
reinit the tree, so we can have metadata
Diffstat (limited to 'x11-misc/alock')
-rw-r--r--x11-misc/alock/Manifest10
-rw-r--r--x11-misc/alock/alock-1.0.0.ebuild72
-rw-r--r--x11-misc/alock/files/check-setuid.patch31
-rw-r--r--x11-misc/alock/files/fix-aliasing.patch23
-rw-r--r--x11-misc/alock/files/implicit_pointer_conversion_fix_amd64.patch13
-rw-r--r--x11-misc/alock/files/no-xf86misc.patch129
-rw-r--r--x11-misc/alock/files/tidy-printf.patch23
-rw-r--r--x11-misc/alock/metadata.xml22
8 files changed, 323 insertions, 0 deletions
diff --git a/x11-misc/alock/Manifest b/x11-misc/alock/Manifest
new file mode 100644
index 000000000000..8a7161f52593
--- /dev/null
+++ b/x11-misc/alock/Manifest
@@ -0,0 +1,10 @@
+AUX check-setuid.patch 839 SHA256 33253d321a543e55fed3c0d10c0e46f720a87972b3a745757dd589f7d1b19432 SHA512 6c86673f33420ec672f7f74c1ff2423ebd43e6a6c9b54db7509196c66387c077bf105d76027a580f60f53f6dafc31c102364b4b6568e17ac5587a8833540315e WHIRLPOOL eb5b35adc15e24b545bb07914d2df29ca5ed9cfdca91c66c4df24841cb2df69e9f304a7bd085343810ed7d418ebb7a32c837d7f43a0cacf4a121a37a2eebfbb7
+AUX fix-aliasing.patch 1076 SHA256 23d2ffc9d8369c1e40d5a1a77fcc066cd8cfdf346500f026fcb1a06650d097de SHA512 edcc182ddc8a78c031111b301b090b9af97b0628dd6b53b353c144183d33f276d730596b0cd3947aba89bb1163135f990dada475b09a8f8ae8453e471671848f WHIRLPOOL d3c4887cd3ea138f2c9067e7eb3a8d41b0b80813dd7ba2886c1b9e96759d1f394fab42f5a5877eb64ff575a12f374b5bd8f69a9744a9b131b9aff4ba6b137afd
+AUX implicit_pointer_conversion_fix_amd64.patch 440 SHA256 54a5f954c8469cf20473e01f2905818fd18e6779d93e927a181cd392a0ea5ffe SHA512 052c2b01792411131c72f6c50ea2874ab0f4376ca2e79e97ece0e5167fc844d7a5e0a44408635e2477f0dac351f1441c52506fece049e811058ce8cae185c789 WHIRLPOOL 234271484e57a622a977b2e27b051799336830731f5a10424cc7bcfbbe1638b33078fdefeae59e18a778f392c5d1469b9d1744792cdd4233b5dbb1ba45c2b3b5
+AUX no-xf86misc.patch 3220 SHA256 c8b99b0225280a00718396e3f75dcacfc46ec44415a1aaa22ee1c6ae8ede4a58 SHA512 a27a7dff601c35ad5b41170be0aa3b2453c2b46c679f76ad4ae0b229731aa0d1e13e3c3dfeffbe690e119048a51c76ae091fa3673db8ceecb2f82f81d3857488 WHIRLPOOL 8270b242dd3cd9b0d5bdce6ace4a29d5ef97e4d3601f61a4947700841866a2f64d36c29931d52cb86a6444cb73320bb63ac815250f7c4543853cccb7c3dee4d3
+AUX tidy-printf.patch 801 SHA256 7df2c9fe6e3a53aa22f4846335a65cb564793b69d071e36885d96708a35777d2 SHA512 253f731e5be75676ef56ab320ee52625bee17a0a8f2bbb025efb8b9ac8a49da7330e5123bb0070eaa9c01f3cd66fadb85ead65c75c9412e6503744705402e9c4 WHIRLPOOL 1d7f9c03af5cc2cf69e0f0844158d07ad024cfc15deec5c93afeebf66314927a7354adeccd81be9366c727c488812fe814cb369bb0ca073a7543fb2b42736848
+DIST alock-1.0.0.tar.gz 71497 SHA256 011a75e612c12947b0428168386e0b4e71610e4c05330239a07ae8c74f6505aa SHA512 7f2515410919ef1324019cd8d218650f54537f9fddf1d74bebd255c7572eff9433ded92f2d1f4ee5f352151dd15f4a7f53f7b639f82d4e6f936f831262d508a5 WHIRLPOOL f6931fdbf3b16fe50625dd4c95d6c056ab3b733d416c842ea7db9499ecef8ea39b1f4c6254be0f6d4ba594830bb1979ec5f107d43e7f076dfbbbb3997d661752
+EBUILD alock-1.0.0.ebuild 1663 SHA256 187867ffb08e004e065ef02083676fa40535217d04e638ed5088571b56ad52b9 SHA512 c90b62a1d922efc2fa8d535be51efbaf6b4becb30be6eb0682e7694df0de3f432884cf3bc59886dca40e25e4939836c580902c31ea4f2b59c7a12f5d03097e07 WHIRLPOOL 9199eb4fc662beb6f139ae47efc91a0f329fe1e91ba3b12c9b49502804c3d6da36fd229df7e29a22ac8765b1a526e34afeaa204a903542215a285d9d88d8df86
+MISC ChangeLog 3472 SHA256 d79a7e9cc861788e127c5aba69e78becd6b114388d7c6fbf5a7774a08fa8cb66 SHA512 f9be49950c7e5130e132317286e154edb0432da7d3a3053b1348e75ba7428b72fa169b66194fc7736a881793706318475a1c33d7c2150ae6d3c26e25f52b1ac6 WHIRLPOOL 4f39c543139a76c1a124219aa5cfcbd0bfb9db0c170dd1a8987e61f7620451b3b430a1abd29ef5a3d236528f714f5871a615d2ce0cbc88f88becb7a3a15b93b9
+MISC ChangeLog-2015 2988 SHA256 8845fa88abd9f444415dc4fb34387f034a07a5e4e9f8dc1659ee870696baeee7 SHA512 7a5efe5e8653817477cc6c20bc2e0372ab0832e1ffe38b277b82e40dcbad8f59cf7d348de908fe7ff555e3a0aeba503960d221ea539cd13c93f5a0eefefaca98 WHIRLPOOL f5ccfad8160038a5e188465fdce0c80ef7a692e43e09fd8b0e3c2d2e1970de817cc814ece9d9f582bf14cfcb4687a8635e9ac0fed13a1a3ac197a4d55aa1e37b
+MISC metadata.xml 680 SHA256 6a342f9d4c9c50bc17da408fde5bfd48ef358be784ce48b2c48b6855d12d8f60 SHA512 4fdd3dba349b9f40cd4997c516352b3f84defb4f25827c64c10044145758919b20c67403d0503939f41fd600084f6553213fc0fbf823aa24e8450abac0055928 WHIRLPOOL d51221ed883c88a88263b94e9fc7a5cc48158f1f13d62a2f372b009a97478fd4462db586f0d0cef1e0f0b13308ff6018631cdce0389e341889ac3cfc036fb685
diff --git a/x11-misc/alock/alock-1.0.0.ebuild b/x11-misc/alock/alock-1.0.0.ebuild
new file mode 100644
index 000000000000..cdbbba3dd5be
--- /dev/null
+++ b/x11-misc/alock/alock-1.0.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils toolchain-funcs
+
+# we need this since there are no tagged releases yet
+DESCRIPTION="locks the local X display until a password is entered"
+HOMEPAGE="http://darkshed.net/projects/alock
+ https://github.com/mgumz/alock"
+SRC_URI="https://github.com/mgumz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc imlib pam"
+
+DEPEND="x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXpm
+ x11-libs/libXrender
+ x11-libs/libXcursor
+ imlib? ( media-libs/imlib2[X] )
+ pam? ( virtual/pam )
+ doc? ( app-text/asciidoc )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/implicit_pointer_conversion_fix_amd64.patch
+ epatch "${FILESDIR}"/check-setuid.patch
+ epatch "${FILESDIR}"/tidy-printf.patch
+ epatch "${FILESDIR}"/fix-aliasing.patch
+ epatch "${FILESDIR}"/no-xf86misc.patch
+ eapply_user
+}
+
+src_configure() {
+ tc-export CC
+
+ econf \
+ --prefix=/usr \
+ --with-all \
+ $(use_with pam) \
+ $(use_with imlib imlib2)
+}
+
+src_compile() {
+ # xmlto isn't required, so set to 'true' as dummy program
+ # alock.1 is suitable for a manpage
+ emake XMLTO=true
+}
+
+src_install() {
+ dobin src/alock
+ if use doc; then
+ # We need to generate the manpage...
+ a2x -d manpage -f manpage ./"${PN}".txt || die "a2x conversion failed."
+ doman alock.1
+ dodoc {CHANGELOG,README,TODO}.txt
+ fi
+
+ insinto /usr/share/alock/xcursors
+ doins contrib/xcursor-*
+
+ insinto /usr/share/alock/bitmaps
+ doins bitmaps/*
+
+ if ! use pam; then
+ # Sets suid so alock can correctly work with shadow
+ fperms 4755 /usr/bin/alock
+ fi
+}
diff --git a/x11-misc/alock/files/check-setuid.patch b/x11-misc/alock/files/check-setuid.patch
new file mode 100644
index 000000000000..d29beb072950
--- /dev/null
+++ b/x11-misc/alock/files/check-setuid.patch
@@ -0,0 +1,31 @@
+--- a/src/auth_pam.c
++++ b/src/auth_pam.c
+@@ -138,7 +138,12 @@
+
+ /* we can be installed setuid root to support shadow passwords,
+ and we don't need root privileges any longer. --marekm */
+- setuid(getuid());
++ int retval;
++ retval = setuid(getuid());
++ /* if setuid's return value isn't checked, it's a security issue */
++ if (retval != 0) {
++ return 0;
++ }
+
+ return 1;
+ }
+--- a/src/auth_passwd.c
++++ a/src/auth_passwd.c
+@@ -68,7 +68,11 @@
+
+ /* we can be installed setuid root to support shadow passwords,
+ and we don't need root privileges any longer. --marekm */
+- setuid(getuid());
++ int retval;
++ retval = setuid(getuid());
++ if (retval != 0) {
++ return 0;
++ }
+
+ if (strlen(pwd_entry->pw_passwd) < 13) {
+ perror("password entry has no pwd\n");
diff --git a/x11-misc/alock/files/fix-aliasing.patch b/x11-misc/alock/files/fix-aliasing.patch
new file mode 100644
index 000000000000..a4462c256943
--- /dev/null
+++ b/x11-misc/alock/files/fix-aliasing.patch
@@ -0,0 +1,23 @@
+--- a/src/auth_sha2.c
++++ b/src/auth_sha2.c
+@@ -511,7 +517,8 @@
+ *context->buffer = 0x80;
+ }
+ /* Set the bit count: */
+- *(u_int64_t *)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
++ /* Use memcpy so we're not casting or aliasing */
++ memcpy(&context->buffer[SHA256_SHORT_BLOCK_LENGTH], &context->bitcount, sizeof (context->bitcount));
+
+ /* Final transform: */
+ sha256_transform(context, context->buffer);
+@@ -789,8 +796,8 @@
+ *context->buffer = 0x80;
+ }
+ /* Store the length of input data (in bits): */
+- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
+- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
++ memcpy(&context->buffer+SHA512_SHORT_BLOCK_LENGTH, &context->bitcount+1, sizeof (context->bitcount+1));
++ memcpy(&context->buffer+SHA512_SHORT_BLOCK_LENGTH+8, &context->bitcount, sizeof (context->bitcount));
+
+ /* Final transform: */
+ sha512_transform(context, context->buffer);
diff --git a/x11-misc/alock/files/implicit_pointer_conversion_fix_amd64.patch b/x11-misc/alock/files/implicit_pointer_conversion_fix_amd64.patch
new file mode 100644
index 000000000000..1184ee73a612
--- /dev/null
+++ b/x11-misc/alock/files/implicit_pointer_conversion_fix_amd64.patch
@@ -0,0 +1,13 @@
+Index: alock-svn-94/src/auth_passwd.c
+===================================================================
+--- alock-svn-94.orig/src/auth_passwd.c
++++ alock-svn-94/src/auth_passwd.c
+@@ -43,7 +43,7 @@
+ \* ---------------------------------------------------------------- */
+
+ static struct passwd* pwd_entry = NULL;
+-
++char * crypt (const char *key, const char *salt);
+ static int alock_auth_passwd_init(const char* args) {
+
+ errno = 0;
diff --git a/x11-misc/alock/files/no-xf86misc.patch b/x11-misc/alock/files/no-xf86misc.patch
new file mode 100644
index 000000000000..7ce3326000f8
--- /dev/null
+++ b/x11-misc/alock/files/no-xf86misc.patch
@@ -0,0 +1,129 @@
+--- a/configure
++++ b/configure
+@@ -163,44 +163,6 @@
+ exit 1
+ }
+
+-check_xf86misc() {
+-
+- cat << EOF > tmp.c
+-#include <X11/Xlib.h>
+-#include <X11/extensions/xf86misc.h>
+-int main() {
+- XF86MiscSetGrabKeysState(NULL, True);
+- return 0;
+-}
+-EOF
+- msg_chkfor "extensions/xf86misc.h"
+- if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
+- then
+- echo "ok."
+- msg_chkfor "xf86misc"
+- if ${CC} ${CFLAGS} tmp.c -o /dev/null ${LDFLAGS} -lX11 -lXxf86misc 2>&3
+- then
+- echo "ok."
+- echo "#_______________________" >&4
+- echo "WITH_XF86MISC:=1" >&4
+- echo "LIBS += -lXxf86misc" >&4
+- echo "" >&4
+- return
+- fi
+- fi
+- echo "no."
+- echo " "
+- echo "!!! WARNING !!!"
+- echo " if the xserver is configured to allow"
+- echo " 'AllowDeactivateGrabs' or 'AllowClosedownGrabs'"
+- echo " people can bypass alock !!! consider"
+- echo " to install the xf86misc extension!"
+- echo "!!! WARNING !!!"
+- echo " "
+-}
+-
+-
+-
+
+ check_xlib() {
+
+@@ -431,7 +393,6 @@
+ check_docs
+ check_tools
+ check_xlib
+-check_xf86misc
+ check_xlogo16
+ [ "$CHECK_XPM" -eq 1 ] && check_xpm
+ [ "$CHECK_XRENDER" -eq 1 ] && check_xrender
+--- a/src/GNUmakefile
++++ b/src/GNUmakefile
+@@ -46,7 +46,7 @@
+
+ ######################
+
+-MODULES = PAM PASSWD HASH XRENDER XCURSOR XF86MISC IMLIB2 XPM
++MODULES = PAM PASSWD HASH XRENDER XCURSOR IMLIB2 XPM
+ STAND_ALONES = $(subst auth_,,$(SRC_HASH:.c=))
+
+ $(foreach module,$(MODULES),$(eval $(call funcAddModule,$(module))))
+--- a/src/alock.c
++++ b/src/alock.c
+@@ -24,10 +24,6 @@
+ #include <unistd.h>
+ #include <poll.h>
+
+-#ifdef HAVE_XF86MISC
+-#include <X11/extensions/xf86misc.h>
+-#endif
+-
+ /*----------------------------------------------*\
+ \*----------------------------------------------*/
+
+@@ -405,11 +401,6 @@
+ struct aXInfo xinfo;
+ struct aOpts opts;
+
+-#if HAVE_XF86MISC
+- int xf86misc_major = -1;
+- int xf86misc_minor = -1;
+-#endif
+-
+ int arg = 0;
+ const char* cursor_args = NULL;
+ const char* background_args = NULL;
+@@ -587,23 +578,6 @@
+ }
+ }
+
+-#if HAVE_XF86MISC
+- {
+- if (XF86MiscQueryVersion(xinfo.display, &xf86misc_major, &xf86misc_minor) == True) {
+-
+- if (xf86misc_major >= 0 &&
+- xf86misc_minor >= 5 &&
+- XF86MiscSetGrabKeysState(xinfo.display, False) == MiscExtGrabStateLocked) {
+-
+- printf("%s", "alock: cant disable xserver hotkeys to remove grabs.\n");
+- exit(EXIT_FAILURE);
+- }
+-
+- printf("%s", "disabled AllowDeactivateGrabs and AllowClosedownGrabs\n.");
+- }
+- }
+-#endif
+-
+ /* TODO: think about it: do we really need NR_SCREEN cursors ? we grab the
+ * pointer on :*.0 anyway ... */
+ if (XGrabPointer(xinfo.display, xinfo.window[0], False, None,
+@@ -621,13 +595,6 @@
+ opts.cursor->deinit(&xinfo);
+ opts.background->deinit(&xinfo);
+
+-#if HAVE_XF86MISC
+- if (xf86misc_major >= 0 && xf86misc_minor >= 5) {
+- XF86MiscSetGrabKeysState(xinfo.display, True);
+- XFlush(xinfo.display);
+- }
+-#endif
+-
+ XCloseDisplay(xinfo.display);
+
+ return EXIT_SUCCESS;
diff --git a/x11-misc/alock/files/tidy-printf.patch b/x11-misc/alock/files/tidy-printf.patch
new file mode 100644
index 000000000000..06a8a37ba7df
--- /dev/null
+++ b/x11-misc/alock/files/tidy-printf.patch
@@ -0,0 +1,23 @@
+--- a/src/cursor_xcursor.c
++++ a/src/cursor_xcursor.c
+@@ -37,17 +37,17 @@
+ return 0;
+
+ if (!args || strlen(args) < 13) {
+- printf("%s", "alock: error, missing arguments for [xcursor].\n");
++ printf("alock: error, missing arguments for [xcursor].\n");
+ return 0;
+ }
+
+ if (strstr(args, "xcursor:") != args || strstr(&args[8], "file=") != &args[8]) {
+- printf("%s", "alock: error, wrong arguments for [xcursor].\n");
++ printf("alock: error, wrong arguments for [xcursor].\n");
+ return 0;
+ }
+
+ if (!(cursor = XcursorFilenameLoadCursor(xinfo->display, &args[13]))) {
+- printf("%s", "alock: error, couldnt load [%s]\n", &args[13]);
++ printf("alock: error, couldnt load [%s]\n", &args[13]);
+ return 0;
+ }
+
diff --git a/x11-misc/alock/metadata.xml b/x11-misc/alock/metadata.xml
new file mode 100644
index 000000000000..f51dc2953b65
--- /dev/null
+++ b/x11-misc/alock/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zlg@gentoo.org</email>
+ <name>Daniel Campbell</name>
+ </maintainer>
+ <longdescription>
+ An extremely simple screen locking utility based on xtrlock. Supports
+ multiple hash-types, shadow passwords, and PAM.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <email>akira@fluxbox.org</email>
+ <name>Mathias Gumz</name>
+ </maintainer>
+ <remote-id type="github">mgumz/alock</remote-id>
+ </upstream>
+ <use>
+ <flag name="doc">Build and install manpage with <pkg>app-text/asciidoc</pkg>.</flag>
+ </use>
+</pkgmetadata>