Bug 241643 - www/node: Undefined symbol "nghttp2_option_set_max_outbound_ack" with libnghttp2-1.37.0 installed
Summary: www/node: Undefined symbol "nghttp2_option_set_max_outbound_ack" with libnght...
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Bradley T. Hughes
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-01 14:23 UTC by Marcin Cieślak
Modified: 2019-11-01 14:28 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (bhughes)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marcin Cieślak 2019-11-01 14:23:45 UTC
This is 11.3-STABLE on amd64.

With old libnghttp2-1.37.0 installed:

libnghttp2-1.37.0
Name           : libnghttp2
Version        : 1.37.0
Installed on   : Mon Apr  8 08:33:44 2019 UTC
Origin         : www/libnghttp2
Architecture   : FreeBSD:11:amd64
Prefix         : /usr/local
Categories     : net www
Licenses       : MIT
Maintainer     : sunpoet@FreeBSD.org
WWW            : https://nghttp2.org/
Comment        : HTTP/2.0 C Library
Shared Libs provided:
	libnghttp2.so.14
Annotations    :
	FreeBSD_version: 1102000
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 624KiB
Description    :
nghttp2 is an implementation of HTTP/2 and its header compression algorithm
HPACK in C.

WWW: https://nghttp2.org/

node package will think that libnghttp2.so library is provided, but fails due to undefined symbol introduced in 1.39.2:

/usr/local/bin/node: Undefined symbol "nghttp2_option_set_max_outbound_ack"
/usr/local/bin/node: Undefined symbol "nghttp2_option_set_max_outbound_ack"

https://svnweb.freebsd.org/ports/head/www/libnghttp2/pkg-plist?r1=504103&r2=508943

Shared library minor version number has been changed from

lib/libnghttp2.so.14.17.4

to

lib/libnghttp2.so.14.18.0

Is it possible to require a minor number of a library in LIB_DEPENDS as a minimum requirement?
Comment 1 Marcin Cieślak 2019-11-01 14:28:01 UTC
Node 12 has been installed via pkg:

# pkg install node
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   2.2MB/s    00:03    
Processing entries: 100%
FreeBSD repository update completed. 32804 packages processed.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	node: 12.13.0
	c-ares: 1.15.0_1
	libuv: 1.33.1

Installed packages to be UPGRADED:
	icu: 61.1,1 -> 65.1,1

Number of packages to be installed: 3
Number of packages to be upgraded: 1

The process will require 41 MiB more space.
18 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/4] Fetching node-12.13.0.txz: 100%    7 MiB   1.9MB/s    00:04    
[2/4] Fetching icu-65.1,1.txz: 100%   10 MiB   2.6MB/s    00:04    
[3/4] Fetching c-ares-1.15.0_1.txz: 100%  127 KiB 129.8kB/s    00:01    
[4/4] Fetching libuv-1.33.1.txz: 100%  113 KiB 115.4kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/4] Upgrading icu from 61.1,1 to 65.1,1...
[1/4] Extracting icu-65.1,1: 100%
[2/4] Installing c-ares-1.15.0_1...
[2/4] Extracting c-ares-1.15.0_1: 100%
[3/4] Installing libuv-1.33.1...
[3/4] Extracting libuv-1.33.1: 100%
[4/4] Installing node-12.13.0...
[4/4] Extracting node-12.13.0: 100%
=====
Message from node-12.13.0:

--
Note: If you need npm (Node Package Manager), please install www/npm.


Of course the simple remedy is to do "pkg upgrade libnghttp2" but that should be automatic in that case.