Message ID | 20210830190246.3454-1-leo.prikler@student.tugraz.at |
---|---|
State | Accepted |
Headers | show |
Series | [bug#50273,v2] gnu: Add python-pyxel. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hey Leo, Leo Prikler <leo.prikler@student.tugraz.at> writes: > * gnu/packages/game-development.scm (python-pyxel): New variable. > --- > Am Montag, den 30.08.2021, 14:40 -0400 schrieb Maxim Cournoyer: >> > + (let* ((sdl2 (assoc-ref inputs "sdl2"))) >> > + (substitute* "pyxel/core/Makefile" >> > + (("`sdl2-config --cflags`") >> > + (string-append "-I" sdl2 "/include/SDL2 >> > -D_REENTRANT")) >> > + (("`sdl2-config --libs`") >> > + (string-append "-L" sdl2 "/lib " >> > + "-Wl,-rpath," sdl2 "/lib " >> > + "-Wl,--enable-new-dtags >> > -lSDL2")))))) >> >> The above could benefit from some extra commenting to explain the >> choice of linker options (--enable-new-dtags ?) or C preprocessor variables >> (-D_REENTRANT). I'd have to dig a bit deeper than I'd like to have an >> understanding of these. > > These were previously snarfed from a manual invocation of sdl2-config, but > iskarian in IRC pointed out, that sdl2-config accepts --prefix, so the patch > has been revised to use that. Great! I'm glad that I asked :-) > gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++ > 1 file changed, 51 insertions(+) > > diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm > index 2a58848dce..40807450ea 100644 > --- a/gnu/packages/game-development.scm > +++ b/gnu/packages/game-development.scm > @@ -1484,6 +1484,57 @@ visual novels, while its Python scripting is enough for complex simulation > games.") > (license license:expat))) > > +(define-public python-pyxel > + (package > + (name "python-pyxel") > + (version "1.4.3") > + (source > + (origin > + (method git-fetch) > + (uri > + (git-reference > + (url "https://github.com/kitao/pyxel") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9")) > + (modules '((guix build utils))) > + (snippet > + '(begin > + (delete-file-recursively "pyxel/core/bin"))))) > + (build-system python-build-system) > + (arguments > + `(#:tests? #f ; "Tests" are actually example programs that never halt. > + #:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'patch-build-files > + (lambda* (#:key inputs #:allow-other-keys) > + (substitute* "setup.py" > + (("\"pyxel\\.core\\.bin\\.(.*)\"," all arch) > + (if (string=? arch "linux") > + all > + ""))) > + (substitute* "pyxel/core/Makefile" > + (("`sdl2-config") > + (string-append "`sdl2-config --prefix=" > + (assoc-ref inputs "sdl2")))))) > + (add-before 'build 'prebuild > + (lambda _ > + (invoke "make" "-C" "pyxel/core")))))) > + (inputs > + `(("gifsicle" ,gifsicle) > + ("sdl2" ,(sdl-union (list sdl2 sdl2-image))))) > + (native-inputs > + `(("gcc" ,gcc-10))) ; for std::filesystem > + (home-page "https://github.com/kitao/pyxel") > + (synopsis "Retro game engine for Python") > + (description "Pyxel is a game engine inspired by retro gaming consoles. > +It has a fixed 16-color palette, can hold up to 3 image banks and 8 tilemaps > +(256x256 pixels each) and 4 sound channels with 64 definable sounds. It > +also comes with a built-in image and sound editor.") > + (license license:expat))) > + LGTM. Feel free to push (and then close this tracker)! Maxim
Am Montag, den 30.08.2021, 16:27 -0400 schrieb Maxim Cournoyer: > Hey Leo, > > Leo Prikler <leo.prikler@student.tugraz.at> writes: > > > * gnu/packages/game-development.scm (python-pyxel): New variable. > > --- > > Am Montag, den 30.08.2021, 14:40 -0400 schrieb Maxim Cournoyer: > > > > + (let* ((sdl2 (assoc-ref inputs "sdl2"))) > > > > + (substitute* "pyxel/core/Makefile" > > > > + (("`sdl2-config --cflags`") > > > > + (string-append "-I" sdl2 "/include/SDL2 > > > > -D_REENTRANT")) > > > > + (("`sdl2-config --libs`") > > > > + (string-append "-L" sdl2 "/lib " > > > > + "-Wl,-rpath," sdl2 "/lib " > > > > + "-Wl,--enable-new-dtags > > > > -lSDL2")))))) > > > > > > The above could benefit from some extra commenting to explain the > > > choice of linker options (--enable-new-dtags ?) or C preprocessor > > > variables > > > (-D_REENTRANT). I'd have to dig a bit deeper than I'd like to > > > have an > > > understanding of these. > > > > These were previously snarfed from a manual invocation of sdl2- > > config, but > > iskarian in IRC pointed out, that sdl2-config accepts --prefix, so > > the patch > > has been revised to use that. > > Great! I'm glad that I asked :-) > > > gnu/packages/game-development.scm | 51 > > +++++++++++++++++++++++++++++++ > > 1 file changed, 51 insertions(+) > > > > diff --git a/gnu/packages/game-development.scm b/gnu/packages/game- > > development.scm > > index 2a58848dce..40807450ea 100644 > > --- a/gnu/packages/game-development.scm > > +++ b/gnu/packages/game-development.scm > > @@ -1484,6 +1484,57 @@ visual novels, while its Python scripting is > > enough for complex simulation > > games.") > > (license license:expat))) > > > > +(define-public python-pyxel > > + (package > > + (name "python-pyxel") > > + (version "1.4.3") > > + (source > > + (origin > > + (method git-fetch) > > + (uri > > + (git-reference > > + (url "https://github.com/kitao/pyxel") > > + (commit (string-append "v" version)))) > > + (file-name (git-file-name name version)) > > + (sha256 > > + (base32 > > + "0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9")) > > + (modules '((guix build utils))) > > + (snippet > > + '(begin > > + (delete-file-recursively "pyxel/core/bin"))))) > > + (build-system python-build-system) > > + (arguments > > + `(#:tests? #f ; "Tests" are actually example programs that > > never halt. > > + #:phases > > + (modify-phases %standard-phases > > + (add-after 'unpack 'patch-build-files > > + (lambda* (#:key inputs #:allow-other-keys) > > + (substitute* "setup.py" > > + (("\"pyxel\\.core\\.bin\\.(.*)\"," all arch) > > + (if (string=? arch "linux") > > + all > > + ""))) > > + (substitute* "pyxel/core/Makefile" > > + (("`sdl2-config") > > + (string-append "`sdl2-config --prefix=" > > + (assoc-ref inputs "sdl2")))))) > > + (add-before 'build 'prebuild > > + (lambda _ > > + (invoke "make" "-C" "pyxel/core")))))) > > + (inputs > > + `(("gifsicle" ,gifsicle) > > + ("sdl2" ,(sdl-union (list sdl2 sdl2-image))))) > > + (native-inputs > > + `(("gcc" ,gcc-10))) ; for std::filesystem > > + (home-page "https://github.com/kitao/pyxel") > > + (synopsis "Retro game engine for Python") > > + (description "Pyxel is a game engine inspired by retro gaming > > consoles. > > +It has a fixed 16-color palette, can hold up to 3 image banks and > > 8 tilemaps > > +(256x256 pixels each) and 4 sound channels with 64 definable > > sounds. It > > +also comes with a built-in image and sound editor.") > > + (license license:expat))) > > + > > LGTM. Feel free to push (and then close this tracker)! > > Maxim Aaaaand done :)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 2a58848dce..40807450ea 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1484,6 +1484,57 @@ visual novels, while its Python scripting is enough for complex simulation games.") (license license:expat))) +(define-public python-pyxel + (package + (name "python-pyxel") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kitao/pyxel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "pyxel/core/bin"))))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; "Tests" are actually example programs that never halt. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-build-files + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("\"pyxel\\.core\\.bin\\.(.*)\"," all arch) + (if (string=? arch "linux") + all + ""))) + (substitute* "pyxel/core/Makefile" + (("`sdl2-config") + (string-append "`sdl2-config --prefix=" + (assoc-ref inputs "sdl2")))))) + (add-before 'build 'prebuild + (lambda _ + (invoke "make" "-C" "pyxel/core")))))) + (inputs + `(("gifsicle" ,gifsicle) + ("sdl2" ,(sdl-union (list sdl2 sdl2-image))))) + (native-inputs + `(("gcc" ,gcc-10))) ; for std::filesystem + (home-page "https://github.com/kitao/pyxel") + (synopsis "Retro game engine for Python") + (description "Pyxel is a game engine inspired by retro gaming consoles. +It has a fixed 16-color palette, can hold up to 3 image banks and 8 tilemaps +(256x256 pixels each) and 4 sound channels with 64 definable sounds. It +also comes with a built-in image and sound editor.") + (license license:expat))) + (define-public grafx2 (package (name "grafx2")