@@ -26,7 +26,8 @@ RUN apt-get install -y wget gnupg lsb-release software-properties-common apt-tra
26
26
# Autodetect and fetch latest LLVM repos for the current distro, avoids LLVM warnings and other issues, might generate slower builds for now though, see:
27
27
# https://www.phoronix.com/scan.php?page=news_item&px=Rust-Hurt-On-LLVM-10
28
28
RUN bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
29
- #RUN apt-get install -y libssl-dev libcurl4-openssl-dev zlib1g-dev libbz2-dev liblzma-dev musl musl-dev musl-tools # htslib deps
29
+ #RUN apt-get install -y libssl-dev libcurl4-openssl-dev zlib1g-dev \
30
+ # libbz2-dev liblzma-dev musl musl-dev musl-tools # htslib deps
30
31
31
32
# Remove pre-installed musl, to avoid cross-musl-make interference
32
33
RUN apt-get remove -y musl
@@ -38,7 +39,8 @@ RUN wget https://github.com/richfelker/musl-cross-make/archive/v$MUSL_CROSS_MAKE
38
39
&& tar xvfz v$MUSL_CROSS_MAKE_VERSION.tar.gz
39
40
WORKDIR /root/musl-cross-make-$MUSL_CROSS_MAKE_VERSION
40
41
COPY config-musl-cross-make.mak config.mak
41
- RUN make -j40 install
42
+ RUN make -j40 install && cd .. && rm v$MUSL_CROSS_MAKE_VERSION.tar.gz
43
+ #&& rm -rf musl-cross-make-*
42
44
43
45
# Now we assume we have a properly configured musl-cross...
44
46
ENV PATH "/usr/local/musl/bin:$PATH"
@@ -52,24 +54,30 @@ ENV CPPFLAGS "-I/usr/local/musl/include -I/usr/local/include"
52
54
ENV LDFLAGS "-L/usr/local/musl/lib -L/usr/local/lib"
53
55
54
56
# .. and carry on with the htslib deps
55
- RUN wget https://www.zlib.net/zlib-$ZLIB_VERSION.tar.gz \
56
- && tar xvfz zlib-$ZLIB_VERSION.tar.gz \
57
- && cd zlib-$ZLIB_VERSION \
58
- && ./configure --static --prefix=/usr/local/musl \
59
- && make -j40 install
60
57
WORKDIR /root
58
+ RUN git clone --depth 1 https://github.com/ebiggers/libdeflate.git && \
59
+ cd libdeflate && make -j40 CFLAGS="-fPIC -O3" PREFIX="/usr/local/musl" install && \
60
+ cd .. && rm -rf libdeflate
61
+ RUN git clone https://github.com/cloudflare/zlib cloudflare-zlib && \
62
+ cd cloudflare-zlib && ./configure --static --prefix=/usr/local/musl && \
63
+ make install && cd .. && rm -rf cloudflare-zlib
64
+ #RUN wget https://www.zlib.net/zlib-$ZLIB_VERSION.tar.gz \
65
+ # && tar xvfz zlib-$ZLIB_VERSION.tar.gz \
66
+ # && cd zlib-$ZLIB_VERSION \
67
+ # && ./configure --static --prefix=/usr/local/musl \
68
+ # && make -j40 install
61
69
RUN git clone git://sourceware.org/git/bzip2 \
62
70
&& cd bzip2 \
63
- # && make -j40 CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS=$CFLAGS bzip2 \
71
+ && make -j40 CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS=$CFLAGS bzip2 \
64
72
&& make PREFIX=/usr/local/musl -j40 bzip2 \
65
- && make -j40 install
66
- WORKDIR /root
73
+ && make -j40 install && cd .. && rm -rf bzip2
67
74
RUN wget https://tukaani.org/xz/xz-$LZMA_VERSION.tar.bz2 \
68
75
&& tar xvfj xz-$LZMA_VERSION.tar.bz2 \
69
76
&& cd xz-$LZMA_VERSION \
70
- && ./configure --prefix=/usr/local/musl --enable-static --disable-shared --host x86_64-unknown-linux-musl \
71
- && make -j40 install
72
- WORKDIR /root
77
+ && ./configure --prefix=/usr/local/musl \
78
+ --enable-static --disable-shared \
79
+ --host x86_64-unknown-linux-musl \
80
+ && make -j40 install && cd .. && rm -rf xz-$LZMA_VERSION xz-$LZMA_VERSION.tar.bz2
73
81
74
82
# A few gems from: https://wiki.openssl.org/index.php/Compilation_and_Installation
75
83
# "OpenSSL has been around a long time, and it carries around a lot of cruft"
@@ -91,20 +99,20 @@ RUN wget https://github.com/openssl/openssl/archive/OpenSSL_$OPENSSL_VERSION.tar
91
99
&& make AR=x86_64-linux-musl-ar \
92
100
CC=x86_64-linux-musl-cc \
93
101
-j40 \
94
- && make RANLIB=x86_64-linux-musl-ranlib -j40 install
102
+ && make RANLIB=x86_64-linux-musl-ranlib -j40 install && cd .. \
103
+ && rm -rf OpenSSL_$OPENSSL_VERSION.tar.gz openssl-OpenSSL_$OPENSSL_VERSION
95
104
96
- WORKDIR /root
97
105
RUN wget https://curl.haxx.se/download/curl-$CURL_VERSION.tar.gz \
98
106
&& tar xvfz curl-$CURL_VERSION.tar.gz && cd curl-$CURL_VERSION \
99
107
&& ./configure --prefix=/usr/local/musl --host x86_64-linux-musl \
100
108
--with-ssl=/usr/local/musl --with-zlib=/usr/local/musl --enable-static \
101
- --disable-dict --disable-file --disable- ftp --disable-gopher --disable-imap \
109
+ --disable-dict --disable-ftp --disable-gopher --disable-imap \
102
110
--disable-pop3 --disable-rtsp --disable-smb --disable-smtp --disable-telnet \
103
111
--disable-tftp --disable-ntlm --disable-ldap \
104
- && make -j40 install
112
+ && make -j40 install && cd .. \
113
+ && rm -rf curl-$CURL_VERSION.tar.gz curl-$CURL_VERSION
105
114
106
115
# To cater Rust's openssl-sys needs...
107
- #ENV OPENSSL_DIR /usr/local/openssl
108
116
ENV OPENSSL_DIR /usr/local/musl
109
117
110
118
# Hack to force ld stick to musl on the hts-sys/build.rs side, otherwise:
@@ -118,4 +126,4 @@ RUN rm /usr/bin/ld && ln -sf /usr/local/musl/bin/x86_64-linux-musl-ld /usr/bin/l
118
126
# && . $HOME/.cargo/env \
119
127
# && rustup target add x86_64-unknown-linux-musl
120
128
121
- CMD ["bash"]
129
+ CMD ["bash"]
0 commit comments