Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile
@ 2019-12-10 11:21 Alexander V. Tikhonov
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 1/5] static build: speedup build Alexander V. Tikhonov
                   ` (6 more replies)
  0 siblings, 7 replies; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Made the following changes at Dockerfile for static build:
     - changed 'wget' tool use to 'curl -O -L' to avoid of '500' HTTP
       error respond from download servers
     - changed the link from sourceforge to github to download
       the icu4c sources, as suggested on icu4c web site
     - added 'build' directory removement to avoid of old configuration
       at build/curl which is used for curl building
     - removed LD_LIBRARY_PATH environment from curl build, due to the
       path is empty in real and is not needed
     - added '-j' option to make tool calls for all builds to speed it up
       in 4 times
     - set Dockerfile WORKDIR from the very start of Tarantool sources
       builds to make the Dockerfile code more readable and removed all
       duplicating calls to Tarantool sources directory changes.

Github: https://github.com/tarantool/tarantool/tree/avtikhon/dockerfile-static-build-full-ci
Issue: -

Alexander V. Tikhonov (5):
  static build: speedup build
  static build: remove unneeded LD_LIBRARY_PATH
  static build: cleanup Dockerfile
  static build: added build subdirectory cleanup
  static build: resolve issues with sourceforge.net

 Dockerfile.staticbuild | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

-- 
2.17.1

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

* [Tarantool-patches] [PATCH v2 1/5] static build: speedup build
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
@ 2019-12-10 11:21 ` Alexander V. Tikhonov
  2019-12-18 12:21   ` Igor Munkin
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH Alexander V. Tikhonov
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Added '-j' option to make for tools buildings, it decreased build time in 4 times.
---
 Dockerfile.staticbuild | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index d63c18bd1..8da8ae304 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -44,7 +44,7 @@ RUN set -x && \
     tar -xvf openssl-1.1.0h.tar.gz && \
     cd openssl-1.1.0h && \
     ./config --libdir=lib && \
-    make && make install
+    make -j && make install
 
 RUN set -x && \
     cd / && \
@@ -52,7 +52,7 @@ RUN set -x && \
     tar -xvf icu4c-62_1-src.tgz && \
     cd icu/source && \
     ./configure --with-data-packaging=static --enable-static --enable-shared && \
-    make && make install
+    make -j && make install
 
 RUN set -x && \
     cd / && \
@@ -60,7 +60,7 @@ RUN set -x && \
     tar -xvf libunwind-1.3-rc1.tar.gz && \
     cd libunwind-1.3-rc1 && \
     ./configure --enable-static --enable-shared && \
-    make && make install
+    make -j && make install
 
 COPY . /tarantool
 
-- 
2.17.1

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

* [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 1/5] static build: speedup build Alexander V. Tikhonov
@ 2019-12-10 11:21 ` Alexander V. Tikhonov
  2019-12-18 12:49   ` Igor Munkin
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile Alexander V. Tikhonov
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Removed LD_LIBRARY_PATH environment from curl build, due to the
path is empty in real and is not needed.
---
 Dockerfile.staticbuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index 8da8ae304..343627746 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -56,7 +56,7 @@ RUN set -x && \
 
 RUN set -x && \
     cd / && \
-    LD_LIBRARY_PATH=/usr/local/lib64 curl -O -L http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
+    curl -O -L http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
     tar -xvf libunwind-1.3-rc1.tar.gz && \
     cd libunwind-1.3-rc1 && \
     ./configure --enable-static --enable-shared && \
-- 
2.17.1

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

* [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 1/5] static build: speedup build Alexander V. Tikhonov
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH Alexander V. Tikhonov
@ 2019-12-10 11:21 ` Alexander V. Tikhonov
  2019-12-18 15:01   ` Igor Munkin
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup Alexander V. Tikhonov
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Set Dockerfile WORKDIR from the very start of Tarantool sources
builds to make the Dockerfile code more readable and removed all
duplicating calls to Tarantool sources directory changes.
---
 Dockerfile.staticbuild | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index 343627746..66342fa4e 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -64,30 +64,26 @@ RUN set -x && \
 
 COPY . /tarantool
 
+WORKDIR /tarantool
+
 RUN set -x && \
-    cd tarantool && \
     git submodule init && \
     git submodule update
 
-WORKDIR /tarantool
-
 RUN set -x && \
     find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
     find . -name 'CMakeCache.txt' -type f -delete
 
 RUN pip install -r /tarantool/test-run/requirements.txt
 
-RUN set -x \
-    && (cd /tarantool; \
-       cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-             -DENABLE_DIST:BOOL=ON \
-             -DBUILD_STATIC=ON \
-             -DOPENSSL_USE_STATIC_LIBS=ON \
-             -DOPENSSL_ROOT_DIR=/usr/local \
-             .) \
-    && make -C /tarantool -j
-
-RUN cd /tarantool && make install
+RUN set -x && \
+    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+         -DENABLE_DIST:BOOL=ON \
+         -DBUILD_STATIC=ON \
+         -DOPENSSL_USE_STATIC_LIBS=ON \
+         -DOPENSSL_ROOT_DIR=/usr/local \
+         . && \
+    make -j && make install
 
 ARG RUN_TESTS
 RUN if [ -n "${RUN_TESTS}" ]; then \
-- 
2.17.1

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

* [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
                   ` (2 preceding siblings ...)
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile Alexander V. Tikhonov
@ 2019-12-10 11:21 ` Alexander V. Tikhonov
  2019-12-18 15:34   ` Igor Munkin
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net Alexander V. Tikhonov
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Added 'build' directory removement to avoid of old configuration
at build/curl which is used for curl building.
---
 Dockerfile.staticbuild | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index 66342fa4e..0424179a2 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -72,7 +72,8 @@ RUN set -x && \
 
 RUN set -x && \
     find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
-    find . -name 'CMakeCache.txt' -type f -delete
+    find . -name 'CMakeCache.txt' -type f -delete && \
+    rm -rf build
 
 RUN pip install -r /tarantool/test-run/requirements.txt
 
-- 
2.17.1

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

* [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
                   ` (3 preceding siblings ...)
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup Alexander V. Tikhonov
@ 2019-12-10 11:21 ` Alexander V. Tikhonov
  2019-12-18 15:55   ` Igor Munkin
  2019-12-18 16:01 ` [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Igor Munkin
  2020-04-02 10:35 ` Kirill Yukhin
  6 siblings, 1 reply; 25+ messages in thread
From: Alexander V. Tikhonov @ 2019-12-10 11:21 UTC (permalink / raw)
  To: Alexander Turenko; +Cc: tarantool-patches

Found that wget may fail on downloading the file from flaky
available servers with 500 HTTP error, like it was seen on
icu4c sources downloading, please check the issue:
https://sourceforge.net/p/forge/site-support/20071/

Found that curl successfully downloads needed files even in
such situations. Decided to use curl instead of wget tool
to avoid of such errors feather.

Also found that sourceforge site too often has issues and
responds with 500 HTTP error. Decided to use the link from
github instead of sourceforge to download the icu4c sources,
as suggested on icu4c web site.
---
 Dockerfile.staticbuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index 0424179a2..49895a4de 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -48,7 +48,7 @@ RUN set -x && \
 
 RUN set -x && \
     cd / && \
-    wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \
+    curl -O -L https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz && \
     tar -xvf icu4c-62_1-src.tgz && \
     cd icu/source && \
     ./configure --with-data-packaging=static --enable-static --enable-shared && \
-- 
2.17.1

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

* Re: [Tarantool-patches] [PATCH v2 1/5] static build: speedup build
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 1/5] static build: speedup build Alexander V. Tikhonov
@ 2019-12-18 12:21   ` Igor Munkin
  2019-12-19  9:26     ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 12:21 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks, the changes LGTM except the one minor comment: I guess it's
preferable to have a sole 'build:' tag for any patch related to the
build system. Feel free to ignore and proceed if Sasha Tu. (he's already
CCed as a second reviewer) has no remarks to the subj.

On 10.12.19, Alexander V. Tikhonov wrote:
> Added '-j' option to make for tools buildings, it decreased build time in 4 times.
> ---
>  Dockerfile.staticbuild | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> index d63c18bd1..8da8ae304 100644
> --- a/Dockerfile.staticbuild
> +++ b/Dockerfile.staticbuild
> @@ -44,7 +44,7 @@ RUN set -x && \
>      tar -xvf openssl-1.1.0h.tar.gz && \
>      cd openssl-1.1.0h && \
>      ./config --libdir=lib && \
> -    make && make install
> +    make -j && make install
>  
>  RUN set -x && \
>      cd / && \
> @@ -52,7 +52,7 @@ RUN set -x && \
>      tar -xvf icu4c-62_1-src.tgz && \
>      cd icu/source && \
>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
> -    make && make install
> +    make -j && make install
>  
>  RUN set -x && \
>      cd / && \
> @@ -60,7 +60,7 @@ RUN set -x && \
>      tar -xvf libunwind-1.3-rc1.tar.gz && \
>      cd libunwind-1.3-rc1 && \
>      ./configure --enable-static --enable-shared && \
> -    make && make install
> +    make -j && make install
>  
>  COPY . /tarantool
>  
> -- 
> 2.17.1
> 

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH Alexander V. Tikhonov
@ 2019-12-18 12:49   ` Igor Munkin
  2019-12-19  9:27     ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 12:49 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks for the patch! This environment variable has been added within
cb1c72d[1] and now you claim that it's excess. Could you please provide
a bit more extended rationale for the changes you've made?

On 10.12.19, Alexander V. Tikhonov wrote:
> Removed LD_LIBRARY_PATH environment from curl build, due to the
> path is empty in real and is not needed.
> ---
>  Dockerfile.staticbuild | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> index 8da8ae304..343627746 100644
> --- a/Dockerfile.staticbuild
> +++ b/Dockerfile.staticbuild
> @@ -56,7 +56,7 @@ RUN set -x && \
>  
>  RUN set -x && \
>      cd / && \
> -    LD_LIBRARY_PATH=/usr/local/lib64 curl -O -L http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
> +    curl -O -L http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
>      tar -xvf libunwind-1.3-rc1.tar.gz && \
>      cd libunwind-1.3-rc1 && \
>      ./configure --enable-static --enable-shared && \
> -- 
> 2.17.1
> 

[1]: https://github.com/tarantool/tarantool/commit/cb1c72d

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile Alexander V. Tikhonov
@ 2019-12-18 15:01   ` Igor Munkin
  2019-12-19  9:28     ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 15:01 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks, the patch LGTM. Please consider the comment I left in the first
patch about the commit subject tag.

Side note: I'm totally not a docker master and I guess links such as
this one[1] can be very useful for further maintenance. Feel free to
drop them into your next commit messages.

On 10.12.19, Alexander V. Tikhonov wrote:
> Set Dockerfile WORKDIR from the very start of Tarantool sources
> builds to make the Dockerfile code more readable and removed all
> duplicating calls to Tarantool sources directory changes.
> ---
>  Dockerfile.staticbuild | 24 ++++++++++--------------
>  1 file changed, 10 insertions(+), 14 deletions(-)
> 
> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> index 343627746..66342fa4e 100644
> --- a/Dockerfile.staticbuild
> +++ b/Dockerfile.staticbuild
> @@ -64,30 +64,26 @@ RUN set -x && \
>  
>  COPY . /tarantool
>  
> +WORKDIR /tarantool
> +
>  RUN set -x && \
> -    cd tarantool && \
>      git submodule init && \
>      git submodule update
>  
> -WORKDIR /tarantool
> -
>  RUN set -x && \
>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
>      find . -name 'CMakeCache.txt' -type f -delete
>  
>  RUN pip install -r /tarantool/test-run/requirements.txt
>  
> -RUN set -x \
> -    && (cd /tarantool; \
> -       cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
> -             -DENABLE_DIST:BOOL=ON \
> -             -DBUILD_STATIC=ON \
> -             -DOPENSSL_USE_STATIC_LIBS=ON \
> -             -DOPENSSL_ROOT_DIR=/usr/local \
> -             .) \
> -    && make -C /tarantool -j
> -
> -RUN cd /tarantool && make install
> +RUN set -x && \
> +    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
> +         -DENABLE_DIST:BOOL=ON \
> +         -DBUILD_STATIC=ON \
> +         -DOPENSSL_USE_STATIC_LIBS=ON \
> +         -DOPENSSL_ROOT_DIR=/usr/local \
> +         . && \
> +    make -j && make install
>  
>  ARG RUN_TESTS
>  RUN if [ -n "${RUN_TESTS}" ]; then \
> -- 
> 2.17.1
> 

[1]: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#workdir

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup Alexander V. Tikhonov
@ 2019-12-18 15:34   ` Igor Munkin
  2019-12-19  9:28     ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 15:34 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks for the patch! I left two comments below, please consider them.

On 10.12.19, Alexander V. Tikhonov wrote:
> Added 'build' directory removement to avoid of old configuration
> at build/curl which is used for curl building.

The commit message looks a bit complex. I rewrote it a little, as the
following:
| Added the command for 'build' directory cleanup. It purges all
| artefacts produced for curl build, including the old configuration in
| build/curl.
Feel free to adjust the commit message in your own way.

> ---
>  Dockerfile.staticbuild | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> index 66342fa4e..0424179a2 100644
> --- a/Dockerfile.staticbuild
> +++ b/Dockerfile.staticbuild
> @@ -72,7 +72,8 @@ RUN set -x && \
>  
>  RUN set -x && \
>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
> -    find . -name 'CMakeCache.txt' -type f -delete
> +    find . -name 'CMakeCache.txt' -type f -delete && \

Please drop a comment about the build directory source, since it's not
created (or even mentioned) within Docker file.

> +    rm -rf build
>  
>  RUN pip install -r /tarantool/test-run/requirements.txt
>  
> -- 
> 2.17.1
> 

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net Alexander V. Tikhonov
@ 2019-12-18 15:55   ` Igor Munkin
  2019-12-19  9:34     ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 15:55 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks for the patch! I see there was an issue with upstream, therefore
you moved the link to github release. However I still don't get your
motivation for replacing wget with curl (and as I see in the v1 review
neither does Sasha Tu.). Could you please provide a bit more extended
rationale for such substitution?

On 10.12.19, Alexander V. Tikhonov wrote:
> Found that wget may fail on downloading the file from flaky
> available servers with 500 HTTP error, like it was seen on
> icu4c sources downloading, please check the issue:
> https://sourceforge.net/p/forge/site-support/20071/
> 
> Found that curl successfully downloads needed files even in
> such situations. Decided to use curl instead of wget tool
> to avoid of such errors feather.
> 
> Also found that sourceforge site too often has issues and
> responds with 500 HTTP error. Decided to use the link from
> github instead of sourceforge to download the icu4c sources,
> as suggested on icu4c web site.
> ---
>  Dockerfile.staticbuild | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> index 0424179a2..49895a4de 100644
> --- a/Dockerfile.staticbuild
> +++ b/Dockerfile.staticbuild
> @@ -48,7 +48,7 @@ RUN set -x && \
>  
>  RUN set -x && \
>      cd / && \
> -    wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \
> +    curl -O -L https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz && \
>      tar -xvf icu4c-62_1-src.tgz && \
>      cd icu/source && \
>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
> -- 
> 2.17.1
> 

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
                   ` (4 preceding siblings ...)
  2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net Alexander V. Tikhonov
@ 2019-12-18 16:01 ` Igor Munkin
  2019-12-19  9:29   ` Alexander Tikhonov
  2020-04-02 10:35 ` Kirill Yukhin
  6 siblings, 1 reply; 25+ messages in thread
From: Igor Munkin @ 2019-12-18 16:01 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Sasha,

Thanks for the patchset, I left several comments per patch, however in
the first one I wrote a general one, but I think it's convenient to left
it here too.

I guess it's preferable to have a sole 'build:' tag for any patch
related to the build system. Feel free to ignore and proceed if
Sasha Tu. (he's already CCed as a second reviewer) has no remarks to the
subj.

On 10.12.19, Alexander V. Tikhonov wrote:
> Made the following changes at Dockerfile for static build:
>      - changed 'wget' tool use to 'curl -O -L' to avoid of '500' HTTP
>        error respond from download servers
>      - changed the link from sourceforge to github to download
>        the icu4c sources, as suggested on icu4c web site
>      - added 'build' directory removement to avoid of old configuration
>        at build/curl which is used for curl building
>      - removed LD_LIBRARY_PATH environment from curl build, due to the
>        path is empty in real and is not needed
>      - added '-j' option to make tool calls for all builds to speed it up
>        in 4 times
>      - set Dockerfile WORKDIR from the very start of Tarantool sources
>        builds to make the Dockerfile code more readable and removed all
>        duplicating calls to Tarantool sources directory changes.
> 
> Github: https://github.com/tarantool/tarantool/tree/avtikhon/dockerfile-static-build-full-ci
> Issue: -
> 
> Alexander V. Tikhonov (5):
>   static build: speedup build
>   static build: remove unneeded LD_LIBRARY_PATH
>   static build: cleanup Dockerfile
>   static build: added build subdirectory cleanup
>   static build: resolve issues with sourceforge.net
> 
>  Dockerfile.staticbuild | 37 +++++++++++++++++--------------------
>  1 file changed, 17 insertions(+), 20 deletions(-)
> 
> -- 
> 2.17.1
> 

-- 
Best regards,
IM

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

* Re: [Tarantool-patches] [PATCH v2 1/5] static build: speedup build
  2019-12-18 12:21   ` Igor Munkin
@ 2019-12-19  9:26     ` Alexander Tikhonov
  2020-04-01  9:56       ` Sergey Bronnikov
  0 siblings, 1 reply; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:26 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 1726 bytes --]

Igor, thanks for the review, I've made comment correction as you suggested.


>Среда, 18 декабря 2019, 15:23 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks, the changes LGTM except the one minor comment: I guess it's
>preferable to have a sole 'build:' tag for any patch related to the
>build system. Feel free to ignore and proceed if Sasha Tu. (he's already
>CCed as a second reviewer) has no remarks to the subj.
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Added '-j' option to make for tools buildings, it decreased build time in 4 times.
>> ---
>>  Dockerfile.staticbuild | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>> 
>> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> index d63c18bd1..8da8ae304 100644
>> --- a/Dockerfile.staticbuild
>> +++ b/Dockerfile.staticbuild
>> @@ -44,7 +44,7 @@ RUN set -x && \
>>      tar -xvf openssl-1.1.0h.tar.gz && \
>>      cd openssl-1.1.0h && \
>>      ./config --libdir=lib && \
>> -    make && make install
>> +    make -j && make install
>> 
>>  RUN set -x && \
>>      cd / && \
>> @@ -52,7 +52,7 @@ RUN set -x && \
>>      tar -xvf icu4c-62_1-src.tgz && \
>>      cd icu/source && \
>>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
>> -    make && make install
>> +    make -j && make install
>> 
>>  RUN set -x && \
>>      cd / && \
>> @@ -60,7 +60,7 @@ RUN set -x && \
>>      tar -xvf libunwind-1.3-rc1.tar.gz && \
>>      cd libunwind-1.3-rc1 && \
>>      ./configure --enable-static --enable-shared && \
>> -    make && make install
>> +    make -j && make install
>> 
>>  COPY . /tarantool
>> 
>> -- 
>> 2.17.1
>> 
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 2596 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH
  2019-12-18 12:49   ` Igor Munkin
@ 2019-12-19  9:27     ` Alexander Tikhonov
  2020-04-01  9:57       ` Sergey Bronnikov
  0 siblings, 1 reply; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:27 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 1416 bytes --]

Igor, thanks for the review, I've added more information in the comment message about the change.


>Среда, 18 декабря 2019, 15:51 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks for the patch! This environment variable has been added within
>cb1c72d[1] and now you claim that it's excess. Could you please provide
>a bit more extended rationale for the changes you've made?
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Removed LD_LIBRARY_PATH environment from curl build, due to the
>> path is empty in real and is not needed.
>> ---
>>  Dockerfile.staticbuild | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> index 8da8ae304..343627746 100644
>> --- a/Dockerfile.staticbuild
>> +++ b/Dockerfile.staticbuild
>> @@ -56,7 +56,7 @@ RUN set -x && \
>> 
>>  RUN set -x && \
>>      cd / && \
>> -    LD_LIBRARY_PATH=/usr/local/lib64 curl -O -L  http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
>> +    curl -O -L  http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
>>      tar -xvf libunwind-1.3-rc1.tar.gz && \
>>      cd libunwind-1.3-rc1 && \
>>      ./configure --enable-static --enable-shared && \
>> -- 
>> 2.17.1
>> 
>
>[1]:  https://github.com/tarantool/tarantool/commit/cb1c72d
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 2373 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile
  2019-12-18 15:01   ` Igor Munkin
@ 2019-12-19  9:28     ` Alexander Tikhonov
  2020-04-01  9:54       ` Sergey Bronnikov
  0 siblings, 1 reply; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:28 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 2360 bytes --]

Igor, thanks for the review, I've made comment correction as you suggested
and added the link into the comment.


>Среда, 18 декабря 2019, 18:03 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks, the patch LGTM. Please consider the comment I left in the first
>patch about the commit subject tag.
>
>Side note: I'm totally not a docker master and I guess links such as
>this one[1] can be very useful for further maintenance. Feel free to
>drop them into your next commit messages.
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Set Dockerfile WORKDIR from the very start of Tarantool sources
>> builds to make the Dockerfile code more readable and removed all
>> duplicating calls to Tarantool sources directory changes.
>> ---
>>  Dockerfile.staticbuild | 24 ++++++++++--------------
>>  1 file changed, 10 insertions(+), 14 deletions(-)
>> 
>> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> index 343627746..66342fa4e 100644
>> --- a/Dockerfile.staticbuild
>> +++ b/Dockerfile.staticbuild
>> @@ -64,30 +64,26 @@ RUN set -x && \
>> 
>>  COPY . /tarantool
>> 
>> +WORKDIR /tarantool
>> +
>>  RUN set -x && \
>> -    cd tarantool && \
>>      git submodule init && \
>>      git submodule update
>> 
>> -WORKDIR /tarantool
>> -
>>  RUN set -x && \
>>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
>>      find . -name 'CMakeCache.txt' -type f -delete
>> 
>>  RUN pip install -r /tarantool/test-run/requirements.txt
>> 
>> -RUN set -x \
>> -    && (cd /tarantool; \
>> -       cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
>> -             -DENABLE_DIST:BOOL=ON \
>> -             -DBUILD_STATIC=ON \
>> -             -DOPENSSL_USE_STATIC_LIBS=ON \
>> -             -DOPENSSL_ROOT_DIR=/usr/local \
>> -             .) \
>> -    && make -C /tarantool -j
>> -
>> -RUN cd /tarantool && make install
>> +RUN set -x && \
>> +    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
>> +         -DENABLE_DIST:BOOL=ON \
>> +         -DBUILD_STATIC=ON \
>> +         -DOPENSSL_USE_STATIC_LIBS=ON \
>> +         -DOPENSSL_ROOT_DIR=/usr/local \
>> +         . && \
>> +    make -j && make install
>> 
>>  ARG RUN_TESTS
>>  RUN if [ -n "${RUN_TESTS}" ]; then \
>> -- 
>> 2.17.1
>> 
>
>[1]:  https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#workdir
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 3375 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup
  2019-12-18 15:34   ` Igor Munkin
@ 2019-12-19  9:28     ` Alexander Tikhonov
  2020-04-01  9:54       ` Sergey Bronnikov
  0 siblings, 1 reply; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:28 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 1538 bytes --]

Igor, thanks for the review, I've changed comment as you suggested
and added the same comment into the Dockerfile.


>Среда, 18 декабря 2019, 18:37 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks for the patch! I left two comments below, please consider them.
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Added 'build' directory removement to avoid of old configuration
>> at build/curl which is used for curl building.
>
>The commit message looks a bit complex. I rewrote it a little, as the
>following:
>| Added the command for 'build' directory cleanup. It purges all
>| artefacts produced for curl build, including the old configuration in
>| build/curl.
>Feel free to adjust the commit message in your own way.
>
>> ---
>>  Dockerfile.staticbuild | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>> 
>> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> index 66342fa4e..0424179a2 100644
>> --- a/Dockerfile.staticbuild
>> +++ b/Dockerfile.staticbuild
>> @@ -72,7 +72,8 @@ RUN set -x && \
>> 
>>  RUN set -x && \
>>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
>> -    find . -name 'CMakeCache.txt' -type f -delete
>> +    find . -name 'CMakeCache.txt' -type f -delete && \
>
>Please drop a comment about the build directory source, since it's not
>created (or even mentioned) within Docker file.
>
>> +    rm -rf build
>> 
>>  RUN pip install -r /tarantool/test-run/requirements.txt
>> 
>> -- 
>> 2.17.1
>> 
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 2197 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile
  2019-12-18 16:01 ` [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Igor Munkin
@ 2019-12-19  9:29   ` Alexander Tikhonov
  0 siblings, 0 replies; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:29 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 2045 bytes --]

Igor, thanks for the review, I've made changes as you asked for.


>Среда, 18 декабря 2019, 19:03 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks for the patchset, I left several comments per patch, however in
>the first one I wrote a general one, but I think it's convenient to left
>it here too.
>
>I guess it's preferable to have a sole 'build:' tag for any patch
>related to the build system. Feel free to ignore and proceed if
>Sasha Tu. (he's already CCed as a second reviewer) has no remarks to the
>subj.
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Made the following changes at Dockerfile for static build:
>>      - changed 'wget' tool use to 'curl -O -L' to avoid of '500' HTTP
>>        error respond from download servers
>>      - changed the link from sourceforge to github to download
>>        the icu4c sources, as suggested on icu4c web site
>>      - added 'build' directory removement to avoid of old configuration
>>        at build/curl which is used for curl building
>>      - removed LD_LIBRARY_PATH environment from curl build, due to the
>>        path is empty in real and is not needed
>>      - added '-j' option to make tool calls for all builds to speed it up
>>        in 4 times
>>      - set Dockerfile WORKDIR from the very start of Tarantool sources
>>        builds to make the Dockerfile code more readable and removed all
>>        duplicating calls to Tarantool sources directory changes.
>> 
>> Github:  https://github.com/tarantool/tarantool/tree/avtikhon/dockerfile-static-build-full-ci
>> Issue: -
>> 
>> Alexander V. Tikhonov (5):
>>   static build: speedup build
>>   static build: remove unneeded LD_LIBRARY_PATH
>>   static build: cleanup Dockerfile
>>   static build: added build subdirectory cleanup
>>   static build: resolve issues with sourceforge.net
>> 
>>  Dockerfile.staticbuild | 37 +++++++++++++++++--------------------
>>  1 file changed, 17 insertions(+), 20 deletions(-)
>> 
>> -- 
>> 2.17.1
>> 
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 2813 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net
  2019-12-18 15:55   ` Igor Munkin
@ 2019-12-19  9:34     ` Alexander Tikhonov
  2020-04-01  9:53       ` Sergey Bronnikov
  0 siblings, 1 reply; 25+ messages in thread
From: Alexander Tikhonov @ 2019-12-19  9:34 UTC (permalink / raw)
  To: Igor Munkin; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 2403 bytes --]

Igor, thanks for the review, I've checked this issue manually and found that
wget returns with 500 HTTP respond and there is no any option for it that
could try to resend it automatically, in the same situation I saw that curl
worked without any fails at all. I've investigated the differences between
wget and curl and found only difference that could cause that curl worked
better in "happy eyeballs":

https://en.wikipedia.org/wiki/Happy_Eyeballs

also you can find the more differences described here:
http://ubuntu.fliplinux.com/curl-wget.html

>Среда, 18 декабря 2019, 18:57 +03:00 от Igor Munkin <imun@tarantool.org>:
>
>Sasha,
>
>Thanks for the patch! I see there was an issue with upstream, therefore
>you moved the link to github release. However I still don't get your
>motivation for replacing wget with curl (and as I see in the v1 review
>neither does Sasha Tu.). Could you please provide a bit more extended
>rationale for such substitution?
>
>On 10.12.19, Alexander V. Tikhonov wrote:
>> Found that wget may fail on downloading the file from flaky
>> available servers with 500 HTTP error, like it was seen on
>> icu4c sources downloading, please check the issue:
>>  https://sourceforge.net/p/forge/site-support/20071/
>> 
>> Found that curl successfully downloads needed files even in
>> such situations. Decided to use curl instead of wget tool
>> to avoid of such errors feather.
>> 
>> Also found that sourceforge site too often has issues and
>> responds with 500 HTTP error. Decided to use the link from
>> github instead of sourceforge to download the icu4c sources,
>> as suggested on icu4c web site.
>> ---
>>  Dockerfile.staticbuild | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> index 0424179a2..49895a4de 100644
>> --- a/Dockerfile.staticbuild
>> +++ b/Dockerfile.staticbuild
>> @@ -48,7 +48,7 @@ RUN set -x && \
>> 
>>  RUN set -x && \
>>      cd / && \
>> -    wget  http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \
>> +    curl -O -L  https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz && \
>>      tar -xvf icu4c-62_1-src.tgz && \
>>      cd icu/source && \
>>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
>> -- 
>> 2.17.1
>> 
>
>-- 
>Best regards,
>IM


-- 
Alexander Tikhonov

[-- Attachment #2: Type: text/html, Size: 3454 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net
  2019-12-19  9:34     ` Alexander Tikhonov
@ 2020-04-01  9:53       ` Sergey Bronnikov
  2020-04-01 10:18         ` Alexander Tikhonov
  0 siblings, 1 reply; 25+ messages in thread
From: Sergey Bronnikov @ 2020-04-01  9:53 UTC (permalink / raw)
  To: Alexander Tikhonov; +Cc: tarantool-patches

Hi,

Sasha, I propose to add option with retries '--tries=10' to wget.

LGTM

Sergey

On 12:34 Thu 19 Dec , Alexander Tikhonov wrote:
> Igor, thanks for the review, I've checked this issue manually and found that
> wget returns with 500 HTTP respond and there is no any option for it that
> could try to resend it automatically, in the same situation I saw that curl
> worked without any fails at all. I've investigated the differences between
> wget and curl and found only difference that could cause that curl worked
> better in "happy eyeballs":
> 
> https://en.wikipedia.org/wiki/Happy_Eyeballs
> 
> also you can find the more differences described here:
> http://ubuntu.fliplinux.com/curl-wget.html
> 
> >Среда, 18 декабря 2019, 18:57 +03:00 от Igor Munkin <imun@tarantool.org>:
> >
> >Sasha,
> >
> >Thanks for the patch! I see there was an issue with upstream, therefore
> >you moved the link to github release. However I still don't get your
> >motivation for replacing wget with curl (and as I see in the v1 review
> >neither does Sasha Tu.). Could you please provide a bit more extended
> >rationale for such substitution?
> >
> >On 10.12.19, Alexander V. Tikhonov wrote:
> >> Found that wget may fail on downloading the file from flaky
> >> available servers with 500 HTTP error, like it was seen on
> >> icu4c sources downloading, please check the issue:
> >>  https://sourceforge.net/p/forge/site-support/20071/
> >> 
> >> Found that curl successfully downloads needed files even in
> >> such situations. Decided to use curl instead of wget tool
> >> to avoid of such errors feather.
> >> 
> >> Also found that sourceforge site too often has issues and
> >> responds with 500 HTTP error. Decided to use the link from
> >> github instead of sourceforge to download the icu4c sources,
> >> as suggested on icu4c web site.
> >> ---
> >>  Dockerfile.staticbuild | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> >> index 0424179a2..49895a4de 100644
> >> --- a/Dockerfile.staticbuild
> >> +++ b/Dockerfile.staticbuild
> >> @@ -48,7 +48,7 @@ RUN set -x && \
> >> 
> >>  RUN set -x && \
> >>      cd / && \
> >> -    wget  http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \
> >> +    curl -O -L  https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz && \
> >>      tar -xvf icu4c-62_1-src.tgz && \
> >>      cd icu/source && \
> >>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
> >> -- 
> >> 2.17.1
> >> 
> >
> >-- 
> >Best regards,
> >IM
> 
> 
> -- 
> Alexander Tikhonov

-- 
sergeyb@

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

* Re: [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup
  2019-12-19  9:28     ` Alexander Tikhonov
@ 2020-04-01  9:54       ` Sergey Bronnikov
  0 siblings, 0 replies; 25+ messages in thread
From: Sergey Bronnikov @ 2020-04-01  9:54 UTC (permalink / raw)
  To: Alexander Tikhonov; +Cc: tarantool-patches

LGTM

On 12:28 Thu 19 Dec , Alexander Tikhonov wrote:
> Igor, thanks for the review, I've changed comment as you suggested
> and added the same comment into the Dockerfile.
> 
> 
> >Среда, 18 декабря 2019, 18:37 +03:00 от Igor Munkin <imun@tarantool.org>:
> >
> >Sasha,
> >
> >Thanks for the patch! I left two comments below, please consider them.
> >
> >On 10.12.19, Alexander V. Tikhonov wrote:
> >> Added 'build' directory removement to avoid of old configuration
> >> at build/curl which is used for curl building.
> >
> >The commit message looks a bit complex. I rewrote it a little, as the
> >following:
> >| Added the command for 'build' directory cleanup. It purges all
> >| artefacts produced for curl build, including the old configuration in
> >| build/curl.
> >Feel free to adjust the commit message in your own way.
> >
> >> ---
> >>  Dockerfile.staticbuild | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> >> index 66342fa4e..0424179a2 100644
> >> --- a/Dockerfile.staticbuild
> >> +++ b/Dockerfile.staticbuild
> >> @@ -72,7 +72,8 @@ RUN set -x && \
> >> 
> >>  RUN set -x && \
> >>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
> >> -    find . -name 'CMakeCache.txt' -type f -delete
> >> +    find . -name 'CMakeCache.txt' -type f -delete && \
> >
> >Please drop a comment about the build directory source, since it's not
> >created (or even mentioned) within Docker file.
> >
> >> +    rm -rf build
> >> 
> >>  RUN pip install -r /tarantool/test-run/requirements.txt
> >> 
> >> -- 
> >> 2.17.1
> >> 
> >
> >-- 
> >Best regards,
> >IM
> 
> 
> -- 
> Alexander Tikhonov

-- 
sergeyb@

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

* Re: [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile
  2019-12-19  9:28     ` Alexander Tikhonov
@ 2020-04-01  9:54       ` Sergey Bronnikov
  0 siblings, 0 replies; 25+ messages in thread
From: Sergey Bronnikov @ 2020-04-01  9:54 UTC (permalink / raw)
  To: Alexander Tikhonov; +Cc: tarantool-patches

LGTM

On 12:28 Thu 19 Dec , Alexander Tikhonov wrote:
> Igor, thanks for the review, I've made comment correction as you suggested
> and added the link into the comment.
> 
> 
> >Среда, 18 декабря 2019, 18:03 +03:00 от Igor Munkin <imun@tarantool.org>:
> >
> >Sasha,
> >
> >Thanks, the patch LGTM. Please consider the comment I left in the first
> >patch about the commit subject tag.
> >
> >Side note: I'm totally not a docker master and I guess links such as
> >this one[1] can be very useful for further maintenance. Feel free to
> >drop them into your next commit messages.
> >
> >On 10.12.19, Alexander V. Tikhonov wrote:
> >> Set Dockerfile WORKDIR from the very start of Tarantool sources
> >> builds to make the Dockerfile code more readable and removed all
> >> duplicating calls to Tarantool sources directory changes.
> >> ---
> >>  Dockerfile.staticbuild | 24 ++++++++++--------------
> >>  1 file changed, 10 insertions(+), 14 deletions(-)
> >> 
> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> >> index 343627746..66342fa4e 100644
> >> --- a/Dockerfile.staticbuild
> >> +++ b/Dockerfile.staticbuild
> >> @@ -64,30 +64,26 @@ RUN set -x && \
> >> 
> >>  COPY . /tarantool
> >> 
> >> +WORKDIR /tarantool
> >> +
> >>  RUN set -x && \
> >> -    cd tarantool && \
> >>      git submodule init && \
> >>      git submodule update
> >> 
> >> -WORKDIR /tarantool
> >> -
> >>  RUN set -x && \
> >>      find . -name 'CMakeFiles' -type d -exec rm -rf {} + && \
> >>      find . -name 'CMakeCache.txt' -type f -delete
> >> 
> >>  RUN pip install -r /tarantool/test-run/requirements.txt
> >> 
> >> -RUN set -x \
> >> -    && (cd /tarantool; \
> >> -       cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
> >> -             -DENABLE_DIST:BOOL=ON \
> >> -             -DBUILD_STATIC=ON \
> >> -             -DOPENSSL_USE_STATIC_LIBS=ON \
> >> -             -DOPENSSL_ROOT_DIR=/usr/local \
> >> -             .) \
> >> -    && make -C /tarantool -j
> >> -
> >> -RUN cd /tarantool && make install
> >> +RUN set -x && \
> >> +    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
> >> +         -DENABLE_DIST:BOOL=ON \
> >> +         -DBUILD_STATIC=ON \
> >> +         -DOPENSSL_USE_STATIC_LIBS=ON \
> >> +         -DOPENSSL_ROOT_DIR=/usr/local \
> >> +         . && \
> >> +    make -j && make install
> >> 
> >>  ARG RUN_TESTS
> >>  RUN if [ -n "${RUN_TESTS}" ]; then \
> >> -- 
> >> 2.17.1
> >> 
> >
> >[1]:  https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#workdir
> >
> >-- 
> >Best regards,
> >IM
> 
> 
> -- 
> Alexander Tikhonov

-- 
sergeyb@

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

* Re: [Tarantool-patches] [PATCH v2 1/5] static build: speedup build
  2019-12-19  9:26     ` Alexander Tikhonov
@ 2020-04-01  9:56       ` Sergey Bronnikov
  0 siblings, 0 replies; 25+ messages in thread
From: Sergey Bronnikov @ 2020-04-01  9:56 UTC (permalink / raw)
  To: Alexander Tikhonov; +Cc: tarantool-patches

LGTM

On 12:26 Thu 19 Dec , Alexander Tikhonov wrote:
> Igor, thanks for the review, I've made comment correction as you suggested.
> 
> 
> >Среда, 18 декабря 2019, 15:23 +03:00 от Igor Munkin <imun@tarantool.org>:
> >
> >Sasha,
> >
> >Thanks, the changes LGTM except the one minor comment: I guess it's
> >preferable to have a sole 'build:' tag for any patch related to the
> >build system. Feel free to ignore and proceed if Sasha Tu. (he's already
> >CCed as a second reviewer) has no remarks to the subj.
> >
> >On 10.12.19, Alexander V. Tikhonov wrote:
> >> Added '-j' option to make for tools buildings, it decreased build time in 4 times.
> >> ---
> >>  Dockerfile.staticbuild | 6 +++---
> >>  1 file changed, 3 insertions(+), 3 deletions(-)
> >> 
> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> >> index d63c18bd1..8da8ae304 100644
> >> --- a/Dockerfile.staticbuild
> >> +++ b/Dockerfile.staticbuild
> >> @@ -44,7 +44,7 @@ RUN set -x && \
> >>      tar -xvf openssl-1.1.0h.tar.gz && \
> >>      cd openssl-1.1.0h && \
> >>      ./config --libdir=lib && \
> >> -    make && make install
> >> +    make -j && make install
> >> 
> >>  RUN set -x && \
> >>      cd / && \
> >> @@ -52,7 +52,7 @@ RUN set -x && \
> >>      tar -xvf icu4c-62_1-src.tgz && \
> >>      cd icu/source && \
> >>      ./configure --with-data-packaging=static --enable-static --enable-shared && \
> >> -    make && make install
> >> +    make -j && make install
> >> 
> >>  RUN set -x && \
> >>      cd / && \
> >> @@ -60,7 +60,7 @@ RUN set -x && \
> >>      tar -xvf libunwind-1.3-rc1.tar.gz && \
> >>      cd libunwind-1.3-rc1 && \
> >>      ./configure --enable-static --enable-shared && \
> >> -    make && make install
> >> +    make -j && make install
> >> 
> >>  COPY . /tarantool
> >> 
> >> -- 
> >> 2.17.1
> >> 
> >
> >-- 
> >Best regards,
> >IM
> 
> 
> -- 
> Alexander Tikhonov

-- 
sergeyb@

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

* Re: [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH
  2019-12-19  9:27     ` Alexander Tikhonov
@ 2020-04-01  9:57       ` Sergey Bronnikov
  0 siblings, 0 replies; 25+ messages in thread
From: Sergey Bronnikov @ 2020-04-01  9:57 UTC (permalink / raw)
  To: Alexander Tikhonov; +Cc: tarantool-patches

Sasha,
I propose to add options to handle connection retries in curl.

LGTM

Sergey

On 12:27 Thu 19 Dec , Alexander Tikhonov wrote:
> Igor, thanks for the review, I've added more information in the comment message about the change.
> 
> 
> >Среда, 18 декабря 2019, 15:51 +03:00 от Igor Munkin <imun@tarantool.org>:
> >
> >Sasha,
> >
> >Thanks for the patch! This environment variable has been added within
> >cb1c72d[1] and now you claim that it's excess. Could you please provide
> >a bit more extended rationale for the changes you've made?
> >
> >On 10.12.19, Alexander V. Tikhonov wrote:
> >> Removed LD_LIBRARY_PATH environment from curl build, due to the
> >> path is empty in real and is not needed.
> >> ---
> >>  Dockerfile.staticbuild | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
> >> index 8da8ae304..343627746 100644
> >> --- a/Dockerfile.staticbuild
> >> +++ b/Dockerfile.staticbuild
> >> @@ -56,7 +56,7 @@ RUN set -x && \
> >> 
> >>  RUN set -x && \
> >>      cd / && \
> >> -    LD_LIBRARY_PATH=/usr/local/lib64 curl -O -L  http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
> >> +    curl -O -L  http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.3-rc1.tar.gz && \
> >>      tar -xvf libunwind-1.3-rc1.tar.gz && \
> >>      cd libunwind-1.3-rc1 && \
> >>      ./configure --enable-static --enable-shared && \
> >> -- 
> >> 2.17.1
> >> 
> >
> >[1]:  https://github.com/tarantool/tarantool/commit/cb1c72d
> >
> >-- 
> >Best regards,
> >IM
> 
> 
> -- 
> Alexander Tikhonov

-- 
sergeyb@

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

* Re: [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net
  2020-04-01  9:53       ` Sergey Bronnikov
@ 2020-04-01 10:18         ` Alexander Tikhonov
  0 siblings, 0 replies; 25+ messages in thread
From: Alexander Tikhonov @ 2020-04-01 10:18 UTC (permalink / raw)
  To: Sergey Bronnikov; +Cc: tarantool-patches

[-- Attachment #1: Type: text/plain, Size: 3166 bytes --]


Hi, Sergey, thanks a lot for the reviews, I’ve tried this option to fix this issue with wget, but it didn’t help. I’ve made the research and found some information about this issue. Also I’ve tried curl instead of wget and found that it completely fixes the issue, so for now this is the only fix available.

  
>Среда, 1 апреля 2020, 12:53 +03:00 от Sergey Bronnikov <sergeyb@tarantool.org>:
> 
>Hi,
>
>Sasha, I propose to add option with retries '--tries=10' to wget.
>
>LGTM
>
>Sergey
>
>On 12:34 Thu 19 Dec , Alexander Tikhonov wrote:
>> Igor, thanks for the review, I've checked this issue manually and found that
>> wget returns with 500 HTTP respond and there is no any option for it that
>> could try to resend it automatically, in the same situation I saw that curl
>> worked without any fails at all. I've investigated the differences between
>> wget and curl and found only difference that could cause that curl worked
>> better in "happy eyeballs":
>>
>>  https://en.wikipedia.org/wiki/Happy_Eyeballs
>>
>> also you can find the more differences described here:
>>  http://ubuntu.fliplinux.com/curl-wget.html
>>
>> >Среда, 18 декабря 2019, 18:57 +03:00 от Igor Munkin < imun@tarantool.org >:
>> >
>> >Sasha,
>> >
>> >Thanks for the patch! I see there was an issue with upstream, therefore
>> >you moved the link to github release. However I still don't get your
>> >motivation for replacing wget with curl (and as I see in the v1 review
>> >neither does Sasha Tu.). Could you please provide a bit more extended
>> >rationale for such substitution?
>> >
>> >On 10.12.19, Alexander V. Tikhonov wrote:
>> >> Found that wget may fail on downloading the file from flaky
>> >> available servers with 500 HTTP error, like it was seen on
>> >> icu4c sources downloading, please check the issue:
>> >>  https://sourceforge.net/p/forge/site-support/20071/
>> >>
>> >> Found that curl successfully downloads needed files even in
>> >> such situations. Decided to use curl instead of wget tool
>> >> to avoid of such errors feather.
>> >>
>> >> Also found that sourceforge site too often has issues and
>> >> responds with 500 HTTP error. Decided to use the link from
>> >> github instead of sourceforge to download the icu4c sources,
>> >> as suggested on icu4c web site.
>> >> ---
>> >> Dockerfile.staticbuild | 2 +-
>> >> 1 file changed, 1 insertion(+), 1 deletion(-)
>> >>
>> >> diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
>> >> index 0424179a2..49895a4de 100644
>> >> --- a/Dockerfile.staticbuild
>> >> +++ b/Dockerfile.staticbuild
>> >> @@ -48,7 +48,7 @@ RUN set -x && \
>> >>
>> >> RUN set -x && \
>> >> cd / && \
>> >> - wget  http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && \
>> >> + curl -O -L  https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz && \
>> >> tar -xvf icu4c-62_1-src.tgz && \
>> >> cd icu/source && \
>> >> ./configure --with-data-packaging=static --enable-static --enable-shared && \
>> >> --
>> >> 2.17.1
>> >>
>> >
>> >--
>> >Best regards,
>> >IM
>>
>>
>> --
>> Alexander Tikhonov
>--
>sergeyb@ 
 
 
--
Alexander Tikhonov
 

[-- Attachment #2: Type: text/html, Size: 4773 bytes --]

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

* Re: [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile
  2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
                   ` (5 preceding siblings ...)
  2019-12-18 16:01 ` [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Igor Munkin
@ 2020-04-02 10:35 ` Kirill Yukhin
  6 siblings, 0 replies; 25+ messages in thread
From: Kirill Yukhin @ 2020-04-02 10:35 UTC (permalink / raw)
  To: Alexander V. Tikhonov; +Cc: tarantool-patches

Hello,

On 10 дек 14:21, Alexander V. Tikhonov wrote:
> Made the following changes at Dockerfile for static build:
>      - changed 'wget' tool use to 'curl -O -L' to avoid of '500' HTTP
>        error respond from download servers
>      - changed the link from sourceforge to github to download
>        the icu4c sources, as suggested on icu4c web site
>      - added 'build' directory removement to avoid of old configuration
>        at build/curl which is used for curl building
>      - removed LD_LIBRARY_PATH environment from curl build, due to the
>        path is empty in real and is not needed
>      - added '-j' option to make tool calls for all builds to speed it up
>        in 4 times
>      - set Dockerfile WORKDIR from the very start of Tarantool sources
>        builds to make the Dockerfile code more readable and removed all
>        duplicating calls to Tarantool sources directory changes.
> 
> Github: https://github.com/tarantool/tarantool/tree/avtikhon/dockerfile-static-build-full-ci
> Issue: -

I've checked your patchset into 1.10, 2.2, 2.3 and master.

--
Regards, Kirill Yukhin

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

end of thread, other threads:[~2020-04-02 10:35 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-10 11:21 [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Alexander V. Tikhonov
2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 1/5] static build: speedup build Alexander V. Tikhonov
2019-12-18 12:21   ` Igor Munkin
2019-12-19  9:26     ` Alexander Tikhonov
2020-04-01  9:56       ` Sergey Bronnikov
2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 2/5] static build: remove unneeded LD_LIBRARY_PATH Alexander V. Tikhonov
2019-12-18 12:49   ` Igor Munkin
2019-12-19  9:27     ` Alexander Tikhonov
2020-04-01  9:57       ` Sergey Bronnikov
2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 3/5] static build: cleanup Dockerfile Alexander V. Tikhonov
2019-12-18 15:01   ` Igor Munkin
2019-12-19  9:28     ` Alexander Tikhonov
2020-04-01  9:54       ` Sergey Bronnikov
2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 4/5] static build: added build subdirectory cleanup Alexander V. Tikhonov
2019-12-18 15:34   ` Igor Munkin
2019-12-19  9:28     ` Alexander Tikhonov
2020-04-01  9:54       ` Sergey Bronnikov
2019-12-10 11:21 ` [Tarantool-patches] [PATCH v2 5/5] static build: resolve issues with sourceforge.net Alexander V. Tikhonov
2019-12-18 15:55   ` Igor Munkin
2019-12-19  9:34     ` Alexander Tikhonov
2020-04-01  9:53       ` Sergey Bronnikov
2020-04-01 10:18         ` Alexander Tikhonov
2019-12-18 16:01 ` [Tarantool-patches] [PATCH v2 0/5] Improved the static build based on Dockerfile Igor Munkin
2019-12-19  9:29   ` Alexander Tikhonov
2020-04-02 10:35 ` Kirill Yukhin

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