From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- x11-misc/alock/Manifest | 10 ++ x11-misc/alock/alock-1.0.0.ebuild | 72 ++++++++++++ x11-misc/alock/files/check-setuid.patch | 31 +++++ x11-misc/alock/files/fix-aliasing.patch | 23 ++++ .../implicit_pointer_conversion_fix_amd64.patch | 13 +++ x11-misc/alock/files/no-xf86misc.patch | 129 +++++++++++++++++++++ x11-misc/alock/files/tidy-printf.patch | 23 ++++ x11-misc/alock/metadata.xml | 22 ++++ 8 files changed, 323 insertions(+) create mode 100644 x11-misc/alock/Manifest create mode 100644 x11-misc/alock/alock-1.0.0.ebuild create mode 100644 x11-misc/alock/files/check-setuid.patch create mode 100644 x11-misc/alock/files/fix-aliasing.patch create mode 100644 x11-misc/alock/files/implicit_pointer_conversion_fix_amd64.patch create mode 100644 x11-misc/alock/files/no-xf86misc.patch create mode 100644 x11-misc/alock/files/tidy-printf.patch create mode 100644 x11-misc/alock/metadata.xml (limited to 'x11-misc/alock') 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 +-#include +-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 + #include + +-#ifdef HAVE_XF86MISC +-#include +-#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 @@ + + + + + zlg@gentoo.org + Daniel Campbell + + + An extremely simple screen locking utility based on xtrlock. Supports + multiple hash-types, shadow passwords, and PAM. + + + + akira@fluxbox.org + Mathias Gumz + + mgumz/alock + + + Build and install manpage with app-text/asciidoc. + + -- cgit v1.2.3