* [Buildroot] [PATCH v4 1/1] python-kivy: new package
@ 2018-08-30 3:33 Joseph Kogut
2018-08-30 7:52 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Joseph Kogut @ 2018-08-30 3:33 UTC (permalink / raw)
To: buildroot
Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
---
Changes v3 -> v4:
- Remove dependency on glibc (tested on aarch64 w/ musl and X11 window
provider, sdl2 still segfaults)
- Fix dependency on xlib_libX11 and xlib_libXrender
Changes v2 -> v3:
- Bump version to 1.10.1
- Remove upstreamed patch to remove getconf dependency
- Split config comments for OpenGL and glibc deps
- check-packages fixes
Changes v1 -> v2:
- Remove unnecessary build dependencies (suggested by Yegor)
- Require toolchain w/ glibc, as Kivy builds with others, but
seems to segfault with (at least) musl.
---
DEVELOPERS | 12 ++++++-
package/Config.in | 1 +
package/python-kivy/Config.in | 16 ++++++++++
package/python-kivy/python-kivy.hash | 4 +++
package/python-kivy/python-kivy.mk | 48 ++++++++++++++++++++++++++++
5 files changed, 80 insertions(+), 1 deletion(-)
create mode 100644 package/python-kivy/Config.in
create mode 100644 package/python-kivy/python-kivy.hash
create mode 100644 package/python-kivy/python-kivy.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index bd8095bd20..1792af78fb 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1,4 +1,4 @@
-# Syntax:
+ # Syntax:
#
# N: Firstname Lastname <email>
# F: file pattern or directory
@@ -1027,6 +1027,16 @@ F: package/pdbg/
F: board/qemu/ppc64le-pseries/
F: configs/qemu_ppc64le_pseries_defconfig
+N: Joseph Kogut <joseph.kogut@gmail.com>
+F: package/gconf/
+F: package/libnss/
+F: package/python-cython/
+F: package/python-kivy/
+F: package/python-raven/
+F: package/python-schedule/
+F: package/python-websockets/
+F: package/python-xlib/
+
N: Johan Derycke <johanderycke@gmail.com>
F: package/python-libconfig/
diff --git a/package/Config.in b/package/Config.in
index 66f303ec58..1f873bf3b0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -859,6 +859,7 @@ menu "External python modules"
source "package/python-jsonschema/Config.in"
source "package/python-json-schema-validator/Config.in"
source "package/python-keyring/Config.in"
+ source "package/python-kivy/Config.in"
source "package/python-libconfig/Config.in"
source "package/python-libusb1/Config.in"
source "package/python-lmdb/Config.in"
diff --git a/package/python-kivy/Config.in b/package/python-kivy/Config.in
new file mode 100644
index 0000000000..e4b89a74c1
--- /dev/null
+++ b/package/python-kivy/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_PYTHON_KIVY
+ bool "python-kivy"
+ depends on BR2_PACKAGE_HAS_LIBGL
+ select BR2_PACKAGE_HOST_PYTHON_CYTHON
+ select BR2_PACKAGE_LIBPNG # runtime
+ select BR2_PACKAGE_MTDEV # runtime
+ select BR2_PACKAGE_PYTHON_DOCUTILS # runtime
+ select BR2_PACKAGE_PYTHON_PYGMENTS # runtime
+ help
+ A software library for rapid development of
+ hardware-accelerated multitouch applications.
+
+ http://kivy.org
+
+comment "python-kivy needs an OpenGL provider"
+ depends on !BR2_PACKAGE_HAS_LIBGL
diff --git a/package/python-kivy/python-kivy.hash b/package/python-kivy/python-kivy.hash
new file mode 100644
index 0000000000..8949bc643f
--- /dev/null
+++ b/package/python-kivy/python-kivy.hash
@@ -0,0 +1,4 @@
+# sha256 locally computed
+sha256 794e45cc7bcc7882f7cd95f1673bc6701f3215a20a54c915cac0c5e46a449b4c python-kivy-1.10.1.tar.gz
+# License file, locally calculated
+sha256 282b3d8735ef6cbdcf8cc480947d50e0aea4ad1cc931d41f3f6a6bc23956f2d6 LICENSE
diff --git a/package/python-kivy/python-kivy.mk b/package/python-kivy/python-kivy.mk
new file mode 100644
index 0000000000..fbb80c59cd
--- /dev/null
+++ b/package/python-kivy/python-kivy.mk
@@ -0,0 +1,48 @@
+################################################################################
+#
+# python-kivy
+#
+################################################################################
+
+PYTHON_KIVY_VERSION = 1.10.1
+PYTHON_KIVY_SITE = $(call github,kivy,kivy,$(PYTHON_KIVY_VERSION))
+PYTHON_KIVY_SETUP_TYPE = distutils
+PYTHON_KIVY_LICENSE = MIT
+PYTHON_KIVY_LICENSE_FILES = LICENSE
+PYTHON_KIVY_DEPENDENCIES = host-python-cython libgl
+
+ifeq ($(BR2_PACKAGE_GSTREAMER),y)
+PYTHON_KIVY_DEPENDENCIES += gstreamer
+PYTHON_KIVY_ENV += USE_GSTREAMER=1
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
+PYTHON_KIVY_DEPENDENCIES += libegl
+PYTHON_KIVY_ENV += USE_EGL=1
+endif
+
+ifeq ($(BR2_PACKAGE_SDL2)$(BR2_PACKAGE_SDL2_X11)$(BR2_PACKAGE_SDL2_IMAGE)$(BR2_PACKAGE_SDL2_MIXER)$(BR2_PACKAGE_SDL2_TTF),yyyyy)
+PYTHON_KIVY_DEPENDENCIES += sdl2 sdl2_image sdl2_mixer sdl2_ttf
+PYTHON_KIVY_ENV += USE_SDL2=1
+PYTHON_KIVY_ENV += KIVY_SDL2_PATH=$(STAGING_DIR)/usr/include/SDL2
+else
+PYTHON_KIVY_ENV += USE_SDL2=0
+endif
+
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+PYTHON_KIVY_DEPENDENCIES += wayland
+PYTHON_KIVY_ENV += USE_WAYLAND=1
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBX11)$(BR2_PACKAGE_XLIB_LIBXRENDER),yy)
+PYTHON_KIVY_DEPENDENCIES += xlib_libX11 xlib_libXrender
+PYTHON_KIVY_ENV += USE_X11=1
+endif
+
+define PYTHON_KIVY_REMOVE_EXAMPLES
+ rm -rf $(TARGET_DIR)/usr/share/kivy-examples
+endef
+
+PYTHON_KIVY_POST_INSTALL_TARGET_HOOKS += PYTHON_KIVY_REMOVE_EXAMPLES
+
+$(eval $(python-package))
--
2.18.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v4 1/1] python-kivy: new package
2018-08-30 3:33 [Buildroot] [PATCH v4 1/1] python-kivy: new package Joseph Kogut
@ 2018-08-30 7:52 ` Thomas Petazzoni
2018-08-30 17:38 ` Joseph Kogut
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2018-08-30 7:52 UTC (permalink / raw)
To: buildroot
Hello Joseph,
On Wed, 29 Aug 2018 20:33:05 -0700, Joseph Kogut wrote:
> Changes v3 -> v4:
> - Remove dependency on glibc (tested on aarch64 w/ musl and X11 window
> provider, sdl2 still segfaults)
segfault at runtime or build time ?
> diff --git a/DEVELOPERS b/DEVELOPERS
> index bd8095bd20..1792af78fb 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1,4 +1,4 @@
> -# Syntax:
> + # Syntax:
Spurious change.
> #
> # N: Firstname Lastname <email>
> # F: file pattern or directory
> @@ -1027,6 +1027,16 @@ F: package/pdbg/
> F: board/qemu/ppc64le-pseries/
> F: configs/qemu_ppc64le_pseries_defconfig
>
> +N: Joseph Kogut <joseph.kogut@gmail.com>
> +F: package/gconf/
> +F: package/libnss/
> +F: package/python-cython/
> +F: package/python-kivy/
> +F: package/python-raven/
> +F: package/python-schedule/
> +F: package/python-websockets/
> +F: package/python-xlib/
Lots of unrelated changes in here. In this commit, you should only be
adding an entry for package/python-kivy/. If you want to appear in the
DEVELOPERS file for other packages, send a separate patch for that.
> diff --git a/package/python-kivy/Config.in b/package/python-kivy/Config.in
> new file mode 100644
> index 0000000000..e4b89a74c1
> --- /dev/null
> +++ b/package/python-kivy/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_PYTHON_KIVY
> + bool "python-kivy"
> + depends on BR2_PACKAGE_HAS_LIBGL
> + select BR2_PACKAGE_HOST_PYTHON_CYTHON
Is Cython a mandatory dependency, or an optional one like with
python-falcon ?
> + select BR2_PACKAGE_LIBPNG # runtime
> + select BR2_PACKAGE_MTDEV # runtime
Are you sure these are really runtime dependencies ? They are dlopen'ed
at runtime ?
> diff --git a/package/python-kivy/python-kivy.hash b/package/python-kivy/python-kivy.hash
> new file mode 100644
> index 0000000000..8949bc643f
> --- /dev/null
> +++ b/package/python-kivy/python-kivy.hash
> @@ -0,0 +1,4 @@
> +# sha256 locally computed
> +sha256 794e45cc7bcc7882f7cd95f1673bc6701f3215a20a54c915cac0c5e46a449b4c python-kivy-1.10.1.tar.gz
> +# License file, locally calculated
> +sha256 282b3d8735ef6cbdcf8cc480947d50e0aea4ad1cc931d41f3f6a6bc23956f2d6 LICENSE
> diff --git a/package/python-kivy/python-kivy.mk b/package/python-kivy/python-kivy.mk
> new file mode 100644
> index 0000000000..fbb80c59cd
> --- /dev/null
> +++ b/package/python-kivy/python-kivy.mk
> @@ -0,0 +1,48 @@
> +################################################################################
> +#
> +# python-kivy
> +#
> +################################################################################
> +
> +PYTHON_KIVY_VERSION = 1.10.1
> +PYTHON_KIVY_SITE = $(call github,kivy,kivy,$(PYTHON_KIVY_VERSION))
> +PYTHON_KIVY_SETUP_TYPE = distutils
> +PYTHON_KIVY_LICENSE = MIT
> +PYTHON_KIVY_LICENSE_FILES = LICENSE
> +PYTHON_KIVY_DEPENDENCIES = host-python-cython libgl
> +
> +ifeq ($(BR2_PACKAGE_GSTREAMER),y)
> +PYTHON_KIVY_DEPENDENCIES += gstreamer
> +PYTHON_KIVY_ENV += USE_GSTREAMER=1
> +endif
Perhaps an explicit USE_GSTREAMER=0 in an "else" condition would be
good. Ditto for all other options: we generally try to explicitly
disable features.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v4 1/1] python-kivy: new package
2018-08-30 7:52 ` Thomas Petazzoni
@ 2018-08-30 17:38 ` Joseph Kogut
0 siblings, 0 replies; 3+ messages in thread
From: Joseph Kogut @ 2018-08-30 17:38 UTC (permalink / raw)
To: buildroot
Hi Thomas,
On Thu, Aug 30, 2018 at 12:52 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello Joseph,
>
> On Wed, 29 Aug 2018 20:33:05 -0700, Joseph Kogut wrote:
>
> > Changes v3 -> v4:
> > - Remove dependency on glibc (tested on aarch64 w/ musl and X11 window
> > provider, sdl2 still segfaults)
>
> segfault at runtime or build time ?
>
Runtime, and only with the SDL2 window provider. Specifying the X11
window provider with the KIVY_WINDOW=x11 environment variable works
fine, assuming Kivy was built with USE_X11=1.
I have a core dump, but haven't looked at it yet. I suspect few, if
any people have tried using Kivy and SDL2 with Musl. The SDL2 window
provider works fine with glibc.
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index bd8095bd20..1792af78fb 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -1,4 +1,4 @@
> > -# Syntax:
> > + # Syntax:
>
> Spurious change.
>
> > #
> > # N: Firstname Lastname <email>
> > # F: file pattern or directory
> > @@ -1027,6 +1027,16 @@ F: package/pdbg/
> > F: board/qemu/ppc64le-pseries/
> > F: configs/qemu_ppc64le_pseries_defconfig
> >
> > +N: Joseph Kogut <joseph.kogut@gmail.com>
> > +F: package/gconf/
> > +F: package/libnss/
> > +F: package/python-cython/
> > +F: package/python-kivy/
> > +F: package/python-raven/
> > +F: package/python-schedule/
> > +F: package/python-websockets/
> > +F: package/python-xlib/
>
> Lots of unrelated changes in here. In this commit, you should only be
> adding an entry for package/python-kivy/. If you want to appear in the
> DEVELOPERS file for other packages, send a separate patch for that.
>
Whoah, I'm not sure how I missed this. I'm already added as a
developer for these packages and more, and I rebased on next. I think
I must've not been paying attention when I was resolving conflicts.
Sorry!
>
> > diff --git a/package/python-kivy/Config.in b/package/python-kivy/Config.in
> > new file mode 100644
> > index 0000000000..e4b89a74c1
> > --- /dev/null
> > +++ b/package/python-kivy/Config.in
> > @@ -0,0 +1,16 @@
> > +config BR2_PACKAGE_PYTHON_KIVY
> > + bool "python-kivy"
> > + depends on BR2_PACKAGE_HAS_LIBGL
> > + select BR2_PACKAGE_HOST_PYTHON_CYTHON
>
> Is Cython a mandatory dependency, or an optional one like with
> python-falcon ?
>
It's mandatory, Kivy doesn't have Python only alternatives for its
Cython extensions.
> > + select BR2_PACKAGE_LIBPNG # runtime
> > + select BR2_PACKAGE_MTDEV # runtime
>
> Are you sure these are really runtime dependencies ? They are dlopen'ed
> at runtime ?
>
Mtdev is dlopened here:
https://github.com/kivy/kivy/blob/master/kivy/lib/mtdev.py
Libpng doesn't appear to be explicitly linked or dlopened anywhere,
but the SDL2 text provider is indeed linked to it:
build/lib.linux-x86_64-3.6/kivy/core/text/_text_sdl2.cpython-36m-x86_64-linux-gnu.so
linux-vdso.so.1 (0x00007ffe52952000)
libSDL2-2.0.so.0 => /usr/lib/libSDL2-2.0.so.0 (0x00007f8a8b8d7000)
libSDL2_ttf-2.0.so.0 => /usr/lib/libSDL2_ttf-2.0.so.0 (0x00007f8a8b6cf000)
libpython3.6m.so.1.0 => not found
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f8a8b6ae000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f8a8b4ea000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f8a8b365000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f8a8b35e000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f8a8b354000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f8a8b08b000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007f8a8be6b000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f8a8ae7b000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f8a8ac45000)
> > diff --git a/package/python-kivy/python-kivy.hash b/package/python-kivy/python-kivy.hash
> > new file mode 100644
> > index 0000000000..8949bc643f
> > --- /dev/null
> > +++ b/package/python-kivy/python-kivy.hash
> > @@ -0,0 +1,4 @@
> > +# sha256 locally computed
> > +sha256 794e45cc7bcc7882f7cd95f1673bc6701f3215a20a54c915cac0c5e46a449b4c python-kivy-1.10.1.tar.gz
> > +# License file, locally calculated
> > +sha256 282b3d8735ef6cbdcf8cc480947d50e0aea4ad1cc931d41f3f6a6bc23956f2d6 LICENSE
> > diff --git a/package/python-kivy/python-kivy.mk b/package/python-kivy/python-kivy.mk
> > new file mode 100644
> > index 0000000000..fbb80c59cd
> > --- /dev/null
> > +++ b/package/python-kivy/python-kivy.mk
> > @@ -0,0 +1,48 @@
> > +################################################################################
> > +#
> > +# python-kivy
> > +#
> > +################################################################################
> > +
> > +PYTHON_KIVY_VERSION = 1.10.1
> > +PYTHON_KIVY_SITE = $(call github,kivy,kivy,$(PYTHON_KIVY_VERSION))
> > +PYTHON_KIVY_SETUP_TYPE = distutils
> > +PYTHON_KIVY_LICENSE = MIT
> > +PYTHON_KIVY_LICENSE_FILES = LICENSE
> > +PYTHON_KIVY_DEPENDENCIES = host-python-cython libgl
> > +
> > +ifeq ($(BR2_PACKAGE_GSTREAMER),y)
> > +PYTHON_KIVY_DEPENDENCIES += gstreamer
> > +PYTHON_KIVY_ENV += USE_GSTREAMER=1
> > +endif
>
> Perhaps an explicit USE_GSTREAMER=0 in an "else" condition would be
> good. Ditto for all other options: we generally try to explicitly
> disable features.
>
Will do.
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Thanks,
Joseph
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-08-30 17:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-30 3:33 [Buildroot] [PATCH v4 1/1] python-kivy: new package Joseph Kogut
2018-08-30 7:52 ` Thomas Petazzoni
2018-08-30 17:38 ` Joseph Kogut
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox