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