Subject: [bug#58236] [PATCH] gnu: genie: Add genie.

From: Liliana Marie Prikler <[email-masked]>
Date: Mon, 03 Oct 2022 08:45:17 +0200

Am Samstag, dem 01.10.2022 um 22:15 +0000 schrieb J. Sims:
> Hello,
> 
> This is a patch to add the GENie project generator to Guix. It's a
> fork of Premake 4.4 that some other projects, notably the Scopes
> programming language, use.
> 
> I'm submitting it independently instead of as part of a patch series
> with Scopes because I've already packaged it then accidentally
> deleted that package twice before. Scopes has some rough edges around
> packaging in a Guix-friendly way and I don't suspect I will have its
> package ready very soon. All of this together means I'd like to avoid
> repeating my previous mistakes and go ahead and get it into Guix.
> 
> Thanks,
> Juli
> 
> --------------------------BEGIN-PATCH------------------------------
> 
> * gnu/packages/build-tools.scm (genie): Add genie.
> ---
Usually, adding comments after this line is preferred.

>  gnu/packages/build-tools.scm | 44
> ++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
> 
> diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-
> tools.scm
> index 84a62d0fd6..55bec5f817 100644
> --- a/gnu/packages/build-tools.scm
> +++ b/gnu/packages/build-tools.scm
> @@ -14,6 +14,7 @@
>  ;;; Copyright © 2020 Efraim Flashner <[email-masked]>
>  ;;; Copyright © 2021 qblade <[email-masked]>
>  ;;; Copyright © 2021 Maxim Cournoyer <[email-masked]>
> +;;; Copyright © 2022 Juliana Sims <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -763,3 +764,46 @@ (define-public build
>  @item Extensible language/compiler framework.
>  @end itemize")
>      (license license:gpl2+)))
> +
> +(define-public genie
> +  (let ((commit "b139103697bbb62db895e4cc7bfe202bcff4ff25")
> +        (ver "1167"))
> +    (package
> +      (name "genie")
> +      (version ver)
Use git-version.

> +      (home-page "https://github.com/bkaradzic/genie")
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url home-page)
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32
> "16plshzkyjjzpfcxnwjskrs7i4gg0qn92h2k0rbfl4a79fgmwvwv"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:phases
Prefer lists of G-Expressions.
> +         (modify-phases %standard-phases
> +           (delete 'configure)
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((out (assoc-ref outputs "out")))
> +                 (install-file "bin/linux/genie"
> +                               (string-append out "/bin"))))))
> +         #:parallel-build? #t
I don't think this one's needed.  If however it is necessary, look
towards webkit for how to hack in -j2.
> +         #:tests? #f)) ;; tests have not been updated since Premake
> fork
That sounds bad.  Do they all fail or are some of them salvagable?
> +      (synopsis "Project generator tool")
> +      (description "GENie (pronounced as Jenny) is project generator
> tool. It
I think we can do without pronunciation guides.
> +automagically generates project from Lua script, making applying the
> same
> +settings for multiple projects easy.
> +
> +Supported project generators:
> +@itemize
> +@item GNU Makefile
> +@item JSON Compilation Database
> +@item Ninja (experimental)
> +@item Visual Studio 2010, 2012, 2013, 2015, 2017, 2019
> +@item XCode
> +@end itemize")
Make sure your description consists of complete sentences.
> +      (license license:bsd-3))))
> 
> base-commit: 461b1e490935e720999e78dc29656ae3c9ea2ea3

Cheers