View Issue Details

IDProjectCategoryView StatusLast Update
0005708GNUnetbuild processpublic2022-10-31 03:22
ReporterFlorian Dold Assigned Toschanzen  
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.
Tagsbeginner, chore, low hanging fruit

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 17:15

developer   ~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 18: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 14: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 12:25

developer   ~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 12:30

developer   ~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 20: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 09:27

administrator   ~0018017

Last edited: 2022-09-29 07: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

Related Changesets

gnunet: master c31abdb6

2022-09-29 09:06

schanzen


Details Diff
UTIL: gnunet-config can now print experimental status. Issue 0005708 Affected Issues
0005708
mod - configure.ac Diff File
mod - src/util/gnunet-config.c Diff File

Issue History

Date Modified Username Field Change
2019-04-30 18:46 Florian Dold New Issue
2019-04-30 18:46 Florian Dold Status new => assigned
2019-04-30 18:46 Florian Dold Assigned To => Christian Grothoff
2019-04-30 18:46 Florian Dold Relationship added related to 0005707
2019-04-30 18:50 Florian Dold Description Updated
2019-05-01 17:15 nikita Note Added: 0014362
2019-05-01 18:55 Florian Dold Note Added: 0014363
2019-05-02 14:32 Christian Grothoff Note Added: 0014370
2019-05-02 14:32 Christian Grothoff Assigned To Christian Grothoff =>
2019-05-02 14:32 Christian Grothoff Status assigned => confirmed
2019-05-02 14:32 Christian Grothoff Severity minor => feature
2019-06-05 19:01 Christian Grothoff Target Version => 0.11.6
2019-07-01 12:25 nikita Note Added: 0014627
2019-07-01 12:30 nikita Note Added: 0014628
2019-07-07 21:26 Christian Grothoff Relationship added related to 0005735
2019-07-07 21:26 Christian Grothoff Product Version => Git master
2019-07-07 21:26 Christian Grothoff Target Version 0.11.6 =>
2021-03-03 18:34 schanzen Tag Attached: chore
2021-04-03 20:50 schanzen Summary configure 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 20:50 schanzen Note Added: 0017678
2021-04-03 20:50 schanzen Tag Attached: low hanging fruit
2021-04-05 11:26 schanzen Target Version => 0.14.2
2021-06-01 21:13 schanzen Tag Attached: beginner
2021-06-10 19:37 schanzen Target Version 0.14.2 => 0.15.0
2021-06-10 22:56 schanzen Target Version 0.15.0 =>
2021-07-25 09:27 schanzen Note Added: 0018017
2022-09-10 15:32 schanzen Target Version => 0.17.6
2022-09-10 15:32 schanzen Assigned To => schanzen
2022-09-10 15:32 schanzen Status confirmed => assigned
2022-09-26 05:02 schanzen Target Version 0.17.6 => 0.17.7
2022-09-29 07:06 schanzen Changeset attached => gnunet master c31abdb6
2022-09-29 07:11 schanzen Note Edited: 0018017
2022-09-29 07:11 schanzen Status assigned => resolved
2022-09-29 07:11 schanzen Resolution open => fixed
2022-09-29 07:11 schanzen Fixed in Version => 0.17.7
2022-10-21 07:33 schanzen Target Version 0.17.7 => 0.18.0
2022-10-31 03:22 schanzen Status resolved => closed