diff --git a/Dockerfile.template b/Dockerfile.template index ae2d4aa..ed93b0c 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -167,6 +167,15 @@ RUN mkdir out && \ {{/chrome}} strip out/curl-impersonate +# Verify that the resulting 'curl' has all the necessary features. +RUN ./out/curl-impersonate -V | grep -q zlib && \ + ./out/curl-impersonate -V | grep -q brotli && \ + ./out/curl-impersonate -V | grep -q nghttp2 && \ + ./out/curl-impersonate -V | grep -q -e NSS -e BoringSSL + +# Verify that the resulting 'curl' is really statically compiled +RUN ! (ldd ./out/curl-impersonate | grep -q -e libcurl -e nghttp2 -e brotli -e ssl -e crypto) + RUN rm -Rf /build/install # Re-compile libcurl dynamically @@ -202,6 +211,10 @@ RUN ver=$(readlink -f curl-7.81.0/lib/.libs/libcurl-impersonate-chrome.so | sed ln -s "libcurl-impersonate.so.$ver" "out/libcurl-impersonate.so" && \ strip "out/libcurl-impersonate.so.$ver" +# Verify that the resulting 'libcurl' is really statically compiled against its +# dependencies. +RUN ! (ldd ./out/curl-impersonate | grep -q -e nghttp2 -e brotli -e ssl -e crypto) + # Wrapper scripts {{#firefox}} COPY curl_ff* out/ diff --git a/chrome/Dockerfile b/chrome/Dockerfile index b55e918..760bf55 100644 --- a/chrome/Dockerfile +++ b/chrome/Dockerfile @@ -96,6 +96,15 @@ RUN mkdir out && \ ln -s curl-impersonate-chrome out/curl-impersonate && \ strip out/curl-impersonate +# Verify that the resulting 'curl' has all the necessary features. +RUN ./out/curl-impersonate -V | grep -q zlib && \ + ./out/curl-impersonate -V | grep -q brotli && \ + ./out/curl-impersonate -V | grep -q nghttp2 && \ + ./out/curl-impersonate -V | grep -q -e NSS -e BoringSSL + +# Verify that the resulting 'curl' is really statically compiled +RUN ! (ldd ./out/curl-impersonate | grep -q -e libcurl -e nghttp2 -e brotli -e ssl -e crypto) + RUN rm -Rf /build/install # Re-compile libcurl dynamically @@ -118,6 +127,10 @@ RUN ver=$(readlink -f curl-7.81.0/lib/.libs/libcurl-impersonate-chrome.so | sed ln -s "libcurl-impersonate.so.$ver" "out/libcurl-impersonate.so" && \ strip "out/libcurl-impersonate.so.$ver" +# Verify that the resulting 'libcurl' is really statically compiled against its +# dependencies. +RUN ! (ldd ./out/curl-impersonate | grep -q -e nghttp2 -e brotli -e ssl -e crypto) + # Wrapper scripts COPY curl_chrome* curl_edge* curl_safari* out/ RUN chmod +x out/curl_* diff --git a/chrome/Dockerfile.alpine b/chrome/Dockerfile.alpine index 7d439db..4f6e05e 100644 --- a/chrome/Dockerfile.alpine +++ b/chrome/Dockerfile.alpine @@ -93,6 +93,15 @@ RUN mkdir out && \ ln -s curl-impersonate-chrome out/curl-impersonate && \ strip out/curl-impersonate +# Verify that the resulting 'curl' has all the necessary features. +RUN ./out/curl-impersonate -V | grep -q zlib && \ + ./out/curl-impersonate -V | grep -q brotli && \ + ./out/curl-impersonate -V | grep -q nghttp2 && \ + ./out/curl-impersonate -V | grep -q -e NSS -e BoringSSL + +# Verify that the resulting 'curl' is really statically compiled +RUN ! (ldd ./out/curl-impersonate | grep -q -e libcurl -e nghttp2 -e brotli -e ssl -e crypto) + RUN rm -Rf /build/install # Re-compile libcurl dynamically @@ -115,6 +124,10 @@ RUN ver=$(readlink -f curl-7.81.0/lib/.libs/libcurl-impersonate-chrome.so | sed ln -s "libcurl-impersonate.so.$ver" "out/libcurl-impersonate.so" && \ strip "out/libcurl-impersonate.so.$ver" +# Verify that the resulting 'libcurl' is really statically compiled against its +# dependencies. +RUN ! (ldd ./out/curl-impersonate | grep -q -e nghttp2 -e brotli -e ssl -e crypto) + # Wrapper scripts COPY curl_chrome* curl_edge* curl_safari* out/ # Replace /bin/bash with /bin/ash diff --git a/firefox/Dockerfile b/firefox/Dockerfile index 9f35e39..ee426b2 100644 --- a/firefox/Dockerfile +++ b/firefox/Dockerfile @@ -91,6 +91,15 @@ RUN mkdir out && \ ln -s curl-impersonate-ff out/curl-impersonate && \ strip out/curl-impersonate +# Verify that the resulting 'curl' has all the necessary features. +RUN ./out/curl-impersonate -V | grep -q zlib && \ + ./out/curl-impersonate -V | grep -q brotli && \ + ./out/curl-impersonate -V | grep -q nghttp2 && \ + ./out/curl-impersonate -V | grep -q -e NSS -e BoringSSL + +# Verify that the resulting 'curl' is really statically compiled +RUN ! (ldd ./out/curl-impersonate | grep -q -e libcurl -e nghttp2 -e brotli -e ssl -e crypto) + RUN rm -Rf /build/install # Re-compile libcurl dynamically @@ -112,6 +121,10 @@ RUN ver=$(readlink -f curl-7.81.0/lib/.libs/libcurl-impersonate-ff.so | sed 's/. ln -s "libcurl-impersonate.so.$ver" "out/libcurl-impersonate.so" && \ strip "out/libcurl-impersonate.so.$ver" +# Verify that the resulting 'libcurl' is really statically compiled against its +# dependencies. +RUN ! (ldd ./out/curl-impersonate | grep -q -e nghttp2 -e brotli -e ssl -e crypto) + # Wrapper scripts COPY curl_ff* out/ RUN chmod +x out/curl_* diff --git a/firefox/Dockerfile.alpine b/firefox/Dockerfile.alpine index b2c7a4f..e856304 100644 --- a/firefox/Dockerfile.alpine +++ b/firefox/Dockerfile.alpine @@ -86,6 +86,15 @@ RUN mkdir out && \ ln -s curl-impersonate-ff out/curl-impersonate && \ strip out/curl-impersonate +# Verify that the resulting 'curl' has all the necessary features. +RUN ./out/curl-impersonate -V | grep -q zlib && \ + ./out/curl-impersonate -V | grep -q brotli && \ + ./out/curl-impersonate -V | grep -q nghttp2 && \ + ./out/curl-impersonate -V | grep -q -e NSS -e BoringSSL + +# Verify that the resulting 'curl' is really statically compiled +RUN ! (ldd ./out/curl-impersonate | grep -q -e libcurl -e nghttp2 -e brotli -e ssl -e crypto) + RUN rm -Rf /build/install # Re-compile libcurl dynamically @@ -107,6 +116,10 @@ RUN ver=$(readlink -f curl-7.81.0/lib/.libs/libcurl-impersonate-ff.so | sed 's/. ln -s "libcurl-impersonate.so.$ver" "out/libcurl-impersonate.so" && \ strip "out/libcurl-impersonate.so.$ver" +# Verify that the resulting 'libcurl' is really statically compiled against its +# dependencies. +RUN ! (ldd ./out/curl-impersonate | grep -q -e nghttp2 -e brotli -e ssl -e crypto) + # Wrapper scripts COPY curl_ff* out/ # Replace /bin/bash with /bin/ash