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]