From 6d9e7aa3e1efc8bb9936d2fed5ae9087680f4409 Mon Sep 17 00:00:00 2001 From: "Jens A. Koch" Date: Thu, 4 Jul 2024 16:03:12 +0200 Subject: [PATCH] tag release v1.0.4 --- .devcontainer/debian/bookworm/Dockerfile | 49 ++++++++++++++------ .devcontainer/debian/trixie/Dockerfile | 45 ++++++++++++------ .devcontainer/scripts/entrypoint.sh | 2 +- .devcontainer/scripts/show-tool-locations.sh | 6 ++- .devcontainer/scripts/show-tool-versions.sh | 2 +- .github/workflows/release.yml | 2 +- CHANGELOG.md | 11 +++-- 7 files changed, 82 insertions(+), 35 deletions(-) diff --git a/.devcontainer/debian/bookworm/Dockerfile b/.devcontainer/debian/bookworm/Dockerfile index efc451d..dd426bd 100644 --- a/.devcontainer/debian/bookworm/Dockerfile +++ b/.devcontainer/debian/bookworm/Dockerfile @@ -1,4 +1,4 @@ -# Copyright Jens A. Koch 2023. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of https://github.com/jakoch/cpp-devbox @@ -23,7 +23,7 @@ # +-----------------------------+ # | GLOBAL ARGS | # +-----------------------------+ -# The following global args need to be redeclared without a value inside each FROM. +# The following global args need to be redeclared without a value inside each FROM section. # For example, VULKAN_VERSION is used in the FROM sections of "downloader" and "cpp-devbox-with-vulkansdk". ARG DEBIAN_VERSION=12 ARG DEBIAN_VERSION_NAME=bookworm @@ -108,7 +108,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ apt-utils dialog 2>&1 && \ apt-get update && apt-get install -y --no-install-recommends \ gnupg2 ca-certificates software-properties-common \ - build-essential cppcheck valgrind ccache cmake wget git nano jq \ + build-essential cppcheck valgrind cmake wget git nano jq \ # required by Visual Studio g++ gdb make ninja-build rsync zip sudo \ # required by VCPKG @@ -194,10 +194,9 @@ RUN version="$(curl -s https://api.github.com/repos/Kitware/CMake/releases/lates # +-----------------------------+ # | vcpkg ~225MB| # +-----------------------------+ -# Notes: -# - vcpkg requires curl, unzip, tar, pkg-config (optional cmake). -# - We use the installed binaries from the system. -# - We do not download latest version of CMake and Ninja during vcpkg bootstrap. +# vcpkg requires curl, unzip, tar, pkg-config (optional cmake). +# We use the installed binaries from the system. +# We do not download latest version of CMake and Ninja during vcpkg bootstrap. ENV VCPKG_ROOT=/opt/vcpkg \ VCPKG_TRIPLET=x64-linux \ @@ -214,6 +213,28 @@ RUN git clone --depth=1 \ https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" && \ "${VCPKG_ROOT}"/bootstrap-vcpkg.sh -disableMetrics +# +# .d8888b. .d8888b. d8888 .d8888b. 888 888 8888888888 +# d88P Y88b d88P Y88b d88888 d88P Y88b 888 888 888 +# 888 888 888 888 d88P888 888 888 888 888 888 +# 888 888 d88P 888 888 8888888888 8888888 +# 888 888 d88P 888 888 888 888 888 +# 888 888 888 888 d88P 888 888 888 888 888 888 +# Y88b d88P Y88b d88P d8888888888 Y88b d88P 888 888 888 +# "Y8888P" "Y8888P" d88P 888 "Y8888P" 888 888 8888888888 +# + +# +-----------------------------+ +# | ccache - Latest Version | +# +-----------------------------+ + +RUN version="$(curl -s https://api.github.com/repos/ccache/ccache/releases/latest | jq -r '.tag_name' | cut -c 2-)"; echo "Latest Version: $version" && \ + url="https://github.com/ccache/ccache/releases/download/v$version/ccache-$version-linux-x86_64.tar.xz" && \ + wget -q $url && \ + tar xf ccache-$version-linux-x86_64.tar.xz -C /opt && \ + ln -s /opt/ccache-$version-linux-x86_64/ccache /usr/local/bin && \ + rm ccache-$version-linux-x86_64.tar.xz + # # 888 888 888 888 888b d888 # 888 888 888 888 8888b d8888 @@ -228,8 +249,8 @@ RUN git clone --depth=1 \ # +-----------------------------+ # | LLVM | # +-----------------------------+ -# llvm.sh is constantly broken, see https://github.com/llvm/llvm-project/issues/62475 -#RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh ${LLVM_VERSION} all && rm ./llvm.sh +# For an installation using the llvm.sh setup script: +# RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh ${LLVM_VERSION} all && rm ./llvm.sh SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc && \ @@ -291,9 +312,7 @@ RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 && \ # +-----------------------------+ # | Mold Linker ~10MB| # +-----------------------------+ -# We are using Clang++ here, so this download/compile step must happen after LLVM+Clang install. -# Latest Release: https://github.com/rui314/mold/releases/latest -# List downloads: curl -s https://api.github.com/repos/rui314/mold/releases/latest | jq -r '.assets[] | .browser_download_url' +# We are using Clang++ for compilation, so this download + compile step must happen after installing LLVM+Clang. SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN version="$(curl -s https://api.github.com/repos/rui314/mold/releases/latest | jq -r '.tag_name' | cut -c 2-)"; echo "Latest Version: $version" && \ @@ -418,8 +437,8 @@ ENV CC=/usr/bin/clang \ # +-----------------------------+ # | ZSH | # +-----------------------------+ -# setup zsh, omyzsh, powerline fonts -# setup zsh plugins: autosuggestions, autocompletions, history search +# Setup zsh, ohmyzsh, powerline fonts. +# Setup zsh plugins: autosuggestions, autocompletions, history search. ENV TERM=xterm-256color \ ZSH_THEME=agnoster @@ -525,4 +544,4 @@ ENV PATH="$VULKAN_SDK/bin:$PATH" \ # The AsciiArt for the VSCode minimap is generated using -# https://patorjk.com/software/taag/#p=display&h=0&v=0&c=bash&f=Colossal&t=C%2B%2B%20DevBox%0APackages%0AGithub%20CLI%0ACMake%0AVCPKG%0ALLVM%0AGCC%0AZSH%0AVulkan%20SDK +# https://patorjk.com/software/taag/#p=display&h=0&v=0&c=bash&f=Colossal&t=C%2B%2B%20DevBox%0APackages%0AGithub%20CLI%0ACMake%0AVCPKG%0ACCACHE%0ALLVM%0AGCC%0AZSH%0AVulkan%20SDK diff --git a/.devcontainer/debian/trixie/Dockerfile b/.devcontainer/debian/trixie/Dockerfile index 6812544..34cff63 100644 --- a/.devcontainer/debian/trixie/Dockerfile +++ b/.devcontainer/debian/trixie/Dockerfile @@ -1,4 +1,4 @@ -# Copyright Jens A. Koch 2023. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of https://github.com/jakoch/cpp-devbox @@ -25,7 +25,7 @@ # +-----------------------------+ # | GLOBAL ARGS | # +-----------------------------+ -# The following global args need to be redeclared without a value inside each FROM. +# The following global args need to be redeclared without a value inside each FROM section. # For example, VULKAN_VERSION is used in the FROM sections of "downloader" and "cpp-devbox-with-vulkansdk". ARG DEBIAN_VERSION=12 ARG DEBIAN_VERSION_NAME=trixie @@ -110,7 +110,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ apt-utils dialog 2>&1 && \ apt-get update && apt-get install -y --no-install-recommends \ gnupg2 ca-certificates software-properties-common \ - build-essential cppcheck valgrind ccache cmake wget git nano jq \ + build-essential cppcheck valgrind cmake wget git nano jq \ # required by Visual Studio g++ gdb make ninja-build rsync zip sudo \ # required by VCPKG @@ -195,10 +195,9 @@ RUN version="$(curl -s https://api.github.com/repos/Kitware/CMake/releases/lates # +-----------------------------+ # | vcpkg ~225MB| # +-----------------------------+ -# Notes: -# - vcpkg requires curl, unzip, tar, pkg-config (optional cmake). -# - We use the installed binaries from the system. -# - We do not download latest version of CMake and Ninja during vcpkg bootstrap. +# vcpkg requires curl, unzip, tar, pkg-config (optional cmake). +# We use the installed binaries from the system. +# We do not download latest version of CMake and Ninja during vcpkg bootstrap. ENV VCPKG_ROOT=/opt/vcpkg \ VCPKG_TRIPLET=x64-linux \ @@ -215,6 +214,28 @@ RUN git clone --depth=1 \ https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" && \ "${VCPKG_ROOT}"/bootstrap-vcpkg.sh -disableMetrics +# +# .d8888b. .d8888b. d8888 .d8888b. 888 888 8888888888 +# d88P Y88b d88P Y88b d88888 d88P Y88b 888 888 888 +# 888 888 888 888 d88P888 888 888 888 888 888 +# 888 888 d88P 888 888 8888888888 8888888 +# 888 888 d88P 888 888 888 888 888 +# 888 888 888 888 d88P 888 888 888 888 888 888 +# Y88b d88P Y88b d88P d8888888888 Y88b d88P 888 888 888 +# "Y8888P" "Y8888P" d88P 888 "Y8888P" 888 888 8888888888 +# + +# +-----------------------------+ +# | ccache - Latest Version | +# +-----------------------------+ + +RUN version="$(curl -s https://api.github.com/repos/ccache/ccache/releases/latest | jq -r '.tag_name' | cut -c 2-)"; echo "Latest Version: $version" && \ + url="https://github.com/ccache/ccache/releases/download/v$version/ccache-$version-linux-x86_64.tar.xz" && \ + wget -q $url && \ + tar xf ccache-$version-linux-x86_64.tar.xz -C /opt && \ + ln -s /opt/ccache-$version-linux-x86_64/ccache /usr/local/bin && \ + rm ccache-$version-linux-x86_64.tar.xz + # # 888 888 888 888 888b d888 # 888 888 888 888 8888b d8888 @@ -229,8 +250,8 @@ RUN git clone --depth=1 \ # +-----------------------------+ # | LLVM | # +-----------------------------+ -# llvm.sh is constantly broken, see https://github.com/llvm/llvm-project/issues/62475 -#RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh ${LLVM_VERSION} all && rm ./llvm.sh +# For an installation using the llvm.sh setup script: +# RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh ${LLVM_VERSION} all && rm ./llvm.sh # https://ftp.debian.org/debian/ @@ -297,9 +318,7 @@ RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 && \ # +-----------------------------+ # | Mold Linker ~10MB| # +-----------------------------+ -# We are using Clang++ here, so this download/compile step must happen after LLVM+Clang install. -# Latest Release: https://github.com/rui314/mold/releases/latest -# List downloads: curl -s https://api.github.com/repos/rui314/mold/releases/latest | jq -r '.assets[] | .browser_download_url' +# We are using Clang++ for compilation, so this download + compile step must happen after installing LLVM+Clang. SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN version="$(curl -s https://api.github.com/repos/rui314/mold/releases/latest | jq -r '.tag_name' | cut -c 2-)"; echo "Latest Version: $version" && \ @@ -531,4 +550,4 @@ ENV PATH="$VULKAN_SDK/bin:$PATH" \ # The AsciiArt for the VSCode minimap is generated using -# https://patorjk.com/software/taag/#p=display&h=0&v=0&c=bash&f=Colossal&t=C%2B%2B%20DevBox%0APackages%0AGithub%20CLI%0ACMake%0AVCPKG%0ALLVM%0AGCC%0AZSH%0AVulkan%20SDK +# https://patorjk.com/software/taag/#p=display&h=0&v=0&c=bash&f=Colossal&t=C%2B%2B%20DevBox%0APackages%0AGithub%20CLI%0ACMake%0AVCPKG%0ACCACHE%0ALLVM%0AGCC%0AZSH%0AVulkan%20SDK diff --git a/.devcontainer/scripts/entrypoint.sh b/.devcontainer/scripts/entrypoint.sh index e97de5e..595a8b3 100644 --- a/.devcontainer/scripts/entrypoint.sh +++ b/.devcontainer/scripts/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright Jens A. Koch 2023. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of https://github.com/jakoch/cpp-devbox diff --git a/.devcontainer/scripts/show-tool-locations.sh b/.devcontainer/scripts/show-tool-locations.sh index 68b80b2..d7befd3 100644 --- a/.devcontainer/scripts/show-tool-locations.sh +++ b/.devcontainer/scripts/show-tool-locations.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright Jens A. Koch 2023. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of https://github.com/jakoch/cpp-devbox @@ -56,6 +56,10 @@ echo "\033[31mccache\033[0m" type -a ccache | head -n1 +echo "\033[31mGitHub CLI\033[0m" + +type -a gh | head -n1 + echo "\033[31mVulkan-SDK Version\033[0m" echo $VULKAN_SDK diff --git a/.devcontainer/scripts/show-tool-versions.sh b/.devcontainer/scripts/show-tool-versions.sh index 978c38e..157500c 100644 --- a/.devcontainer/scripts/show-tool-versions.sh +++ b/.devcontainer/scripts/show-tool-versions.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright Jens A. Koch 2023. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of https://github.com/jakoch/cpp-devbox diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e04f91b..491ef8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,5 @@ # -# Copyright 2021 Jens A. Koch. +# SPDX-FileCopyrightText: 2023,2024 Jens A. Koch # SPDX-License-Identifier: MIT # This file is part of jakoch/cpp-devbox. # diff --git a/CHANGELOG.md b/CHANGELOG.md index ed04554..f4cca38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - "It was a bright day in April, and the clocks were striking thirteen." - 1984 +## [1.0.4] - 2024-07-04 + **Changed** -- changed versioning scheme - - removed "nightly-" from scheduled builds; now date only +- changed versioning scheme + - removed "nightly-" from scheduled builds; its now date only +- ccache: switched from distro provided ccache to latest version from github +- switched to SPDX-FileCopyrightText on copyright lines ## [1.0.3] - 2024-05-23 @@ -97,7 +101,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 -[vNext]: https://github.com/jakoch/cpp-devbox/compare/v1.0.3...HEAD +[vNext]: https://github.com/jakoch/cpp-devbox/compare/v1.0.4...HEAD +[1.0.4]: https://github.com/jakoch/cpp-devbox/releases/tag/v1.0.4 [1.0.3]: https://github.com/jakoch/cpp-devbox/releases/tag/v1.0.3 [1.0.2]: https://github.com/jakoch/cpp-devbox/releases/tag/v1.0.2 [1.0.1]: https://github.com/jakoch/cpp-devbox/releases/tag/v1.0.1