Re: [PATCH 0/8] cross-compilation fixes

Martin Schanzenbach <[email protected]> Fri, 10 Oct 2025 12:08:40 +0200
Newsgroups gmane.network.gnunet.devel
Message-ID <[email protected]>
Thank you very much for the patches.
I have applied all uncontroversial patches now.
For the others I added comments as I am unsure how to fix that, or if
there even is a fix. We may have to open issues on those.
This is one of the reasons we have disabled push to master in the first
place, so that we can review the patches/changes first.

Please see https://docs.gnunet.org/latest/developers/contributing.html

Developer access still works, meaning you can open a developer branch
an push there. But patches here work perfectly fine.


BR

On Fri, 2025-10-10 at 02:12 +0100, Daniel Golle wrote:
> Hi!
>=20
> 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.
>=20
> 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.
>=20
> 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).
>=20
> 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.
>=20
> 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.
>=20
> ---
>=20
> FATAL -- ACCESS DENIED
> Repo=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> gnunet=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> User=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 da=
niel-
> golle=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> Stage=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Before =
git was
> called=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=20
> Operation=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Repo
> write=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=20
>=20
> FATAL: W any gnunet daniel-golle DENIED by fallthru
> (or you mis-spelled the reponame)
> fatal: Could not read from remote repository.
>=20
> Please make sure you have the correct access rights
> and the repository exists.
>=20
> ---
>=20
> Daniel Golle (8):
> =C2=A0 meson: convert SQLite version detection to compile-time test
> =C2=A0 meson: convert cURL version detection to compile-time test
> =C2=A0 meson: convert libsodium version detection to compile-time test
> =C2=A0 meson: convert cURL SSL library detection to compile-time test
> =C2=A0 meson: detect libcurl-gnutls
> =C2=A0 meson: allow not building and installing handbook
> =C2=A0 namecache: install sql files
> =C2=A0 namecache: build flat namecache plugin
>=20
> =C2=A0doc/meson.build=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 4 +-
> =C2=A0meson.build=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | =
104 +++++++++++++++++++++++------
> --
> =C2=A0meson.options=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 =
1 +
> =C2=A0src/plugin/namecache/meson.build |=C2=A0 26 ++++++++
> =C2=A04 files changed, 108 insertions(+), 27 deletions(-)