Subject: Re: [bug#42458] [PATCH] gnu: Add npiet.

From: Efraim Flashner <[email-masked]>
Date: Sat, 5 Sep 2020 22:51:59 +0300

On Thu, Sep 03, 2020 at 10:06:13PM -0600, Jesse Gibbons wrote:
> Hello again
> 
> On 8/19/20 1:09 AM, Efraim Flashner wrote:
> > Overall looks good, just a few changes before it can be merged:
> > 
> > On Mon, Jul 27, 2020 at 10:05:56PM -0600, Jesse Gibbons wrote:
> > > V2 attached.
> > > 
> > > On 7/25/20 9:30 AM, Marius Bakke wrote:
> > > > Jesse Gibbons <[email-masked]> writes:
> > > > 
> > > > > * gnu/packages/piet.scm: New file.
> > > > > * gnu/local.mk: Add it.
> > > > The patch seems to have been mangled so it does not apply.
> > > > 
> > > > It would be great if you could expand the description with information
> > > > about what the piet language is and why users would want to try it.
> > >  From 077214a6e13d770f70dfba2a7fe2faf40b1fbc56 Mon Sep 17 00:00:00 2001
> > > From: Jesse Gibbons <[email-masked]>
> > > Date: Mon, 20 Jul 2020 20:35:09 -0600
> > > Subject: [PATCH v2 1/1] gnu: Add npiet.
> > > 
> > > * gnu/packages/piet.scm: New file.
> > > * gnu/local.mk: Add it.
> > > ---
> > >   gnu/local.mk          |  1 +
> > >   gnu/packages/piet.scm | 60 +++++++++++++++++++++++++++++++++++++++++++
> > >   2 files changed, 61 insertions(+)
> > >   create mode 100644 gnu/packages/piet.scm
> > > 
> > > diff --git a/gnu/local.mk b/gnu/local.mk
> > > index 7bae1daf61..fc68786ab6 100644
> > > --- a/gnu/local.mk
> > > +++ b/gnu/local.mk
> > > @@ -425,6 +425,7 @@ GNU_SYSTEM_MODULES =				\
> > >     %D%/packages/photo.scm			\
> > >     %D%/packages/phabricator.scm 			\
> > >     %D%/packages/php.scm				\
> > > +  %D%/packages/piet.scm				\
> > >     %D%/packages/pkg-config.scm			\
> > >     %D%/packages/plotutils.scm			\
> > >     %D%/packages/poedit.scm				\
> > > diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm
> > > new file mode 100644
> > > index 0000000000..e82b2aa339
> > > --- /dev/null
> > > +++ b/gnu/packages/piet.scm
> > > @@ -0,0 +1,60 @@
> > > +;;; GNU Guix --- Functional package management for GNU
> > > +;;; Copyright © 2020 Jesse Gibbons <[email-masked]>
> > > +;;;
> > > +;;; This file is part of GNU Guix.
> > > +;;;
> > > +;;; GNU Guix is free software; you can redistribute it and/or modify it
> > > +;;; under the terms of the GNU General Public License as published by
> > > +;;; the Free Software Foundation; either version 3 of the License, or (at
> > > +;;; your option) any later version.
> > > +;;;
> > > +;;; GNU Guix is distributed in the hope that it will be useful, but
> > > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> > > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > > +;;; GNU General Public License for more details.
> > > +;;;
> > > +;;; You should have received a copy of the GNU General Public License
> > > +;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
> > > +
> > > +(define-module (gnu packages piet)
> > > +  #:use-module (guix packages)
> > > +  #:use-module (guix  download)
> > > +  #:use-module (guix build-system gnu)
> > > +  #:use-module (gnu packages gd)
> > > +  #:use-module (gnu packages groff)
> > > +  #:use-module (guix licenses))
> > > +
> > > +
> > > +(define-public npiet
> > > +  (package
> > > +    (name "npiet")
> > > +    (version "1.3e")
> > It seems 1.3f has come out in the meantime, can you update to the newer
> > version?
> > 
> > > +    (source (origin
> > > +              (method url-fetch)
> > > +              (uri
> > > +               (string-append
> > > +                "https://www.bertnase.de/npiet/npiet-"
> > > +                version ".tar.gz"))
> > > +              (sha256
> > > +               (base32
> > > +                "1i9ihbjmravid3h7wvns712axdl5xn398hk12pvzl79fs5kcf6g8"))))
> > > +    (build-system gnu-build-system)
> > > +    (inputs
> > > +     `(("gd" ,gd)))
> > Looking at the build output and the test output (and npiet --help) it
> > looks like it's missing giflib and libpng.
> > 
> > > +    (native-inputs `(("groff" ,groff)))
> > > +    (synopsis "Piet interpreter")
> > > +    (description
> > > +     "Npiet is an interpreter for the piet programming language.  Instead of
> > > +text, piet programs are pictures.  Commands are determined based on changes in
> > > +color.
> > > +
> > > +This package includes:
> > > +@enumerate
> > > +@item npiet, a piet interpreter with debugging capabilities
> > > +@item npiet-foogol, a program that builds a piet program from foogol, an
> > > +algol-like language
> > > +@item npietedit, an editor for the piet programming language
> > > +@end enumerate")
> > > +    (home-page "https://www.bertnase.de/npiet/")
> > > +    (license gpl2+)))
> > > +
> > > -- 
> > > 2.27.0
> > > 
> > Also, when running npietedit, the program complains about missing wish.
> > npietedit should be wrapped with tk, which provides the 'wish' binary.
> > 
> All of these objections have been fixed. See attached patch.
> 
> -Jesse
> 

> From 5e856c667c9763666cfd164735cd854c8dae7804 Mon Sep 17 00:00:00 2001
> From: Jesse Gibbons <[email-masked]>
> Date: Mon, 20 Jul 2020 20:35:09 -0600
> Subject: [PATCH v2 1/1] gnu: Add npiet.
> 
> * gnu/packages/piet.scm: New file.
> * gnu/local.mk: Add it.
> ---
>  gnu/local.mk          |  1 +
>  gnu/packages/piet.scm | 55 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 56 insertions(+)
>  create mode 100644 gnu/packages/piet.scm
> 
> diff --git a/gnu/local.mk b/gnu/local.mk
> index d2753f52ae..974d44e481 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -430,6 +430,7 @@ GNU_SYSTEM_MODULES =				\
>    %D%/packages/photo.scm			\
>    %D%/packages/phabricator.scm 			\
>    %D%/packages/php.scm				\
> +  %D%/packages/piet.scm				\
>    %D%/packages/pkg-config.scm			\
>    %D%/packages/plotutils.scm			\
>    %D%/packages/poedit.scm				\
> diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm
> new file mode 100644
> index 0000000000..a70089a481
> --- /dev/null
> +++ b/gnu/packages/piet.scm
> @@ -0,0 +1,55 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2020 Jesse Gibbons <[email-masked]>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages piet)
> +       #:use-module (guix packages)
> +       #:use-module (guix  download)
> +       #:use-module (guix build-system gnu)
> +       #:use-module (gnu packages gd)
> +       #:use-module (gnu packages groff)
> +       #:use-module (gnu packages image)
> +       #:use-module (gnu packages tcl)
> +       #:use-module (guix licenses))
> +
> +
> +(define-public npiet
> +  (package
> +    (name "npiet")
> +    (version "1.3f")
> +    (source (origin
> +              (method url-fetch)
> +              (uri
> +               (string-append
> +                "https://www.bertnase.de/npiet/npiet-"
> +                version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0nl59fhdqqr7nslxdirdn8nvlq5wws67c7jyx2ckbmxbc9h8bv9d"))))
> +    (build-system gnu-build-system)

I added the following to wrap npietedit with wish.

    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'install 'wrap-binaries
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (wrap-program (string-append out "/bin/npietedit")
                 `("PATH" ":" prefix (,(dirname (which "wish")))))
               #t))))))

> +    (inputs
> +     `(("gd" ,gd)
> +       ("tk" ,tk)
> +       ("giflib" ,giflib)
> +       ("libpng" ,libpng)))
> +    (native-inputs `(("groff" ,groff)))
> +    (synopsis "Piet interpreter")
> +    (description
> +     "An interpreter for the piet programming language")
> +    (home-page "https://www.bertnase.de/npiet/")
> +    (license gpl2+)))
> +
> -- 
> 2.28.0
> 

I also re-added the description that you had earlier and ordered the
inputs alphabetically.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted