[PATCH] gnu: Add python-pyxel.

  • Done
  • quality assurance status badge
Details
2 participants
  • Leo Prikler
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Leo Prikler
Severity
normal

Debbugs page

Leo Prikler wrote 4 years ago
(address . guix-patches@gnu.org)
20210830153003.27134-1-leo.prikler@student.tugraz.at
* gnu/packages/game-development.scm (python-pyxel): New variable.
---
gnu/packages/game-development.scm | 55 +++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 2a58848dce..3e21d411cf 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1484,6 +1484,61 @@ 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
+ "")))
+ (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"))))))
+ (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")
--
2.33.0
Maxim Cournoyer wrote 4 years ago
(name . Leo Prikler)(address . leo.prikler@student.tugraz.at)(address . 50273@debbugs.gnu.org)
878s0in5d4.fsf@gmail.com
Hello Leo,

Leo Prikler <leo.prikler@student.tugraz.at> writes:

Toggle quote (53 lines)
> * gnu/packages/game-development.scm (python-pyxel): New variable.
> ---
> gnu/packages/game-development.scm | 55 +++++++++++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
> index 2a58848dce..3e21d411cf 100644
> --- a/gnu/packages/game-development.scm
> +++ b/gnu/packages/game-development.scm
> @@ -1484,6 +1484,61 @@ 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
> + "")))
> + (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.

Toggle quote (20 lines)
> + (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")

The rest LGTM! Feel free to push a revised version in which you explain
a little bit the choice of linker/preprocessor options.

Thank you!

Maxim
Leo Prikler wrote 4 years ago
[PATCH v2] gnu: Add python-pyxel.
(address . 50273@debbugs.gnu.org)(address . maxim.cournoyer@gmail.com)
20210830190246.3454-1-leo.prikler@student.tugraz.at
* gnu/packages/game-development.scm (python-pyxel): New variable.
---
Am Montag, den 30.08.2021, 14:40 -0400 schrieb Maxim Cournoyer:
Toggle quote (16 lines)
> > + (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.

gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (64 lines)
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")
--
2.33.0
Maxim Cournoyer wrote 4 years ago
(name . Leo Prikler)(address . leo.prikler@student.tugraz.at)(address . 50273@debbugs.gnu.org)
87r1eak7a4.fsf@gmail.com
Hey Leo,

Leo Prikler <leo.prikler@student.tugraz.at> writes:

Toggle quote (23 lines)
> * 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 :-)

Toggle quote (63 lines)
> 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
Leo Prikler wrote 4 years ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 50273-done@debbugs.gnu.org)
44a347b0986ca73f95439d912bf8cb512316ee2a.camel@student.tugraz.at
Am Montag, den 30.08.2021, 16:27 -0400 schrieb Maxim Cournoyer:
Toggle quote (106 lines)
> 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 :)
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 50273@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 50273
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help