[PATCH 0/8] cross-compilation fixes

Daniel Golle <[email protected]> Fri, 10 Oct 2025 02:12:42 +0100
Newsgroups gmane.network.gnunet.devel
Message-ID <[email protected]>
--vSb0H5Fna14SBen5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi!

I've been maintaining GNUnet packages on OpenWrt for the past decade. By
nature everything in OpenWrt is built by cross-compilation, which used
to work ok-ish with the autotools-based buildsystem -- sometimes I had
to patch a little test or tweek ac_* variables, but in general this
allowed for GNUnet to be available on a vast variety of hardware
targets, on various different ARM, AArch64, MIPS(el), MIPS(el)64,
Loongarch64, PPC, PPC64, RISC-V 64, ... SoCs with and without FPUs,
dedicated builds for each popular core, nicely split into more or less
atomic packages.

I'm excited to see GNUnet made the switch to meson, which is defintely a
step forward, however, I needed to make a bunch of changes to the meson
beuild because the meson script requires executing compiled things on
the buildhost, which obviously won't work in a cross-compilation
environment. In this series I'm addressing this by converting all
run-time tests into compile-time tests.

I've also added an opt-out option for not building the handbook, as the
absence of the 'makeinfo' tool would make the meson install phase fail
otherwise (and as you can imagine it anyway doesn't make sense to ship
the handbook for embedded devices).

Last but not least I've also restored building the 'flat' namecache
plugin and made sure the SQL source files for namecache get installed
like they did with the autotools based build.

I would have loved to just push all this into the git repository,
however, it looks like my write access has been revoked. Hence I'm
sending those 8 patches here on the mailing list and hope you can just
`git am` them.

---

FATAL -- ACCESS DENIED
Repo            gnunet                                                     =
=20
User            daniel-golle                                               =
=20
Stage           Before git was called                                      =
=20
Operation       Repo write                                                 =
=20

FATAL: W any gnunet daniel-golle DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

---

Daniel Golle (8):
  meson: convert SQLite version detection to compile-time test
  meson: convert cURL version detection to compile-time test
  meson: convert libsodium version detection to compile-time test
  meson: convert cURL SSL library detection to compile-time test
  meson: detect libcurl-gnutls
  meson: allow not building and installing handbook
  namecache: install sql files
  namecache: build flat namecache plugin

 doc/meson.build                  |   4 +-
 meson.build                      | 104 +++++++++++++++++++++++--------
 meson.options                    |   1 +
 src/plugin/namecache/meson.build |  26 ++++++++
 4 files changed, 108 insertions(+), 27 deletions(-)

--=20
2.51.0

--vSb0H5Fna14SBen5
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iHUEABEIAB0WIQQ8WXOkSQLJP/KOu5qX7zeyq+FyywUCaOhdgwAKCRCX7zeyq+Fy
yxb4AP4r599uTxsJSh/7d0ZSFCU4VmcI65q29LO0wPSUYgWjQwD9HkdSI6rc6Ear
1FUwRkMFMRxAycAXo9BtJXnXnEady3o=
=KdXb
-----END PGP SIGNATURE-----

--vSb0H5Fna14SBen5--