This is an automated email from the ASF dual-hosted git repository.

dingyu pushed a commit to branch v1.1.1-testing
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-sgx-sdk.git


The following commit(s) were added to refs/heads/v1.1.1-testing by this push:
     new f381eb0  Refactor ubuntu 16.04 dockerfile
f381eb0 is described below

commit f381eb068dc525e43a5a8fcebf9fa672b71788ba
Author: Yu Ding <[email protected]>
AuthorDate: Fri Mar 20 20:20:30 2020 -0700

    Refactor ubuntu 16.04 dockerfile
---
 dockerfile/01_gcc_8.sh             | 208 ++++++++++++++++++++++++++
 dockerfile/02_binutils.sh          |  19 +++
 dockerfile/03_sdk.sh               |  13 ++
 dockerfile/04_psw.sh               |  19 +++
 dockerfile/05_rust.sh              |   8 +
 dockerfile/Dockerfile.1604.nightly | 299 ++-----------------------------------
 6 files changed, 279 insertions(+), 287 deletions(-)

diff --git a/dockerfile/01_gcc_8.sh b/dockerfile/01_gcc_8.sh
new file mode 100644
index 0000000..e742782
--- /dev/null
+++ b/dockerfile/01_gcc_8.sh
@@ -0,0 +1,208 @@
+set -ex;
+apt-get update && apt-get install -y --no-install-recommends \
+               ca-certificates \
+               curl \
+               netbase \
+               wget
+
+if ! command -v gpg > /dev/null; then \
+       apt-get install -y --no-install-recommends \
+               gnupg \
+               dirmngr
+fi
+
+apt-get install -y --no-install-recommends \
+               git \
+               mercurial \
+               openssh-client \
+               subversion \
+               \
+               procps
+
+apt-get install -y --no-install-recommends \
+               autoconf \
+               automake \
+               bzip2 \
+               dpkg-dev \
+               file \
+               g++ \
+               gcc \
+               imagemagick \
+               libbz2-dev \
+               libc6-dev \
+               libcurl4-openssl-dev \
+               libdb-dev \
+               libevent-dev \
+               libffi-dev \
+               libgdbm-dev \
+               libglib2.0-dev \
+               libgmp-dev \
+               libjpeg-dev \
+               libkrb5-dev \
+               liblzma-dev \
+               libmagickcore-dev \
+               libmagickwand-dev \
+               libmaxminddb-dev \
+               libncurses5-dev \
+               libncursesw5-dev \
+               libpng-dev \
+               libpq-dev \
+               libreadline-dev \
+               libsqlite3-dev \
+               libssl-dev \
+               libtool \
+               libwebp-dev \
+               libxml2-dev \
+               libxslt-dev \
+               libyaml-dev \
+               make \
+               patch \
+               unzip \
+               xz-utils \
+               zlib1g-dev \
+       ;
+
+# gcc
+if ! command -v gpg > /dev/null; then \
+       apt-get install -y --no-install-recommends \
+               gnupg \
+               dirmngr \
+       ; \
+       rm -rf /var/lib/apt/lists/*; \
+fi
+
+## https://gcc.gnu.org/mirrors.html
+#ENV GPG_KEYS \
+## 1024D/745C015A 1999-11-09 Gerald Pfeifer <[email protected]>
+#      B215C1633BCA0477615F1B35A5B3A004745C015A \
+## 1024D/B75C61B8 2003-04-10 Mark Mitchell <[email protected]>
+#      B3C42148A44E6983B3E4CC0793FA9B1AB75C61B8 \
+## 1024D/902C9419 2004-12-06 Gabriel Dos Reis <[email protected]>
+#      90AA470469D3965A87A5DCB494D03953902C9419 \
+## 1024D/F71EDF1C 2000-02-13 Joseph Samuel Myers <[email protected]>
+#      80F98B2E0DAB6C8281BDF541A7C8C3B2F71EDF1C \
+## 2048R/FC26A641 2005-09-13 Richard Guenther <[email protected]>
+#      7F74F97C103468EE5D750B583AB00996FC26A641 \
+## 1024D/C3C45C06 2004-04-21 Jakub Jelinek <[email protected]>
+#      33C235A34C46AA3FFB293709A328C3A2C3C45C06
+
+export GPG_KEYS="B215C1633BCA0477615F1B35A5B3A004745C015A
+                 B3C42148A44E6983B3E4CC0793FA9B1AB75C61B8
+                 90AA470469D3965A87A5DCB494D03953902C9419
+                 80F98B2E0DAB6C8281BDF541A7C8C3B2F71EDF1C
+                 7F74F97C103468EE5D750B583AB00996FC26A641
+                 33C235A34C46AA3FFB293709A328C3A2C3C45C06"
+for key in $GPG_KEYS; do \
+       gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
+done
+
+# https://gcc.gnu.org/mirrors.html
+export GCC_MIRRORS="
+               https://ftpmirror.gnu.org/gcc
+               https://bigsearcher.com/mirrors/gcc/releases
+               https://mirrors-usa.go-parts.com/gcc/releases
+               https://mirrors.concertpass.com/gcc/releases
+               http://www.netgull.com/gcc/releases";
+
+# Last Modified: 2020-03-04
+export GCC_VERSION=8.4.0
+# Docker EOL: 2021-09-04
+
+savedAptMark="$(apt-mark showmanual)"; \
+apt-get update; \
+apt-get install -y --no-install-recommends \
+       dpkg-dev \
+       flex \
+; \
+rm -r /var/lib/apt/lists/*; \
+\
+_fetch() { \
+       local fetch="$1"; shift; \
+       local file="$1"; shift; \
+       for mirror in $GCC_MIRRORS; do \
+               if curl -fL "$mirror/$fetch" -o "$file"; then \
+                       return 0; \
+               fi; \
+       done; \
+       echo >&2 "error: failed to download '$fetch' from several mirrors"; \
+       return 1; \
+}; \
+\
+_fetch "gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz.sig" 'gcc.tar.xz.sig' \
+       || _fetch "$GCC_VERSION/gcc-$GCC_VERSION.tar.xz.sig"; \
+_fetch "gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz" 'gcc.tar.xz' \
+       || _fetch "$GCC_VERSION/gcc-$GCC_VERSION.tar.xz" 'gcc.tar.xz'; \
+gpg --batch --verify gcc.tar.xz.sig gcc.tar.xz; \
+mkdir -p /usr/src/gcc; \
+tar -xf gcc.tar.xz -C /usr/src/gcc --strip-components=1; \
+rm gcc.tar.xz*; \
+\
+cd /usr/src/gcc; \
+\
+# "download_prerequisites" pulls down a bunch of tarballs and extracts them,
+# but then leaves the tarballs themselves lying around
+./contrib/download_prerequisites; \
+{ rm *.tar.* || true; }; \
+\
+# explicitly update autoconf config.guess and config.sub so they support more 
arches/libcs
+for f in config.guess config.sub; do \
+       wget -O "$f" 
"https://git.savannah.gnu.org/cgit/config.git/plain/$f?id=7d3d27baf8107b630586c962c057e22149653deb";;
 \
+# find any more (shallow) copies of the file we grabbed and update them too
+       find -mindepth 2 -name "$f" -exec cp -v "$f" '{}' ';'; \
+done; \
+\
+dir="$(mktemp -d)"; \
+cd "$dir"; \
+\
+extraConfigureArgs=''; \
+dpkgArch="$(dpkg --print-architecture)"; \
+case "$dpkgArch" in \
+# with-arch: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules2?revision=9450&view=markup#l491
+# with-float: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules.defs?revision=9487&view=markup#l416
+# with-mode: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules.defs?revision=9487&view=markup#l376
+       armel) \
+               extraConfigureArgs="$extraConfigureArgs --with-arch=armv4t 
--with-float=soft" \
+               ;; \
+       armhf) \
+               extraConfigureArgs="$extraConfigureArgs --with-arch=armv7-a 
--with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb" \
+               ;; \
+       \
+# with-arch-32: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules2?revision=9450&view=markup#l590
+       i386) \
+               osVersionID="$(set -e; . /etc/os-release; echo "$VERSION_ID")"; 
\
+               case "$osVersionID" in \
+                       8) extraConfigureArgs="$extraConfigureArgs 
--with-arch-32=i586" ;; \
+                       *) extraConfigureArgs="$extraConfigureArgs 
--with-arch-32=i686" ;; \
+               esac; \
+# TODO for some reason, libgo + i386 fails on 
https://github.com/gcc-mirror/gcc/blob/gcc-7_1_0-release/libgo/runtime/proc.c#L154
+# "error unknown case for SETCONTEXT_CLOBBERS_TLS"
+               ;; \
+esac; \
+\
+gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
+/usr/src/gcc/configure \
+       --build="$gnuArch" \
+       --disable-multilib \
+       --enable-languages=c,c++,fortran,go \
+       $extraConfigureArgs \
+; \
+make -j "$(nproc)"; \
+make install-strip; \
+\
+cd ..; \
+\
+rm -rf "$dir" /usr/src/gcc; \
+\
+apt-mark auto '.*' > /dev/null; \
+[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
+apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
+
+# gcc installs .so files in /usr/local/lib64...
+echo '/usr/local/lib64' > /etc/ld.so.conf.d/local-lib64.conf; \
+ldconfig -v
+
+# ensure that alternatives are pointing to the new compiler and that old one 
is no longer used
+dpkg-divert --divert /usr/bin/gcc.orig --rename /usr/bin/gcc; \
+dpkg-divert --divert /usr/bin/g++.orig --rename /usr/bin/g++; \
+dpkg-divert --divert /usr/bin/gfortran.orig --rename /usr/bin/gfortran; \
+update-alternatives --install /usr/bin/cc cc /usr/local/bin/gcc 999
diff --git a/dockerfile/02_binutils.sh b/dockerfile/02_binutils.sh
new file mode 100644
index 0000000..af8f56b
--- /dev/null
+++ b/dockerfile/02_binutils.sh
@@ -0,0 +1,19 @@
+#cd /root && \
+#wget 
https://download.01.org/intel-sgx/sgx-linux/2.9/as.ld.objdump.gold.r1.tar.gz && 
\
+#tar xzf as.ld.objdump.gold.r1.tar.gz && \
+#cp external/toolset/* /usr/bin/
+
+cd /root && \
+apt-get update && apt-get install -y bison texinfo flex && \
+git clone git://sourceware.org/git/binutils-gdb.git && \
+cd binutils-gdb && \
+git checkout fe26d3a34a223a86fddb59ed70a621a13940a088 && \
+mkdir build && \
+cd build && \
+../configure --prefix=/usr --enable-gold --enable-ld=default --enable-plugins 
--enable-shared --disable-werror --enable-64-bit-bfd --with-system-zlib && \
+make -j "$(nproc)" && \
+make install && \
+cd /root && \
+rm -rf binutils-gdb && \
+rm -rf /var/lib/apt/lists/* && \
+rm -rf /var/cache/apt/archives/*
diff --git a/dockerfile/03_sdk.sh b/dockerfile/03_sdk.sh
new file mode 100644
index 0000000..6dd4bdc
--- /dev/null
+++ b/dockerfile/03_sdk.sh
@@ -0,0 +1,13 @@
+apt-get update && apt-get install -y cmake ocaml && \
+cd /root && \
+git clone --recursive https://github.com/intel/linux-sgx && \
+cd linux-sgx && \
+git checkout sgx_2.9 && \
+./download_prebuilt.sh && \
+make -j "$(nproc)" sdk_install_pkg && \
+echo -e 'no\n/opt' | ./linux/installer/bin/sgx_linux_x64_sdk_2.9.100.2.bin && \
+echo 'source /opt/sgxsdk/environment' >> /root/.bashrc && \
+cd /root && \
+rm -rf /root/linux-sgx && \
+rm -rf /var/lib/apt/lists/* && \
+rm -rf /var/cache/apt/archives/*
diff --git a/dockerfile/04_psw.sh b/dockerfile/04_psw.sh
new file mode 100644
index 0000000..5782e4b
--- /dev/null
+++ b/dockerfile/04_psw.sh
@@ -0,0 +1,19 @@
+apt-get update && apt-get install -y dkms gnupg2 apt-transport-https 
software-properties-common && \
+    curl -fsSL  
https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key 
add - && \
+    add-apt-repository "deb https://download.01.org/intel-sgx/sgx_repo/ubuntu 
$CODENAME main" && \
+    apt-get update && \
+    apt-get install -y \
+        libsgx-aesm-launch-plugin=$VERSION \
+        libsgx-enclave-common=$VERSION \
+        libsgx-enclave-common-dev=$VERSION \
+        libsgx-epid=$VERSION \
+        libsgx-epid-dev=$VERSION \
+        libsgx-launch=$VERSION \
+        libsgx-launch-dev=$VERSION \
+        libsgx-quote-ex=$VERSION \
+        libsgx-quote-ex-dev=$VERSION \
+        libsgx-uae-service=$VERSION \
+        libsgx-urts=$VERSION && \
+    mkdir /var/run/aesmd && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -rf /var/cache/apt/archives/*
diff --git a/dockerfile/05_rust.sh b/dockerfile/05_rust.sh
new file mode 100644
index 0000000..2467b9d
--- /dev/null
+++ b/dockerfile/05_rust.sh
@@ -0,0 +1,8 @@
+cd /root && \
+curl 
'https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init' 
--output /root/rustup-init && \
+chmod +x /root/rustup-init && \
+echo '1' | /root/rustup-init --default-toolchain ${rust_toolchain} && \
+echo 'source /root/.cargo/env' >> /root/.bashrc && \
+/root/.cargo/bin/rustup component add rust-src rls rust-analysis clippy 
rustfmt && \
+/root/.cargo/bin/cargo install xargo && \
+rm /root/rustup-init && rm -rf /root/.cargo/registry && rm -rf /root/.cargo/git
diff --git a/dockerfile/Dockerfile.1604.nightly 
b/dockerfile/Dockerfile.1604.nightly
index ec50888..ee2cb8b 100644
--- a/dockerfile/Dockerfile.1604.nightly
+++ b/dockerfile/Dockerfile.1604.nightly
@@ -1,301 +1,26 @@
 FROM ubuntu:16.04
 
-# First, Debian buster-curl
-RUN apt-get update && apt-get install -y --no-install-recommends \
-               ca-certificates \
-               curl \
-               netbase \
-               wget \
-       && rm -rf /var/lib/apt/lists/*
+ADD 01_gcc_8.sh /root
+RUN bash /root/01_gcc_8.sh
 
-RUN set -ex; \
-       if ! command -v gpg > /dev/null; then \
-               apt-get update; \
-               apt-get install -y --no-install-recommends \
-                       gnupg \
-                       dirmngr \
-               ; \
-               rm -rf /var/lib/apt/lists/*; \
-       fi
+ADD 02_binutils.sh /root
+RUN bash /root/02_binutils.sh
 
-# Second, Debian buster-scm
-RUN apt-get update && apt-get install -y --no-install-recommends \
-               git \
-               mercurial \
-               openssh-client \
-               subversion \
-               \
-               procps \
-       && rm -rf /var/lib/apt/lists/*
-
-# Third, Debian Buster
-
-RUN set -ex; \
-       apt-get update; \
-       apt-get install -y --no-install-recommends \
-               autoconf \
-               automake \
-               bzip2 \
-               dpkg-dev \
-               file \
-               g++ \
-               gcc \
-               imagemagick \
-               libbz2-dev \
-               libc6-dev \
-               libcurl4-openssl-dev \
-               libdb-dev \
-               libevent-dev \
-               libffi-dev \
-               libgdbm-dev \
-               libglib2.0-dev \
-               libgmp-dev \
-               libjpeg-dev \
-               libkrb5-dev \
-               liblzma-dev \
-               libmagickcore-dev \
-               libmagickwand-dev \
-               libmaxminddb-dev \
-               libncurses5-dev \
-               libncursesw5-dev \
-               libpng-dev \
-               libpq-dev \
-               libreadline-dev \
-               libsqlite3-dev \
-               libssl-dev \
-               libtool \
-               libwebp-dev \
-               libxml2-dev \
-               libxslt-dev \
-               libyaml-dev \
-               make \
-               patch \
-               unzip \
-               xz-utils \
-               zlib1g-dev \
-               \
-# https://lists.debian.org/debian-devel-announce/2016/09/msg00000.html
-               $( \
-# if we use just "apt-cache show" here, it returns zero because "Can't select 
versions from package 'libmysqlclient-dev' as it is purely virtual", hence the 
pipe to grep
-                       if apt-cache show 'default-libmysqlclient-dev' 
2>/dev/null | grep -q '^Version:'; then \
-                               echo 'default-libmysqlclient-dev'; \
-                       else \
-                               echo 'libmysqlclient-dev'; \
-                       fi \
-               ) \
-       ; \
-       rm -rf /var/lib/apt/lists/*
-
-# gcc
-RUN set -ex; \
-       if ! command -v gpg > /dev/null; then \
-               apt-get update; \
-               apt-get install -y --no-install-recommends \
-                       gnupg \
-                       dirmngr \
-               ; \
-               rm -rf /var/lib/apt/lists/*; \
-       fi
-
-# https://gcc.gnu.org/mirrors.html
-ENV GPG_KEYS \
-# 1024D/745C015A 1999-11-09 Gerald Pfeifer <[email protected]>
-       B215C1633BCA0477615F1B35A5B3A004745C015A \
-# 1024D/B75C61B8 2003-04-10 Mark Mitchell <[email protected]>
-       B3C42148A44E6983B3E4CC0793FA9B1AB75C61B8 \
-# 1024D/902C9419 2004-12-06 Gabriel Dos Reis <[email protected]>
-       90AA470469D3965A87A5DCB494D03953902C9419 \
-# 1024D/F71EDF1C 2000-02-13 Joseph Samuel Myers <[email protected]>
-       80F98B2E0DAB6C8281BDF541A7C8C3B2F71EDF1C \
-# 2048R/FC26A641 2005-09-13 Richard Guenther <[email protected]>
-       7F74F97C103468EE5D750B583AB00996FC26A641 \
-# 1024D/C3C45C06 2004-04-21 Jakub Jelinek <[email protected]>
-       33C235A34C46AA3FFB293709A328C3A2C3C45C06
-RUN set -ex; \
-       for key in $GPG_KEYS; do \
-               gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 
"$key"; \
-       done
-
-# https://gcc.gnu.org/mirrors.html
-ENV GCC_MIRRORS \
-               https://ftpmirror.gnu.org/gcc \
-               https://bigsearcher.com/mirrors/gcc/releases \
-               https://mirrors-usa.go-parts.com/gcc/releases \
-               https://mirrors.concertpass.com/gcc/releases \
-               http://www.netgull.com/gcc/releases
-
-# Last Modified: 2020-03-04
-ENV GCC_VERSION 8.4.0
-# Docker EOL: 2021-09-04
-
-RUN set -ex; \
-       \
-       savedAptMark="$(apt-mark showmanual)"; \
-       apt-get update; \
-       apt-get install -y --no-install-recommends \
-               dpkg-dev \
-               flex \
-       ; \
-       rm -r /var/lib/apt/lists/*; \
-       \
-       _fetch() { \
-               local fetch="$1"; shift; \
-               local file="$1"; shift; \
-               for mirror in $GCC_MIRRORS; do \
-                       if curl -fL "$mirror/$fetch" -o "$file"; then \
-                               return 0; \
-                       fi; \
-               done; \
-               echo >&2 "error: failed to download '$fetch' from several 
mirrors"; \
-               return 1; \
-       }; \
-       \
-       _fetch "gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz.sig" 'gcc.tar.xz.sig' \
-# 6.5.0 (https://mirrors.kernel.org/gnu/gcc/6.5.0/), no gcc- prefix
-               || _fetch "$GCC_VERSION/gcc-$GCC_VERSION.tar.xz.sig"; \
-       _fetch "gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz" 'gcc.tar.xz' \
-               || _fetch "$GCC_VERSION/gcc-$GCC_VERSION.tar.xz" 'gcc.tar.xz'; \
-       gpg --batch --verify gcc.tar.xz.sig gcc.tar.xz; \
-       mkdir -p /usr/src/gcc; \
-       tar -xf gcc.tar.xz -C /usr/src/gcc --strip-components=1; \
-       rm gcc.tar.xz*; \
-       \
-       cd /usr/src/gcc; \
-       \
-# "download_prerequisites" pulls down a bunch of tarballs and extracts them,
-# but then leaves the tarballs themselves lying around
-       ./contrib/download_prerequisites; \
-       { rm *.tar.* || true; }; \
-       \
-# explicitly update autoconf config.guess and config.sub so they support more 
arches/libcs
-       for f in config.guess config.sub; do \
-               wget -O "$f" 
"https://git.savannah.gnu.org/cgit/config.git/plain/$f?id=7d3d27baf8107b630586c962c057e22149653deb";;
 \
-# find any more (shallow) copies of the file we grabbed and update them too
-               find -mindepth 2 -name "$f" -exec cp -v "$f" '{}' ';'; \
-       done; \
-       \
-       dir="$(mktemp -d)"; \
-       cd "$dir"; \
-       \
-       extraConfigureArgs=''; \
-       dpkgArch="$(dpkg --print-architecture)"; \
-       case "$dpkgArch" in \
-# with-arch: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules2?revision=9450&view=markup#l491
-# with-float: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules.defs?revision=9487&view=markup#l416
-# with-mode: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules.defs?revision=9487&view=markup#l376
-               armel) \
-                       extraConfigureArgs="$extraConfigureArgs 
--with-arch=armv4t --with-float=soft" \
-                       ;; \
-               armhf) \
-                       extraConfigureArgs="$extraConfigureArgs 
--with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb" \
-                       ;; \
-               \
-# with-arch-32: 
https://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules2?revision=9450&view=markup#l590
-               i386) \
-                       osVersionID="$(set -e; . /etc/os-release; echo 
"$VERSION_ID")"; \
-                       case "$osVersionID" in \
-                               8) extraConfigureArgs="$extraConfigureArgs 
--with-arch-32=i586" ;; \
-                               *) extraConfigureArgs="$extraConfigureArgs 
--with-arch-32=i686" ;; \
-                       esac; \
-# TODO for some reason, libgo + i386 fails on 
https://github.com/gcc-mirror/gcc/blob/gcc-7_1_0-release/libgo/runtime/proc.c#L154
-# "error unknown case for SETCONTEXT_CLOBBERS_TLS"
-                       ;; \
-       esac; \
-       \
-       gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
-       /usr/src/gcc/configure \
-               --build="$gnuArch" \
-               --disable-multilib \
-               --enable-languages=c,c++,fortran,go \
-               $extraConfigureArgs \
-       ; \
-       make -j "$(nproc)"; \
-       make install-strip; \
-       \
-       cd ..; \
-       \
-       rm -rf "$dir" /usr/src/gcc; \
-       \
-       apt-mark auto '.*' > /dev/null; \
-       [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
-       apt-get purge -y --auto-remove -o 
APT::AutoRemove::RecommendsImportant=false
-
-# gcc installs .so files in /usr/local/lib64...
-RUN set -ex; \
-       echo '/usr/local/lib64' > /etc/ld.so.conf.d/local-lib64.conf; \
-       ldconfig -v
-
-# ensure that alternatives are pointing to the new compiler and that old one 
is no longer used
-RUN set -ex; \
-       dpkg-divert --divert /usr/bin/gcc.orig --rename /usr/bin/gcc; \
-       dpkg-divert --divert /usr/bin/g++.orig --rename /usr/bin/g++; \
-       dpkg-divert --divert /usr/bin/gfortran.orig --rename /usr/bin/gfortran; 
\
-       update-alternatives --install /usr/bin/cc cc /usr/local/bin/gcc 999
-
-# Fourth, gnu binutils
-
-RUN cd /root && \
-    apt-get update && apt-get install -y bison texinfo flex && \
-    git clone git://sourceware.org/git/binutils-gdb.git && \
-    cd binutils-gdb && \
-    git checkout fe26d3a34a223a86fddb59ed70a621a13940a088 && \
-    mkdir build && \
-    cd build && \
-    ../configure --prefix=/usr --enable-gold --enable-ld=default 
--enable-plugins --enable-shared --disable-werror --enable-64-bit-bfd 
--with-system-zlib && \
-    make -j "$(nproc)" && \
-    make install && \
-    cd /root && \
-    rm -rf binutils-gdb && \
-       rm -rf /var/lib/apt/lists/* && \
-    rm -rf /var/cache/apt/archives/*
-
-# Fifth, Intel SDK with LVI mitigation
-
-RUN apt-get update && apt-get install -y cmake ocaml && \
-    git clone --recursive https://github.com/intel/linux-sgx && \
-    cd linux-sgx && \
-    git checkout sgx_2.9 && \
-    ./download_prebuilt.sh && \
-    make -j "$(nproc)" sdk_install_pkg && \
-    echo -e 'no\n/opt' | ./linux/installer/bin/sgx_linux_x64_sdk_2.9.100.2.bin 
&& \
-    echo 'source /opt/sgxsdk/environment' >> /root/.bashrc && \
-    cd /root && \
-    rm -rf /root/linux-sgx && \
-       rm -rf /var/lib/apt/lists/* && \
-    rm -rf /var/cache/apt/archives/*
+ADD 03_sdk.sh /root
+RUN bash /root/03_sdk.sh
     
 # Sixth, PSW
 
+ENV CODENAME        xenial
 ENV VERSION         2.9.100.2-xenial1
 
-RUN apt-get update && apt-get install -y dkms gnupg2 apt-transport-https 
software-properties-common && \
-    curl -fsSL  
https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key 
add - && \
-    add-apt-repository "deb https://download.01.org/intel-sgx/sgx_repo/ubuntu 
xenial main" && \
-    apt-get update && \
-    apt-get install -y \
-        libsgx-aesm-launch-plugin=$VERSION \
-        libsgx-enclave-common=$VERSION \
-        libsgx-enclave-common-dev=$VERSION \
-        libsgx-epid=$VERSION \
-        libsgx-epid-dev=$VERSION \
-        libsgx-launch=$VERSION \
-        libsgx-launch-dev=$VERSION \
-        libsgx-quote-ex=$VERSION \
-        libsgx-quote-ex-dev=$VERSION \
-        libsgx-uae-service=$VERSION \
-        libsgx-urts=$VERSION && \
-    mkdir /var/run/aesmd && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf /var/cache/apt/archives/*
+ADD 04_psw.sh /root
+RUN bash /root/04_psw.sh
 
 # Seventh, Rust
 
 ENV rust_toolchain  nightly-2020-03-12
+ADD 05_rust.sh /root
+RUN bash /root/05_rust.sh
 
-RUN curl 
'https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init' 
--output /root/rustup-init && \
-    chmod +x /root/rustup-init && \
-    echo '1' | /root/rustup-init --default-toolchain ${rust_toolchain} && \
-    echo 'source /root/.cargo/env' >> /root/.bashrc && \
-    /root/.cargo/bin/rustup component add rust-src rls rust-analysis clippy 
rustfmt && \
-    /root/.cargo/bin/cargo install xargo && \
-    rm /root/rustup-init && rm -rf /root/.cargo/registry && rm -rf 
/root/.cargo/git
+WORKDIR /root


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to