unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Christopher Lemmer Webber <cwebber@dustycloud.org>
To: Pierre Langlois <pierre.langlois@gmx.com>
Cc: 33772@debbugs.gnu.org, Alex Kost <alezost@gmail.com>
Subject: bug#33772: StumpWM broken commands?
Date: Wed, 19 Dec 2018 08:42:35 -0500	[thread overview]
Message-ID: <87d0px7hv8.fsf@dustycloud.org> (raw)
In-Reply-To: <cubmup2ttga.fsf@gmx.com>

Pierre Langlois writes:

> Alex Kost writes:
>
>> Pierre Langlois (2018-12-18 17:34 +0000) wrote:
>>
>>> Hello!
>>>
>>> Christopher Lemmer Webber writes:
>>>
>>>> Ludovic Courtès writes:
>>>>
>>>>> Hi,
>>>>>
>>>>> Christopher Lemmer Webber <cwebber@dustycloud.org> skribis:
>>>>>
>>>>>> It seems to me that StumpWM broke somehow, for some reason.  I can
>>>>>> confirm there was a version change:
>>>>>>
>>>>>> -sbcl-stumpwm@18.05:out        /gnu/store/i0picr2xr2aq2a52nsaw67nvar1r3khw-sbcl-stumpwm-18.05
>>>>>> +sbcl-stumpwm@18.11:out        /gnu/store/6h2iln76dx8pxdp1hsaqb1yncm8viczj-sbcl-stumpwm-18.11
>>>>>>
>>>>>> I am not sure if this is the cause or something else.  At any rate, when
>>>>>> I try to run commands such as "gnew" (the command to make a new
>>>>>> group/workstation) I get back:
>>>>>>
>>>>>>   Error In Command 'gnew': invalid number of arguments: 2
>>>>>>
>>>>>> I though I'd try running the command manually and check the error, but
>>>>>> this also happens with eval!  Some other commands are not affected.
>>>>>>
>>>>>> (I can try re-enabling the live REPL in StumpWM to play around with it,
>>>>>> but I currently have it off because they have the same live hacking
>>>>>> vulnerability in SBCL/SLIME that we had in Guile/Geiser some time ago.)
>>>>>
>>>>> Pierre, does that ring a bell?
>>>>>
>>>>> Others on the mailing list reported being happy with the upgrade, but
>>>>> maybe they use different bits of StumpWM.
>>>
>>> Ah yes, I can reproduce this :-/. Both in GuixSD and with Guix on top of
>>> ArchLinux.  The 'gnew' command does work if you pass it the name of the
>>> new group as an argument, that's why I didn't notice this.  It should
>>> interactively ask for a name if you don't pass one so that's still a
>>> regression.
>>>
>>> Maybe that's a bug upstream? It would be good to try StumpWM 18.11 on
>>> another distribution to see if this is specific to Guix. I cannot
>>> install it on ArchLinux though at the moment.
>>
>> I use StumpWM from git checkout (not from Guix) and I don't reproduce
>> this problem.  When I run "gnew", it asks me for a group name and
>> creates a new group without any problem.
>>
>> I have built stumpwm from the latest commit (which is one commit after
>> 18.11 release) and tried it on GuixSD and on ArchLinux.  Works for me
>> on both systems, so it's probably not an upstream bug.
>
> Hi Alex,
>
> I was investigating just now and thought I'd try that one commit that
> was pushed after the release. The description doesn't sound like it
> would fix the problem but it was easy to try that.  But it looks like it
> does fix the problem!
>
> Can you confirm the attached patch works for you?
>
>From 735bda15874bdb9209c171ae2b1a99256763697d Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois@gmx.com>
> Date: Tue, 18 Dec 2018 21:17:16 +0000
> Subject: [PATCH] gnu: stumpwm: Fix gnew command.
>
> The new release of StumpWM broken the interactive 'gnew' command.  It was
> fixed upstream [0] and will be part of the next release.
>
> 0: https://github.com/stumpwm/stumpwm/pull/538
>
> * gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch: New file.
> * gnu/packages/lisp.scm (stumpwm)[source]: Use it.
> * gnu/local.mk (dist_patch_DATA): Register it.
> ---
>  gnu/local.mk                                  |  1 +
>  gnu/packages/lisp.scm                         |  4 +-
>  .../stumpwm-fix-broken-read-one-line.patch    | 45 +++++++++++++++++++
>  3 files changed, 49 insertions(+), 1 deletion(-)
>  create mode 100644 gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 0d60e9b75..8e1ce88bc 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1174,6 +1174,7 @@ dist_patch_DATA =						\
>    %D%/packages/patches/swish-e-search.patch			\
>    %D%/packages/patches/swish-e-format-security.patch		\
>    %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch 	\
> +  %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch	\
>    %D%/packages/patches/t1lib-CVE-2010-2642.patch		\
>    %D%/packages/patches/t1lib-CVE-2011-0764.patch		\
>    %D%/packages/patches/t1lib-CVE-2011-1552+.patch		\
> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
> index d8da2951d..e4669e34f 100644
> --- a/gnu/packages/lisp.scm
> +++ b/gnu/packages/lisp.scm
> @@ -976,7 +976,9 @@ from other CLXes around the net.")
>                      version ".tar.gz"))
>                (sha256
>                 (base32 "177gxfk4c127i9crghx6fmkipznhgylvzgnjb2pna38g21gg6s39"))
> -              (file-name (string-append "stumpwm-" version ".tar.gz"))))
> +              (file-name (string-append "stumpwm-" version ".tar.gz"))
> +              (patches
> +               (search-patches "stumpwm-fix-broken-read-one-line.patch"))))
>      (build-system asdf-build-system/sbcl)
>      (native-inputs `(("fiasco" ,sbcl-fiasco)))
>      (inputs `(("cl-ppcre" ,sbcl-cl-ppcre)
> diff --git a/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch b/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
> new file mode 100644
> index 000000000..f8dac6130
> --- /dev/null
> +++ b/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
> @@ -0,0 +1,45 @@
> +From a13db62a4da06426cf2eb2376d1a3723b5ee52d5 Mon Sep 17 00:00:00 2001
> +From: Vasily Postnicov <shamaz.mazum@gmail.com>
> +Date: Fri, 14 Dec 2018 20:01:53 +0300
> +Subject: [PATCH] READ-ONE-LINE: Turn COMPLETIONS into a keyword argument
> +
> +This keeps READ-ONE-line backwards compatible to changes prior
> +dae0422811771d179077b9336618f2b19be85b7b. Currently both
> +ARGUMENT-POP-OR-READ and ARGUMENT-POP-REST-OR-READ are still being
> +called with the previous lambda list. Update the calls to the
> +READ-ONE-LINE that used the 'new' lambda list, COMPLETING-READ and
> +YES-OR-NO-P.
> +
> +Closes #538
> +---
> + input.lisp | 8 ++++++--
> + 1 file changed, 6 insertions(+), 2 deletions(-)
> +
> +diff --git a/input.lisp b/input.lisp
> +index b698a368..7904b35f 100644
> +--- a/input.lisp
> ++++ b/input.lisp
> +@@ -307,10 +307,13 @@ passed the substring to complete on and is expected to return a list
> + of matches. If require-match argument is non-nil then the input must
> + match with an element of the completions."
> +   (check-type completions (or list function symbol))
> +-  (let ((line (read-one-line screen prompt completions :initial-input initial-input :require-match require-match)))
> ++  (let ((line (read-one-line screen prompt
> ++                             :completions completions
> ++                             :initial-input initial-input
> ++                             :require-match require-match)))
> +     (when line (string-trim " " line))))
> + 
> +-(defun read-one-line (screen prompt completions &key (initial-input "") require-match password)
> ++(defun read-one-line (screen prompt &key completions (initial-input "") require-match password)
> +   "Read a line of input through stumpwm and return it. Returns nil if the user aborted."
> +   (let ((*input-last-command* nil)
> +         (*input-completions* completions)
> +@@ -842,6 +845,7 @@ user presses 'y'"
> + user presses 'yes'"
> +   (loop for line = (read-one-line (current-screen)
> +                                   (format nil "~a(yes or no) " message)
> ++                                  :completions
> +                                   '("yes" "no"))
> +         until (find line '("yes" "no") :test 'string-equal)
> +         do (message "Please answer yes or no")

I haven't tried it yet but it makes a lot of sense that this would fix
it.  Both gnew and eval interactively pull up a request for a line of
input.

  reply	other threads:[~2018-12-19 13:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-16 19:05 bug#33772: StumpWM broken commands? Christopher Lemmer Webber
2018-12-18 11:18 ` Ludovic Courtès
2018-12-18 14:47   ` Christopher Lemmer Webber
2018-12-18 17:34     ` Pierre Langlois
2018-12-18 18:57       ` Christopher Lemmer Webber
2018-12-19 10:37         ` Ludovic Courtès
2018-12-18 21:23       ` Alex Kost
2018-12-18 21:29         ` Pierre Langlois
2018-12-19 13:42           ` Christopher Lemmer Webber [this message]
2018-12-19 14:49             ` Christopher Lemmer Webber
2018-12-19 14:56               ` Pierre Langlois
2019-12-24  1:58                 ` Brett Gilio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d0px7hv8.fsf@dustycloud.org \
    --to=cwebber@dustycloud.org \
    --cc=33772@debbugs.gnu.org \
    --cc=alezost@gmail.com \
    --cc=pierre.langlois@gmx.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).