[Buildroot] [PATCH 0/21 v5] Add new virtual-package infrastructure (branch yem/virtual-packages)

Yann E. MORIN yann.morin.1998 at free.fr
Sat Apr 5 15:21:54 UTC 2014


From: "Yann E. MORIN" <yann.morin.1998 at free.fr>

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

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list