View Issue Details

IDProjectCategoryView StatusLast Update
0005708GNUnetbuild processpublic2025-07-11 20:21
ReporterFlorian Dold Assigned Toschanzen Due Date
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.18.0 
Summary0005708: Extend gnunet-config with output of build configuration Was: configure script should output summary of configuration
DescriptionThe configure script has lots of auto-detection. At the end, there should be a comprehensive summary of the build configuration.

Having this would help with bugs like 0005707, since it would be immediately visible that *both* libgnurl and libcurl are enabled, which is bogus.
Tagschore

Relationships

related to 0005707 closedFlorian Dold ./configure picks up old cURL header even when --with-libgnurl is specified explicitly 
related to 0005735 closedChristian Grothoff pretify configure end output 

Activities

nikita

2019-05-01 15:15

reporter   ~0014362

so basically extend what we have in the configure script already (at the end of it) and optionally output it to a file

Florian Dold

2019-05-01 16:55

developer   ~0014363

Yes. There is also another slightly related feature, that maybe it can be done in one go.

Many packages (I count 150 on my system) have a <pkgname>-config program, including curl and libgcrypt. The gnunet-config tool in GNUnet already does something else, but I've discussed with Christian that we could add flags to gnunet-config to print out the package configuration and basically serve a dual purpose.

So in addition to writing these values to a file, they should also be exposed via AC_DEFINE so that gnunet-config can output them.

It's useful both for other packages that consume GNUnet, as well as for figuring out what features your installed version supports. AFICT there is currently no other way than to look at the source tree and ./configure invocation for that. Some build systems (e.g. cmake and meson) can use this <pkgname>-config tool to discover dependencies.

Christian Grothoff

2019-05-02 12:32

manager   ~0014370

I'm not sure writing to another _file_ makes sense, we have the configure output to the terminal, and of course options detected should go into gnunet_config.h via AC_DEFINE() -- many do already -- so that's already a file we generate with the result of configure. Expanding gnunet_config.h to include more is fine, having an extra file seems superfluous.

I'm not sure how this relates to gnunet-config (separate issue?), or why this was assigned to me (hence un-assigning).

nikita

2019-07-01 10:25

reporter   ~0014627

This already ends up in config.log, I don't understand why having another file is necesssary. If we want to extract it from there, we can just use an awk script to get the information out of there, given that we still have the source.

nikita

2019-07-01 10:30

reporter   ~0014628

Having the gnunet-config tool handle this with say, --cflags, --ldflags etc in case you want to *install* this will be better because maybe (I'm not 100% sure) having a file which changes per installation might introduce non-reproducible artifacts to the distribution (not: the binary builds). Having gnunet-config handle this also means we can point to a single installed tool for developers and users.

schanzen

2021-04-03 18:50

administrator   ~0017678

I take from this conversation that what we want to have are flags for gnunet-config including:

--features
--prefix
--libs
--cflags

etc.
Shounds like an easy task for new contributors to me.

schanzen

2021-07-25 07:27

administrator   ~0018017

Last edited: 2022-09-29 05:11

Flags to be added:

[X] CFLAGS
[X] LDFLAGS
[X] PREFIX
[-] --db-backends -> postgres sqlite mysql etc (this is too generic)
[-] --http-client-backend -> curl/gnurl (we only support curl now)
[-] --transports -> http bluetooth tcp udp etc (packagers may install those on demand so this is not really a compile-time thing)
[-] --ssl-backend -> gnutls vs openssl (this is/can be checked on runtime in the relevant components)
[X] --is-experimental -> Boolean/True/False with retval

Issue History

Date ModifiedUsernameFieldChange
2019-04-30 16:46Florian DoldNew Issue
2019-04-30 16:46Florian DoldStatusnew => assigned
2019-04-30 16:46Florian DoldAssigned To => Christian Grothoff
2019-04-30 16:46Florian DoldRelationship addedrelated to 0005707
2019-04-30 16:50Florian DoldDescription Updated
2019-05-01 15:15nikitaNote Added: 0014362
2019-05-01 16:55Florian DoldNote Added: 0014363
2019-05-02 12:32Christian GrothoffNote Added: 0014370
2019-05-02 12:32Christian GrothoffAssigned ToChristian Grothoff =>
2019-05-02 12:32Christian GrothoffStatusassigned => confirmed
2019-05-02 12:32Christian GrothoffSeverityminor => feature
2019-06-05 17:01Christian GrothoffTarget Version => 0.11.6
2019-07-01 10:25nikitaNote Added: 0014627
2019-07-01 10:30nikitaNote Added: 0014628
2019-07-07 19:26Christian GrothoffRelationship addedrelated to 0005735
2019-07-07 19:26Christian GrothoffProduct Version => Git master
2019-07-07 19:26Christian GrothoffTarget Version0.11.6 =>
2021-03-03 17:34schanzenTag Attached: chore
2021-04-03 18:50schanzenSummaryconfigure script should output summary of configuration, including libraries picked => Extend gnunet-config with output of build configuration Was: configure script should output summary of configuration
2021-04-03 18:50schanzenNote Added: 0017678
2021-04-03 18:50schanzenTag Attached: low hanging fruit
2021-04-05 09:26schanzenTarget Version => 0.14.2
2021-06-01 19:13schanzenTag Attached: beginner
2021-06-10 17:37schanzenTarget Version0.14.2 => 0.15.0
2021-06-10 20:56schanzenTarget Version0.15.0 =>
2021-07-25 07:27schanzenNote Added: 0018017
2022-09-10 13:32schanzenTarget Version => 0.17.6
2022-09-10 13:32schanzenAssigned To => schanzen
2022-09-10 13:32schanzenStatusconfirmed => assigned
2022-09-26 03:02schanzenTarget Version0.17.6 => 0.17.7
2022-09-29 05:06schanzen
2022-09-29 05:11schanzenNote Edited: 0018017
2022-09-29 05:11schanzenStatusassigned => resolved
2022-09-29 05:11schanzenResolutionopen => fixed
2022-09-29 05:11schanzenFixed in Version => 0.17.7
2022-10-21 05:33schanzenTarget Version0.17.7 => 0.18.0
2022-10-31 02:22schanzenStatusresolved => closed
2025-07-11 20:21Christian GrothoffTag Detached: beginner
2025-07-11 20:21Christian GrothoffTag Detached: low hanging fruit