Tarantool development patches archive
 help / color / mirror / Atom feed
* [tarantool-patches] [PATCH 0/2] Build libcurl statically
@ 2019-08-16  2:32 Alexander Turenko
  2019-08-16  2:32 ` [tarantool-patches] [PATCH 1/2] lua: workaround pwd.getpwall() issue on Fedora 29 Alexander Turenko
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Alexander Turenko @ 2019-08-16  2:32 UTC (permalink / raw)
  To: Georgy Kirichenko
  Cc: Alexander Turenko, tarantool-patches, Alexander V . Tikhonov,
	Mergen Imeev

We decided to build libcurl statically to avoid problems with libcurl
versions that Linux distributives ships (see the list below). I also did
this for Mac OS and FreeBSD to provide more or less uniform build and
dependencies list across OSes.

This patchset holds libcurl-7.65.3. AFAIK there is no problems on this
version that affects our built-in http client. We tested this version
(also linked statically to tarantool) against the performance
degradation we observed by our customers on CentOS 7 (#4397) and it
works good. The following list of issues re built-in http client will
become unrelevant after this patchset:

* #4180 ('httpc: redirects are broken with libcurl-7.30 and older');
* #4389 ('libcurl memory leak');
* #4397 ('HTTPS seem to be unstable').

I didn't close them from a commit however, because it would be good to
do a little extra work on them: at least bisect and understand what is a
cause of a problem. Say, it is possible that a problem caused by a
libcurl build option, but not a specific version. This information would
be useful to be sure we really don't affected by the issues and will not
step into the problems in the future.

The patchset contains two patches.

The first one workarounds a systemd issue that affects built-in pwd
module when tarantool is linked against libcurl w/o GSS API support
(this is how we build libcurl to link it statically). The problem
appears on Fedora 29. This is prerequisite to push the second patch.

The second patch enables static libcurl build, enables it by default and
adjusts all relevant scripts and dependencies.

https://github.com/tarantool/tarantool/issues/4318
https://github.com/tarantool/tarantool/tree/imeevma/gh-4318-link-libcurl-statically-full-ci

CI now fails, because some SQL tests were not updated properly on
master. I'll rebase the branch when it will be fixed and will ensure
that everything work.

Alexander Turenko (1):
  lua: workaround pwd.getpwall() issue on Fedora 29

Mergen Imeev (1):
  build: link libcurl statically from a submodule

 .gitmodules              |   3 +
 .travis.mk               |   8 +--
 CMakeLists.txt           |  12 +++-
 Dockerfile.staticbuild   |  14 +----
 cmake/BuildLibCURL.cmake | 118 +++++++++++++++++++++++++++++++++++++++
 debian/control           |   9 ++-
 rpm/tarantool.spec       |   9 ++-
 src/CMakeLists.txt       |   3 +
 src/lua/pwd.lua          |  13 +++++
 test/unit/CMakeLists.txt |   1 +
 third_party/curl         |   1 +
 11 files changed, 169 insertions(+), 22 deletions(-)
 create mode 100644 cmake/BuildLibCURL.cmake
 create mode 160000 third_party/curl

-- 
2.22.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-08-22  8:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-16  2:32 [tarantool-patches] [PATCH 0/2] Build libcurl statically Alexander Turenko
2019-08-16  2:32 ` [tarantool-patches] [PATCH 1/2] lua: workaround pwd.getpwall() issue on Fedora 29 Alexander Turenko
2019-08-16  2:32 ` [tarantool-patches] [PATCH 2/2] build: link libcurl statically from a submodule Alexander Turenko
2019-08-19 22:54 ` [tarantool-patches] Re: [PATCH 0/2] Build libcurl statically Alexander Turenko
2019-08-20  7:51   ` Георгий Кириченко
2019-08-22  8:42 ` Kirill Yukhin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox