From 3efb00f2e81efd791379bef29cab6ca6a190f26f Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Tue, 8 Apr 2025 21:46:16 +1000 Subject: [PATCH 1/8] remove llvm/dt and doc.s/src for nightly rustc --- Dockerfile.kmir | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Dockerfile.kmir b/Dockerfile.kmir index f319c3906..8e7f50f3b 100644 --- a/Dockerfile.kmir +++ b/Dockerfile.kmir @@ -37,7 +37,11 @@ RUN echo "export K_VERSION=${K_VERSION}" >> /home/kmir/.bash_profile && \ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none # install kmir python parts and K definition/llvm library -RUN cd /kmir && pip install . && kdist build mir-semantics.\* +RUN cd /kmir && \ + pip install . && \ + kdist build mir-semantics.\* && \ + rm -rf $(kdist which mir-semantics.llvm)/dt +# NB cannot remove the `llvm-library` one # build stable-mir-json and install into home # NB this will modify the default rust toolchain! @@ -47,8 +51,10 @@ RUN cd /deps/stable-mir-json && \ cargo build --release && \ cargo run --bin cargo_stable_mir_json -- $PWD && \ ln -s /home/kmir/.stable-mir-json/release.sh /home/kmir/.local/bin/stable-mir-json && \ - cargo clean -# Fixuid is helpful for 1 time executions of docker containers but is not helpful when relying on `docker exec` + cargo clean && \ + rm -rf ~/.rustup/toolchains/nightly*/share/doc ~/.rustup/toolchains/nightly*/lib/rustlib/rustc-src + +# Fixuid is helpful for 1 time executions of docker containers but is not helpful when relying on `docker exec` ENTRYPOINT ["fixuid", "-q"] CMD printf "%s\n" \ From bec7f39c51f3531e45992edfdc3718a52589c347 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Tue, 8 Apr 2025 21:57:31 +1000 Subject: [PATCH 2/8] add notes for RUSTUP_HOME usage --- Dockerfile.kmir | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.kmir b/Dockerfile.kmir index 8e7f50f3b..47c469051 100644 --- a/Dockerfile.kmir +++ b/Dockerfile.kmir @@ -16,6 +16,7 @@ RUN apt-get install -y curl graphviz python-is-python3 && \ chmod 4755 /usr/local/bin/fixuid && \ mkdir -p /etc/fixuid && \ printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml +# TODO configure to only scan /home/kmir COPY kmir /kmir COPY deps/stable-mir-json /deps/stable-mir-json @@ -34,6 +35,7 @@ RUN echo "export K_VERSION=${K_VERSION}" >> /home/kmir/.bash_profile && \ echo "source /home/kmir/.bash_profile" >> /home/kmir/.bashrc # install rustup non-interactively and build +# TODO set RUSTUP_HOME to some place outside of the home directory RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none # install kmir python parts and K definition/llvm library From 828b38f47114520abccd4d85556284602ce3b2aa Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Tue, 8 Apr 2025 21:57:49 +1000 Subject: [PATCH 3/8] use json array format for CMD --- Dockerfile.kmir | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Dockerfile.kmir b/Dockerfile.kmir index 47c469051..356708b74 100644 --- a/Dockerfile.kmir +++ b/Dockerfile.kmir @@ -59,21 +59,21 @@ RUN cd /deps/stable-mir-json && \ # Fixuid is helpful for 1 time executions of docker containers but is not helpful when relying on `docker exec` ENTRYPOINT ["fixuid", "-q"] -CMD printf "%s\n" \ - "Welcome to kmir, powered by K framework" \ - "" \ - "This docker image provides a K-framework installation with the following programs:" \ - " * kompile" \ - " * krun" \ - " * kprove" \ - " * kast" \ - " * K backend tools (kore-*)" \ - " * the pyk library to interact with K programmatically " \ - "" \ - "as well as a pre-installed kmir tool and stable-mir-json" \ - "" \ - "To use this docker image, start a container with an interactive shell and" \ - "a working directory with your working directory mounted into it, like so:" \ - "" \ - 'user@host$ docker run --rm -it -v "$PWD":/home/kmir/workspace -u $(id -u):$(id -g) /bin/bash' \ - "" +CMD ["printf", "%s\n" \ + , "Welcome to kmir, powered by K framework" \ + , "" \ + , "This docker image provides a K-framework installation with the following programs:" \ + , " * kompile" \ + , " * krun" \ + , " * kprove" \ + , " * kast" \ + , " * K backend tools (kore-*)" \ + , " * the pyk library to interact with K programmatically " \ + , "" \ + , "as well as a pre-installed kmir tool and stable-mir-json" \ + , "" \ + , "To use this docker image, start a container with an interactive shell and" \ + , "a working directory with your working directory mounted into it, like so:" \ + , "" \ + , "user@host$ docker run --rm -it -v \"$PWD\":/home/kmir/workspace -u $(id -u):$(id -g) /bin/bash" \ + , ""] From 6f05911c80658c015469fbae2c2410c52b22b10f Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 30 Apr 2025 08:33:45 +1000 Subject: [PATCH 4/8] delete more unnecessary files from ~/.rustup --- Dockerfile.kmir | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile.kmir b/Dockerfile.kmir index 356708b74..faa405811 100644 --- a/Dockerfile.kmir +++ b/Dockerfile.kmir @@ -54,7 +54,10 @@ RUN cd /deps/stable-mir-json && \ cargo run --bin cargo_stable_mir_json -- $PWD && \ ln -s /home/kmir/.stable-mir-json/release.sh /home/kmir/.local/bin/stable-mir-json && \ cargo clean && \ - rm -rf ~/.rustup/toolchains/nightly*/share/doc ~/.rustup/toolchains/nightly*/lib/rustlib/rustc-src + rm -rf /home/kmir/.rustup/toolchains/nightly*/share/doc \ + /home/kmir/.rustup/toolchains/nightly*/share/man \ + /home/kmir/.rustup/toolchains/nightly*/lib/rustlib/rustc-src \ + /home/kmir/.rustup/toolchains/nightly*/lib/rustlib/src # Fixuid is helpful for 1 time executions of docker containers but is not helpful when relying on `docker exec` ENTRYPOINT ["fixuid", "-q"] From 008c2960fd965a30ada2cbf89b8acc433d52d6c4 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 30 Apr 2025 02:12:23 +0000 Subject: [PATCH 5/8] Set Version: 0.3.128 --- kmir/pyproject.toml | 2 +- kmir/src/kmir/__init__.py | 2 +- package/version | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kmir/pyproject.toml b/kmir/pyproject.toml index d9bc010a6..523f185ac 100644 --- a/kmir/pyproject.toml +++ b/kmir/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "kmir" -version = "0.3.126" +version = "0.3.128" description = "" requires-python = "~=3.10" dependencies = [ diff --git a/kmir/src/kmir/__init__.py b/kmir/src/kmir/__init__.py index 468fb9c0c..12b20c923 100644 --- a/kmir/src/kmir/__init__.py +++ b/kmir/src/kmir/__init__.py @@ -1,3 +1,3 @@ from typing import Final -VERSION: Final = '0.3.126' +VERSION: Final = '0.3.128' diff --git a/package/version b/package/version index 65010dbc1..dbce0d89d 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.3.126 +0.3.128 From e3c5d237599626b88e50c4556ba12ecfc38d008d Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 30 Apr 2025 12:19:03 +1000 Subject: [PATCH 6/8] Relocate RUSTUP_HOME outside the container user's home --- Dockerfile.kmir | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Dockerfile.kmir b/Dockerfile.kmir index faa405811..1efc8b889 100644 --- a/Dockerfile.kmir +++ b/Dockerfile.kmir @@ -15,27 +15,29 @@ RUN apt-get install -y curl graphviz python-is-python3 && \ chown root:root /usr/local/bin/fixuid && \ chmod 4755 /usr/local/bin/fixuid && \ mkdir -p /etc/fixuid && \ - printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml -# TODO configure to only scan /home/kmir + printf "user: $USER\ngroup: $GROUP\npaths:\n - /home/${USER}" > /etc/fixuid/config.yml COPY kmir /kmir COPY deps/stable-mir-json /deps/stable-mir-json -RUN chown -R kmir:kmir deps/stable-mir-json/ +RUN mkdir -p /rustup && \ + chown -R kmir:kmir deps/stable-mir-json/ /rustup USER kmir:kmir WORKDIR /home/kmir # Set Env variables for Building ENV K_VERSION=${K_VERSION} \ PATH=/home/kmir/.local/bin:/home/kmir/.cargo/bin:$PATH \ - force_color_prompt=yes + force_color_prompt=yes \ + RUSTUP_HOME=/rustup # Set Env Variables every time a new shell is opened (e.g. when using 'docker exec') RUN echo "export K_VERSION=${K_VERSION}" >> /home/kmir/.bash_profile && \ echo "export PATH=/home/kmir/.local/bin:/home/kmir/.cargo/bin:\$PATH" >> /home/kmir/.bash_profile && \ echo "export force_color_prompt=yes" >> /home/kmir/.bash_profile && \ + echo "export RUSTUP_HOME=/rustup" >> /home/kmir/.bash_profile && \ echo "source /home/kmir/.bash_profile" >> /home/kmir/.bashrc -# install rustup non-interactively and build -# TODO set RUSTUP_HOME to some place outside of the home directory +# install rustup non-interactively and build, +# into RUSTUP_HOME outside of the home directory RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none # install kmir python parts and K definition/llvm library @@ -53,11 +55,7 @@ RUN cd /deps/stable-mir-json && \ cargo build --release && \ cargo run --bin cargo_stable_mir_json -- $PWD && \ ln -s /home/kmir/.stable-mir-json/release.sh /home/kmir/.local/bin/stable-mir-json && \ - cargo clean && \ - rm -rf /home/kmir/.rustup/toolchains/nightly*/share/doc \ - /home/kmir/.rustup/toolchains/nightly*/share/man \ - /home/kmir/.rustup/toolchains/nightly*/lib/rustlib/rustc-src \ - /home/kmir/.rustup/toolchains/nightly*/lib/rustlib/src + cargo clean # Fixuid is helpful for 1 time executions of docker containers but is not helpful when relying on `docker exec` ENTRYPOINT ["fixuid", "-q"] From a29def2833550594418be1a68d755fe091908919 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 30 Apr 2025 02:50:06 +0000 Subject: [PATCH 7/8] Set Version: 0.3.128 --- kmir/pyproject.toml | 2 +- kmir/src/kmir/__init__.py | 2 +- package/version | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kmir/pyproject.toml b/kmir/pyproject.toml index 1e891df78..523f185ac 100644 --- a/kmir/pyproject.toml +++ b/kmir/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "kmir" -version = "0.3.127" +version = "0.3.128" description = "" requires-python = "~=3.10" dependencies = [ diff --git a/kmir/src/kmir/__init__.py b/kmir/src/kmir/__init__.py index 14997ae22..12b20c923 100644 --- a/kmir/src/kmir/__init__.py +++ b/kmir/src/kmir/__init__.py @@ -1,3 +1,3 @@ from typing import Final -VERSION: Final = '0.3.127' +VERSION: Final = '0.3.128' diff --git a/package/version b/package/version index 9cacf8720..dbce0d89d 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.3.127 +0.3.128 From ae65bff7169d3af14ba3672b2b8c7b3e64d68348 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 30 Apr 2025 19:18:07 +0000 Subject: [PATCH 8/8] Set Version: 0.3.131 --- kmir/pyproject.toml | 2 +- kmir/src/kmir/__init__.py | 2 +- package/version | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kmir/pyproject.toml b/kmir/pyproject.toml index 8c8d91145..0d1bda91e 100644 --- a/kmir/pyproject.toml +++ b/kmir/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "kmir" -version = "0.3.130" +version = "0.3.131" description = "" requires-python = "~=3.10" dependencies = [ diff --git a/kmir/src/kmir/__init__.py b/kmir/src/kmir/__init__.py index 13905e776..cbeac39d9 100644 --- a/kmir/src/kmir/__init__.py +++ b/kmir/src/kmir/__init__.py @@ -1,3 +1,3 @@ from typing import Final -VERSION: Final = '0.3.130' +VERSION: Final = '0.3.131' diff --git a/package/version b/package/version index bd007ccc2..19da93a60 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.3.130 +0.3.131