Build with GnuTLS.
authorSteve McIntyre <93sam@debian.org>
Mon, 5 Aug 2024 10:51:56 +0000 (11:51 +0100)
committerSamuel Henrique <samueloph@debian.org>
Wed, 18 Sep 2024 06:27:29 +0000 (07:27 +0100)
Origin: vendor
Forwarded: not-needed
Last-Update: 2024-09-12

Gbp-Pq: Name ZZZgnutls-build.patch

configure.ac
docs/examples/Makefile.am
lib/Makefile.am
lib/libcurl.vers.in
src/Makefile.am
tests/http/clients/Makefile.am
tests/http/clients/Makefile.in
tests/libtest/Makefile.am

index 269d7bd4464afb3ec46919db1c308e11c9d9b380..b87b7cf52d3b255de164c432e50635cede997355 100644 (file)
@@ -264,6 +264,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(LIBCURL_SHLIB_VERSION, [3])
+else
+  AC_SUBST(LIBCURL_FILESTUB, ["libcurl"])
+  AC_SUBST(LIBCURL_SHLIB_VERSION, [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]),[
index 91f90cf65bca1f89743c2fcccfd071a739b171cc..13874e165efffb5f1f285f23c20861e1f3067031 100644 (file)
@@ -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@
index 851cee293a10ae2cd9571d7590a02a906b738a33..2674a225eee093014159eda6eadb6d7ad573ef6e 100644 (file)
@@ -34,7 +34,11 @@ EXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
  $(CMAKE_DIST) setup-win32.h Makefile.soname optiontable.pl libcurl.def \
  $(CHECKSRC_DIST)
 
+if GNUTLSBUILD
+lib_LTLIBRARIES = libcurl-gnutls.la
+else
 lib_LTLIBRARIES = libcurl.la
+endif
 
 if BUILD_UNITTESTS
 noinst_LTLIBRARIES = libcurlu.la
@@ -70,52 +74,97 @@ AM_CFLAGS =
 # Makefile.inc provides the CSOURCES and HHEADERS defines
 include Makefile.inc
 
+if GNUTLSBUILD
+libcurl_gnutls_la_SOURCES = $(CSOURCES) $(HHEADERS)
+libcurlu_la_SOURCES = $(CSOURCES) $(HHEADERS)
+libcurl_gnutls_la_CPPFLAGS_EXTRA =
+libcurl_gnutls_la_LDFLAGS_EXTRA =
+libcurl_gnutls_la_CFLAGS_EXTRA =
+else
 libcurl_la_SOURCES = $(CSOURCES) $(HHEADERS)
 libcurlu_la_SOURCES = $(CSOURCES) $(HHEADERS)
-
 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)
index ae978a485d3e01b4d1b0c115489e941120caadbb..7fd4c07d0857e7e1471b4fdedd1b14139b2e5d6f 100644 (file)
@@ -6,7 +6,7 @@ HIDDEN
     _save*;
 };
 
-CURL_@CURL_LT_SHLIB_VERSIONED_FLAVOUR@4
+CURL_@CURL_LT_SHLIB_VERSIONED_FLAVOUR@@LIBCURL_SHLIB_VERSION@
 {
   global: curl_*;
   local: *;
index ebfb98c15b51bbf47f9e7c20393d5d6d1b5e8f32..5c40513abe354ed44f8ed2f2e7b02c3b963c0499 100644 (file)
@@ -72,7 +72,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
index 007de3c877c45d8d26028dec3362c3fd4456aaa0..fca0563cc94d519b80de04fd4b3a2aede4b4f613 100644 (file)
@@ -51,7 +51,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@
index 0dc0d4e6e52d94b1db2fba2f632b2f8b819f59d5..bdcc336925913eefd851e35274a9e816862851e7 100644 (file)
@@ -177,7 +177,7 @@ CONFIG_CLEAN_VPATH_FILES =
 h2_pausing_SOURCES = h2-pausing.c
 h2_pausing_OBJECTS = h2-pausing.$(OBJEXT)
 h2_pausing_LDADD = $(LDADD)
-h2_pausing_DEPENDENCIES = $(LIBDIR)/libcurl.la
+h2_pausing_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -185,35 +185,35 @@ am__v_lt_1 =
 h2_serverpush_SOURCES = h2-serverpush.c
 h2_serverpush_OBJECTS = h2-serverpush.$(OBJEXT)
 h2_serverpush_LDADD = $(LDADD)
-h2_serverpush_DEPENDENCIES = $(LIBDIR)/libcurl.la
+h2_serverpush_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 h2_upgrade_extreme_SOURCES = h2-upgrade-extreme.c
 h2_upgrade_extreme_OBJECTS = h2-upgrade-extreme.$(OBJEXT)
 h2_upgrade_extreme_LDADD = $(LDADD)
-h2_upgrade_extreme_DEPENDENCIES = $(LIBDIR)/libcurl.la
+h2_upgrade_extreme_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 hx_download_SOURCES = hx-download.c
 hx_download_OBJECTS = hx-download.$(OBJEXT)
 hx_download_LDADD = $(LDADD)
-hx_download_DEPENDENCIES = $(LIBDIR)/libcurl.la
+hx_download_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 hx_upload_SOURCES = hx-upload.c
 hx_upload_OBJECTS = hx-upload.$(OBJEXT)
 hx_upload_LDADD = $(LDADD)
-hx_upload_DEPENDENCIES = $(LIBDIR)/libcurl.la
+hx_upload_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 tls_session_reuse_SOURCES = tls-session-reuse.c
 tls_session_reuse_OBJECTS = tls-session-reuse.$(OBJEXT)
 tls_session_reuse_LDADD = $(LDADD)
-tls_session_reuse_DEPENDENCIES = $(LIBDIR)/libcurl.la
+tls_session_reuse_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 upload_pausing_SOURCES = upload-pausing.c
 upload_pausing_OBJECTS = upload-pausing.$(OBJEXT)
 upload_pausing_LDADD = $(LDADD)
-upload_pausing_DEPENDENCIES = $(LIBDIR)/libcurl.la
+upload_pausing_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 ws_data_SOURCES = ws-data.c
 ws_data_OBJECTS = ws-data.$(OBJEXT)
 ws_data_LDADD = $(LDADD)
-ws_data_DEPENDENCIES = $(LIBDIR)/libcurl.la
+ws_data_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 ws_pingpong_SOURCES = ws-pingpong.c
 ws_pingpong_OBJECTS = ws-pingpong.$(OBJEXT)
 ws_pingpong_LDADD = $(LDADD)
-ws_pingpong_DEPENDENCIES = $(LIBDIR)/libcurl.la
+ws_pingpong_DEPENDENCIES = $(LIBDIR)/$(LIBCURL_FILESTUB).la
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -532,7 +532,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/lib \
 LIBDIR = $(top_builddir)/lib
 
 # Dependencies
-LDADD = $(LIBDIR)/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@
+LDADD = $(LIBDIR)/$(LIBCURL_FILESTUB).la @LIBCURL_PC_LIBS_PRIVATE@
 CHECKSRC = $(CS_$(V))
 CS_0 = @echo "  RUN     " $@;
 CS_1 = 
index 2e360cad443f8f3676c4e36b91998faeed186539..31238109da1b5898e69b6beb35dff22e6ee814f4 100644 (file)
@@ -48,8 +48,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)