Repository: microsoft/msquic

Issue #3421: msquic depends on libnuma but packages don't state that
Created: 2023-02-11T19:10:49Z
Describe the bug
This is similar to  #2975 and it seems to be new in 2.2
$ ldd artifacts/bin/linux/x64_Debug_openssl/libmsquic.so.2.1.7
	linux-vdso.so.1 (0x00007ffd7b1c4000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc7fa425000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc7fa402000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc7fa210000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc7fa7aa000)
$ ldd artifacts/bin/linux/x64_Debug_openssl/libmsquic.so.2.2.0
	linux-vdso.so.1 (0x00007ffcb51bf000)
	libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f0d22fd8000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0d22fd2000)
	libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f0d22fc5000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0d22fa2000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0d22db0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f0d23423000)

The consequence is that it

can break uses on upgrade as new library needs more than the previous version
allows to install msquic package without warning but leave it dysfunctional.

that is unpleasant and difficult for users to diagnose.
Affected OS

 Windows
 Linux
 macOS
 Other (specify below)

Additional OS information
No response
MsQuic version
main
Steps taken to reproduce bug
easiest is to run ldd to show library dependencies.
Expected behavior
packages properly state dependencies
Actual outcome
libnuma  is missing
Additional details
We should either fix packages to pull in libnuma as needed or we should make it soft dependency e.g. optionally use it via function pointers.
cc: @ManickaP @CarnaViire

Duplicate issue #3640: Publish MsQuic packages for all Linux distros supported by .NET
Created: 2023-05-18T20:02:33Z
Describe the bug
Officiall list of .NET supported distros: https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md#linux
The following versions don't have msquic packages:
(*) distro has OpenSSL 3 by default

Fedora

 38 (*) (https://packages.microsoft.com/fedora/38/prod/Packages/)


Mariner

 2.0 (https://packages.microsoft.com/cbl-mariner/2.0/prod/Microsoft/x86_64/Packages/l/)

libmsquic 2.2.0 is present, but 2.2.1 is missing




RHEL

 8 (https://packages.microsoft.com/rhel/8/prod/Packages/)
 9 (*) (https://packages.microsoft.com/rhel/9/prod/Packages/)


Ubuntu

 22.10 (*) (https://packages.microsoft.com/ubuntu/22.10/prod/pool/main/)
 23.04 (*) (https://packages.microsoft.com/ubuntu/23.04/prod/pool/main/)



Upcoming releases (not sure if we want to track them separately or we can publish packages in advance):

Debian 12 (2023-06-10)
Fedora 39 (~2023-11)
openSUSE 16.0 (Fall 2023)
Ubuntu 23.10 (2023-10-12)

The following distros don't even have a dedicated directory in packages.microsoft.com (I don't know whether you can create one, so I'm not sure whether something can be done)

RHEL family

CentOS Stream 8&9
AlmaLinux 8&9
Rocky Linux 8&9



cc @wfurt @ManickaP
Affected OS

 Windows
 Linux
 macOS
 Other (specify below)

Additional OS information
No response
MsQuic version
v2.2
Steps taken to reproduce bug
Checking packages.microsoft.com for each of the distros
Expected behavior
Package exists in packages.microsoft.com and can be installed
Actual outcome
Package doesn't exist in packages.microsoft.com
Additional details

List of all supported distros with EOL dates
UPD: 2023-05-18

alpine

cycle    eol
-----    ---
3.15     2023-11-01 (!)
3.16     2024-05-23
3.17     2024-11-22
3.18 (*) 2025-05-09


centos

cycle eol
----- ---
7     2024-06-30


centos-stream

cycle eol
----- ---
8     2024-05-31
9     2027-05-31


debian

cycle eol
----- ---
11    2024-07-01


fedora
                                                                                                                        
cycle  eol
-----  ---
37     2023-12-15 (!)
38 (*) 2024-05-18


opensuse
                                                                                                                        
cycle eol
----- ---
15.4  2023-12-01 (!)


rhel

cycle eol
----- ---
7     2024-06-30
8     2029-05-31
9     2032-05-31


oraclelinux
                                                                                                                        
cycle eol
----- ---
7     2024-07-01
8     2029-07-01
9     2032-06-30


sles
                                                                                                                        
cycle eol
----- ---
12    2027-10-31
15    2031-07-31


ubuntu

cycle     eol
-----     ---
18.04     2023-05-31 (!)
20.04     2025-04-02
22.04     2027-04-01
22.10     2023-07-20 (!)
23.04 (*) 2024-01-20


(*) - released less than 3 months ago
(!) - EOL before the end of the year



OpenSSL 3 by default

alpine 3.17+ https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.17.0
debian 12+ (?) -- need to check release notes once released
fedora 36+ https://fedoraproject.org/wiki/Changes/OpenSSL3.0  https://fedoraproject.org/wiki/Releases/36/ChangeSet#OpenSSL3.0
RHEL 9+ https://www.redhat.com/en/blog/experience-bringing-openssl-30-rhel-and-fedora
Ubuntu 22.04+ https://launchpad.net/ubuntu/+source/openssl

Still 1.1:

openSUSE
SLES https://www.suse.com/support/kb/doc/?id=000019582


Issues for Ubuntu 22.10 (#3296) and Fedora 38 (#3610) can be closed as duplicates of this one. I don't have rights to edit issues, so I had to create new one.

Closing comment (2023-06-06T20:56:36Z): Progress of check so far:

Fedora 38 package works, but has an unstated libnuma dependencies (tracked in #3421)
Fedora 37 package does NOT work with a strange error (even though OpenSSL 3 is installed on the system)

/lib64/libmsquic.so.2: /lib64/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by /lib64/libmsquic.so.2)

(workaround is to fallback to 2.1.8 and install openssl1.1 package)
/cc @wfurt @ManickaP

[root@521663ee22d7 /]# ldd /lib64/libmsquic.so.2
/lib64/libmsquic.so.2: /lib64/libcrypto.so.3: version `OPENSSL_3.0.3' not found (required by /lib64/libmsquic.so.2)
        linux-vdso.so.1 (0x00007ffcf29ff000)
        libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007fc327543000)
        libnuma.so.1 => /lib64/libnuma.so.1 (0x00007fc327535000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fc327358000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fc32733e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc327ad5000)
[root@521663ee22d7 /]# rpm -qa | grep ssl
openssl-libs-3.0.9-1.fc37.x86_64

Dockerfile:
FROM fedora:37

RUN dnf install -y \
        dnf-plugins-core \
        libicu \
        vim

COPY  microsoft.asc /tmp
RUN dnf config-manager --add-repo https://packages.microsoft.com/fedora/37/prod/ && \
    rpm --import /tmp/microsoft.asc && \
    rm /tmp/microsoft.asc

RUN dnf install -y \
        numactl-libs \
        libmsquic && \
    dnf clean all