[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