Subject: [bug#50740] [PATCH] gnu: Add wmname.

From: Sarah Morgensen <[email-masked]>
Date: Wed, 22 Sep 2021 16:42:09 -0700

Hello,

Thanks for your patch.  I have a couple small suggestions, but otherwise it looks
good to me!

Alexandru-Sergiu Marton <[email-masked]> writes:

> * gnu/packages/suckless.scm (wmname): New variable.
> ---
>  gnu/packages/suckless.scm | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
>
> diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
> index b24eced379..314d8d5e44 100644
> --- a/gnu/packages/suckless.scm
> +++ b/gnu/packages/suckless.scm
> @@ -488,6 +488,36 @@ few minutes.")
>      (home-page "https://tools.suckless.org/sent")
>      (license license:x11)))
>  
> +(define-public wmname
> +  (package
> +    (name "wmname")
> +    (version "0.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://dl.suckless.org/tools/wmname-"
> +                           version ".tar.gz"))
> +       (sha256
> +        (base32 "1i82ilhbk36hspc2j0fbpg27wjj7xnvzpv1ppgf6fccina4d36jm"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f

Please always comment "#:tests? #f", even if it's just "no test
suite"/"no tests".

> +       #:make-flags
> +       (list (string-append "CC=" ,(cc-for-target))
> +             (string-append "PREFIX=" %output))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)))) ; No configure script
> +    (inputs
> +     `(("libx11" ,libx11)))
> +    (home-page "https://tools.suckless.org/x/wmname/")
> +    (synopsis "Print or set the window manager name")
> +    (description "wmname prints/sets the window manager name property of the
> +root window similar to how hostname(1) behaves.  It is useful for fixing
> +problems with JDK versions and other broken programs assuming a reparenting
> +window manager for instance.")

Consider:

    (description "@command{wmname} prints/sets the window manager name
property of the root window, similar to how @command{hostname} behaves.  It is
useful for fixing problems with JDK versions and other broken programs, such
as those which assume a reparenting window manager.")

> +    (license license:x11)))

Though the license header *says* "MIT/X Consortium", the actual license
text looks like expat to me [0].

* Package review checklist (WIP)
Lack of a check is not proof of noncompliance.

1. [ ] Package builds (guix build package)
     [X] x86_64  [ ] aarch64  [ ] armhf     [ ] powerpc64le
     [ ] i686    [ ] i586     [ ] mips64le
2. [ ] Build is reproducible (guix build --rounds=n package)
3. [ ] Tests enabled (if available) or disabled with in-source comment
4. [ ] No extraneous dependencies (guix size package)
5. [ ] No unnecessary pre-built binaries/blobs
6. [ ] Dependencies unvendored when available in Guix
7. [ ] Cross-compile friendly (cc-for-target, patches with inputs)
8. [ ] License matches source
9. [ ] No problematic lints (guix lint package)
10. [ ] Formatting follows guidelines
    - [ ] Lines wrap at 80 characters
    - [ ] Indentation passes etc/indent-code.el
    - [ ] Two spaces used between sentences

For new packages:
1. [ ] Source url is robust
   * mirror:// used with url-fetch when possible
   * No auto-generated archives from source repo (prefer cloning)
2. [ ] Synopsis is short, descriptive, and meaningful to a wide audience
3. [ ] Description is objective, takes 5-10 lines, uses full sentences,
   and provides the information users need to decide whether the
   software fits their needs.

[0] https://en.wikipedia.org/wiki/MIT_License

--
Sarah