Subject: Re: [bug#31999] [PATCH 3/7] gnu: Add libbytesize.

From: Marius Bakke <[email-masked]>
Date: Mon, 30 Jul 2018 00:10:32 +0200

Pierre Neidhardt <[email-masked]> writes:

> * gnu/package/c.scm (libbytesize): New variable.

[...]

> +(define-public libbytesize
> +  (package
> +    (name "libbytesize")
> +    (version "1.3")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/storaged-project/libbytesize")
> +                    (commit version)))
> +              (file-name (string-append name "-" version "-checkout"))
> +              (sha256
> +               (base32
> +                "1ys5d8rya8x4q34gn1hr96z7797s9gdzah0y0d7g84x5x6k50p30"))))

This project has a release tarball (which are distinct from
autogenerated tarballs and won't suddenly change):
https://github.com/storaged-project/libbytesize/releases

Can you change to use that instead?

> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)
> +       ("gettext" ,gettext-minimal)
> +       ("pkg-config" ,pkg-config)
> +       ("python" ,python)
> +       ("python2" ,python-2) ; For tests.
> +       ("python2-six" ,python2-six) ; For tests.
> +       ("python2-polib" ,python2-polib) ; For tests.
> +       ))

Please move these parenthesis up to please 'guix lint'.

> +    (inputs
> +     `(("mpfr" ,mpfr)
> +       ("pcre" ,pcre)))
> +    (arguments
> +     `(#:tests? #f ; One test fails because busctl (systemd only?) and
> +                   ; python2-pocketlint are missing.

Nit-pick: margin comments are typically not capitalized and has no
spacing between the ; and the text.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'autogen
> +           (lambda _
> +             (invoke "sh" "autogen.sh"))))))

Note that since the previous 'core-updates' merge, the equivalent of
this should now be invoked automatically if needed.  Can you try
removing it?  If that doesn't work, use (replace 'bootstrap ...) here
for clarity.

The rest LGTM.

> +    (home-page "https://github.com/storaged-project/libbytesize")
> +    (synopsis "Tiny C library for working with arbitrary big sizes in bytes")
> +    (description
> +     "The goal of this project is to provide a tiny library that would
> +facilitate the common operations with sizes in bytes.  Many projects need to
> +work with sizes in bytes (be it sizes of storage space, memory...) and all of
> +them need to deal with the same issues like:
> +
> +@itemize
> +@item How to get a human-readable string for the given size?
> +@item How to store the given size so that no significant information is lost?
> +@item If we store the size in bytes, what if the given size gets over the
> +MAXUINT64 value?
> +@item How to interpret sizes entered by users according to their locale and
> +typing conventions?
> +@item How to deal with the decimal/binary units (MB versus MiB) ambiguity?
> +@end itemize
> +
> +@code{libbytesize} offers a generally usable solution that could be used by
> +every project that needs to deal with sizes in bytes.  It is written in the C
> +language with thin bindings for other languages.")
> +    (license license:lgpl2.1+)))
> -- 
> 2.18.0