3p-nghttp2 autobuild procedures.

9 views
Skip to first unread message

Nicky Perian

unread,
Jul 7, 2021, 9:03:28 AM7/7/21
to OpenSource Mailing List
My understanding for autobuild as it pertains to viewer prebuilt libraries is autobuild install provides dependent libraries under the stage directory once auto build installables edit has been run.
This seems not the case for 3p-nghttp2. I think zlib, openssl and libxml2 are dependency requirements to build nghtt2 and we appear to use whatever the system finds.

Are the autobuild procedures for 3p_nghttp special in a way not apparent to TPV developers? 

Monty Brandenberg

unread,
Jul 7, 2021, 10:08:53 AM7/7/21
to opensou...@lists.secondlife.com
That appears to be the case and the READMEs are a bit cut-n-paste
(or just empty). My guess is that this was done to whitewash a
libcurl dependency. We're not using http/2 yet but still need to
resolve the link. I'll see if I can get an authoritative answer
but by all means, go ahead and tweak 3p-nghttp2's autobuild config.

m

Monty Brandenberg

unread,
Jul 7, 2021, 11:13:38 AM7/7/21
to opensou...@lists.secondlife.com
On 7/7/2021 10:08 AM, Monty Brandenberg wrote:
>
> That appears to be the case and the READMEs are a bit cut-n-paste
> (or just empty).  My guess is that this was done to whitewash a
> libcurl dependency.  We're not using http/2 yet but still need to
> resolve the link.  I'll see if I can get an authoritative answer
> but by all means, go ahead and tweak 3p-nghttp2's autobuild config.

Looking at the dependency list of a standard Debian package, it
looks like nghttp2 doesn't have any dependencies. It links against
libc for a few functions and nothing else according to ldd and nm.

m

Monty Brandenberg

unread,
Jul 7, 2021, 4:09:08 PM7/7/21
to OpenSource Mailing List
On 7/7/2021 4:01 PM, Nicky Perian wrote:
> This is a  copy paste of a recent build.
>     Libs:
>       OpenSSL:        TRUE
> (LIBS='/usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so')
>       Libxml2:        TRUE (LIBS='/usr/lib/x86_64-linux-gnu/libxml2.so')
>       Libev:          FALSE (LIBS='')
>       Libc-ares:      FALSE (LIBS='')
>       Libevent(SSL):  FALSE (LIBS='')
>       Jansson:        FALSE (LIBS='')
>       Jemalloc:       FALSE (LIBS='')
>       Zlib:           TRUE (LIBS='/usr/lib/x86_64-linux-gnu/libz.so')
>       Systemd:        FALSE (LIBS='SYSTEMD_LIBRARIES-NOTFOUND')

A recent build where and by what means? The configure option
'--enable-lib-only' as used in build-cmd.sh builds only the
library which doesn't need these libraries. They're used in the
demo/utility programs included in the distribution but not used
in the Viewer. And ldd/nm are pretty authoritative for library
requirements barring dlopen() shenanigans.

All should be well.

Monty Brandenberg

unread,
Jul 7, 2021, 5:00:00 PM7/7/21
to OpenSource Mailing List
On 7/7/2021 4:44 PM, Nicky Perian wrote:
> Thanks, that explains it to my satisfaction.
> But, one lingling thought, for example, openpeg depends on icu4, but
> icu4 is not included in the viewer autobuild.xml. Then why is nghttp2
> included in the viewer autobuild.xml if it is unused?

libcurl has http/2 support which requires nghttp2. So the
library is referenced in autobuild.xml to resolve the link phase
of the viewer. Exciting news: newer libcurl includes http/3
support for which the curl project has no means of testing
(at present). "It compiles."

Reply all
Reply to author
Forward
0 new messages