Skip to contentSkip to conversation

Add new virtual-package infrastructure (branch yem/virtual-packages)

PATCH New Yann E. MORIN 1 participant 22 messages Apr 5, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v5 cover Add new virtual-package infrastructure (branch yem/virtual-packages)

From: "Yann E. MORIN" <[email protected]>

Hello All!

Here is a quick series implementing a new infrastructure for virtual packages.

Basically, all a virtual package has to do in its .mk is:

    $(eval $(virtual-package))

There is no need to:
- define the dependency against the provider,
- define _SOURCE="" (empty)

But it requires the config options for the virtual package be named after the package, eg.:

package | Selector option | Provider option
--------+------------------------+-----------------------------
libegl | BR2_PACKAGE_HAS_LIBEGL | BR2_PACKAGE_PROVIDES_LIBEGL
jpeg | BR2_PACKAGE_HAS_JPEG | BR2_PACKAGE_PROVIDES_JPEG

So the series:
- starts with renaming some config options in the current virtual packages
- then introduces the new virtual-package infra and the associated documentation in the manual
- and finally converts the virtual packages over to the new infra.

Special thanks to ?ric for his initial work on the manual, which prompted the idea for this new infra! That's partly for this that I kept his initial change to the manual almost unmolested.

Notes:

- the version string is strange. This does not work:
$(2)_VERSION = virtual
so I had to come up with the solution in patch 20.

- patch 21 is not to be applied. It contains only example virtual packages, to test the implementation.

Changes v4 -> v5:
- 'select LEGACY' on old options
- rebased on-top master

Changes v3 -> v4:
- do not rename libegl and libgles (Thomas P)
- typo (Jerzy)
- convert udev over to the new infra

Changes v2 -> v3:
- rename libegl and libgles: s/^/opengl-/ (Thomas P)
- add host variant, for the upcoming lua stuff (Fran?ois)
- add fake version string (Thomas DS)

Changes v1 -> v2:
- include ?ric's virtual package tutorial to the manual (?ric)
- split the renaimg of config options from the actual conversion to the virtual-package infra
- rebase on top of master after post-release merge
- add host-virtual-package (will be needed by a pending lua-related series by Fran?ois)

Regards,
Yann E. MORIN.

The following changes since commit 1be95896dde41c668e1c884db704b0da2ea360c9:

Revert "flex: Version bump 2.5.39" (2014-04-05 15:21:36 +0200)

are available in the git repository at:

git://gitorious.org/buildroot/buildroot.git yem/virtual-packages

for you to fetch changes up to e747107039b46170ebe818191b860cc98e5b9932:

FOO: tentative target and host virt packages (2014-04-05 17:05:12 +0200)

----------------------------------------------------------------
Yann E. MORIN (20):
package/libgles: rename the _HAS and _PROVIDES variables package/libegl: rename the _HAS and _PROVIDES variables package/libopenmax: rename the _HAS and _PROVIDES variables package/libopenvg: rename the _HAS and _PROVIDES variables package/luainterpreter: rename the _HAS and _PROVIDES variables package/lua: rename config options
packages: add infrastructure for virtual packages
manual: update the virtual package section with the new infrastructure
manual: add notes about depending on a virtual package package/powervr: convert to the virtual-package infrastructure package/libgles: convert to the virtual-package infrastructure package/libegl: convert to the virtual-package infrastructure package/libopenmax: convert to the virtual-package infrastructure package/libopenvg: convert to the virtual-package infrastructure package/luainterpreter: convert to the virtual-package infrastructure package/jpeg: convert to the virtual-package infrastructure package/cryptodev: convert to the virtual-package infrastructure package/udev: convert to the virtual-package infrastructure
virtual-package: fake a version string for virtual packages
FOO: tentative target and host virt packages

eric.le.bihan.dev at free.fr (1):
manual: add virtual package tutorial

 Config.in.legacy                                 |  24 ++++
 docs/manual/adding-packages-virtual.txt          | 142 +++++++++++++++++++++++
 docs/manual/adding-packages.txt                  |   2 +
 package/Config.in                                |   6 +-
 package/Makefile.in                              |   1 +
 package/bellagio/Config.in                       |   4 +-
 package/cairo/cairo.mk                           |   4 +-
 package/cryptodev/Config.in                      |   3 +
 package/cryptodev/cryptodev.mk                   |  12 +-
 package/foo-prov/Config.in                       |  15 +++
 package/foo-prov/foo-prov.mk                     |  13 +++
 package/foo-user/Config.in                       |   7 ++
 package/foo-user/foo-user.mk                     |  16 +++
 package/foo-virt/Config.in                       |  13 +++
 package/foo-virt/foo-virt.mk                     |   2 +
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in |   8 +-
 package/gstreamer1/gst-omx/Config.in             |   4 +-
 package/gstreamer1/gst1-plugins-bad/Config.in    |   2 +-
 package/jpeg/Config.in                           |   3 +
 package/jpeg/jpeg.mk                             |  12 +-
 package/lbase64/Config.in                        |   2 +-
 package/lpeg/Config.in                           |   2 +-
 package/lpty/Config.in                           |   2 +-
 package/lrandom/Config.in                        |   2 +-
 package/lsqlite3/Config.in                       |   2 +-
 package/lua-cjson/Config.in                      |   2 +-
 package/lua-ev/Config.in                         |   2 +-
 package/lua-msgpack-native/Config.in             |   2 +-
 package/lua/Config.in                            |  14 +--
 package/lua/lua.mk                               |   4 +-
 package/luaexpat/Config.in                       |   2 +-
 package/luafilesystem/Config.in                  |   2 +-
 package/luainterpreter/Config.in                 |   6 +-
 package/luainterpreter/luainterpreter.mk         |  11 +-
 package/luajit/Config.in                         |   4 +-
 package/luaposix/Config.in                       |   2 +-
 package/luasec/Config.in                         |   2 +-
 package/luasocket/Config.in                      |   2 +-
 package/luasql-sqlite3/Config.in                 |   2 +-
 package/lzlib/Config.in                          |   2 +-
 package/mesa3d/Config.in                         |   8 +-
 package/opengl/libegl/Config.in                  |   6 +-
 package/opengl/libegl/libegl.mk                  |  11 +-
 package/opengl/libgles/Config.in                 |   6 +-
 package/opengl/libgles/libgles.mk                |  11 +-
 package/opengl/libopenmax/Config.in              |   6 +-
 package/opengl/libopenmax/libopenmax.mk          |  11 +-
 package/opengl/libopenvg/Config.in               |   6 +-
 package/opengl/libopenvg/libopenvg.mk            |  11 +-
 package/pkg-virtual.mk                           |  70 +++++++++++
 package/powervr/powervr.mk                       |  11 +-
 package/qt/Config.in                             |   4 +-
 package/qt5/qt5base/Config.in                    |   6 +-
 package/qt5/qt5declarative/Config.in             |   6 +-
 package/qt5/qt5graphicaleffects/Config.in        |   6 +-
 package/qt5/qt5multimedia/Config.in              |   6 +-
 package/qt5/qt5quick1/Config.in                  |   6 +-
 package/qt5/qt5quickcontrols/Config.in           |   6 +-
 package/rings/Config.in                          |   2 +-
 package/rpi-userland/Config.in                   |  16 +--
 package/sunxi-mali/Config.in                     |   8 +-
 package/ti-gfx/Config.in                         |   8 +-
 package/udev/udev.mk                             |  11 +-
 package/xbmc/Config.in                           |   4 +-
 64 files changed, 420 insertions(+), 188 deletions(-)
 create mode 100644 docs/manual/adding-packages-virtual.txt
 create mode 100644 package/foo-prov/Config.in
 create mode 100644 package/foo-prov/foo-prov.mk
 create mode 100644 package/foo-user/Config.in
 create mode 100644 package/foo-user/foo-user.mk
 create mode 100644 package/foo-virt/Config.in
 create mode 100644 package/foo-virt/foo-virt.mk
 create mode 100644 package/pkg-virtual.mk
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH v5 1/21 package/libgles: rename the _HAS and _PROVIDES variables

From: "Yann E. MORIN" <[email protected]>

The basic rule for a package is to have its options named after the package name. There is no reason this should not also be the case for virtual packages.

Besides, this will allow us to switch libgles to use the soon-to-be-introduced virtual-package infrastructure.

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
Cc Samuel Martin <[email protected]>
Cc Maxime Hadjinlian <[email protected]>
---
 package/cairo/cairo.mk                           | 2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 4 ++--
 package/gstreamer1/gst1-plugins-bad/Config.in    | 2 +-
 package/mesa3d/Config.in                         | 4 ++--
 package/opengl/libgles/Config.in                 | 6 +++---
 package/opengl/libgles/libgles.mk                | 4 ++--
 package/qt/Config.in                             | 2 +-
 package/qt5/qt5base/Config.in                    | 4 ++--
 package/qt5/qt5declarative/Config.in             | 4 ++--
 package/qt5/qt5graphicaleffects/Config.in        | 4 ++--
 package/qt5/qt5multimedia/Config.in              | 4 ++--
 package/qt5/qt5quick1/Config.in                  | 4 ++--
 package/qt5/qt5quickcontrols/Config.in           | 4 ++--
 package/rpi-userland/Config.in                   | 4 ++--
 package/sunxi-mali/Config.in                     | 4 ++--
 package/ti-gfx/Config.in                         | 4 ++--
 package/xbmc/Config.in                           | 4 ++--
 17 files changed, 32 insertions(+), 32 deletions(-)
package/cairo/cairo.mk +1 -1
index aa03a27..ee58aff 100644
@@ -54,7 +54,7 @@ else
 	CAIRO_CONF_OPT += --disable-directfb
 endif
 
-ifeq ($(BR2_PACKAGE_HAS_OPENGL_ES),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
 	CAIRO_CONF_OPT += --enable-glesv2
 	CAIRO_DEPENDENCIES += libgles
 else
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +2 -2
index e084568..379402d 100644
@@ -5,7 +5,7 @@ comment "gpu-viv-bin-mx6q needs an (e)glibc toolchain"
 config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 	bool "gpu-viv-bin-mx6q"
 	select BR2_PACKAGE_HAS_OPENGL_EGL
-	select BR2_PACKAGE_HAS_OPENGL_ES
+	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
 	depends on BR2_arm # Only relevant for i.MX6
@@ -27,7 +27,7 @@ if BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "gpu-viv-bin-mx6q"
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "gpu-viv-bin-mx6q"
 
 config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES
package/gstreamer1/gst1-plugins-bad/Config.in +1 -1
index deffabe..0737140 100644
@@ -464,7 +464,7 @@ comment "rsvg plugin needs a toolchain w/ C++, wchar, threads"
 
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_EGLGLES
 	bool "eglgles"
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_LIBGLES
 	help
 	  EGL/GLES sink
 
package/mesa3d/Config.in +2 -2
index 8ed0c07..8f2b649 100644
@@ -99,7 +99,7 @@ config BR2_PACKAGE_MESA3D_OPENGL_EGL
 
 config BR2_PACKAGE_MESA3D_OPENGL_ES
 	bool "OpenGL ES"
-	select BR2_PACKAGE_HAS_OPENGL_ES
+	select BR2_PACKAGE_HAS_LIBGLES
 	help
 	  Use the Khronos OpenGL ES APIs.  This is commonly used on embedded
 	  systems and represents a subset of the OpenGL API.
@@ -109,7 +109,7 @@ endmenu
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
 
 endif
package/opengl/libgles/Config.in +3 -3
index 75ccfc8..b7b800f 100644
@@ -1,6 +1,6 @@
-config BR2_PACKAGE_HAS_OPENGL_ES
+config BR2_PACKAGE_HAS_LIBGLES
 	bool
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	string
package/opengl/libgles/libgles.mk +2 -2
index 7a07e37..041e378 100644
@@ -5,9 +5,9 @@
 ################################################################################
 
 LIBGLES_SOURCE =
-LIBGLES_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL_ES))
+LIBGLES_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBGLES))
 
-ifeq ($(BR2_PACKAGE_HAS_OPENGL_ES),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
 ifeq ($(LIBGLES_DEPENDENCIES),)
 $(error No libGLES implementation selected. Configuration error.)
 endif
package/qt/Config.in +1 -1
index 5105e5d..d3f6a5a 100644
@@ -294,7 +294,7 @@ config BR2_PACKAGE_QT_PHONON_BACKEND
 
 config BR2_PACKAGE_QT_OPENGL_ES
 	bool "OpenGL ES v2.x support"
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
 	help
 	  Enable the OpenGL ES v2.x support.
package/qt5/qt5base/Config.in +2 -2
index 5c404d1..437b1d2 100644
@@ -138,10 +138,10 @@ comment "X.org XCB backend available if X.org is enabled"
 config BR2_PACKAGE_QT5BASE_EGLFS
 	bool "eglfs support"
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 
 comment "eglfs backend available if OpenGLES and EGL are enabled"
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES
+	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES
 
 config BR2_PACKAGE_QT5BASE_PRINTSUPPORT
 	bool "print support module"
package/qt5/qt5declarative/Config.in +2 -2
index c5753b1..5e1516d 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QT5DECLARATIVE
 	select BR2_PACKAGE_QT5BASE_GUI
 	select BR2_PACKAGE_QT5BASE_EGLFS
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
 	  Qt is a cross-platform application and UI framework for
@@ -16,5 +16,5 @@ config BR2_PACKAGE_QT5DECLARATIVE
 	  http://qt-project.org
 
 comment "qt5declarative requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES) && \
+	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5graphicaleffects/Config.in +2 -2
index f4029e9..a821b40 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_QT5GRAPHICALEFFECTS
 	select BR2_PACKAGE_QT5DECLARATIVE
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	help
 	  Qt is a cross-platform application and UI framework for
 	  developers using C++.
@@ -14,5 +14,5 @@ config BR2_PACKAGE_QT5GRAPHICALEFFECTS
 	  http://qt-project.org
 
 comment "qt5graphicaleffects requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES) && \
+	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5multimedia/Config.in +2 -2
index 53b7f86..765bdc1 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_QT5MULTIMEDIA
 	select BR2_PACKAGE_QT5BASE
 	select BR2_PACKAGE_QT5DECLARATIVE
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
 	  Qt is a cross-platform application and UI framework for
@@ -14,5 +14,5 @@ config BR2_PACKAGE_QT5MULTIMEDIA
 	  http://qt-project.org
 
 comment "qt5multimedia requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES) && \
+	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5quick1/Config.in +2 -2
index 1a0b8bf..1ffcc0d 100644
@@ -9,7 +9,7 @@ config BR2_PACKAGE_QT5QUICK1
 	# This module does not support static linking
 	depends on !BR2_PREFER_STATIC_LIB
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
 	  Qt is a cross-platform application and UI framework for
@@ -21,5 +21,5 @@ config BR2_PACKAGE_QT5QUICK1
 
 comment "qt5quick1 needs a toolchain w/ dynamic library and an OpenGL-capable backend"
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES || \
+	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES || \
 		BR2_PREFER_STATIC_LIB
package/qt5/qt5quickcontrols/Config.in +2 -2
index e72f2a4..355aef0 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QT5QUICKCONTROLS
 	select BR2_PACKAGE_QT5DECLARATIVE
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	depends on BR2_PACKAGE_HAS_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_LIBGLES
 	help
 	  Qt is a cross-platform application and UI framework for
 	  developers using C++.
@@ -15,5 +15,5 @@ config BR2_PACKAGE_QT5QUICKCONTROLS
 	  http://qt-project.org
 
 comment "qt5quickcontrols requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES) && \
+	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/rpi-userland/Config.in +2 -2
index 2303942..68b535b 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_RPI_USERLAND
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_PACKAGE_HAS_OPENGL_EGL
-	select BR2_PACKAGE_HAS_OPENGL_ES
+	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_OPENVG
 	select BR2_PACKAGE_HAS_OPENMAX
 	help
@@ -22,7 +22,7 @@ if BR2_PACKAGE_RPI_USERLAND
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "rpi-userland"
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "rpi-userland"
 
 config BR2_PACKAGE_PROVIDES_OPENVG
package/sunxi-mali/Config.in +2 -2
index 9f188a3..c47b6a3 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_SUNXI_MALI
 	bool "sunxi-mali"
 	select BR2_PACKAGE_HAS_OPENGL_EGL
-	select BR2_PACKAGE_HAS_OPENGL_ES
+	select BR2_PACKAGE_HAS_LIBGLES
 	# The egl/gles mali libraries are provided as a git submodule of the
 	# sunxi-mali repo and are downloaded by the sunxi-mali-prop package.
 	select BR2_PACKAGE_SUNXI_MALI_PROP
@@ -21,7 +21,7 @@ if BR2_PACKAGE_SUNXI_MALI
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "sunxi-mali"
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "sunxi-mali"
 
 config BR2_PACKAGE_SUNXI_MALI_DBG
package/ti-gfx/Config.in +2 -2
index f455f4c..2bdc972 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_TI_GFX
 	bool "ti-gfx"
 	select BR2_PACKAGE_HAS_OPENGL_EGL
-	select BR2_PACKAGE_HAS_OPENGL_ES
+	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_POWERVR
 	depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
 	help
@@ -14,7 +14,7 @@ if BR2_PACKAGE_TI_GFX
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "ti-gfx"
 
-config BR2_PACKAGE_PROVIDES_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "ti-gfx"
 
 config BR2_PACKAGE_PROVIDES_POWERVR
package/xbmc/Config.in +2 -2
index cf6a6b9..fcc6abf 100644
@@ -2,7 +2,7 @@ comment "xbmc needs an (e)glibc toolchain w/ C++, threads"
 	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
 
 comment "xbmc requires an OpenGL ES and EGL backend"
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES
+	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
@@ -59,7 +59,7 @@ menuconfig BR2_PACKAGE_XBMC
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_LIBGLES
 	help
 	  XBMC is an award-winning free and open source (GPL) software
 	  media player and entertainment hub for digital media.
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH v5 2/21 package/libegl: rename the _HAS and _PROVIDES variables

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

The basic rule for a package is to have its options named after the package name. There is no reason this should not also be the case for virtual packages.

Besides, this will allow us to switch libegl to use the soon-to-be-introduced virtual-package infrastructure.

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
Cc Samuel Martin <[email protected]>
cc Maxime Hadjinlian <[email protected]>
---
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 4 ++--
 package/gstreamer1/gst1-plugins-bad/Config.in    | 2 +-
 package/mesa3d/Config.in                         | 4 ++--
 package/opengl/libegl/Config.in                  | 6 +++---
 package/opengl/libegl/libegl.mk                  | 4 ++--
 package/qt/Config.in                             | 2 +-
 package/qt5/qt5base/Config.in                    | 4 ++--
 package/qt5/qt5declarative/Config.in             | 4 ++--
 package/qt5/qt5graphicaleffects/Config.in        | 4 ++--
 package/qt5/qt5multimedia/Config.in              | 4 ++--
 package/qt5/qt5quick1/Config.in                  | 4 ++--
 package/qt5/qt5quickcontrols/Config.in           | 4 ++--
 package/rpi-userland/Config.in                   | 4 ++--
 package/sunxi-mali/Config.in                     | 4 ++--
 package/ti-gfx/Config.in                         | 4 ++--
 package/xbmc/Config.in                           | 4 ++--
 16 files changed, 31 insertions(+), 31 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +2 -2
index 379402d..864c605 100644
@@ -4,7 +4,7 @@ comment "gpu-viv-bin-mx6q needs an (e)glibc toolchain"
 
 config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 	bool "gpu-viv-bin-mx6q"
-	select BR2_PACKAGE_HAS_OPENGL_EGL
+	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
@@ -24,7 +24,7 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 
 if BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "gpu-viv-bin-mx6q"
 
 config BR2_PACKAGE_PROVIDES_LIBGLES
package/gstreamer1/gst1-plugins-bad/Config.in +1 -1
index 0737140..0e4765c 100644
@@ -464,7 +464,7 @@ comment "rsvg plugin needs a toolchain w/ C++, wchar, threads"
 
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_EGLGLES
 	bool "eglgles"
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_LIBGLES
+	depends on BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES
 	help
 	  EGL/GLES sink
 
package/mesa3d/Config.in +2 -2
index 8f2b649..54aca4b 100644
@@ -92,7 +92,7 @@ depends on BR2_PACKAGE_MESA3D_DRIVER
 config BR2_PACKAGE_MESA3D_OPENGL_EGL
 	bool "EGL"
 	depends on BR2_PACKAGE_HAS_UDEV
-	select BR2_PACKAGE_HAS_OPENGL_EGL
+	select BR2_PACKAGE_HAS_LIBEGL
 	help
 	  Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
 	  similar to GLX, for X, and WGL, for Windows.
@@ -106,7 +106,7 @@ config BR2_PACKAGE_MESA3D_OPENGL_ES
 
 endmenu
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
 
 config BR2_PACKAGE_PROVIDES_LIBGLES
package/opengl/libegl/Config.in +3 -3
index 2d81a20..8401bb2 100644
@@ -1,6 +1,6 @@
-config BR2_PACKAGE_HAS_OPENGL_EGL
+config BR2_PACKAGE_HAS_LIBEGL
 	bool
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	string
package/opengl/libegl/libegl.mk +2 -2
index 3311e50..2e399ce 100644
@@ -5,9 +5,9 @@
 ################################################################################
 
 LIBEGL_SOURCE =
-LIBEGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL_EGL))
+LIBEGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBEGL))
 
-ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
 ifeq ($(LIBEGL_DEPENDENCIES),)
 $(error No libEGL implementation selected. Configuration error.)
 endif
package/qt/Config.in +1 -1
index d3f6a5a..eed25c8 100644
@@ -295,7 +295,7 @@ config BR2_PACKAGE_QT_PHONON_BACKEND
 config BR2_PACKAGE_QT_OPENGL_ES
 	bool "OpenGL ES v2.x support"
 	depends on BR2_PACKAGE_HAS_LIBGLES
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	help
 	  Enable the OpenGL ES v2.x support.
 
package/qt5/qt5base/Config.in +2 -2
index 437b1d2..5d5b7f6 100644
@@ -137,11 +137,11 @@ comment "X.org XCB backend available if X.org is enabled"
 
 config BR2_PACKAGE_QT5BASE_EGLFS
 	bool "eglfs support"
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 
 comment "eglfs backend available if OpenGLES and EGL are enabled"
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES
+	depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES
 
 config BR2_PACKAGE_QT5BASE_PRINTSUPPORT
 	bool "print support module"
package/qt5/qt5declarative/Config.in +2 -2
index 5e1516d..4a6e805 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_QT5DECLARATIVE
 	select BR2_PACKAGE_QT5BASE
 	select BR2_PACKAGE_QT5BASE_GUI
 	select BR2_PACKAGE_QT5BASE_EGLFS
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
@@ -16,5 +16,5 @@ config BR2_PACKAGE_QT5DECLARATIVE
 	  http://qt-project.org
 
 comment "qt5declarative requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
+	depends on (!BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5graphicaleffects/Config.in +2 -2
index a821b40..2747af8 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_QT5GRAPHICALEFFECTS
 	select BR2_PACKAGE_QT5BASE
 	select BR2_PACKAGE_QT5DECLARATIVE
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 	help
 	  Qt is a cross-platform application and UI framework for
@@ -14,5 +14,5 @@ config BR2_PACKAGE_QT5GRAPHICALEFFECTS
 	  http://qt-project.org
 
 comment "qt5graphicaleffects requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
+	depends on (!BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5multimedia/Config.in +2 -2
index 765bdc1..c00491c 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_QT5MULTIMEDIA
 	bool "qt5multimedia"
 	select BR2_PACKAGE_QT5BASE
 	select BR2_PACKAGE_QT5DECLARATIVE
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
@@ -14,5 +14,5 @@ config BR2_PACKAGE_QT5MULTIMEDIA
 	  http://qt-project.org
 
 comment "qt5multimedia requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
+	depends on (!BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/qt5/qt5quick1/Config.in +2 -2
index 1ffcc0d..30c2e79 100644
@@ -8,7 +8,7 @@ config BR2_PACKAGE_QT5QUICK1
 	select BR2_PACKAGE_QT5DECLARATIVE
 	# This module does not support static linking
 	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 	help
@@ -21,5 +21,5 @@ config BR2_PACKAGE_QT5QUICK1
 
 comment "qt5quick1 needs a toolchain w/ dynamic library and an OpenGL-capable backend"
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES || \
+	depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES || \
 		BR2_PREFER_STATIC_LIB
package/qt5/qt5quickcontrols/Config.in +2 -2
index 355aef0..c350a74 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_QT5QUICKCONTROLS
 	select BR2_PACKAGE_QT5BASE_NETWORK
 	select BR2_PACKAGE_QT5DECLARATIVE
 	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
 	help
 	  Qt is a cross-platform application and UI framework for
@@ -15,5 +15,5 @@ config BR2_PACKAGE_QT5QUICKCONTROLS
 	  http://qt-project.org
 
 comment "qt5quickcontrols requires an OpenGL-capable backend"
-	depends on (!BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES) && \
+	depends on (!BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES) && \
 		BR2_PACKAGE_QT5_JSCORE_AVAILABLE
package/rpi-userland/Config.in +2 -2
index 68b535b..4a82c9d 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_RPI_USERLAND
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	select BR2_PACKAGE_HAS_OPENGL_EGL
+	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_OPENVG
 	select BR2_PACKAGE_HAS_OPENMAX
@@ -19,7 +19,7 @@ config BR2_PACKAGE_RPI_USERLAND
 
 if BR2_PACKAGE_RPI_USERLAND
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "rpi-userland"
 
 config BR2_PACKAGE_PROVIDES_LIBGLES
package/sunxi-mali/Config.in +2 -2
index c47b6a3..c95ebbb 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_SUNXI_MALI
 	bool "sunxi-mali"
-	select BR2_PACKAGE_HAS_OPENGL_EGL
+	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	# The egl/gles mali libraries are provided as a git submodule of the
 	# sunxi-mali repo and are downloaded by the sunxi-mali-prop package.
@@ -18,7 +18,7 @@ config BR2_PACKAGE_SUNXI_MALI
 
 if BR2_PACKAGE_SUNXI_MALI
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "sunxi-mali"
 
 config BR2_PACKAGE_PROVIDES_LIBGLES
package/ti-gfx/Config.in +2 -2
index 2bdc972..3e8648e 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_TI_GFX
 	bool "ti-gfx"
-	select BR2_PACKAGE_HAS_OPENGL_EGL
+	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_POWERVR
 	depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
@@ -11,7 +11,7 @@ config BR2_PACKAGE_TI_GFX
 
 if BR2_PACKAGE_TI_GFX
 
-config BR2_PACKAGE_PROVIDES_OPENGL_EGL
+config BR2_PACKAGE_PROVIDES_LIBEGL
 	default "ti-gfx"
 
 config BR2_PACKAGE_PROVIDES_LIBGLES
package/xbmc/Config.in +2 -2
index fcc6abf..70faaab 100644
@@ -2,7 +2,7 @@ comment "xbmc needs an (e)glibc toolchain w/ C++, threads"
 	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
 
 comment "xbmc requires an OpenGL ES and EGL backend"
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_LIBGLES
+	depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
@@ -59,7 +59,7 @@ menuconfig BR2_PACKAGE_XBMC
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_LIBGLES
+	depends on BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES
 	help
 	  XBMC is an award-winning free and open source (GPL) software
 	  media player and entertainment hub for digital media.
Signature · 1 line
1.8.3.2
#3 lore raw

PATCH v5 3/21 package/libopenmax: rename the _HAS and _PROVIDES variables

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

The basic rule for a package is to have its options named after the package name. There is no reason this should not also be the case for virtual packages.

Besides, this will allow us to switch libopenmax to use the soon-to-be-introduced virtual-package infrastructure.

---
 package/bellagio/Config.in              | 4 ++--
 package/gstreamer1/gst-omx/Config.in    | 4 ++--
 package/opengl/libopenmax/Config.in     | 6 +++---
 package/opengl/libopenmax/libopenmax.mk | 4 ++--
 package/rpi-userland/Config.in          | 4 ++--
 5 files changed, 11 insertions(+), 11 deletions(-)
package/bellagio/Config.in +2 -2
index 2beb658..ee87e13 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_BELLAGIO
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on !BR2_PREFER_STATIC_LIB
-	select BR2_PACKAGE_HAS_OPENMAX
+	select BR2_PACKAGE_HAS_LIBOPENMAX
 	help
 	  Bellagio is an opensource implementation of the
 	  OpenMAX IL API.
@@ -19,7 +19,7 @@ config BR2_PACKAGE_BELLAGIO
 
 if BR2_PACKAGE_BELLAGIO
 
-config BR2_PACKAGE_PROVIDES_OPENMAX
+config BR2_PACKAGE_PROVIDES_LIBOPENMAX
 	default "bellagio"
 
 endif
package/gstreamer1/gst-omx/Config.in +2 -2
index 1d5b131..d2e4776 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_GST_OMX
 	bool "gst-omx"
-	depends on BR2_PACKAGE_HAS_OPENMAX
+	depends on BR2_PACKAGE_HAS_LIBOPENMAX
 	select BR2_PACKAGE_GST1_PLUGINS_BASE
 	help
 	  GStreamer plug-in to use OpenMAX API.
@@ -8,4 +8,4 @@ config BR2_PACKAGE_GST_OMX
 	  http://cgit.freedesktop.org/gstreamer/gst-omx
 
 comment "gst-omx requires a OpenMAX implementation"
-	depends on !BR2_PACKAGE_HAS_OPENMAX
+	depends on !BR2_PACKAGE_HAS_LIBOPENMAX
package/opengl/libopenmax/Config.in +3 -3
index 105c53e..d50f2ce 100644
@@ -1,6 +1,6 @@
-config BR2_PACKAGE_HAS_OPENMAX
+config BR2_PACKAGE_HAS_LIBOPENMAX
 	bool
 
-config BR2_PACKAGE_PROVIDES_OPENMAX
-	depends on BR2_PACKAGE_HAS_OPENMAX
+config BR2_PACKAGE_PROVIDES_LIBOPENMAX
+	depends on BR2_PACKAGE_HAS_LIBOPENMAX
 	string
package/opengl/libopenmax/libopenmax.mk +2 -2
index a2bd23d..6cdeacd 100644
@@ -5,9 +5,9 @@
 ################################################################################
 
 LIBOPENMAX_SOURCE =
-LIBOPENMAX_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENMAX))
+LIBOPENMAX_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBOPENMAX))
 
-ifeq ($(BR2_PACKAGE_HAS_OPENMAX),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBOPENMAX),y)
 ifeq ($(LIBOPENMAX_DEPENDENCIES),)
 $(error No libopenmax implementation selected. Configuration error.)
 endif
package/rpi-userland/Config.in +2 -2
index 4a82c9d..68ac1f6 100644
@@ -7,7 +7,7 @@ config BR2_PACKAGE_RPI_USERLAND
 	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
 	select BR2_PACKAGE_HAS_OPENVG
-	select BR2_PACKAGE_HAS_OPENMAX
+	select BR2_PACKAGE_HAS_LIBOPENMAX
 	help
 	  Raspberry Pi Userland contains the necessary library to use the
 	  VideoCore driver.
@@ -28,7 +28,7 @@ config BR2_PACKAGE_PROVIDES_LIBGLES
 config BR2_PACKAGE_PROVIDES_OPENVG
 	default "rpi-userland"
 
-config BR2_PACKAGE_PROVIDES_OPENMAX
+config BR2_PACKAGE_PROVIDES_LIBOPENMAX
 	default "rpi-userland"
 
 endif
Signature · 1 line
1.8.3.2
#4 lore raw

PATCH v5 4/21 package/libopenvg: rename the _HAS and _PROVIDES variables

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

The basic rule for a package is to have its options named after the package name. There is no reason this should not also be the case for virtual packages.

Besides, renaming the package will allow us to switch libopenvg to use the soon-to-be-introduced virtual-package infrastructure.

---
 package/cairo/cairo.mk                | 2 +-
 package/opengl/libopenvg/Config.in    | 6 +++---
 package/opengl/libopenvg/libopenvg.mk | 4 ++--
 package/rpi-userland/Config.in        | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)
package/cairo/cairo.mk +1 -1
index ee58aff..43238ca 100644
@@ -61,7 +61,7 @@ else
 	CAIRO_CONF_OPT += --disable-glesv2
 endif
 
-ifeq ($(BR2_PACKAGE_HAS_OPENVG),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
 	CAIRO_CONF_OPT += --enable-vg
 	CAIRO_DEPENDENCIES += libopenvg
 else
package/opengl/libopenvg/Config.in +3 -3
index 9d31525..53cde6a 100644
@@ -1,6 +1,6 @@
-config BR2_PACKAGE_HAS_OPENVG
+config BR2_PACKAGE_HAS_LIBOPENVG
 	bool
 
-config BR2_PACKAGE_PROVIDES_OPENVG
-	depends on BR2_PACKAGE_HAS_OPENVG
+config BR2_PACKAGE_PROVIDES_LIBOPENVG
+	depends on BR2_PACKAGE_HAS_LIBOPENVG
 	string
package/opengl/libopenvg/libopenvg.mk +2 -2
index f81db5e..1c6f929 100644
@@ -5,9 +5,9 @@
 ################################################################################
 
 LIBOPENVG_SOURCE =
-LIBOPENVG_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENVG))
+LIBOPENVG_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBOPENVG))
 
-ifeq ($(BR2_PACKAGE_HAS_OPENVG),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
 ifeq ($(LIBOPENVG_DEPENDENCIES),)
 $(error No libOpenVG implementation selected. Configuration error.)
 endif
package/rpi-userland/Config.in +2 -2
index 68ac1f6..aeee5e1 100644
@@ -6,7 +6,7 @@ config BR2_PACKAGE_RPI_USERLAND
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_PACKAGE_HAS_LIBEGL
 	select BR2_PACKAGE_HAS_LIBGLES
-	select BR2_PACKAGE_HAS_OPENVG
+	select BR2_PACKAGE_HAS_LIBOPENVG
 	select BR2_PACKAGE_HAS_LIBOPENMAX
 	help
 	  Raspberry Pi Userland contains the necessary library to use the
@@ -25,7 +25,7 @@ config BR2_PACKAGE_PROVIDES_LIBEGL
 config BR2_PACKAGE_PROVIDES_LIBGLES
 	default "rpi-userland"
 
-config BR2_PACKAGE_PROVIDES_OPENVG
+config BR2_PACKAGE_PROVIDES_LIBOPENVG
 	default "rpi-userland"
 
 config BR2_PACKAGE_PROVIDES_LIBOPENMAX
Signature · 1 line
1.8.3.2
#5 lore raw

PATCH v5 5/21 package/luainterpreter: rename the _HAS and _PROVIDES variables

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

The basic rule for a package is to have its options named after the package name. There is no reason this should not also be the case for virtual packages.

Besides, this will allow us to switch luainterpreter to use the soon-to-be-introduced virtual-package infrastructure.

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
Cc Francois Perrad <[email protected]>
---
 package/Config.in                        | 2 +-
 package/lbase64/Config.in                | 2 +-
 package/lpeg/Config.in                   | 2 +-
 package/lpty/Config.in                   | 2 +-
 package/lrandom/Config.in                | 2 +-
 package/lsqlite3/Config.in               | 2 +-
 package/lua-cjson/Config.in              | 2 +-
 package/lua-ev/Config.in                 | 2 +-
 package/lua-msgpack-native/Config.in     | 2 +-
 package/lua/Config.in                    | 4 ++--
 package/luaexpat/Config.in               | 2 +-
 package/luafilesystem/Config.in          | 2 +-
 package/luainterpreter/Config.in         | 6 +++---
 package/luainterpreter/luainterpreter.mk | 4 ++--
 package/luajit/Config.in                 | 4 ++--
 package/luaposix/Config.in               | 2 +-
 package/luasec/Config.in                 | 2 +-
 package/luasocket/Config.in              | 2 +-
 package/luasql-sqlite3/Config.in         | 2 +-
 package/lzlib/Config.in                  | 2 +-
 package/rings/Config.in                  | 2 +-
 21 files changed, 26 insertions(+), 26 deletions(-)
package/Config.in +1 -1
index e816603..49daa33 100644
@@ -371,7 +371,7 @@ source "package/jimtcl/Config.in"
 source "package/lua/Config.in"
 source "package/luainterpreter/Config.in"
 source "package/luajit/Config.in"
-if BR2_PACKAGE_HAS_LUA_INTERPRETER && !BR2_PREFER_STATIC_LIB
+if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_PREFER_STATIC_LIB
 # lua modules are dynamically loaded, so not available on static builds
 menu "Lua libraries/modules"
 source "package/cgilua/Config.in"
package/lbase64/Config.in +1 -1
index 4593ab9..48d3fdb 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LBASE64
 	bool "lbase64"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	depends on !BR2_PACKAGE_LUA_5_2
 	help
 	  A base64 library for Lua
package/lpeg/Config.in +1 -1
index da54d61..957991d 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LPEG
 	bool "lpeg"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  LPeg is a new pattern-matching library for Lua,
 	  based on Parsing Expression Grammars (PEGs).
package/lpty/Config.in +1 -1
index 5e7ad14..50cbd25 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LPTY
 	bool "lpty"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  A simple facility for lua to control other programs via
 	  PTYs.
package/lrandom/Config.in +1 -1
index 661707d..64bcf0c 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LRANDOM
 	bool "lrandom"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  A library for generating random numbers
 	  based on the Mersenne Twister
package/lsqlite3/Config.in +1 -1
index e19c789..cc431ae 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LSQLITE3
 	bool "lsqlite3"
 	select BR2_PACKAGE_SQLITE
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  a thin Lua wrapper for the SQLite3 library.
 
package/lua-cjson/Config.in +1 -1
index 8129fab..1f4c7c7 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUA_CJSON
 	bool "lua-cjson"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  The Lua CJSON module provides JSON support for Lua. It features:
 	  - Fast, standards compliant encoding/parsing routines
package/lua-ev/Config.in +1 -1
index 28da114..74b5dc7 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUA_EV
 	bool "lua-ev"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	select BR2_PACKAGE_LIBEV
 	depends on !(BR2_avr32 || BR2_bfin) # libev
 	help
package/lua-msgpack-native/Config.in +1 -1
index 498b30c..c7b3373 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUA_MSGPACK_NATIVE
 	bool "lua-msgpack-native"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	depends on !BR2_PACKAGE_LUA_5_2
 	help
 	  This is a native, C language implementation of msgpack
package/lua/Config.in +2 -2
index c4c12e9..2f1b25b 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUA
 	bool "lua"
-	select BR2_PACKAGE_HAS_LUA_INTERPRETER
+	select BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  Lua is a powerful, fast, light-weight, embeddable scripting language.
 
@@ -8,7 +8,7 @@ config BR2_PACKAGE_LUA
 
 if BR2_PACKAGE_LUA
 
-config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
+config BR2_PACKAGE_PROVIDES_LUAINTERPRETER
 	default "lua"
 
 choice
package/luaexpat/Config.in +1 -1
index f8db318..6976e40 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LUAEXPAT
 	bool "luaexpat"
 	select BR2_PACKAGE_EXPAT
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  LuaExpat is a SAX XML parser based on the Expat library.
 
package/luafilesystem/Config.in +1 -1
index 489ebf3..50e7975 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUAFILESYSTEM
 	bool "luafilesystem"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  LuaFileSystem offers a portable way to access
 	  the underlying directory structure and file attributes.
package/luainterpreter/Config.in +3 -3
index a05bde1..e89a9b8 100644
@@ -1,9 +1,9 @@
-config BR2_PACKAGE_HAS_LUA_INTERPRETER
+config BR2_PACKAGE_HAS_LUAINTERPRETER
 	bool
 
-config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
+config BR2_PACKAGE_PROVIDES_LUAINTERPRETER
 	string
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 
 config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
 	string
package/luainterpreter/luainterpreter.mk +2 -2
index f9206e8..40d4290 100644
@@ -5,11 +5,11 @@
 ################################################################################
 
 LUAINTERPRETER_SOURCE =
-LUAINTERPRETER_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LUA_INTERPRETER))
+LUAINTERPRETER_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER))
 
 LUAINTERPRETER_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION))
 
-ifeq ($(BR2_PACKAGE_HAS_LUA_INTERPRETER),y)
+ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y)
 ifeq ($(LUAINTERPRETER_DEPENDENCIES),)
 $(error No lua interpreter implementation selected. Configuration error.)
 endif
package/luajit/Config.in +2 -2
index bce9cc4..58b1653 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUAJIT
 	bool "luajit"
-	select BR2_PACKAGE_HAS_LUA_INTERPRETER
+	select BR2_PACKAGE_HAS_LUAINTERPRETER
 	# Luajit is only available for some target architectures, and
 	# has some complexity wrt 32/64. See luajit.mk for details.
 	depends on BR2_i386 || (BR2_x86_64 && BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel
@@ -14,7 +14,7 @@ config BR2_PACKAGE_LUAJIT
 
 if BR2_PACKAGE_LUAJIT
 
-config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
+config BR2_PACKAGE_PROVIDES_LUAINTERPRETER
 	default "luajit"
 
 config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
package/luaposix/Config.in +1 -1
index a95c825..04269fb 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUAPOSIX
 	bool "luaposix"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	select BR2_PACKAGE_LUABITOP if BR2_PACKAGE_LUA_5_1
 	# LuaBitOp is already included in LuaJIT
 	help
package/luasec/Config.in +1 -1
index ed55df7..a8cc9c9 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_LUASEC
 	bool "luasec"
 	select BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_LUASOCKET
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  LuaSec is a binding for OpenSSL library to provide TLS/SSL
 	  communication.
package/luasocket/Config.in +1 -1
index 619d649..45f959e 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUASOCKET
 	bool "luasocket"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  LuaSocket is the most comprehensive networking support library
 	  for the Lua language.
package/luasql-sqlite3/Config.in +1 -1
index fca6582..3bd73f3 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LUASQL_SQLITE3
 	bool "luasql-sqlite3"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	select BR2_PACKAGE_SQLITE
 	help
 	  LuaSQL is a simple interface from Lua to a DBMS.
package/lzlib/Config.in +1 -1
index d2b4818..c123019 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LZLIB
 	bool "lzlib"
 	select BR2_PACKAGE_ZLIB
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  This package provides a library to access zlib library
 	  functions and also to read/write gzip files using an
package/rings/Config.in +1 -1
index b1d41f3..87ade07 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_RINGS
 	bool "rings"
-	depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	help
 	  Provides a way to create new Lua states from within Lua.
 
Signature · 1 line
1.8.3.2
#6 lore raw

PATCH v5 6/21 package/lua: rename config options

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Package's options should be named after the package.

Lua is an interpreter, but the package is named 'lua'. So we want to name the config option with '_LUA_', not with '_LUA_INTERPRETER_'

Besides, naming them with '_LUA_INTERPRETER_' might be confusing, since there is a package named 'luainterpreter'.

Since the renamed options are part of a choice, we can't use the legacy options to select the new ones. So we instead instruct the user to go select the appropriate option in the choice.

---
Changes v5 -> v6:
- add 'select LEGACY' to the old options

---
 Config.in.legacy      | 24 ++++++++++++++++++++++++
 package/lua/Config.in | 10 +++++-----
 package/lua/lua.mk    |  4 ++--
 3 files changed, 31 insertions(+), 7 deletions(-)
Config.in.legacy +24 -0
index 17ead9b..ce44d0f 100644
@@ -101,6 +101,30 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2014.05"
 
+config BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE
+	bool "Lua command-line editing none has been renamed"
+	select BR2_LEGACY
+	help
+	  The BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE option has been
+	  renamed to BR2_PACKAGE_LUA_EDITING_NONE. You will have to select
+	  it in the corresponding choice.
+
+config BR2_PACKAGE_LUA_INTERPRETER_READLINE
+	bool "Lua command-line editing using readline has been renamed"
+	select BR2_LEGACY
+	help
+	  The BR2_PACKAGE_LUA_INTERPRETER_READLINE option has been
+	  renamed to BR2_PACKAGE_LUA_READLINE. You will have to select
+	  it in the corresponding choice.
+
+config BR2_PACKAGE_LUA_INTERPRETER_LINENOISE
+	bool "Lua command-line editing using linenoise has been renamed"
+	select BR2_LEGACY
+	help
+	  The BR2_PACKAGE_LUA_INTERPRETER_LINENOISE option has been
+	  renamed to BR2_PACKAGE_LUA_LINENOISE. You will have to select
+	  it in the corresponding choice.
+
 config BR2_PACKAGE_DVB_APPS_UTILS
 	bool "dvb-apps utilities now built by default"
 	select BR2_LEGACY
package/lua/Config.in +5 -5
index 2f1b25b..0e31858 100644
@@ -30,22 +30,22 @@ config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
 	default "5.2"	if BR2_PACKAGE_LUA_5_2
 
 choice
-	prompt "Lua Interpreter command-line editing"
-	default BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE
+	prompt "Lua command-line editing"
+	default BR2_PACKAGE_LUA_EDITING_NONE
 
-config BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE
+config BR2_PACKAGE_LUA_EDITING_NONE
 	bool "none"
 	help
 	  None.
 
-config BR2_PACKAGE_LUA_INTERPRETER_READLINE
+config BR2_PACKAGE_LUA_READLINE
 	bool "readline support"
 	select BR2_PACKAGE_READLINE
 	select BR2_PACKAGE_NCURSES
 	help
 	  Enables command-line editing in the Lua interpreter.
 
-config BR2_PACKAGE_LUA_INTERPRETER_LINENOISE
+config BR2_PACKAGE_LUA_LINENOISE
 	bool "linenoise support"
 	select BR2_PACKAGE_LINENOISE
 	help
package/lua/lua.mk +2 -2
index bf68e65..bc8799a 100644
@@ -31,12 +31,12 @@ else
 	LUA_MYLIBS += -ldl
 endif
 
-ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y)
+ifeq ($(BR2_PACKAGE_LUA_READLINE),y)
 	LUA_DEPENDENCIES = readline ncurses
 	LUA_MYLIBS += -lreadline -lhistory -lncurses
 	LUA_CFLAGS += -DLUA_USE_READLINE
 else
-ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_LINENOISE),y)
+ifeq ($(BR2_PACKAGE_LUA_LINENOISE),y)
 	LUA_DEPENDENCIES = linenoise
 	LUA_MYLIBS += -llinenoise
 	LUA_CFLAGS += -DLUA_USE_LINENOISE
Signature · 1 line
1.8.3.2
#7 lore raw

PATCH v5 7/21 manual: add virtual package tutorial

In reply to Yann E. MORIN

From: "[email protected]" <[email protected]>

The manual now features a new section with instructions about how to add a virtual package.

[yann.morin.1998 at free.fr: move down statement about provider's .mk]
---
 docs/manual/adding-packages-virtual.txt | 99 +++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |  2 +
 2 files changed, 101 insertions(+)
 create mode 100644 docs/manual/adding-packages-virtual.txt
docs/manual/adding-packages-virtual.txt new file +99 -0
new file mode 100644
index 0000000..76f5794
@@ -0,0 +1,99 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+[[virtual-package-tutorial]]
+
+Virtual package tutorial
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+In Buildroot, a virtual package is a package whose functionalities are
+provided by one or more packages, referred to as 'providers'. The virtual
+package management is an extensible mechanism allowing the user to choose
+the provider used in the rootfs.
+
+For example, 'OpenGL ES' is an API for 2D and 3D graphics on embedded systems.
+The implementation of this API is different for the 'Allwinner Tech Sunxi' and
+the 'Texas Instruments OMAP35xx' plaftorms. So +libgles+ will be a virtual
+package and +sunxi-mali+ and +ti-gfx+ will be the providers.
+
+In the following example, we will explain how to add a new virtual package
+('something-virtual') and a provider for it ('some-provider').
+
+First, let's create the virtual package.
+
+Virtual package's +Config.in+ file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The +Config.in+ file of virtual package 'something-virtual' should contain:
+
+---------------------------
+01: config BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+02:	bool
+03:
+04: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
+05:	depends on BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+06:	string
+---------------------------
+
+In this file, we declare two options, +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+ and
++BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+, whose values will be used by the
+providers.
+
+Virtual package's +*.mk+ file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The Makefile +package/something-virtual/something-virtual.mk+ should contain:
+
+---------------------------
+01: ################################################################################
+02: #
+03: # something-virtual
+04: #
+05: ################################################################################
+06:
+07: SOMETHING_VIRTUAL_SOURCE =
+08: SOMETHING_VIRTUAL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL))
+09:
+10: ifeq ($(BR2_PACKAGE_HAS_SOMETHING_VIRTUAL),y)
+11: ifeq ($(SOMETHING_VIRTUAL_DEPENDENCIES),)
+12: $(error No something-virtual implementation selected. Configuration error.)
+13: endif
+14: endif
+15:
+16: $(eval $(generic-package))
+---------------------------
+
+The Makefile is quite small as it will only check if a provider for the
+virtual package has been selected.
+
+Provider's +Config.in+ file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When adding a package as a provider, only the +Config.in+ file requires some
+modifications. The +*.mk+ file should follow the Buildroot infrastructure with
+no change at all.
+
+The +Config.in+ file of the package 'some-provider', which provides the
+functionalities of 'something-virtual', should contain:
+
+---------------------------
+01: config BR2_PACKAGE_SOME_PROVIDER
+02:	bool "some-provider"
+03:	select BR2_PACKAGE_HAS_SOMETHING_VIRTUAL
+04:	help
+05:	  This is a comment that explains what some-provider is.
+06:
+07:	  http://foosoftware.org/some-provider/
+08:
+09: if BR2_PACKAGE_SOME_PROVIDER
+10: config BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL
+11:	default "some-provider"
+12: endif
+---------------------------
+
+On line 3, we select +BR2_PACKAGE_HAS_SOMETHING_VIRTUAL+, and on line 11, we
+set the value of +BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL+ to the name of the
+provider, but only if it is selected.
+
+Of course, do not forget to add the proper build and runtime dependencies for
+this package!
docs/manual/adding-packages.txt +2 -0
index 745e33a..dbba930 100644
@@ -24,6 +24,8 @@ include::adding-packages-luarocks.txt[]
 
 include::adding-packages-perl.txt[]
 
+include::adding-packages-virtual.txt[]
+
 include::adding-packages-hooks.txt[]
 
 include::adding-packages-gettext.txt[]
Signature · 1 line
1.8.3.2
#8 lore raw

PATCH v5 8/21 packages: add infrastructure for virtual packages

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

The virtual-package infrastructure allows to easily define a virtual package in a single line:

    $ cat package/some-virtual-package/some-virtual-package.mk
    $(eval $(virtual-package))

And that's all. :-)

Thanks to ?ric for his work on the manual, that prompted the idea for this virtual-package infrastructure! ;-)

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/Makefile.in    |  1 +
 package/pkg-virtual.mk | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)
 create mode 100644 package/pkg-virtual.mk
package/Makefile.in +1 -0
index 986760c..1f5cbcd 100644
@@ -371,4 +371,5 @@ include package/pkg-cmake.mk
 include package/pkg-luarocks.mk
 include package/pkg-perl.mk
 include package/pkg-python.mk
+include package/pkg-virtual.mk
 include package/pkg-generic.mk
package/pkg-virtual.mk new file +66 -0

66 lines not on this page · raw message

Signature · 1 line
1.8.3.2
#9 lore raw

PATCH v5 9/21 manual: update the virtual package section with the new infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

---
 docs/manual/adding-packages-virtual.txt | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)
docs/manual/adding-packages-virtual.txt +10 -16
index 76f5794..e8820a0 100644
@@ -1,10 +1,10 @@
 // -*- mode:doc; -*-
 // vim: set syntax=asciidoc:
 
-[[virtual-package-tutorial]]
+Infrastructure for virtual packages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Virtual package tutorial
-~~~~~~~~~~~~~~~~~~~~~~~~
+[[virtual-package-tutorial]]
 
 In Buildroot, a virtual package is a package whose functionalities are
 provided by one or more packages, referred to as 'providers'. The virtual
@@ -16,6 +16,9 @@ The implementation of this API is different for the 'Allwinner Tech Sunxi' and
 the 'Texas Instruments OMAP35xx' plaftorms. So +libgles+ will be a virtual
 package and +sunxi-mali+ and +ti-gfx+ will be the providers.
 
++virtual-package+ tutorial
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 In the following example, we will explain how to add a new virtual package
 ('something-virtual') and a provider for it ('some-provider').
 
@@ -42,7 +45,7 @@ providers.
 Virtual package's +*.mk+ file
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The Makefile +package/something-virtual/something-virtual.mk+ should contain:
+The +.mk+ for the virtual package should just evaluate the +virtual-package+ macro:
 
 ---------------------------
 01: ################################################################################
@@ -51,20 +54,11 @@ The Makefile +package/something-virtual/something-virtual.mk+ should contain:
 04: #
 05: ################################################################################
 06:
-07: SOMETHING_VIRTUAL_SOURCE =
-08: SOMETHING_VIRTUAL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_SOMETHING_VIRTUAL))
-09:
-10: ifeq ($(BR2_PACKAGE_HAS_SOMETHING_VIRTUAL),y)
-11: ifeq ($(SOMETHING_VIRTUAL_DEPENDENCIES),)
-12: $(error No something-virtual implementation selected. Configuration error.)
-13: endif
-14: endif
-15:
-16: $(eval $(generic-package))
+07: $(eval $(virtual-package))
 ---------------------------
 
-The Makefile is quite small as it will only check if a provider for the
-virtual package has been selected.
+The ability to have target and host packages is also available, with the
++host-virtual-package+ macro.
 
 Provider's +Config.in+ file
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Signature · 1 line
1.8.3.2
#10 lore raw

PATCH v5 10/21 manual: add notes about depending on a virtual package

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

---
 docs/manual/adding-packages-virtual.txt | 49 +++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
docs/manual/adding-packages-virtual.txt +49 -0
index e8820a0..c1b5a0a 100644
@@ -91,3 +91,52 @@ provider, but only if it is selected.
 
 Of course, do not forget to add the proper build and runtime dependencies for
 this package!
+
+Notes on depending on a virtual package
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When adding a package that requires a certain +FEATURE+ provided by a virtual
+package, you have to use +depends on BR2_PACKAGE_HAS_FEATURE+, like so:
+
+---------------------------
+config BR2_PACKAGE_HAS_FEATURE
+    bool
+
+config BR2_PACKAGE_FOO
+    bool "foo"
+    depends on BR2_PACKAGE_HAS_FEATURE
+---------------------------
+
+Notes on depending on a specific provider
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If your package really requires a specific provider, then you'll have to
+make your package +depends on+ this provider; you can _not_ +select+ a
+provider.
+
+Let's take an example with two providers for a +FEATURE+:
+
+---------------------------
+config BR2_PACKAGE_HAS_FEATURE
+    bool
+
+config BR2_PACKAGE_FOO
+    bool "foo"
+    select BR2_PACKAGE_HAS_FEATURE
+
+config BR2_PACKAGE_BAR
+    bool "bar"
+    select BR2_PACKAGE_HAS_FEATURE
+---------------------------
+
+And you are adding a package that needs +FEATURE+ as provided by +foo+,
+but not as provided by +bar+.
+
+If you were to use +select BR2_PACKAGE_FOO+, then the user would still
+be able to select +BR2_PACKAGE_BAR+ in the menuconfig. This would create
+a configuration inconsistency, whereby two providers of the same +FEATURE+
+would be enabled at once, one explicitly set by the user, the other
+implicitly by your +select+.
+
+Instead, you have to use +depends on BR2_PACKAGE_FOO+, which avoids any
+implicit configuration inconsistency.
Signature · 1 line
1.8.3.2
#11 lore raw

PATCH v5 11/21 package/powervr: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/powervr/powervr.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/powervr/powervr.mk +1 -10
index b36eb16..5a55860 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-POWERVR_SOURCE =
-POWERVR_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_POWERVR))
-
-ifeq ($(BR2_PACKAGE_HAS_POWERVR),y)
-ifeq ($(POWERVR_DEPENDENCIES),)
-$(error No PowerVR implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#12 lore raw

PATCH v5 12/21 package/libgles: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
[eric.le.bihan.dev at free.fr: tested on RPi, with Qt5]
---
 package/opengl/libgles/libgles.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/opengl/libgles/libgles.mk +1 -10
index 041e378..407f8f9 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-LIBGLES_SOURCE =
-LIBGLES_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBGLES))
-
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-ifeq ($(LIBGLES_DEPENDENCIES),)
-$(error No libGLES implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#13 lore raw

PATCH v5 13/21 package/libegl: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
[eric.le.bihan.dev at free.fr: tested on RPi, with Qt5]
---
 package/opengl/libegl/libegl.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/opengl/libegl/libegl.mk +1 -10
index 2e399ce..1f5460e 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-LIBEGL_SOURCE =
-LIBEGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBEGL))
-
-ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
-ifeq ($(LIBEGL_DEPENDENCIES),)
-$(error No libEGL implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#14 lore raw

PATCH v5 14/21 package/libopenmax: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/opengl/libopenmax/libopenmax.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/opengl/libopenmax/libopenmax.mk +1 -10
index 6cdeacd..bc2e7f8 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-LIBOPENMAX_SOURCE =
-LIBOPENMAX_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBOPENMAX))
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENMAX),y)
-ifeq ($(LIBOPENMAX_DEPENDENCIES),)
-$(error No libopenmax implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#15 lore raw

PATCH v5 15/21 package/libopenvg: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/opengl/libopenvg/libopenvg.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/opengl/libopenvg/libopenvg.mk +1 -10
index 1c6f929..3ce85a1 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-LIBOPENVG_SOURCE =
-LIBOPENVG_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LIBOPENVG))
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-ifeq ($(LIBOPENVG_DEPENDENCIES),)
-$(error No libOpenVG implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#16 lore raw

PATCH v5 16/21 package/luainterpreter: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
Cc Francois Perrad <[email protected]>
---
 package/luainterpreter/luainterpreter.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/luainterpreter/luainterpreter.mk +1 -10
index 40d4290..aa02696 100644
@@ -4,15 +4,6 @@
 #
 ################################################################################
 
-LUAINTERPRETER_SOURCE =
-LUAINTERPRETER_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER))
-
 LUAINTERPRETER_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION))
 
-ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y)
-ifeq ($(LUAINTERPRETER_DEPENDENCIES),)
-$(error No lua interpreter implementation selected. Configuration error.)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#17 lore raw

PATCH v5 17/21 package/jpeg: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Since this package is implemented via a choice rather than the usual separate-package providers, we only need BR2_PACKAGE_HAS_JPEG to be always defined when the 'jpeg' package is selected.

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/jpeg/Config.in |  3 +++
 package/jpeg/jpeg.mk   | 12 +-----------
 2 files changed, 4 insertions(+), 11 deletions(-)
package/jpeg/Config.in +3 -0
index b7cdfeb..3042d24 100644
@@ -30,6 +30,9 @@ config BR2_PACKAGE_JPEG_TURBO
 
 endchoice
 
+config BR2_PACKAGE_HAS_JPEG
+	def_bool y
+
 config BR2_PACKAGE_PROVIDES_JPEG
 	string
 	default "libjpeg"    if BR2_PACKAGE_LIBJPEG
package/jpeg/jpeg.mk +1 -11
index 3695bc8..2d56be6 100644
@@ -4,14 +4,4 @@
 #
 ################################################################################
 
-JPEG_SOURCE =
-JPEG_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_JPEG))
-
-ifeq ($(JPEG_DEPENDENCIES),)
-define JPEG_CONFIGURE_CMDS
-	echo "No JPEG implementation defined. Configuration error"
-	exit 1
-endef
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#18 lore raw

PATCH v5 18/21 package/cryptodev: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Since this package is implemented via a choice rather than the usual separate-package providers, we only need BR2_PACKAGE_HAS_CRYPTODEV to be always defined when the 'cryptodev' package is selected.

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
---
 package/cryptodev/Config.in    |  3 +++
 package/cryptodev/cryptodev.mk | 12 +-----------
 2 files changed, 4 insertions(+), 11 deletions(-)
package/cryptodev/Config.in +3 -0
index 0780cc7..2407e04 100644
@@ -37,6 +37,9 @@ config BR2_PACKAGE_OCF_LINUX
 
 endchoice
 
+config BR2_PACKAGE_HAS_CRYPTODEV
+	def_bool y
+
 config BR2_PACKAGE_PROVIDES_CRYPTODEV
 	string
 	default "cryptodev-linux" if BR2_PACKAGE_CRYPTODEV_LINUX
package/cryptodev/cryptodev.mk +1 -11
index 11e6f48..969d1bd 100644
@@ -4,14 +4,4 @@
 #
 ################################################################################
 
-CRYPTODEV_SOURCE =
-CRYPTODEV_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_CRYPTODEV))
-
-ifeq ($(CRYPTODEV_DEPENDENCIES),)
-define CRYPTODEV_CONFIGURE_CMDS
-	echo "No CRYPTODEV implementation defined. Configuration error"
-	exit 1
-endef
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#19 lore raw

PATCH v5 19/21 package/udev: convert to the virtual-package infrastructure

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Eric Le Bihan <[email protected]>
Cc Thomas Petazzoni <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Mike Zick <[email protected]>
[eric.le.bihan.dev at free.fr: tested with both systemd and eudev, on QEMU x86]
---
 package/udev/udev.mk | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
package/udev/udev.mk +1 -10
index f5eeeb4..cc4a6e3 100644
@@ -4,13 +4,4 @@
 #
 ################################################################################
 
-UDEV_SOURCE =
-UDEV_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_UDEV))
-
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-ifeq ($(UDEV_DEPENDENCIES),)
-$(error No Udev implementation selected. Configuration error)
-endif
-endif
-
-$(eval $(generic-package))
+$(eval $(virtual-package))
Signature · 1 line
1.8.3.2
#20 lore raw

PATCH v5 20/21 virtual-package: fake a version string for virtual packages

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Cc Thomas De Schampheleire <[email protected]>
Cc Thomas Petazzoni <[email protected]>
---
 package/pkg-virtual.mk | 4 ++++
 1 file changed, 4 insertions(+)
package/pkg-virtual.mk +4 -0
index 9b206ea..617e5f2 100644
@@ -44,6 +44,10 @@ endif
 # A virtual package does not have any source associated
 $(2)_SOURCE =
 
+# Fake a version string, so it looks nicer in the build log
+$(3)_VERSION = virtual
+HOST_$(3)_VERSION = virtual
+
 # This must be repeated from inner-generic-package, otherwise we get an empty
 # _DEPENDENCIES
 $(2)_DEPENDENCIES ?= $(filter-out host-toolchain $(1),\
Signature · 1 line
1.8.3.2
#21 lore raw

PATCH v5 21/21 FOO: tentative target and host virt packages

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

NOT TO BE APPLIED. Just samples to test virtual packages.

NOT SOB by me

---
 package/Config.in            |  4 ++++
 package/foo-prov/Config.in   | 15 +++++++++++++++
 package/foo-prov/foo-prov.mk | 13 +++++++++++++
 package/foo-user/Config.in   |  7 +++++++
 package/foo-user/foo-user.mk | 16 ++++++++++++++++
 package/foo-virt/Config.in   | 13 +++++++++++++
 package/foo-virt/foo-virt.mk |  2 ++
 7 files changed, 70 insertions(+)
 create mode 100644 package/foo-prov/Config.in
 create mode 100644 package/foo-prov/foo-prov.mk
 create mode 100644 package/foo-user/Config.in
 create mode 100644 package/foo-user/foo-user.mk
 create mode 100644 package/foo-virt/Config.in
 create mode 100644 package/foo-virt/foo-virt.mk
package/Config.in +4 -0
index 49daa33..ff65356 100644
@@ -1,5 +1,9 @@
 menu "Target packages"
 
+source "package/foo-virt/Config.in"
+source "package/foo-prov/Config.in"
+source "package/foo-user/Config.in"
+
 source "package/busybox/Config.in"
 
 menu "Audio and video applications"
package/foo-prov/Config.in new file +15 -0
new file mode 100644
index 0000000..17aec2c
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_FOO_PROV
+    bool "foo-prov"
+    select BR2_PACKAGE_HAS_FOO_VIRT
+
+config BR2_PACKAGE_PROVIDES_FOO_VIRT
+    depends on BR2_PACKAGE_FOO_PROV
+    default "foo-prov"
+
+#config BR2_PACKAGE_HOST_FOO_PROV
+#    bool "host-foo-prov"
+#    select BR2_PACKAGE_HAS_HOST_FOO_VIRT
+#
+#config BR2_PACKAGE_PROVIDES_HOST_FOO_VIRT
+#    depends on BR2_PACKAGE_FOO_PROV
+#    default "host-foo-prov"
package/foo-prov/foo-prov.mk new file +13 -0
new file mode 100644
index 0000000..68d3afe
@@ -0,0 +1,13 @@
+FOO_PROV_VERSION = 1.1.2.3.5.8
+FOO_PROV_SOURCE =
+HOST_FOO_PROV_SOURCE =
+
+define FOO_PROV_BUILD_CMDS
+	@echo FOO_PROV build cmd
+endef
+define HOST_FOO_PROV_BUILD_CMDS
+	@echo HOST_FOO_PROV build cmd
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
package/foo-user/Config.in new file +7 -0
new file mode 100644
index 0000000..7107a9e
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_FOO_USER
+    bool "foo-user"
+    depends on BR2_PACKAGE_HAS_FOO_VIRT
+
+#config BR2_PACKAGE_HOST_FOO_USER
+#    bool "host-foo-user"
+#    depends on BR2_PACKAGE_HAS_HOST_FOO_VIRT
package/foo-user/foo-user.mk new file +16 -0
new file mode 100644
index 0000000..7601215
@@ -0,0 +1,16 @@
+FOO_USER_VERSION = 1.2.3
+FOO_USER_SOURCE =
+HOST_FOO_USER_SOURCE =
+
+FOO_USER_DEPENDENCIES = foo-virt host-foo-user
+define FOO_USER_BUILD_CMDS
+	@echo FOO_USER build cmd
+endef
+
+HOST_FOO_USER_DEPENDENCIES = host-foo-virt
+define HOST_FOO_USER_BUILD_CMDS
+	@echo HOST_FOO_USER build cmd
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
package/foo-virt/Config.in new file +13 -0
new file mode 100644
index 0000000..f786c7e
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_HAS_FOO_VIRT
+    bool
+
+config BR2_PACKAGE_PROVIDES_FOO_VIRT
+    depends on BR2_PACKAGE_HAS_FOO_VIRT
+    string
+
+#config BR2_PACKAGE_HAS_HOST_FOO_VIRT
+#    bool
+#
+#config BR2_PACKAGE_PROVIDES_HOST_FOO_VIRT
+#    depends on BR2_PACKAGE_HAS_HOST_FOO_VIRT
+#    string
package/foo-virt/foo-virt.mk new file +2 -0
new file mode 100644
index 0000000..b00af5b
@@ -0,0 +1,2 @@
+$(eval $(virtual-package))
+$(eval $(host-virtual-package))
Signature · 1 line
1.8.3.2