Subject: [bug#53583] [PATCH] gnu: Add ncdu-ng.

From: phodina <[email-masked]>
Date: Sun, 06 Feb 2022 07:19:48 +0000

Hi Efraim,

Sent with ProtonMail Secure Email.

------- Original Message -------

On Tuesday, February 1st, 2022 at 12:03 PM, Efraim Flashner <[email-masked]> wrote:

> On Thu, Jan 27, 2022 at 02:22:58PM +0000, phodina via Guix-patches via wrote:
>
> > Hello,
> >
> > here is a patch for the ncdu. As version 2.0.* are based on Zig I decided to create a new variable instead of updating the old one.
> >
> > FIY this is my first encounter with Zig and I just briefly swept through the documentation and I don't know if cross-compilation won't be an issue since the previous versions are just plain C.
> >
> > If you think there is no need to do this and we can just simply update let me know and I'll send updated patch.
>
> I also packaged ncdu@2 locally, to try out packaging a zig program. I
>
> was unable to build zig for aarch64 due to the memory requirements
>
> during the linking stage, so for now I agree it makes sense to have a
>
> separate zig version and not just upgrade to the new version.
>
> Also I'm attaching my copy if you want to take a look and see about
>
> merging the two.
>
> > Petr
>
> > From 3e6ad4ef4f928314bd69cae18a05be317e1b26ab Mon Sep 17 00:00:00 2001
> >
> > From: Petr Hodina [email-masked]
> >
> > Date: Thu, 27 Jan 2022 14:56:39 +0100
> >
> > Subject: [PATCH] gnu: Add ncdu-ng.
> >
> > -   gnu/packages/ncdu.scm (ncdu-ng): New variable.
> >
> > diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
> >
> > index d6e4522bf0..01084976f0 100644
> >
> > --- a/gnu/packages/ncdu.scm
> >
> > +++ b/gnu/packages/ncdu.scm
> >
> > @@ -1,6 +1,7 @@
> >
> > ;;; GNU Guix --- Functional package management for GNU
> >
> > ;;; Copyright © 2014 John Darrington [email-masked]
> >
> > ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice [email-masked]
> >
> > +;;; Copyright © 2022 Petr Hodina [email-masked]
> >
> > ;;;
> >
> > ;;; This file is part of GNU Guix.
> >
> > ;;;
> >
> > @@ -20,8 +21,10 @@
> >
> > (define-module (gnu packages ncdu)
> >
> > #:use-module (gnu packages)
> >
> > #:use-module (gnu packages ncurses)
> >
> > -   #:use-module (gnu packages zig)
> >
> >     #:use-module (guix licenses)
> >
> >     #:use-module (guix packages)
> > -   #:use-module (guix utils)
> >
> >     #:use-module (guix download)
> >
> >     #:use-module (guix build-system gnu))
> >
> > @@ -49,3 +52,32 @@ (define-public ncdu
> >
> > (string-append "https://g.blicky.net/ncdu.git/plain/COPYING?id=v"
> >
> > version)))
> >
> > (home-page "https://dev.yorhel.nl/ncdu")))
> >
> > +
> >
> > +(define-public ncdu-ng
> >
> > -   (package
> > -   (inherit ncdu)
> > -   (name "ncdu-ng")
> > -   (version "2.0.1")
> > -   (source (origin
> > -                (method url-fetch)
> >
> >
> > -                (uri (string-append "https://dev.yorhel.nl/download/ncdu-"
> >
> >
> > -                                    version ".tar.gz"))
> >
> >
> > -                (sha256
> >
> >
> > -                 (base32
> >
> >
> > -                  "0j3w8xixz1zkzcpk0xrh6y3r7sii3h3y31lbvs5iqc5q7q6day9g"))))
> >
> >
> > -   (arguments
> > -       `(#:tests? #f
> >
> >
> > -         #:make-flags
> >
> >
> > -         (list (string-append "PREFIX="
> >
> >
> > -                              (assoc-ref %outputs "out"))
> >
> >
> > -               ,(string-append "CC="
> >
> >
> > -                               (cc-for-target)))
> >
> >
> > -         #:phases
> >
> >
> > -         (modify-phases %standard-phases
> >
> >
> > -           (add-after 'unpack 'set-home-dir
> >
> >
> > -             (lambda* _
> >
> >
> > -               ;; Zig caches build
> >
> >
> > -               (setenv "HOME" "/tmp")))
> >
> >
> > -           (delete 'configure))))
> >
> >
> > -   (native-inputs (list zig))
> > -   (inputs (list ncurses))))
> >
> >     --
> >
> >     2.34.0
>
> --
>
> 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

I've reviewed and tested your patch on x86_64 machine and it build successfully. I also wasn't able to build Zig on my ARM machines (Raspberry and PBP) so it should definitely have it's own definition (at least for now).

I agree with keeping a note why there number 2 in the name.

Thanks for the phase with setting ZIG_GLOBAL_CACHE_DIR as this what helpful in my understanding of Zig.

Otherwise the patch LGTM.

----
Petr