Subject: Re: bug#26454: [PATCH 2/2] gnu: add emacs-exwm

From: Arun Isaac <[email-masked]>
Date: Sun, 16 Apr 2017 12:39:07 +0530

Feng Shu writes:

> Arun Isaac <[email-masked]> writes:
>
>> You should be able to do this just using #:make-flags. See
>> https://www.gnu.org/software/make/manual/html_node/Overriding.html
>
> emacs-build-system seem to have no #:make-flags, I just use
> "make var1=var1 all" instead.

Ah, yes. I forgot!

> the rest have been fixed, thanks!
>
> the below is new patch:

I'm not able to apply your patch. Could you send the patches made
against the latest master? Thanks!

> +    (arguments
> +     `(#:emacs ,emacs
> +       #:phases
> +       ;; Generate .el files from the XML description of the XCB bindings.
> +       ;; This will be adjusted when xelb developer comment in issue page:
> +       ;; https://github.com/ch11ng/xelb/issues/16
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'regenerate-el-files
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (zero? (system* "make"
> +                             (string-append "PROTO_PATH="
> +                                            (assoc-ref inputs "xcb-proto")
> +                                            "/share/xcb")
> +                             (string-append "EMACS_BIN="
> +                                            (assoc-ref inputs "emacs")
> +                                            "/bin/emacs -Q")
> +                             "all")))))))

"all" is the default target, isn't it? In the interest of brevity, you
can drop it.

> +    (native-inputs `(("xcb-proto" ,xcb-proto)))
> +    (home-page "https://github.com/ch11ng/xelb")
> +    (synopsis "X protocol Emacs Lisp Binding")
> +    (description "@code{emacs-xelb} is a pure Emacs Lisp implementation
> +of the X11 protocol based on the XML description files from the XCB
> +project. It features an object-oriented API and permits a certain degree
> +of concurrency. It should enable you to implement low-level X11 applications.")

There should be two spaces after the full stop '.' at the end of a
sentence. Do run through 'guix lint'. It will warn you about this.

> +(define-public emacs-exwm
> +  (package
> +    (name "emacs-exwm")
> +    (version "0.13-3.7a5bb11")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/ch11ng/exwm")
> +                    (commit "7a5bb1156d07848e465f55fd31f8ec755b52aa01")))
> +              (file-name (string-append name "-" version "-checkout"))
> +              (sha256
> +               (base32
> +                "0cbaq2ls8pivz4h8hwgn9ldvg16pwlisdf047civvilqiqczw31w"))))
> +    (build-system emacs-build-system)
> +    (propagated-inputs
> +     `(("emacs-xelb" ,emacs-xelb)))
> +    (inputs
> +     `(("xhost" ,xhost)
> +       ("dbus" ,dbus)))
> +    ;; The following functions and variables needed by emacs-exwm are
> +    ;; not included in emacs-minimal:
> +    ;; scroll-bar-mode, fringe-mode
> +    ;; x-display-pixel-width x-display-pixel-height
> +    (arguments
> +     `(#:emacs ,emacs
> +       #:phases
> +       ;; Generate .el files from the XML description of the XCB bindings.
> +       ;; This will be adjusted when xelb developer comment in issue page:
> +       ;; https://github.com/ch11ng/xelb/issues/16

This comment is only for emacs-xelb, and shouldn't be here, right?

Everything else LGTM. Please send one last patch set. There may be a few
more minor corrections. I'll make them and push. I'm eager to try out
exwm. I didn't know about it before your patch. Thank you! :-)