guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#42376] [PATCH] Add raylib.


From: Ludovic Courtès
Subject: [bug#42376] [PATCH] Add raylib.
Date: Thu, 24 Sep 2020 17:45:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Ping!  :-)

Jakub Kądziołka <kuba@kadziolka.net> skribis:

> On Wed, Jul 15, 2020 at 04:25:21PM +0200, trymonv@cock.li wrote:
>>  gnu/packages/game-development.scm | 34 +++++++++++++++++++++++++++++++
>>  1 file changed, 34 insertions(+)
>
> Thanks for the patch! Note that this blob got included as the commit
> message, which isn't really desirable. Instead of `git diff', I'd
> recommend `git commit', followed by `git format-patch' and/or `git
> send-email' (the latter is available as git:send-email - the send-email
> output of the git package).
>
>> diff --git a/gnu/packages/game-development.scm
>> b/gnu/packages/game-development.scm
>> index e45980e7a0..cba9b5bd45 100644
>> --- a/gnu/packages/game-development.scm
>> +++ b/gnu/packages/game-development.scm
>
> Could you add a Copyright line for yourself?
>
>> +(define-public raylib
>> +  (package
>> +    (name "raylib")
>> +    (version "3.0.0")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://github.com/raysan5/raylib/";)
>> +                    (commit version)))
>> +              (file-name (git-file-name name version))
>> +              (sha256
>> +               (base32
>> +                "1chj7sril4l2dxh7flp5ndddydbbf1fhnqlydaysm4m6waxidxmr"))))
>> +    (build-system cmake-build-system)
>> +    (arguments '(#:configure-flags `("-DSHARED=OFF" "-DSTATIC=ON")
>> +                 #:tests? #f))
>
> If you have to disable tests, put a small explanation in a comment.
> However, in this case I managed to get the test suite to pass like this:
>
>     (arguments
>      `(#:configure-flags `("-DSHARED=OFF" "-DSTATIC=ON")
>        #:phases
>        (modify-phases %standard-phases
>          ;; check needs to run after install
>          (delete 'check)
>          (add-after 'install 'check (assoc-ref %standard-phases 'check))
>          (add-before 'check 'set-CC
>            (lambda _
>              (setenv "CC" ,(cc-for-target))
>              #t)))))
>
>> +    (inputs `())
>> +    (native-inputs `(("alsa-lib", alsa-lib)
>> +                     ("glu", glu)
>> +                     ("libx11", libx11)
>> +                     ("libxrandr", libxrandr)
>> +                     ("libxi", libxi)
>> +                     ("libxinerama", libxinerama)
>> +                     ("libxcursor", libxcursor)
>> +                     ("mesa", mesa)
>> +                     ("pkg-config", pkg-config)))
>
> I don't think these should be native-inputs. native-inputs are for
> things that are ran during compilation, like the compiler itself or
> pkg-config. The rest is clearly going to run at runtime, so they should
> go in inputs. This distinction is necessary for cross-compilation. If
> all your dependencies supported it, you could test it with
>
>     guix build --target=aarch64-linux-gnu
>
> but unfortunately mesa's buildsystem refuses to cross-compile. It's
> still a good idea to put the inputs in their proper categories, though.
>
> One good heuristic is to run 'guix size raylib' and see which packages
> are referenced. Speaking of which - alsa-lib doesn't show up in 'guix
> size', and removing it from the inputs doesn't trigger any errors. Are
> you sure it's being used? Maybe you're missing some configuration flag?
>
> Also, the source for raylib includes its own copies of many libraries
> which are already packaged separately in Guix, such as glfw or stb.
> Could you configure raylib to use Guix-provided versions of these
> libraries? A good way to make sure it works is to remove the bundled
> sources. The preferred way of doing so is a 'snippet', you can find an
> example in the rust-curl-sys-0.4 package in gnu/packages/crates-io.scm.
>
> Regards,
> Jakub Kądziołka





reply via email to

[Prev in Thread] Current Thread [Next in Thread]