guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#27083] screen-lockers: i3lock-color and i3lock-fancy


From: ng0
Subject: [bug#27083] screen-lockers: i3lock-color and i3lock-fancy
Date: Fri, 17 Nov 2017 20:17:05 +0000

New version appended. i3lock-fancy needs some fixes, but I can confirm
that i3lock-color works!

ng0 transcribed 12K bytes:
> Hi Chris,
> 
> thanks for your input. I think I was just stuck by too many
> repetive attempts. Thanks for a fresh view :)
> I'll send applied changes as soon as I can (probably next week).
> 
> Chris Marusich transcribed 11K bytes:
> > <address@hidden> writes:
> > 
> > > I have no idea about the error of i3lock-fancy (password is not
> > > accepted).  An commented phase in i3lock-color is still included where
> > > I tried to fix this, but I don't know much about PAM at this point.
> > 
> > When I checked using "guix system vm", the reason i3lock refused to
> > accept the password was because it could not read /etc/shadow.  One
> > solution to this problem is to do both of the following:
> > 
> > 1) Do not wrap i3lock in a wrapper script.
> > 
> > 2) Install the i3lock executable as setuid-root.
> 
> Oh, 2 was what I was thinking of that might fix
> it. I just had no time to test it.
> 
> > When installing i3lock as a setuid-root program, it is important not to
> > wrap it in a script.  It is common in UNIX-like systems to ignore the
> > setuid bit when the program is an interpreted script instead of an
> > executable (a simple Internet search for a phrase like "setuid bash
> > script" will provide lots of supporting information about this).  If you
> > do (2) without also removing the wrapping logic that you put into the
> > package definition, you will find that i3lock still rejects your
> > password - this is because it still can't read /etc/shadow.
> > 
> > The attached patch is a revised version of your first patch to add
> > i3lock-color.  I have basically just removed the wrapping phase.  To
> > install it setuid-root along with an appropriate PAM configuration file,
> > just add a screen-locker service like the following to your services in
> > your operating system declaration:
> > 
> >     (screen-locker-service i3lock-color "i3lock")
> > 
> > Note that this will create an appropriate PAM configuration file at
> > /etc/pam.d/i3lock, so you don't need to bother messing around with the
> > PAM configuration file that comes with i3lock-color.
> > 
> > I haven't looked at the fancy version yet.  I'll check it out when I get
> > a little more time.
> 
> The fancy version is basically a fork with some more fancy visual elements.
> It should be similar.
> 
> > > +  %D%/packages/patches/hypre-doc-tables.patch                    \
> > > +  %D%/packages/patches/hypre-ldflags.patch                       \
> > 
> > Did you intend to include these in the patch?  They aren't used, so I've
> > removed them in my version of the patch.
> 
> Many weeks ago, I don't know what happened there.
> Maybe a mistake in rebase.
> 
> > > +---
> > > + Makefile | 7 +------
> > > + 1 file changed, 1 insertion(+), 6 deletions(-)
> > > +
> > > +diff --git a/Makefile b/Makefile
> > > +index c0fe888..b4b6cd9 100644
> > > +--- a/Makefile
> > > ++++ b/Makefile
> > > +@@ -6,11 +6,6 @@ SYSCONFDIR=/etc
> > > + PKG_CONFIG=pkg-config
> > > + MANDIR=/usr/share/man
> > > + 
> > > +-# Check if pkg-config is installed, we need it for building CFLAGS/LIBS
> > > +-ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1)
> > > +-$(error "$(PKG_CONFIG) was not found")
> > > +-endif
> > > +-
> > > + CFLAGS += -std=c99
> > > + CFLAGS += -pipe
> > > + CFLAGS += -Wall
> > > +@@ -18,7 +13,7 @@ CFLAGS += -O2
> > > + SIMD_CFLAGS += -funroll-loops
> > > + SIMD_CFLAGS += -msse2
> > > + CPPFLAGS += -D_GNU_SOURCE
> > > +-CPPFLAGS += -DXKBCOMPOSE=$(shell if test -e 
> > > /usr/include/xkbcommon/xkbcommon-compose.h ; then echo 1 ; else echo 0 ; 
> > > fi )
> > > ++CPPFLAGS += -DXKBCOMPOSE=1
> > > + CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite 
> > > xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > + LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-xinerama 
> > > xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > > + LIBS += -lpam
> > > +-- 
> > > +2.13.0
> > 
> > FYI, it looks like maybe we could probably remove this patch file
> > entirely, and just use substitute* to modify the Makefile, if we
> > provided the "which" program as an input.  Specifically, if the which
> > program were present, then probably the check you removed would
> > succeed.  I haven't tried it myself, though.
> 
> Okay, I will give it a try.
> 
> > > -;;; Copyright (c) 2016, 2017 ng0 <address@hidden>
> > > +;;; Copyright (c) 2016, 2017 ng0 <address@hidden>
> > 
> > FYI, the address@hidden email address is still mentioned in
> > multiple other files, too.
> 
> Yes. I'm only changing addresses once I touch the file. So old
> addresses might be in there for a long time. Otoh, I will
> prepare a patch and change all my header addresses.
> 
> > > +    (description
> > > +     "I3lock-color is a screen locker.  It is a re-patched version of
> > > +i3lock, which is a simple screen locker like slock.  Features include:
> > > +
> > > address@hidden
> > > address@hidden forking process, the locked screen is preserved when you 
> > > suspend from RAM
> > > address@hidden specify background color or PNG image to be displayed in 
> > > the lock screen
> > > address@hidden many additional color options
> > > address@hidden enumerate\n")
> > 
> > I'm not sure if the trailing newline is necessary.  Unless you beat me
> > to it, I'll check on this detail the next time I return to this thread.
> 
> I've seen this multiple times before and have just followed this style.
> 
> > -- 
> > Chris
> 
> > From 53edb9d43966ec9fbea8292608875d0c894adaea Mon Sep 17 00:00:00 2001
> > From: ng0 <address@hidden>
> > Date: Fri, 17 Nov 2017 01:38:14 -0800
> > Subject: [PATCH] gnu: Add i3lock-color.
> > 
> > * gnu/local.mk (dist_patch_DATA): Add i3lock-color-fix-makefile.patch.
> > * gnu/packages/patches/i3lock-color-fix-makefile.patch: New file.
> > * gnu/packages/wm.scm: Add i3lock-color.
> > 
> > Signed-off-by: Chris Marusich <address@hidden>
> > ---
> >  gnu/local.mk                                       |  1 +
> >  .../patches/i3lock-color-fix-makefile.patch        | 38 +++++++++++++
> >  gnu/packages/wm.scm                                | 66 
> > ++++++++++++++++++++++
> >  3 files changed, 105 insertions(+)
> >  create mode 100644 gnu/packages/patches/i3lock-color-fix-makefile.patch
> > 
> > diff --git a/gnu/local.mk b/gnu/local.mk
> > index 61bebe662..575d88506 100644
> > --- a/gnu/local.mk
> > +++ b/gnu/local.mk
> > @@ -738,6 +738,7 @@ dist_patch_DATA =                                       
> >         \
> >    %D%/packages/patches/hubbub-sort-entities.patch          \
> >    %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch        \
> >    %D%/packages/patches/hydra-disable-darcs-test.patch              \
> > +  %D%/packages/patches/i3lock-color-fix-makefile.patch          \
> >    %D%/packages/patches/icecat-avoid-bundled-libraries.patch        \
> >    %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch     \
> >    %D%/packages/patches/icu4c-CVE-2017-14952.patch          \
> > diff --git a/gnu/packages/patches/i3lock-color-fix-makefile.patch 
> > b/gnu/packages/patches/i3lock-color-fix-makefile.patch
> > new file mode 100644
> > index 000000000..8243dc548
> > --- /dev/null
> > +++ b/gnu/packages/patches/i3lock-color-fix-makefile.patch
> > @@ -0,0 +1,38 @@
> > +From eaca36ed78bafb82bd51a9e83c6445ef8f1698c8 Mon Sep 17 00:00:00 2001
> > +From: ng0 <address@hidden>
> > +Date: Mon, 22 May 2017 18:22:19 +0000
> > +Subject: [PATCH] This fix to the Makefile is required to make i3lock-color
> > + build on Guix.
> > +
> > +---
> > + Makefile | 7 +------
> > + 1 file changed, 1 insertion(+), 6 deletions(-)
> > +
> > +diff --git a/Makefile b/Makefile
> > +index c0fe888..b4b6cd9 100644
> > +--- a/Makefile
> > ++++ b/Makefile
> > +@@ -6,11 +6,6 @@ SYSCONFDIR=/etc
> > + PKG_CONFIG=pkg-config
> > + MANDIR=/usr/share/man
> > + 
> > +-# Check if pkg-config is installed, we need it for building CFLAGS/LIBS
> > +-ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1)
> > +-$(error "$(PKG_CONFIG) was not found")
> > +-endif
> > +-
> > + CFLAGS += -std=c99
> > + CFLAGS += -pipe
> > + CFLAGS += -Wall
> > +@@ -18,7 +13,7 @@ CFLAGS += -O2
> > + SIMD_CFLAGS += -funroll-loops
> > + SIMD_CFLAGS += -msse2
> > + CPPFLAGS += -D_GNU_SOURCE
> > +-CPPFLAGS += -DXKBCOMPOSE=$(shell if test -e 
> > /usr/include/xkbcommon/xkbcommon-compose.h ; then echo 1 ; else echo 0 ; fi 
> > )
> > ++CPPFLAGS += -DXKBCOMPOSE=1
> > + CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite xcb-xinerama 
> > xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > + LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-xinerama 
> > xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
> > + LIBS += -lpam
> > +-- 
> > +2.13.0
> > +
> > diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
> > index 09c10eaa0..3d5a0ef7a 100644
> > --- a/gnu/packages/wm.scm
> > +++ b/gnu/packages/wm.scm
> > @@ -66,6 +66,7 @@
> >    #:use-module (gnu packages gperf)
> >    #:use-module (gnu packages imagemagick)
> >    #:use-module (gnu packages lua)
> > +  #:use-module (gnu packages linux)
> >    #:use-module (gnu packages suckless)
> >    #:use-module (guix download)
> >    #:use-module (guix git-download))
> > @@ -333,6 +334,71 @@ and locate windows on all your workspaces, using an 
> > interactive dmenu
> >  prompt.")
> >        (license (license:non-copyleft 
> > "http://www.wtfpl.net/txt/copying/";)))))
> >  
> > +;; The last release is from 2015, use the git commit.
> > +(define-public i3lock-color
> > +  (let ((commit "275ff68f6a6b7985c65fbaac537f4c018b47942f")
> > +        (revision "1"))
> > +  (package
> > +    (name "i3lock-color")
> > +    (version (string-append "2.8-" revision "." (string-take commit 7)))
> > +    (source
> > +     (origin
> > +       (method git-fetch)
> > +       (uri (git-reference
> > +             (url "https://github.com/chrjguill/i3lock-color";)
> > +             (commit commit)))
> > +       (file-name (string-append name "-" version "-checkout"))
> > +       (snippet
> > +        ;; The Makefile is read-only, we are going to patch it.
> > +        '(chmod "Makefile" #o755))
> > +       (patches (search-patches "i3lock-color-fix-makefile.patch"))
> > +       (sha256
> > +        (base32
> > +         "1qhxqj1gwmf473b4b1bfqxdxiw1y6gq9rf97d77jc9s9z267fjm5"))))
> > +    (build-system gnu-build-system)
> > +    (arguments
> > +     `(#:tests? #f ; No tests included.
> > +       #:make-flags (list "CC=gcc")
> > +       #:phases
> > +       (modify-phases %standard-phases
> > +         (replace 'configure
> > +           (lambda* (#:key outputs #:allow-other-keys)
> > +             (let* ((out (assoc-ref outputs "out"))
> > +                    (man (string-append out "/share/man"))
> > +                    (etc (string-append out "/etc")))
> > +             (substitute* "Makefile"
> > +               (("PREFIX=/usr")
> > +                (string-append "PREFIX=" out))
> > +               (("SYSCONFDIR=/etc")
> > +                (string-append "SYSCONFDIR=" etc))
> > +               (("MANDIR=/usr/share/man")
> > +                (string-append "MANDIR=" man)))
> > +             #t))))))
> > +    (inputs
> > +     `(("xcb-util-image" ,xcb-util-image)
> > +       ("xcb-util-keysyms" ,xcb-util-keysyms)
> > +       ("xcb-util" ,xcb-util)
> > +       ("libxcb" ,libxcb)
> > +       ("linux-pam" ,linux-pam)
> > +       ("libev" ,libev)
> > +       ("libx11" ,libx11)
> > +       ("cairo" ,cairo)))
> > +    (native-inputs
> > +     `(("libxkbcommon" ,libxkbcommon)
> > +       ("pkg-config" ,pkg-config)))
> > +    (home-page "https://github.com/chrjguill/i3lock-color";)
> > +    (synopsis "Screenlocker with color configuration support")
> > +    (description
> > +     "I3lock-color is a screen locker.  It is a re-patched version of
> > +i3lock, which is a simple screen locker like slock.  Features include:
> > +
> > address@hidden
> > address@hidden forking process, the locked screen is preserved when you 
> > suspend from RAM
> > address@hidden specify background color or PNG image to be displayed in the 
> > lock screen
> > address@hidden many additional color options
> > address@hidden enumerate\n")
> > +    (license license:bsd-3))))
> > +
> >  (define-public xmonad
> >    (package
> >      (name "xmonad")
> > -- 
> > 2.14.2
> > 
> 
> 
> 
> 
> -- 
> GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> GnuPG: https://dl.n0.is/dist/keys/
>   WWW: https://we.make.ritual.n0.is



-- 
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://dl.n0.is/dist/keys/
  WWW: https://we.make.ritual.n0.is

Attachment: 0001-gnu-Add-i3lock-color.patch
Description: Text document

Attachment: 0002-gnu-Add-i3lock-fancy.patch
Description: Text document

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]