diff -Nru orig/Rhtslib/R/zzz.R patched/Rhtslib/R/zzz.R
--- orig/Rhtslib/R/zzz.R	2024-10-24 03:04:04.000000000 +0200
+++ patched/Rhtslib/R/zzz.R	2025-03-04 13:12:20.722688300 +0100
@@ -19,6 +19,8 @@
             R_TOOLS_SOFT <- tools::Rcmd("config R_TOOLS_SOFT", stdout=TRUE)
             syslibs <- paste0(R_TOOLS_SOFT, "/lib/")
             if (dir.exists(syslibs)) {
+                if (file.exists(paste0(syslibs, "libnghttp2.a")))
+                    libs <- append(libs, "nghttp2")
                 if (file.exists(paste0(syslibs, "libpsl.a")))
                     libs <- append(libs, "psl")
                 if (file.exists(paste0(syslibs, "libbrotlidec.a")))
diff -Nru orig/Rhtslib/src/Makevars.win patched/Rhtslib/src/Makevars.win
--- orig/Rhtslib/src/Makevars.win	2024-10-24 03:04:04.000000000 +0200
+++ patched/Rhtslib/src/Makevars.win	2025-03-04 13:13:22.729948800 +0100
@@ -4,9 +4,10 @@
 
 ## Linker options. Make sure the Rhtslib::pkgconfig() function (defined in
 ## R/zzz.R) produces the same PKG_LIBS value.
+LIBNGHTTP2 = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libnghttp2.a),-lnghttp2),)
 LIBPSL = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libpsl.a),-lpsl),)
 LIBBROTLI = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libbrotlidec.a),-lbrotlidec -lbrotlicommon),)
-PKG_LIBS+=-lm -lbz2 -llzma -lcurl $(LIBPSL) $(LIBBROTLI) -lbcrypt -lidn2 -lunistring -liconv -lssl -lcrypto -lz -lcrypt32 -lwsock32 -lwldap32 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lzstd -lregex
+PKG_LIBS+=-lm -lbz2 -llzma -lcurl $(LIBNGHTTP2) $(LIBPSL) $(LIBBROTLI) -lbcrypt -lidn2 -lunistring -liconv -lssl -lcrypto -lz -lcrypt32 -lwsock32 -lwldap32 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lzstd -lregex
 
 populate-usrlib-dir: htslib mk-usrlib-dir
 	cd "${HTSLIB_SOURCE_DIR}" && cp libhts.a "${USRLIB_DIR}"
