Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 2024 21:49:23 +0900
From:      Junho Choi <junho.choi@gmail.com>
To:        =?UTF-8?Q?Yann_Kerherv=C3=A9?= <yann.kerherve@gmail.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: quiche dependency issue in FreeBSD
Message-ID:  <CAJ5e%2BHCqM%2BkweHs1Zg7MkjDW32KWU6zqN4iLpofYQNEdnUdQ9g@mail.gmail.com>
In-Reply-To: <CAJ5e%2BHDMtwpRkFUFJqCV2ENw3YnBTn7jwh20e2w1Z=QqEF0YKg@mail.gmail.com>
References:  <CAMTe54qdzhpmXGrJ2ihaYQ8RpEScEkvuU3b=OiXVwQ_71wF11Q@mail.gmail.com> <CAJ5e%2BHDfs1-_jK7iwnZsSwVOSwav_TzN7RU=A-cN9g4v2Rtumg@mail.gmail.com> <CAJ5e%2BHA%2BJJksL7RK3%2BCt-cWE3WOY3cNBDcbrUaE58H1GnQTFrw@mail.gmail.com> <CAJ5e%2BHDMtwpRkFUFJqCV2ENw3YnBTn7jwh20e2w1Z=QqEF0YKg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000faa0b3061d348c1a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Yann,

I filed a patch to update quiche to 0.22.0, with a correct .so installation=
.

With this port, I don't get "dnsdist is missing a required shared library:
libquiche.so" any more.

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D280274

It'd be great if any committer will pick it up!

Best,


On Thu, Jun 27, 2024 at 11:29=E2=80=AFAM Junho Choi <junho.choi@gmail.com> =
wrote:

> quiche 0.22.0 with the soname fix released:
> https://github.com/cloudflare/quiche/releases/tag/0.22.0
>
> On Tue, Apr 30, 2024 at 9:23=E2=80=AFPM Junho Choi <junho.choi@gmail.com>=
 wrote:
>
>> I was looking into pkg source and found a relevant line:
>>
>>
>> https://github.com/freebsd/pkg/blob/b0a68a933f42aec97c8f37543bcac41149c2=
8e2e/libpkg/pkg_elf.c#L402-L410
>>
>> It seems to look for soname in the shared libs to be added to "shlibs
>> provided" section, but currently
>> quiche has no soname in the .so file:
>> https://github.com/cloudflare/quiche/issues/598
>>
>> I made a PR to fix this:
>> https://github.com/cloudflare/quiche/pull/1769
>>
>> After that, I made a fix on the port and now it looks ok:
>>
>> Shared Libs provided:
>>     libquiche.so.0
>>
>> Let's see how it is merged. I'll update the quiche port when it's ready.
>>
>> On Tue, Apr 30, 2024 at 12:17=E2=80=AFPM Junho Choi <junho.choi@gmail.co=
m> wrote:
>> >
>> > (Cross posting to ports@)
>> >
>> > Yann - yes I can reproduce it but have no idea why.
>> >
>> > It seems quiche doesn't have a "Shared Lib provided" section like
>> > other libs. (see below)
>> >
>> > Other than USE_LDCONFIG, what affects it? Any advice from committers?
>> >
>> > % pkg info quiche
>> > quiche-0.20.1
>> > Name           : quiche
>> > Version        : 0.20.1
>> > Installed on   : Tue Apr 30 03:14:32 2024 UTC
>> > Origin         : net/quiche
>> > Architecture   : FreeBSD:14:amd64
>> > Prefix         : /usr/local
>> > Categories     : net
>> > Licenses       : BSD2CLAUSE
>> > Maintainer     : junho.choi@gmail.com
>> > WWW            : https://crates.io/crates/quiche
>> > Comment        : Savoury implementation of the QUIC transport protocol
>> > and HTTP/3
>> > Options        :
>> >     DOCS           : on
>> >     QLOG           : on
>> > Annotations    :
>> >     FreeBSD_version: 1400097
>> >     build_timestamp: 2024-04-04T20:02:03+0000
>> >     built_by       : poudriere-git-3.4.1-1-g1e9f97d6
>> >     port_checkout_unclean: no
>> >     port_git_hash  : 0e1153d3a5
>> >     ports_top_checkout_unclean: no
>> >     ports_top_git_hash: f5d16d08a6
>> >     repo_type      : binary
>> >     repository     : FreeBSD
>> > Flat size      : 48.2MiB
>> >
>> >
>> > Other example (libnghttp2 has "Shared Lib Provided" section)
>> >
>> > % pkg info libnghttp2
>> > libnghttp2-1.61.0
>> > Name           : libnghttp2
>> > Version        : 1.61.0
>> > Installed on   : Sun Apr 21 12:06:36 2024 UTC
>> > Origin         : www/libnghttp2
>> > Architecture   : FreeBSD:14:amd64
>> > Prefix         : /usr/local
>> > Categories     : www net
>> > 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: 1400097
>> >     build_timestamp: 2024-04-11T01:12:38+0000
>> >     built_by       : poudriere-git-3.4.1-1-g1e9f97d6
>> >     cpe            : cpe:2.3:a:nghttp2:nghttp2:1.61.0:::::freebsd14:x6=
4
>> >     port_checkout_unclean: no
>> >     port_git_hash  : 2b3fb39407
>> >     ports_top_checkout_unclean: no
>> >     ports_top_git_hash: 2910ff97e7
>> >     repo_type      : binary
>> >     repository     : FreeBSD
>> > Flat size      : 801KiB
>> >
>> > On Fri, Apr 26, 2024 at 11:32=E2=80=AFAM Yann Kerherv=C3=A9 <yann.kerh=
erve@gmail.com>
>> wrote:
>> > >
>> > > Hello,
>> > >
>> > > I have an issue with `pkg check` reporting a dependency missing:
>> > >
>> > > root@dev:~ # pkg check -d -a
>> > > Checking all packages: 100%
>> > > dnsdist is missing a required shared library: libquiche.so
>> > >
>> > > (in FreeBSD 13.3 and 14.0)
>> > >
>> > > This is bogus:
>> > > root@dev:~ # ldd /usr/local/sbin/dnsdist | grep quiche
>> > > libquiche.so =3D> /usr/local/lib/libquiche.so (0x3af8e91e0000)
>> > >
>> > > It seems like the package build missed that dependency and doesn't
>> report as a shared lib provided by quiche?
>> > >
>> > > # pkg info -b quiche
>> > > quiche-0.20.1:
>> > >
>> > > Should there be a shared lib provided there:
>> > >
>> > > quiche-0.20.1:
>> > >         libquiche.so
>> > >
>> > > I thought that the USE_LDCONFIG=3D yes in the Makefile was taking ca=
re
>> of that automatically. And this is correctly set in the Makefile...
>> > >
>> > > Thanks!
>> > >
>> > > Yann
>> > >
>> > >
>> > >
>> >
>> >
>> > --
>> > Junho Choi <junho dot choi at gmail.com> | https://saturnsoft.net
>>
>>
>>
>> --
>> Junho Choi <junho dot choi at gmail.com> | https://saturnsoft.net
>>
>
>
> --
> Junho Choi <junho dot choi at gmail.com> | https://saturnsoft.net
>


--=20
Junho Choi <junho dot choi at gmail.com> | https://saturnsoft.net

--000000000000faa0b3061d348c1a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Yann,<br></div><div><br></div><div>I filed a patch to=
 update quiche to 0.22.0, with a correct .so installation.</div><div><br></=
div><div>With this port, I don&#39;t get &quot;<font face=3D"monospace">dns=
dist is missing a required shared library: libquiche.<span class=3D"gmail-i=
l">so&quot; any more.</span></font></div><div><font face=3D"monospace"><spa=
n class=3D"gmail-il"><br></span></font></div><div><a href=3D"https://bugs.f=
reebsd.org/bugzilla/show_bug.cgi?id=3D280274">https://bugs.freebsd.org/bugz=
illa/show_bug.cgi?id=3D280274</a></div><div><br></div><div>It&#39;d be grea=
t if any committer will pick it up!</div><div><br></div><div>Best,<br></div=
><div><br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Thu, Jun 27, 2024 at 11:29=E2=80=AFAM Junho Choi &lt;<a =
href=3D"mailto:junho.choi@gmail.com">junho.choi@gmail.com</a>&gt; wrote:<br=
></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;=
border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">q=
uiche 0.22.0 with the soname fix released: <a href=3D"https://github.com/cl=
oudflare/quiche/releases/tag/0.22.0" target=3D"_blank">https://github.com/c=
loudflare/quiche/releases/tag/0.22.0</a></div><br><div class=3D"gmail_quote=
"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Apr 30, 2024 at 9:23=E2=80=
=AFPM Junho Choi &lt;<a href=3D"mailto:junho.choi@gmail.com" target=3D"_bla=
nk">junho.choi@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">I was looking into pkg source and found a relevant =
line:<br>
<br>
<a href=3D"https://github.com/freebsd/pkg/blob/b0a68a933f42aec97c8f37543bca=
c41149c28e2e/libpkg/pkg_elf.c#L402-L410" rel=3D"noreferrer" target=3D"_blan=
k">https://github.com/freebsd/pkg/blob/b0a68a933f42aec97c8f37543bcac41149c2=
8e2e/libpkg/pkg_elf.c#L402-L410</a><br>
<br>
It seems to look for soname in the shared libs to be added to &quot;shlibs<=
br>
provided&quot; section, but currently<br>
quiche has no soname in the .so file:<br>
<a href=3D"https://github.com/cloudflare/quiche/issues/598" rel=3D"noreferr=
er" target=3D"_blank">https://github.com/cloudflare/quiche/issues/598</a><b=
r>
<br>
I made a PR to fix this:<br>
<a href=3D"https://github.com/cloudflare/quiche/pull/1769" rel=3D"noreferre=
r" target=3D"_blank">https://github.com/cloudflare/quiche/pull/1769</a><br>;
<br>
After that, I made a fix on the port and now it looks ok:<br>
<br>
Shared Libs provided:<br>
=C2=A0 =C2=A0 libquiche.so.0<br>
<br>
Let&#39;s see how it is merged. I&#39;ll update the quiche port when it&#39=
;s ready.<br>
<br>
On Tue, Apr 30, 2024 at 12:17=E2=80=AFPM Junho Choi &lt;<a href=3D"mailto:j=
unho.choi@gmail.com" target=3D"_blank">junho.choi@gmail.com</a>&gt; wrote:<=
br>
&gt;<br>
&gt; (Cross posting to ports@)<br>
&gt;<br>
&gt; Yann - yes I can reproduce it but have no idea why.<br>
&gt;<br>
&gt; It seems quiche doesn&#39;t have a &quot;Shared Lib provided&quot; sec=
tion like<br>
&gt; other libs. (see below)<br>
&gt;<br>
&gt; Other than USE_LDCONFIG, what affects it? Any advice from committers?<=
br>
&gt;<br>
&gt; % pkg info quiche<br>
&gt; quiche-0.20.1<br>
&gt; Name=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: quiche<br>
&gt; Version=C2=A0 =C2=A0 =C2=A0 =C2=A0 : 0.20.1<br>
&gt; Installed on=C2=A0 =C2=A0: Tue Apr 30 03:14:32 2024 UTC<br>
&gt; Origin=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: net/quiche<br>
&gt; Architecture=C2=A0 =C2=A0: FreeBSD:14:amd64<br>
&gt; Prefix=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: /usr/local<br>
&gt; Categories=C2=A0 =C2=A0 =C2=A0: net<br>
&gt; Licenses=C2=A0 =C2=A0 =C2=A0 =C2=A0: BSD2CLAUSE<br>
&gt; Maintainer=C2=A0 =C2=A0 =C2=A0: <a href=3D"mailto:junho.choi@gmail.com=
" target=3D"_blank">junho.choi@gmail.com</a><br>
&gt; WWW=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : <a href=3D"https://crat=
es.io/crates/quiche" rel=3D"noreferrer" target=3D"_blank">https://crates.io=
/crates/quiche</a><br>
&gt; Comment=C2=A0 =C2=A0 =C2=A0 =C2=A0 : Savoury implementation of the QUI=
C transport protocol<br>
&gt; and HTTP/3<br>
&gt; Options=C2=A0 =C2=A0 =C2=A0 =C2=A0 :<br>
&gt;=C2=A0 =C2=A0 =C2=A0DOCS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: on<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0QLOG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: on<b=
r>
&gt; Annotations=C2=A0 =C2=A0 :<br>
&gt;=C2=A0 =C2=A0 =C2=A0FreeBSD_version: 1400097<br>
&gt;=C2=A0 =C2=A0 =C2=A0build_timestamp: 2024-04-04T20:02:03+0000<br>
&gt;=C2=A0 =C2=A0 =C2=A0built_by=C2=A0 =C2=A0 =C2=A0 =C2=A0: poudriere-git-=
3.4.1-1-g1e9f97d6<br>
&gt;=C2=A0 =C2=A0 =C2=A0port_checkout_unclean: no<br>
&gt;=C2=A0 =C2=A0 =C2=A0port_git_hash=C2=A0 : 0e1153d3a5<br>
&gt;=C2=A0 =C2=A0 =C2=A0ports_top_checkout_unclean: no<br>
&gt;=C2=A0 =C2=A0 =C2=A0ports_top_git_hash: f5d16d08a6<br>
&gt;=C2=A0 =C2=A0 =C2=A0repo_type=C2=A0 =C2=A0 =C2=A0 : binary<br>
&gt;=C2=A0 =C2=A0 =C2=A0repository=C2=A0 =C2=A0 =C2=A0: FreeBSD<br>
&gt; Flat size=C2=A0 =C2=A0 =C2=A0 : 48.2MiB<br>
&gt;<br>
&gt;<br>
&gt; Other example (libnghttp2 has &quot;Shared Lib Provided&quot; section)=
<br>
&gt;<br>
&gt; % pkg info libnghttp2<br>
&gt; libnghttp2-1.61.0<br>
&gt; Name=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: libnghttp2<br>
&gt; Version=C2=A0 =C2=A0 =C2=A0 =C2=A0 : 1.61.0<br>
&gt; Installed on=C2=A0 =C2=A0: Sun Apr 21 12:06:36 2024 UTC<br>
&gt; Origin=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: www/libnghttp2<br>
&gt; Architecture=C2=A0 =C2=A0: FreeBSD:14:amd64<br>
&gt; Prefix=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: /usr/local<br>
&gt; Categories=C2=A0 =C2=A0 =C2=A0: www net<br>
&gt; Licenses=C2=A0 =C2=A0 =C2=A0 =C2=A0: MIT<br>
&gt; Maintainer=C2=A0 =C2=A0 =C2=A0: sunpoet@FreeBSD.org<br>
&gt; WWW=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : <a href=3D"https://nght=
tp2.org/" rel=3D"noreferrer" target=3D"_blank">https://nghttp2.org/</a><br>;
&gt; Comment=C2=A0 =C2=A0 =C2=A0 =C2=A0 : HTTP/2.0 C Library<br>
&gt; Shared Libs provided:<br>
&gt;=C2=A0 =C2=A0 =C2=A0libnghttp2.so.14<br>
&gt; Annotations=C2=A0 =C2=A0 :<br>
&gt;=C2=A0 =C2=A0 =C2=A0FreeBSD_version: 1400097<br>
&gt;=C2=A0 =C2=A0 =C2=A0build_timestamp: 2024-04-11T01:12:38+0000<br>
&gt;=C2=A0 =C2=A0 =C2=A0built_by=C2=A0 =C2=A0 =C2=A0 =C2=A0: poudriere-git-=
3.4.1-1-g1e9f97d6<br>
&gt;=C2=A0 =C2=A0 =C2=A0cpe=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : cpe:=
2.3:a:nghttp2:nghttp2:1.61.0:::::freebsd14:x64<br>
&gt;=C2=A0 =C2=A0 =C2=A0port_checkout_unclean: no<br>
&gt;=C2=A0 =C2=A0 =C2=A0port_git_hash=C2=A0 : 2b3fb39407<br>
&gt;=C2=A0 =C2=A0 =C2=A0ports_top_checkout_unclean: no<br>
&gt;=C2=A0 =C2=A0 =C2=A0ports_top_git_hash: 2910ff97e7<br>
&gt;=C2=A0 =C2=A0 =C2=A0repo_type=C2=A0 =C2=A0 =C2=A0 : binary<br>
&gt;=C2=A0 =C2=A0 =C2=A0repository=C2=A0 =C2=A0 =C2=A0: FreeBSD<br>
&gt; Flat size=C2=A0 =C2=A0 =C2=A0 : 801KiB<br>
&gt;<br>
&gt; On Fri, Apr 26, 2024 at 11:32=E2=80=AFAM Yann Kerherv=C3=A9 &lt;<a hre=
f=3D"mailto:yann.kerherve@gmail.com" target=3D"_blank">yann.kerherve@gmail.=
com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Hello,<br>
&gt; &gt;<br>
&gt; &gt; I have an issue with `pkg check` reporting a dependency missing:<=
br>
&gt; &gt;<br>
&gt; &gt; root@dev:~ # pkg check -d -a<br>
&gt; &gt; Checking all packages: 100%<br>
&gt; &gt; dnsdist is missing a required shared library: libquiche.so<br>
&gt; &gt;<br>
&gt; &gt; (in FreeBSD 13.3 and 14.0)<br>
&gt; &gt;<br>
&gt; &gt; This is bogus:<br>
&gt; &gt; root@dev:~ # ldd /usr/local/sbin/dnsdist | grep quiche<br>
&gt; &gt; libquiche.so =3D&gt; /usr/local/lib/libquiche.so (0x3af8e91e0000)=
<br>
&gt; &gt;<br>
&gt; &gt; It seems like the package build missed that dependency and doesn&=
#39;t report as a shared lib provided by quiche?<br>
&gt; &gt;<br>
&gt; &gt; # pkg info -b quiche<br>
&gt; &gt; quiche-0.20.1:<br>
&gt; &gt;<br>
&gt; &gt; Should there be a shared lib provided there:<br>
&gt; &gt;<br>
&gt; &gt; quiche-0.20.1:<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0libquiche.so<br>
&gt; &gt;<br>
&gt; &gt; I thought that the USE_LDCONFIG=3D yes in the Makefile was taking=
 care of that automatically. And this is correctly set in the Makefile...<b=
r>
&gt; &gt;<br>
&gt; &gt; Thanks!<br>
&gt; &gt;<br>
&gt; &gt; Yann<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Junho Choi &lt;junho dot choi at <a href=3D"http://gmail.com" rel=3D"n=
oreferrer" target=3D"_blank">gmail.com</a>&gt; | <a href=3D"https://saturns=
oft.net" rel=3D"noreferrer" target=3D"_blank">https://saturnsoft.net</a><br=
>
<br>
<br>
<br>
-- <br>
Junho Choi &lt;junho dot choi at <a href=3D"http://gmail.com" rel=3D"norefe=
rrer" target=3D"_blank">gmail.com</a>&gt; | <a href=3D"https://saturnsoft.n=
et" rel=3D"noreferrer" target=3D"_blank">https://saturnsoft.net</a><br>;
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"l=
tr"><div><div dir=3D"ltr">Junho Choi &lt;junho dot choi at <a href=3D"http:=
//gmail.com" target=3D"_blank">gmail.com</a>&gt; | <a href=3D"https://satur=
nsoft.net" target=3D"_blank">https://saturnsoft.net</a><br></div></div></di=
v></div>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"l=
tr"><div><div dir=3D"ltr">Junho Choi &lt;junho dot choi at <a href=3D"http:=
//gmail.com" target=3D"_blank">gmail.com</a>&gt; | <a href=3D"https://satur=
nsoft.net" target=3D"_blank">https://saturnsoft.net</a><br></div></div></di=
v></div>

--000000000000faa0b3061d348c1a--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ5e%2BHCqM%2BkweHs1Zg7MkjDW32KWU6zqN4iLpofYQNEdnUdQ9g>