From: Steve McIntyre <93sam@debian.org> Date: Mon, 5 Aug 2024 10:51:56 +0000 (+0100) Subject: Build with GnuTLS. X-Git-Tag: archive/raspbian/8.12.0+git20250209.89ed161+ds-1+rpi1~1^2^2^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e993978e8e135124f58507d4873f33e17f05749c;p=curl.git Build with GnuTLS. Origin: vendor Forwarded: not-needed Last-Update: 2024-09-12 Gbp-Pq: Name ZZZgnutls-build.patch --- diff --git a/configure.ac b/configure.ac index 269d7bd4..b87b7cf5 100644 --- a/configure.ac +++ b/configure.ac @@ -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]),[ diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index 91f90cf6..13874e16 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/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/lib/Makefile.am b/lib/Makefile.am index 851cee29..2674a225 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -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) diff --git a/lib/libcurl.vers.in b/lib/libcurl.vers.in index ae978a48..7fd4c07d 100644 --- a/lib/libcurl.vers.in +++ b/lib/libcurl.vers.in @@ -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: *; diff --git a/src/Makefile.am b/src/Makefile.am index ebfb98c1..5c40513a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 diff --git a/tests/http/clients/Makefile.am b/tests/http/clients/Makefile.am index 007de3c8..fca0563c 100644 --- a/tests/http/clients/Makefile.am +++ b/tests/http/clients/Makefile.am @@ -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@ diff --git a/tests/http/clients/Makefile.in b/tests/http/clients/Makefile.in index 0dc0d4e6..bdcc3369 100644 --- a/tests/http/clients/Makefile.in +++ b/tests/http/clients/Makefile.in @@ -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 = diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am index 2e360cad..31238109 100644 --- a/tests/libtest/Makefile.am +++ b/tests/libtest/Makefile.am @@ -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)