Subject: [bug#71897] [PATCH 1/2] gnu: Add cppgir.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 02 Jul 2024 07:09:17 -0400

Hi Dan,

dan <[email-masked]> writes:

> * gnu/packages/glib.scm: Import (gnu packages pretty-print).
>   (cppgir): New variable.
>
> Change-Id: Ifaf3af1642bb8cb4750ee4f679967fb57c9cc7e2
> ---
>  gnu/packages/glib.scm | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
>
> diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
> index b11046f05d..10d39e4fe2 100644
> --- a/gnu/packages/glib.scm
> +++ b/gnu/packages/glib.scm
> @@ -20,6 +20,7 @@
>  ;;; Copyright © 2022 Petr Hodina <[email-masked]>
>  ;;; Copyright © 2023 Saku Laesvuori <[email-masked]>
>  ;;; Copyright © 2024 Zheng Junjie <[email-masked]>
> +;;; Copyright © 2024 dan <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -71,6 +72,7 @@ (define-module (gnu packages glib)
>    #:use-module (gnu packages perl-check)
>    #:use-module (gnu packages popt)
>    #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages pretty-print)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages python-xyz)
>    #:use-module (gnu packages sqlite)
> @@ -1594,3 +1596,31 @@ (define-public libdex
>  Dex also provides Fibers which allow writing synchronous looking code in C
>  that uses asynchronous and future-based APIs.")
>      (license license:lgpl2.1+)))
> +
> +(define-public cppgir
> +  (let ((commit "9c4f5820d94d62ab451501f016bfea97156518f4")
> +        (revision "0"))

When not using a release (tag or archive), a comment is nice to have,
e.g. "No proper release; use the latest available tag."

> +    (package
> +      (name "cppgir")
> +      (version (git-version "2.0" revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri
> +                 (git-reference
> +                  (url "https://gitlab.com/mnauw/cppgir")
> +                  (commit commit)))
> +                (sha256
> +                 (base32 "1fa9nf4yljfarihaqj5kd98yysrky7q316mh6l5b1rq39ga15k9b"))))
> +      (build-system cmake-build-system)
> +      (arguments
> +       (list
> +        #:configure-flags #~(list "-DINTERNAL_EXPECTED=OFF")))
> +      (inputs (list boost fmt expected-lite))
> +      (home-page "https://gitlab.com/mnauw/cppgir")
> +      (synopsis "A GObject-Introspection C++ binding wrapper generator")
> +      (description "it processes .gir files derived from GObject-Introspection
> +annotations into a set of C++ files defining suitable namespaces, classes and
> +other types that together from a C++ binding. In this way, the plain C
                             ^ form ?
                             
> +libraries and objects become available as native objects along with (RAII)

use @acronym for RAII, defining what it means.

> +managed resource handling.")
> +      (license license:expat))))

The description that should start with proper punctuation (a capital
letter), and the use of two spaces for separating sentences (a
Texinfo/Guile convention).  I believe 'guix lint' should warn about the
later at least.  Could you send a v2 including these mostly cosmetic
changes?

-- 
Thanks,
Maxim