[Buildroot] [PATCH v2 1/1] package/kmsxx: bump to latest
Peter Seiderer
ps.report at gmx.net
Tue Dec 1 21:49:31 UTC 2020
Hello Tomi,
a late review ;-) and some questions...
On Wed, 21 Oct 2020 11:20:12 +0300, Tomi Valkeinen <tomi.valkeinen at iki.fi> wrote:
> kms++ is moving to meson build system and there has been plenty of
> changes since the last version bump, so lets update the buildroot
> package.
>
> We can drop the "0001-fix-compiler-errors-with-gcc-10.patch" as that is
> no longer needed.
>
> The manual install stuff in kmsxx.mk goes away, as the meson build files
> handle them.
>
> kms++ has two git submodules, fmt and pybind11, so we need to change the
> site method to git:// to enable submodules.
>
> The python bindings can now also be enabled with a config option.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at iki.fi>
> ---
>
> Another try:
> * With config options for building the utilities and the python bindings
> * Fixed the site method
>
> ...0001-fix-compiler-errors-with-gcc-10.patch | 35 -----------
> package/kmsxx/Config.in | 32 +++++++---
> package/kmsxx/kmsxx.hash | 4 +-
> package/kmsxx/kmsxx.mk | 61 +++++--------------
> 4 files changed, 39 insertions(+), 93 deletions(-)
> delete mode 100644 package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
>
> diff --git a/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch b/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
> deleted file mode 100644
> index 6ec080af97..0000000000
> --- a/package/kmsxx/0001-fix-compiler-errors-with-gcc-10.patch
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -From aa54634ce7cbbfc844de945e73a9f34cdcb9bb12 Mon Sep 17 00:00:00 2001
> -From: Peter Trompeter <christoph at zen.fritz.box>
> -Date: Fri, 15 May 2020 15:20:47 +0200
> -Subject: [PATCH] fix compiler errors with gcc 10
> -
> -[Retrieved from:
> -https://github.com/tomba/kmsxx/commit/aa54634ce7cbbfc844de945e73a9f34cdcb9bb12]
> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> ----
> - kms++/inc/kms++/pixelformats.h | 1 +
> - kms++util/src/opts.cpp | 1 +
> - 2 files changed, 2 insertions(+)
> -
> -diff --git a/kms++/inc/kms++/pixelformats.h b/kms++/inc/kms++/pixelformats.h
> -index 784717d..4e73d5d 100644
> ---- a/kms++/inc/kms++/pixelformats.h
> -+++ b/kms++/inc/kms++/pixelformats.h
> -@@ -2,6 +2,7 @@
> -
> - #include <cstdint>
> - #include <string>
> -+#include <stdexcept>
> -
> - namespace kms
> - {
> -diff --git a/kms++util/src/opts.cpp b/kms++util/src/opts.cpp
> -index afef452..5a14b84 100644
> ---- a/kms++util/src/opts.cpp
> -+++ b/kms++util/src/opts.cpp
> -@@ -1,4 +1,5 @@
> - #include <algorithm>
> -+#include <stdexcept>
> -
> - #include <unistd.h>
> - #include <getopt.h>
> diff --git a/package/kmsxx/Config.in b/package/kmsxx/Config.in
> index 1d174c18b1..0b3013a171 100644
> --- a/package/kmsxx/Config.in
> +++ b/package/kmsxx/Config.in
> @@ -1,12 +1,13 @@
> config BR2_PACKAGE_KMSXX
> bool "kms++"
> - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
> - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
Because of the c++17 option? No test-pkg failure detected without it...
> + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
Searched for 'fatal error: linux/dma-buf.h: No such file or directory', found
https://bugs.chromium.org/p/chromium/issues/detail?id=707604
suggesting at least 4.11...
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
> select BR2_PACKAGE_LIBDRM
> help
> - libkms++ is a C++11 library for kernel mode setting.
> + libkms++ is a C++17 library for kernel mode setting with Python
> + bindings.
>
> Also included are simple test tools for KMS.
>
> @@ -14,13 +15,26 @@ config BR2_PACKAGE_KMSXX
>
> if BR2_PACKAGE_KMSXX
>
> -config BR2_PACKAGE_KMSXX_INSTALL_TESTS
> - bool "Install test programs"
> +config BR2_PACKAGE_KMSXX_UTILS
> + bool "Install kms++utils library and utilities"
> + default y
Rename of an option needs Config.in.legacy handling...
> help
> - This option allows to install the kmsxx test programs.
> + This option installs the kms++ utilities.
> +
> +config BR2_PACKAGE_KMSXX_PYTHON
> + bool "Install kms++ python bindings"
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6
> + depends on !BR2_PACKAGE_PYTHON # python3
> + depends on BR2_USE_WCHAR # python3
> + depends on BR2_TOOLCHAIN_HAS_THREADS # python3
> + depends on BR2_USE_MMU # python3
> + depends on !BR2_STATIC_LIBS # python3
> + select BR2_PACKAGE_PYTHON3
> + help
> + This option installs the kms++ python bindings.
Better done in an separate patch...
>
> endif
>
> -comment "kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 3.8"
> - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
> - !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
> +comment "kms++ needs a toolchain w/ threads, C++, gcc >= 5, headers >= 4.10"
> + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
> + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
> diff --git a/package/kmsxx/kmsxx.hash b/package/kmsxx/kmsxx.hash
> index b8d06ac478..4fd0bc8347 100644
> --- a/package/kmsxx/kmsxx.hash
> +++ b/package/kmsxx/kmsxx.hash
> @@ -1,3 +1,3 @@
> # Locally calculated
> -sha256 28892e50c1d1c83fddff9ec683e3bdbd465f5032d0014ceeab43563b813807e1 kmsxx-cb0786049f960f2bd383617151b01318e02e9ff9.tar.gz
> -sha256 022b4d51da34a380d74dc24eea8e2c4e1a4c8776a52171f8d9e941cf56daf888 LICENSE
> +sha256 f3e036384ab559670e97ae79d1a504c752b9b3cea71a1d3528230ef9f5f36fee kmsxx-084ff3c55cce8bcba7099565b334fa4c88fd9df7.tar.gz
> +sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE
> diff --git a/package/kmsxx/kmsxx.mk b/package/kmsxx/kmsxx.mk
> index 829beb1d68..d1feb7f370 100644
> --- a/package/kmsxx/kmsxx.mk
> +++ b/package/kmsxx/kmsxx.mk
> @@ -4,62 +4,29 @@
> #
> ################################################################################
>
> -KMSXX_VERSION = cb0786049f960f2bd383617151b01318e02e9ff9
> -KMSXX_SITE = $(call github,tomba,kmsxx,$(KMSXX_VERSION))
> +KMSXX_VERSION = 084ff3c55cce8bcba7099565b334fa4c88fd9df7
> +KMSXX_SITE = git://github.com/tomba/kmsxx.git
> +KMSXX_GIT_SUBMODULES=YES
> KMSXX_LICENSE = MPL-2.0
> KMSXX_LICENSE_FILES = LICENSE
> KMSXX_INSTALL_STAGING = YES
> KMSXX_DEPENDENCIES = libdrm host-pkgconf
> -KMSXX_CONF_OPTS = -DKMSXX_ENABLE_PYTHON=OFF
> -
> -KMSXX_CXXFLAGS = $(TARGET_CXXFLAGS)
>
> ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
> KMSXX_CXXFLAGS += -O0
> endif
>
> -KMSXX_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(KMSXX_CXXFLAGS)"
> -
> -ifeq ($(BR2_PACKAGE_KMSXX_INSTALL_TESTS),y)
> -KMSXX_TESTS = \
> - fbtest kmsblank kmscapture \
> - kmsprint kmstest kmsview wbcap \
> - wbm2m
> -
> -define KMSXX_INSTALL_TARGET_TESTS
> - $(foreach t,$(KMSXX_TESTS),\
> - $(INSTALL) -D -m 0755 $(@D)/bin/$(t) \
> - $(TARGET_DIR)/usr/bin/$(t)
> - )
> -endef
> +ifeq ($(BR2_PACKAGE_KMSXX_UTILS),y)
> +KMSXX_CONF_OPTS += -Dutils=true
> +else
> +KMSXX_CONF_OPTS += -Dutils=false
> endif
>
> -KMSXX_LIBS = kms++ kms++util
> -
> -define KMSXX_INSTALL_TARGET_CMDS
> - $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),
> - $(foreach l,$(KMSXX_LIBS),\
> - $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \
> - $(TARGET_DIR)/usr/lib/lib$(l).so
> - )
> - )
> - $(KMSXX_INSTALL_TARGET_TESTS)
> -endef
> -
> -# kmsxx only builds shared or static libraries, so when
> -# BR2_SHARED_STATIC_LIBS=y, we don't have any static library to
> -# install
> -define KMSXX_INSTALL_STAGING_CMDS
> - $(foreach l,$(KMSXX_LIBS),\
> - $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),
> - $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \
> - $(STAGING_DIR)/usr/lib/lib$(l).so)
> - $(if $(BR2_STATIC_LIBS),
> - $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).a \
> - $(STAGING_DIR)/usr/lib/lib$(l).a)
> - mkdir -p $(STAGING_DIR)/usr/include/$(l)
> - cp -dpfr $(@D)/$(l)/inc/$(l)/* $(STAGING_DIR)/usr/include/$(l)/
> - )
> -endef
> +ifeq ($(BR2_PACKAGE_KMSXX_PYTHON),y)
> +KMSXX_CONF_OPTS += -Dpykms=enabled
> +KMSXX_DEPENDENCIES += python3
> +else
> +KMSXX_CONF_OPTS += -Dpykms=disabled
> +endif
>
> -$(eval $(cmake-package))
> +$(eval $(meson-package))
Regards,
Peter
More information about the buildroot
mailing list