[Buildroot] [PATCH 00/29 v2] package: improve for better pulseview integration (branch yem/sdcc-fx2lafw)

Yann E. MORIN yann.morin.1998 at free.fr
Wed Apr 9 20:03:42 UTC 2025


Hello All!

This series aims at making the pulseview and other sigrok-related
packages more integrated. The series is articulated around three main
goals, the details of which are expanded later:
 1. cleanup and extend pulseview dependencies, notably the need for
    fonts;
 2. extend the boost package, for a better host variant, and better
    maintainability;
 3. introduce sdcc and fx2lafw, to allow use of Cypress FX2-based logic
    analyzers.

Below are the details of the series, starting with the utimate goal, and
then going backward with its dependencies and the foundational changes
it required (i.e. git-log style).

fx2lafw is "an open-source firmware for Cypress FX2 chips which makes
them usable as simple logic analyzer and/or oscilloscope hardware.
It is licensed under the terms of the GNU GPL (version 2, or later)"
[0], so we want to be able to build it (rather than use the pre-built
blobs).

To build fx2lafw, we need host-sdcc, "a retargettable, optimizing
standard C [..] compiler that targets a growing list of architectures
[...] microprocessors" [1]. sdcc contains a few utilities, that are not
all always needed, and can target many architectures, that too are not
all always needed. So we introduce a basic sdcc package, and add options
for those few features and ports we need as a we go.

To introduce host-sdcc, first some changes in how we handle host-boost
are needed: indeed, host-sdcc needs yet another boost library, but we do
not want to enable it unless sdcc is actually enabled. So, we extend the
host-boost variant to have configurable options, that host packages,
when they are enabled, can select. This causes a bit of preparatory
churn in the few packages that do.

Then we rework the way the boost libraries are handled, so that it is
easier to update the list for both the target and host variants in one
go, which we exercise and demonstrate by indeed actually bumping Boost
to the latest release. Note that the next release is expected any day
soon... With a bit (a lot!) of luck, this series can prove to make that
bump easier...

To support this new use-case, where some Kconfig symbol are voluntarily
not explicitly referenced, we extend check-symbol to recognise symbol
definitions that should be ignored.

Now, pulseview, the Qt5-based UI for th esigrok ecosystem, is brought
up to more up-to-date dependency handling, and new dependecies are added
to ensure fonts are available at runtime. This is achieved by adding a
pseduo-package (by lack of better infra and wording) that ensure that at
least one font is actually installed.

This eventually led to some minor fixes in two font packages, that could
be configured to install nothing.

Finally, a trivial missing runtime dependency is added to
libsigrokdecode, which contains protocol decoders for the other sigrok
packages.

[0] https://sigrok.org/wiki/Fx2lafw
[1] https://sourceforge.net/projects/sdcc/

PS. This is a huge series, that's true. It all started "just" because I
wanted to build and install the fx2lafw firmwares, which ultimately
build in "just" a few seconds, and install "just" about 160kiB... And
from fx2lafw, it all snowballed to this huge series...

Changes v1 -> v2;
  - beter explain how to update the list of Boost libs
  - a few typoes in commit logs here and there...

Regards,
Yann E. MORIN.


----------------------------------------------------------------
Yann E. MORIN (29):
      package/libsigrokdecode: needs python3 w/ zlib support
      package/dejavu: update homepage
      package/dejavu: ensure at least one typeface is installed
      package/liberation: ensure at least one typeface is installed
      package/some-font: new pseudo-package
      package/pulseview: fix, update, and reorganise dependencies
      package/pulseview: needs some font, and fontconfig support in qt5base
      package/boost: move host variables closer together
      package/boost: move taget library selection variables closer together
      package/boost: prepare for a configurable host variant
      package/boost: add host symbol
      package/libodb-boost: afirm host-boost dependency for host variant
      package/thrift: afirm host-boost dependency for host variant
      package/riscv-isa-sim: afirm host-boost dependency
      pakcage/boost: make host variant slightly configurable
      utils/check-symbols: allow ignoring some defined-but-unused symbols
      package/boost: commonalise list of libs
      package/boost: add graph option for host variant
      package/boost: headers-only libs are always installed
      package/boost: check that known libs match Boost's list
      package/boost: use positive logic to enable libraries
      package/boost: explain how to maintain the list of libraries
      package/boost: bump to version 1.87.0
      package/sdcc: new package
      package/sdcc: add option for the mcs51 (aka 8051) port
      package/sdcc: add option for the z80 port
      package/sdcc: add option for the device lib
      support/download/git: use FOO_DL_OPTS
      package/fx2lafw: new package

 DEVELOPERS                                         |   4 +
 docs/manual/adding-packages-generic.adoc           |   4 +-
 package/Config.in                                  |   3 +
 package/Config.in.host                             |   2 +
 package/bitstream-vera/Config.in                   |   1 +
 package/boost/0001-unordered-fix-copy-assign.patch |  22 ---
 package/boost/Config.in                            |  43 +++---
 package/boost/Config.in.host                       |  18 +++
 package/boost/boost.hash                           |   4 +-
 package/boost/boost.mk                             | 166 +++++++++++++++------
 package/cantarell/Config.in                        |   1 +
 package/dejavu/Config.in                           |  11 +-
 package/font-awesome/Config.in                     |   1 +
 package/fx2lafw/Config.in                          |  11 ++
 package/fx2lafw/fx2lafw.hash                       |   5 +
 package/fx2lafw/fx2lafw.mk                         |  21 +++
 package/ghostscript-fonts/Config.in                |   1 +
 package/inconsolata/Config.in                      |   1 +
 package/liberation/Config.in                       |   6 +
 package/libodb-boost/Config.in.host                |   3 +
 package/libsigrokdecode/Config.in                  |   1 +
 package/odb/Config.in.host                         |   1 +
 package/pulseview/Config.in                        |  44 +++---
 package/riscv-isa-sim/Config.in.host               |   3 +
 package/sdcc/Config.in.host                        |  44 ++++++
 package/sdcc/sdcc.hash                             |   7 +
 package/sdcc/sdcc.mk                               |  92 ++++++++++++
 package/some-font/Config.in                        |  17 +++
 package/thrift/Config.in                           |   1 +
 package/thrift/Config.in.host                      |   3 +
 package/wqy-zenhei/Config.in                       |   1 +
 support/download/git                               |   6 +-
 utils/check-symbols                                |   9 +-
 utils/checksymbolslib/br.py                        |   1 +
 utils/checksymbolslib/db.py                        |  61 +++++++-
 utils/checksymbolslib/kconfig.py                   |  18 +++
 utils/checksymbolslib/test_db.py                   |  17 +++
 utils/checksymbolslib/test_kconfig.py              |  63 +++++++-
 38 files changed, 597 insertions(+), 120 deletions(-)
 delete mode 100644 package/boost/0001-unordered-fix-copy-assign.patch
 create mode 100644 package/boost/Config.in.host
 create mode 100644 package/fx2lafw/Config.in
 create mode 100644 package/fx2lafw/fx2lafw.hash
 create mode 100644 package/fx2lafw/fx2lafw.mk
 create mode 100644 package/libodb-boost/Config.in.host
 create mode 100644 package/sdcc/Config.in.host
 create mode 100644 package/sdcc/sdcc.hash
 create mode 100644 package/sdcc/sdcc.mk
 create mode 100644 package/some-font/Config.in
 create mode 100644 package/thrift/Config.in.host

--
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list