Skip to content

Commit cc0ce6d

Browse files
committed
Rootfs update
This is a big #minor change. It updates: - Python3.9 - NodeJS 16 - Java 16 - Kotlin v1.6.10 - gcc-10 - Rust 1.56.1 - Go 1.18 (beta) - dotnet 6.0
1 parent f13afab commit cc0ce6d

28 files changed

Lines changed: 691 additions & 187 deletions

Dockerfile.rootfs

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,46 +15,70 @@ RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-p
1515

1616
RUN apt-get update -y && \
1717
apt-get install --no-install-recommends -y \
18+
aspnetcore-runtime-6.0=6.0.1-1 \
19+
aspnetcore-targeting-pack-6.0=6.0.0-1 \
1820
clang-10 \
19-
dotnet-sdk-3.1=3.1.401-1 \
21+
dotnet-host=6.0.1-1 \
22+
dotnet-hostfxr-6.0=6.0.1-1 \
23+
dotnet-runtime-6.0=6.0.1-1 \
24+
dotnet-runtime-deps-6.0=6.0.1-1 \
25+
dotnet-sdk-6.0=6.0.101-1 \
26+
dotnet-targeting-pack-6.0=6.0.1-1 \
2027
fp-compiler-3.0.4 \
2128
fp-units-fcl-3.0.4 \
22-
g++ \
23-
gcc \
29+
g++-10 \
30+
gcc-10 \
2431
ghc \
2532
git \
2633
libc6-dev \
2734
libcap-dev \
2835
libcap2 \
36+
libz-dev \
2937
locales \
3038
lua5.3 \
3139
make \
32-
openjdk-14-jdk \
33-
openjdk-14-jdk-headless \
34-
openjdk-14-jre \
35-
openjdk-14-jre-headless \
40+
openjdk-16-jdk \
41+
openjdk-16-jdk-headless \
42+
openjdk-16-jre \
43+
openjdk-16-jre-headless \
3644
python2.7 \
3745
python3-apt \
3846
python3-pip \
39-
python3.8 \
47+
python3.9 \
4048
ruby2.7 \
41-
xz-utils && \
49+
unzip \
50+
xz-utils \
51+
zlib1g-dev \
52+
&& \
4253
apt-get autoremove -y && \
4354
apt-get clean
4455

45-
RUN mkdir -p /opt/nodejs && \
46-
wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz \
56+
RUN ls -l /usr/bin/ | grep -- '[^9] ->.*-9$' | sed -e 's@^.* \(.\+\) -> \(.\+\)-9$@ln -sf \2-10 /usr/bin/\1@' | bash && \
57+
mkdir -p /opt/nodejs && \
58+
wget https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x64.tar.xz \
4759
-O - | tar -xJ -C /opt/nodejs --strip-components=1 && \
60+
mkdir -p /opt/go && \
61+
wget https://go.dev/dl/go1.18beta2.linux-amd64.tar.gz \
62+
-O - | tar -xz -C /opt/go --strip-components=1 && \
63+
mkdir -p /tmp/kotlin && \
64+
wget https://github.com/JetBrains/kotlin/releases/download/v1.6.10/kotlin-compiler-1.6.10.zip \
65+
-O /tmp/kotlin/compiler.zip && \
66+
unzip -d /usr/lib/jvm /tmp/kotlin/compiler.zip && \
67+
rm -rf /tmp/kotlin && \
68+
wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init \
69+
-O /tmp/rustup-init && \
70+
chmod +x /tmp/rustup-init && \
71+
RUSTUP_HOME=/opt/rust/rustup CARGO_HOME=/opt/rust/cargo /tmp/rustup-init --no-modify-path --default-host=x86_64-unknown-linux-gnu --default-toolchain=stable --profile=default -y --quiet && \
72+
rm /tmp/rustup-init && \
4873
wget https://github.com/omegaup/karel.js/releases/download/v0.2.1/karel \
4974
-O /opt/nodejs/karel.wasm && \
5075
wget https://github.com/omegaup/karel.js/releases/download/v0.2.1/karel.js \
5176
-O /opt/nodejs/karel.js && \
5277
chmod +x /opt/nodejs/karel.wasm /opt/nodejs/karel.js && \
53-
python3 -c 'import random; random.seed("Ω🔒"); open("/opt/nodejs/urandom", "wb").write(bytes(random.randint(0, 255) for _ in range(4096)))' && \
5478
wget https://raw.githubusercontent.com/omegaup/libkarel/v0.0.99/libkarel.py \
5579
-O /usr/lib/python2.7/libkarel.py && \
56-
python3 -m pip install --target=/usr/lib/python3.8/dist-packages \
57-
libkarel==1.0.2 omegaup==1.1.1
80+
python3.9 -m pip install --target=/usr/lib/python3/dist-packages \
81+
libkarel==1.0.2 omegaup==1.5.0
5882

5983
RUN mkdir /src
6084
WORKDIR /src
@@ -71,19 +95,26 @@ RUN wget --quiet https://github.com/omegaup/libinteractive/releases/download/v2.
7195

7296
RUN ln -s /opt/nodejs/bin/node /usr/bin/node && \
7397
ln -s /opt/nodejs/lib/node_modules /usr/lib/node_modules && \
98+
ln -s /opt/rust/rustup /etc/rustup && \
7499
mkdir -p /var/lib/omegajail/root/dev/ && \
75100
cp /dev/null /var/lib/omegajail/root/dev/null
76101

77102
COPY --from=rootfs-build \
78-
/var/lib/omegajail/root-openjdk/java-14-openjdk-amd64/lib/server/classes.jsa \
79-
/usr/lib/jvm/java-14-openjdk-amd64/lib/server/classes.jsa
103+
/var/lib/omegajail/root-java/java-16-openjdk-amd64/lib/server/classes.jsa \
104+
/usr/lib/jvm/java-16-openjdk-amd64/lib/server/classes.jsa
80105
COPY --from=rootfs-build \
81-
/var/lib/omegajail/root-openjdk/java.base.so \
106+
/var/lib/omegajail/root-java/java.base.so \
82107
/usr/lib/jvm/java.base.so
108+
COPY --from=rootfs-build \
109+
/var/lib/omegajail/root-java/kotlin-stdlib.jar.so \
110+
/usr/lib/jvm/kotlin-stdlib.jar.so
83111
COPY --from=rootfs-build \
84112
/var/lib/omegajail/root-dotnet/Main.runtimeconfig.json \
85113
/var/lib/omegajail/root-dotnet/Release.rsp \
86114
/usr/share/dotnet/
115+
COPY --from=rootfs-build \
116+
/var/lib/omegajail/root-compilers/rust-toolchain.toml \
117+
/rust-toolchain.toml
87118

88119
COPY --from=omegaup/omegajail-builder-distrib /var/lib/omegajail/ /var/lib/omegajail
89120
RUN mv /var/lib/omegajail/bin/omegajail /var/lib/omegajail/bin/omegajail.wrapped

Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ POLICIES := policies/gcc.bpf policies/cpp.bpf policies/ghc.bpf policies/hs.bpf \
33
policies/javac.bpf policies/java.bpf policies/fpc.bpf policies/pas.bpf \
44
policies/pyc.bpf policies/py.bpf policies/ruby.bpf policies/lua.bpf \
55
policies/csc.bpf policies/cs.bpf policies/js.bpf policies/karel.bpf \
6-
policies/cpp-asan.bpf policies/clang.bpf
6+
policies/cpp-asan.bpf policies/clang.bpf \
7+
policies/go.bpf policies/go-build.bpf \
8+
policies/rustc.bpf policies/rs.bpf
79

810
MINIJAIL_SOURCE_FILES := $(addprefix minijail/,\
911
$(cd minijail && git ls-tree --name-only HEAD -- *.c *.c))
@@ -97,7 +99,8 @@ smoketest: rootfs
9799
smoketest-docker: .omegajail-builder-rootfs-runtime.stamp
98100
docker run \
99101
--rm \
100-
--mount "type=bind,source=${PWD}/smoketest,target=/src" \
102+
--mount "type=bind,source=$(PWD)/smoketest,target=/src" \
103+
--tmpfs "/home:mode=1777,uid=$(shell id -u),gid=$(shell id -g)" \
101104
--user "$(shell id -u):$(shell id -g)" \
102105
omegaup/omegajail-builder-rootfs-runtime \
103106
/usr/bin/python3 /src/test
@@ -122,7 +125,7 @@ gtest_main.o : googletest/googletest/src/gtest_main.cc
122125
.
123126
touch $@
124127

125-
rootfs: .omegajail-builder-rootfs-setup.stamp ${BINARIES} tools/omegajail-setup ${POLICIES}
128+
rootfs: .omegajail-builder-rootfs-runtime.stamp .omegajail-builder-rootfs-setup.stamp ${BINARIES} tools/omegajail-setup ${POLICIES}
126129
sudo rm -rf $@ ".$@.tmp"
127130
mkdir ".$@.tmp"
128131
$(MAKE) DESTDIR=".$@.tmp" install || (sudo rm -rf ".$@.tmp" ; exit 1)

0 commit comments

Comments
 (0)