From 9d7ff2e14cf8239f46a9a36143ea335284b975a0 Mon Sep 17 00:00:00 2001 From: Steve McIntyre <93sam@debian.org> Date: Mon, 5 Aug 2024 11:51:56 +0100 Subject: [PATCH] Build with GnuTLS. Origin: vendor Forwarded: not-needed Last-Update: 2024-11-06 Gbp-Pq: Name ZZZgnutls-build.patch --- configure.ac | 12 ++++++- docs/examples/Makefile.am | 2 +- lib/Makefile.am | 62 +++++++++++++++++++++++++++++++++- src/Makefile.am | 2 +- tests/http/clients/Makefile.am | 2 +- tests/libtest/Makefile.am | 4 +-- 6 files changed, 77 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index a2879568..5501bee5 100644 --- a/configure.ac +++ b/configure.ac @@ -257,6 +257,16 @@ AS_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to th fi ]) +# Debian-specific changes - tweak build settings if we're building with gnutls +AM_CONDITIONAL(GNUTLSBUILD, test x$OPT_GNUTLS != xno) +if test X$OPT_GNUTLS != Xno; then + AC_SUBST(LIBCURL_FILESTUB, ["libcurl-gnutls"]) + AC_SUBST(CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME, [3]) +else + AC_SUBST(LIBCURL_FILESTUB, ["libcurl"]) + AC_SUBST(CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME, [4]) +fi + OPT_MBEDTLS=no AC_ARG_WITH(mbedtls,dnl AS_HELP_STRING([--with-mbedtls=PATH],[where to look for mbedTLS, PATH points to the installation root]),[ @@ -2600,7 +2610,7 @@ AS_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shar ) AC_SUBST([CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX], ["$versioned_symbols_flavour"]) -AC_SUBST([CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME], ["4"]) dnl Keep in sync with VERSIONCHANGE - VERSIONDEL in lib/Makefile.soname +# AC_SUBST([CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME], ["4"]) dnl Keep in sync with VERSIONCHANGE - VERSIONDEL in lib/Makefile.soname AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS], [test "x$versioned_symbols" = 'xyes']) diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index d67b4dd6..a5aebbde 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -49,7 +49,7 @@ endif LIBS = $(BLANK_AT_MAKETIME) # Dependencies -LDADD = $(LIBDIR)/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@ +LDADD = $(LIBDIR)/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@ # This might hold -Werror CFLAGS += @CURL_CFLAG_EXTRAS@ diff --git a/lib/Makefile.am b/lib/Makefile.am index b77d10bb..7ee50c80 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -32,7 +32,11 @@ EXTRA_DIST = config-mac.h config-os400.h config-plan9.h config-riscos.h \ config-win32.h curl_config.h.in libcurl.rc libcurl.def \ $(CMAKE_DIST) Makefile.soname optiontable.pl $(CHECKSRC_DIST) +if GNUTLSBUILD +lib_LTLIBRARIES = libcurl-gnutls.la +else lib_LTLIBRARIES = libcurl.la +endif if BUILD_UNITTESTS noinst_LTLIBRARIES = libcurlu.la @@ -80,59 +84,115 @@ endif libcurl_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CSOURCES) @PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CSOURCES) --exclude $(curl_EXCLUDE) > libcurl_unity.c +if GNUTLSBUILD +nodist_libcurl_gnutls_la_SOURCES = libcurl_unity.c +libcurl_gnutls_la_SOURCES = $(curl_EXCLUDE) +nodist_libcurlu_la_SOURCES = libcurl_unity.c +libcurlu_la_SOURCES = $(curl_EXCLUDE) +else nodist_libcurl_la_SOURCES = libcurl_unity.c libcurl_la_SOURCES = $(curl_EXCLUDE) nodist_libcurlu_la_SOURCES = libcurl_unity.c libcurlu_la_SOURCES = $(curl_EXCLUDE) +endif CLEANFILES = libcurl_unity.c else +if GNUTLSBUILD +libcurl_gnutls_la_SOURCES = $(CSOURCES) $(HHEADERS) +libcurlu_la_SOURCES = $(CSOURCES) $(HHEADERS) +else libcurl_la_SOURCES = $(CSOURCES) $(HHEADERS) libcurlu_la_SOURCES = $(CSOURCES) $(HHEADERS) endif +endif +if GNUTLSBUILD +libcurl_gnutls_la_CPPFLAGS_EXTRA = +libcurl_gnutls_la_LDFLAGS_EXTRA = +libcurl_gnutls_la_CFLAGS_EXTRA = +else libcurl_la_CPPFLAGS_EXTRA = libcurl_la_LDFLAGS_EXTRA = libcurl_la_CFLAGS_EXTRA = +endif if CURL_LT_SHLIB_USE_VERSION_INFO +if GNUTLSBUILD +libcurl_gnutls_la_LDFLAGS_EXTRA += $(VERSIONINFO) +else libcurl_la_LDFLAGS_EXTRA += $(VERSIONINFO) endif +endif if CURL_LT_SHLIB_USE_NO_UNDEFINED +if GNUTLSBUILD +libcurl_gnutls_la_LDFLAGS_EXTRA += -no-undefined +else libcurl_la_LDFLAGS_EXTRA += -no-undefined endif +endif if CURL_LT_SHLIB_USE_MIMPURE_TEXT +if GNUTLSBUILD +libcurl_gnutls_la_LDFLAGS_EXTRA += -mimpure-text +else libcurl_la_LDFLAGS_EXTRA += -mimpure-text endif +endif if CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS +if GNUTLSBUILD +libcurl_gnutls_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers +else libcurl_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers +endif else # if symbol-hiding is enabled, hide them! if DOING_CURL_SYMBOL_HIDING +if GNUTLSBUILD +libcurl_gnutls_la_LDFLAGS_EXTRA += -export-symbols-regex '^curl_.*' +else libcurl_la_LDFLAGS_EXTRA += -export-symbols-regex '^curl_.*' endif endif +endif if USE_CPPFLAG_CURL_STATICLIB +if GNUTLSBUILD +libcurl_gnutls_la_CPPFLAGS_EXTRA += -DCURL_STATICLIB +else libcurl_la_CPPFLAGS_EXTRA += -DCURL_STATICLIB +endif else if HAVE_WINDRES +if GNUTLSBUILD +libcurl_gnutls_la_SOURCES += $(LIB_RCFILES) +else libcurl_la_SOURCES += $(LIB_RCFILES) +endif $(LIB_RCFILES): $(top_srcdir)/include/curl/curlver.h endif endif if DOING_CURL_SYMBOL_HIDING +if GNUTLSBUILD +libcurl_gnutls_la_CPPFLAGS_EXTRA += -DCURL_HIDDEN_SYMBOLS +libcurl_gnutls_la_CFLAGS_EXTRA += $(CFLAG_CURL_SYMBOL_HIDING) +else libcurl_la_CPPFLAGS_EXTRA += -DCURL_HIDDEN_SYMBOLS libcurl_la_CFLAGS_EXTRA += $(CFLAG_CURL_SYMBOL_HIDING) endif +endif +if GNUTLSBUILD +libcurl_gnutls_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcurl_gnutls_la_CPPFLAGS_EXTRA) +libcurl_gnutls_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_gnutls_la_LDFLAGS_EXTRA) $(CURL_LDFLAGS_LIB) $(LIBCURL_PC_LIBS_PRIVATE) +libcurl_gnutls_la_CFLAGS = $(AM_CFLAGS) $(libcurl_gnutls_la_CFLAGS_EXTRA) +else libcurl_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcurl_la_CPPFLAGS_EXTRA) libcurl_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_la_LDFLAGS_EXTRA) $(CURL_LDFLAGS_LIB) $(LIBCURL_PC_LIBS_PRIVATE) libcurl_la_CFLAGS = $(AM_CFLAGS) $(libcurl_la_CFLAGS_EXTRA) - +endif libcurlu_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_STATICLIB -DUNITTESTS libcurlu_la_LDFLAGS = $(AM_LDFLAGS) -static $(LIBCURL_PC_LIBS_PRIVATE) libcurlu_la_CFLAGS = $(AM_CFLAGS) diff --git a/src/Makefile.am b/src/Makefile.am index 0969d816..e0495a5d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,7 +99,7 @@ CFLAGS += @CURL_CFLAG_EXTRAS@ # Prevent LIBS from being used for all link targets LIBS = $(BLANK_AT_MAKETIME) -curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@ +curl_LDADD = $(top_builddir)/lib/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@ # if unit tests are enabled, build a static library to link them with if BUILD_UNITTESTS diff --git a/tests/http/clients/Makefile.am b/tests/http/clients/Makefile.am index 935614c5..2bfcba6f 100644 --- a/tests/http/clients/Makefile.am +++ b/tests/http/clients/Makefile.am @@ -50,7 +50,7 @@ endif LIBS = $(BLANK_AT_MAKETIME) # Dependencies -LDADD = $(LIBDIR)/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@ +LDADD = $(LIBDIR)/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@ # This might hold -Werror CFLAGS += @CURL_CFLAG_EXTRAS@ diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am index c1363d8d..c93b71f2 100644 --- a/tests/libtest/Makefile.am +++ b/tests/libtest/Makefile.am @@ -50,8 +50,8 @@ CLEANFILES = lib1521.c # Prevent LIBS from being used for all link targets LIBS = $(BLANK_AT_MAKETIME) -SUPPORTFILES_LIBS = $(top_builddir)/lib/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@ -TESTUTIL_LIBS = $(top_builddir)/lib/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@ +SUPPORTFILES_LIBS = $(top_builddir)/lib/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@ +TESTUTIL_LIBS = $(top_builddir)/lib/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@ # Dependencies (may need to be overridden) LDADD = $(SUPPORTFILES_LIBS) -- 2.30.2