diff --git a/.github/workflows/build-bluefin-toolbox.yml b/.github/workflows/build-bluefin-toolbox.yml deleted file mode 100644 index ac236b4cc3c..00000000000 --- a/.github/workflows/build-bluefin-toolbox.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: Build and Push Bluefin Toolbox Image -on: - schedule: - - cron: '20 22 * * *' # 10:20pm everyday - pull_request: - merge_group: - workflow_dispatch: -env: - IMAGE_NAME: bluefin-cli - IMAGE_TAGS: latest - IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - push-ghcr: - name: Build and push image - runs-on: ubuntu-22.04 - permissions: - contents: read - packages: write - id-token: write - strategy: - fail-fast: false - steps: - # Checkout push-to-registry action GitHub repository - - name: Checkout Push to Registry action - uses: actions/checkout@v4 - - - name: Verify base container - uses: EyeCantCU/cosign-action/verify@v0.2.2 - with: - containers: wolfi-base - cert-identity: https://github.com/chainguard-images/images/.github/workflows/release.yaml@refs/heads/main - oidc-issuer: https://token.actions.githubusercontent.com - registry: cgr.dev/chainguard - - # Build metadata - - name: Image Metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: | - ${{ env.IMAGE_NAME }} - labels: | - io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/boxkit/main/README.md - - # Build image using Buildah action - - name: Build Image - id: build_image - uses: redhat-actions/buildah-build@v2 - with: - containerfiles: | - ./toolboxes/Containerfile.bluefin-cli - image: ${{ env.IMAGE_NAME }} - tags: ${{ env.IMAGE_TAGS }} - labels: ${{ steps.meta.outputs.labels }} - oci: false - - # Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR. - # https://github.com/macbre/push-to-ghcr/issues/12 - - name: Lowercase Registry - id: registry_case - uses: ASzc/change-string-case-action@v6 - with: - string: ${{ env.IMAGE_REGISTRY }} - - # Push the image to GHCR (Image Registry) - - name: Push To GHCR - uses: redhat-actions/push-to-registry@v2 - if: github.event_name != 'pull_request' - id: push - env: - REGISTRY_USER: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ github.token }} - with: - image: ${{ steps.build_image.outputs.image }} - tags: ${{ steps.build_image.outputs.tags }} - registry: ${{ steps.registry_case.outputs.lowercase }} - username: ${{ env.REGISTRY_USER }} - password: ${{ env.REGISTRY_PASSWORD }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: github.event_name != 'pull_request' - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Sign container - - uses: sigstore/cosign-installer@v3.3.0 - if: github.event_name != 'pull_request' - - - name: Sign container image - if: github.event_name != 'pull_request' - run: | - echo "${{ env.COSIGN_PRIVATE_KEY }}" > cosign.key - wc -c cosign.key - cosign sign -y --key cosign.key ${{ steps.registry_case.outputs.lowercase }}/${{ env.IMAGE_NAME }}@${TAGS} - env: - TAGS: ${{ steps.push.outputs.digest }} - COSIGN_EXPERIMENTAL: false - COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }} - - - name: Echo outputs - run: | - echo "${{ toJSON(steps.push.outputs) }}" diff --git a/.github/workflows/build-fedora-toolbox.yml b/.github/workflows/build-fedora-toolbox.yml deleted file mode 100644 index 7e5b7028663..00000000000 --- a/.github/workflows/build-fedora-toolbox.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Build and Push Fedora Toolbox Image -on: - schedule: - - cron: '20 22 * * *' # 10:20pm everyday - pull_request: - merge_group: - workflow_dispatch: -env: - IMAGE_NAME: fedora-toolbox - IMAGE_TAGS: latest - IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - push-ghcr: - name: Build and push image - runs-on: ubuntu-22.04 - permissions: - contents: read - packages: write - id-token: write - strategy: - fail-fast: false - steps: - # Checkout push-to-registry action GitHub repository - - name: Checkout Push to Registry action - uses: actions/checkout@v4 - - - name: Verify Fedora distrobox - uses: EyeCantCU/cosign-action/verify@v0.2.2 - with: - containers: fedora-distrobox:latest - - # Build metadata - - name: Image Metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: | - ${{ env.IMAGE_NAME }} - labels: | - io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/boxkit/main/README.md - - # Build image using Buildah action - - name: Build Image - id: build_image - uses: redhat-actions/buildah-build@v2 - with: - containerfiles: | - ./toolboxes/Containerfile.fedora - image: ${{ env.IMAGE_NAME }} - tags: ${{ env.IMAGE_TAGS }} - labels: ${{ steps.meta.outputs.labels }} - oci: false - - # Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR. - # https://github.com/macbre/push-to-ghcr/issues/12 - - name: Lowercase Registry - id: registry_case - uses: ASzc/change-string-case-action@v6 - with: - string: ${{ env.IMAGE_REGISTRY }} - - # Push the image to GHCR (Image Registry) - - name: Push To GHCR - uses: redhat-actions/push-to-registry@v2 - if: github.event_name != 'pull_request' - id: push - env: - REGISTRY_USER: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ github.token }} - with: - image: ${{ steps.build_image.outputs.image }} - tags: ${{ steps.build_image.outputs.tags }} - registry: ${{ steps.registry_case.outputs.lowercase }} - username: ${{ env.REGISTRY_USER }} - password: ${{ env.REGISTRY_PASSWORD }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: github.event_name != 'pull_request' - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Sign container - - uses: sigstore/cosign-installer@v3.3.0 - if: github.event_name != 'pull_request' - - - name: Sign container image - if: github.event_name != 'pull_request' - run: | - echo "${{ env.COSIGN_PRIVATE_KEY }}" > cosign.key - wc -c cosign.key - cosign sign -y --key cosign.key ${{ steps.registry_case.outputs.lowercase }}/${{ env.IMAGE_NAME }}@${TAGS} - env: - TAGS: ${{ steps.push.outputs.digest }} - COSIGN_EXPERIMENTAL: false - COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }} - - - name: Echo outputs - run: | - echo "${{ toJSON(steps.push.outputs) }}" diff --git a/.github/workflows/build-ubuntu-toolbox.yml b/.github/workflows/build-ubuntu-toolbox.yml deleted file mode 100644 index 85c0c79f356..00000000000 --- a/.github/workflows/build-ubuntu-toolbox.yml +++ /dev/null @@ -1,108 +0,0 @@ -name: Build and Push Ubuntu Toolbox Image -on: - schedule: - - cron: '20 22 * * *' # 10:20pm everyday - pull_request: - merge_group: - workflow_dispatch: -env: - IMAGE_NAME: ubuntu-toolbox - IMAGE_TAGS: latest - IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - push-ghcr: - name: Build and push image - runs-on: ubuntu-22.04 - permissions: - contents: read - packages: write - id-token: write - strategy: - fail-fast: false - steps: - # Checkout push-to-registry action GitHub repository - - name: Checkout Push to Registry action - uses: actions/checkout@v4 - - - name: Verify Ubuntu toolbox - uses: EyeCantCU/cosign-action/verify@v0.2.2 - with: - containers: ubuntu-toolbox:22.04 - pubkey: https://raw.githubusercontent.com/toolbx-images/images/main/quay.io-toolbx-images.pub - registry: quay.io/toolbx-images - - # Build metadata - - name: Image Metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: | - ${{ env.IMAGE_NAME }} - labels: | - io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/boxkit/main/README.md - - # Build image using Buildah action - - name: Build Image - id: build_image - uses: redhat-actions/buildah-build@v2 - with: - containerfiles: | - ./toolboxes/Containerfile.ubuntu - image: ${{ env.IMAGE_NAME }} - tags: ${{ env.IMAGE_TAGS }} - labels: ${{ steps.meta.outputs.labels }} - oci: false - - # Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR. - # https://github.com/macbre/push-to-ghcr/issues/12 - - name: Lowercase Registry - id: registry_case - uses: ASzc/change-string-case-action@v6 - with: - string: ${{ env.IMAGE_REGISTRY }} - - # Push the image to GHCR (Image Registry) - - name: Push To GHCR - uses: redhat-actions/push-to-registry@v2 - if: github.event_name != 'pull_request' - id: push - env: - REGISTRY_USER: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ github.token }} - with: - image: ${{ steps.build_image.outputs.image }} - tags: ${{ steps.build_image.outputs.tags }} - registry: ${{ steps.registry_case.outputs.lowercase }} - username: ${{ env.REGISTRY_USER }} - password: ${{ env.REGISTRY_PASSWORD }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: github.event_name != 'pull_request' - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Sign container - - uses: sigstore/cosign-installer@v3.3.0 - if: github.event_name != 'pull_request' - - - name: Sign container image - if: github.event_name != 'pull_request' - run: | - echo "${{ env.COSIGN_PRIVATE_KEY }}" > cosign.key - wc -c cosign.key - cosign sign -y --key cosign.key ${{ steps.registry_case.outputs.lowercase }}/${{ env.IMAGE_NAME }}@${TAGS} - env: - TAGS: ${{ steps.push.outputs.digest }} - COSIGN_EXPERIMENTAL: false - COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }} - - - name: Echo outputs - run: | - echo "${{ toJSON(steps.push.outputs) }}" diff --git a/.github/workflows/build-wolfi-toolbox.yml b/.github/workflows/build-wolfi-toolbox.yml deleted file mode 100644 index 57ae447c8be..00000000000 --- a/.github/workflows/build-wolfi-toolbox.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: Build and Push Wolfi Toolbox Image -on: - schedule: - - cron: '20 22 * * *' # 10:20pm everyday - pull_request: - merge_group: - workflow_dispatch: -env: - IMAGE_NAME: wolfi-toolbox - IMAGE_TAGS: latest - IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - push-ghcr: - name: Build and push image - runs-on: ubuntu-22.04 - permissions: - contents: read - packages: write - id-token: write - strategy: - fail-fast: false - steps: - # Checkout push-to-registry action GitHub repository - - name: Checkout Push to Registry action - uses: actions/checkout@v4 - - - name: Verify base container - uses: EyeCantCU/cosign-action/verify@v0.2.2 - with: - containers: wolfi-base - cert-identity: https://github.com/chainguard-images/images/.github/workflows/release.yaml@refs/heads/main - oidc-issuer: https://token.actions.githubusercontent.com - registry: cgr.dev/chainguard - - # Build metadata - - name: Image Metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: | - ${{ env.IMAGE_NAME }} - labels: | - io.artifacthub.package.readme-url=https://raw.githubusercontent.com/ublue-os/boxkit/main/README.md - - # Build image using Buildah action - - name: Build Image - id: build_image - uses: redhat-actions/buildah-build@v2 - with: - containerfiles: | - ./toolboxes/Containerfile.wolfi - image: ${{ env.IMAGE_NAME }} - tags: ${{ env.IMAGE_TAGS }} - labels: ${{ steps.meta.outputs.labels }} - oci: false - - # Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR. - # https://github.com/macbre/push-to-ghcr/issues/12 - - name: Lowercase Registry - id: registry_case - uses: ASzc/change-string-case-action@v6 - with: - string: ${{ env.IMAGE_REGISTRY }} - - # Push the image to GHCR (Image Registry) - - name: Push To GHCR - uses: redhat-actions/push-to-registry@v2 - if: github.event_name != 'pull_request' - id: push - env: - REGISTRY_USER: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ github.token }} - with: - image: ${{ steps.build_image.outputs.image }} - tags: ${{ steps.build_image.outputs.tags }} - registry: ${{ steps.registry_case.outputs.lowercase }} - username: ${{ env.REGISTRY_USER }} - password: ${{ env.REGISTRY_PASSWORD }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: github.event_name != 'pull_request' - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Sign container - - uses: sigstore/cosign-installer@v3.3.0 - if: github.event_name != 'pull_request' - - - name: Sign container image - if: github.event_name != 'pull_request' - run: | - echo "${{ env.COSIGN_PRIVATE_KEY }}" > cosign.key - wc -c cosign.key - cosign sign -y --key cosign.key ${{ steps.registry_case.outputs.lowercase }}/${{ env.IMAGE_NAME }}@${TAGS} - env: - TAGS: ${{ steps.push.outputs.digest }} - COSIGN_EXPERIMENTAL: false - COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }} - - - name: Echo outputs - run: | - echo "${{ toJSON(steps.push.outputs) }}" diff --git a/toolboxes/Containerfile.bluefin-cli b/toolboxes/Containerfile.bluefin-cli deleted file mode 100644 index f10115f0a8c..00000000000 --- a/toolboxes/Containerfile.bluefin-cli +++ /dev/null @@ -1,42 +0,0 @@ -FROM cgr.dev/chainguard/wolfi-base - -LABEL com.github.containers.toolbox="true" \ - usage="This image is meant to be used with the toolbox or distrobox command" \ - summary="A new cloud-native terminal experience powered by Wolfi and Homebrew" \ - maintainer="jorge.castro@gmail.com" - -COPY ./toolboxes/packages.bluefin-cli /toolbox-packages -COPY ./toolboxes/files.bluefin-cli/etc /etc - -# Update image -RUN apk update && \ - apk upgrade - -# Add optional packages -RUN grep -v '^#' /toolbox-packages | xargs apk add - -RUN rm /toolbox-packages - -# Have Linuxbrew owned by UID = 1000 -RUN chown -R 1000 /home/linuxbrew - -# Give UID = 1000 sudo -RUN echo "#1000 ALL = (root) NOPASSWD:ALL" >> /etc/sudoers - -# Get Distrobox-host-exec and host-spawn -RUN git clone https://github.com/89luca89/distrobox.git --single-branch /tmp/distrobox && \ - cp /tmp/distrobox/distrobox-host-exec /usr/bin/distrobox-host-exec && \ - wget https://github.com/1player/host-spawn/releases/download/$(cat /tmp/distrobox/distrobox-host-exec | grep host_spawn_version= | cut -d "\"" -f 2)/host-spawn-$(uname -m) -O /usr/bin/host-spawn && \ - chmod +x /usr/bin/host-spawn && \ - rm -drf /tmp/distrobox && \ - ln -fs /bin/sh /usr/bin/sh - -# Make some symlinks -RUN mkdir -p /usr/local/bin && \ - ln -fs /usr/bin/distrobox-host-exec /usr/local/bin/docker && \ - ln -fs /usr/bin/distrobox-host-exec /usr/local/bin/flatpak && \ - ln -fs /usr/bin/distrobox-host-exec /usr/local/bin/podman && \ - ln -fs /usr/bin/distrobox-host-exec /usr/local/bin/rpm-ostree - -# Change root shell to BASH -RUN sed -i -e '/^root/s/\/bin\/ash/\/bin\/bash/' /etc/passwd \ No newline at end of file diff --git a/toolboxes/Containerfile.fedora b/toolboxes/Containerfile.fedora deleted file mode 100644 index f91a21fc04b..00000000000 --- a/toolboxes/Containerfile.fedora +++ /dev/null @@ -1,14 +0,0 @@ -FROM ghcr.io/ublue-os/fedora-distrobox:latest -# From https://github.com/ublue-os/fedora-distrobox - -LABEL com.github.containers.toolbox="true" \ - usage="This image is meant to be used with the toolbox or distrobox command" \ - summary="A cloud-native terminal experience powered by Fedora" - -COPY ./toolboxes/packages.fedora /toolbox-packages - -RUN dnf -y upgrade && \ - dnf -y install $(> /etc/sudoers \ No newline at end of file diff --git a/toolboxes/Containerfile.wolfi b/toolboxes/Containerfile.wolfi deleted file mode 100644 index 1c7241d014d..00000000000 --- a/toolboxes/Containerfile.wolfi +++ /dev/null @@ -1,21 +0,0 @@ -FROM cgr.dev/chainguard/wolfi-base -# Thanks to Nuno do Carmo for the initial prototype - -LABEL com.github.containers.toolbox="true" \ - usage="This image is meant to be used with the toolbox or distrobox command" \ - summary="A blank Wolfi distrobox, suitable for development" \ - maintainer="jorge.castro@gmail.com" - -COPY ./toolboxes/packages.wolfi /toolbox-packages - -# Update image -RUN apk update && \ - apk upgrade - -# Add optional packages -RUN grep -v '^#' /toolbox-packages | xargs apk add - -RUN rm /toolbox-packages - -# Change root shell to BASH -RUN sed -i -e '/^root/s/\/bin\/ash/\/bin\/bash/' /etc/passwd diff --git a/toolboxes/files.bluefin-cli/etc/profile.d/bluefin-cli-brew-firstrun.sh b/toolboxes/files.bluefin-cli/etc/profile.d/bluefin-cli-brew-firstrun.sh deleted file mode 100644 index b3164319782..00000000000 --- a/toolboxes/files.bluefin-cli/etc/profile.d/bluefin-cli-brew-firstrun.sh +++ /dev/null @@ -1,16 +0,0 @@ -if test "$(id -u)" -gt "0" && test ! -f /home/linuxbrew/.firstrun && test -d /home/linuxbrew/.linuxbrew/Cellar; then - touch /home/linuxbrew/.firstrun - if test -n "$(ls -A /home/linuxbrew/.linuxbrew/Cellar)"; then - echo "Relinking Homebrew Cellar" - /home/linuxbrew/.linuxbrew/bin/brew list -1 | while read line - do - /home/linuxbrew/.linuxbrew/bin/brew unlink $line - /home/linuxbrew/.linuxbrew/bin/brew link $line - done - echo "Reinstalling explicictly installed Homebrew packages" - /home/linuxbrew/.linuxbrew/bin/brew leaves | while read line - do - /home/linuxbrew/.linuxbrew/bin/brew reinstall $line - done - fi -fi \ No newline at end of file diff --git a/toolboxes/packages.bluefin-cli b/toolboxes/packages.bluefin-cli deleted file mode 100644 index c9e0d6307a0..00000000000 --- a/toolboxes/packages.bluefin-cli +++ /dev/null @@ -1,6 +0,0 @@ -bash -brew -command-not-found -git -procps -sudo-rs diff --git a/toolboxes/packages.fedora b/toolboxes/packages.fedora deleted file mode 100644 index 2652bf7cbaf..00000000000 --- a/toolboxes/packages.fedora +++ /dev/null @@ -1,2 +0,0 @@ -vim -ripgrep diff --git a/toolboxes/packages.ubuntu b/toolboxes/packages.ubuntu deleted file mode 100644 index 8a141ed3816..00000000000 --- a/toolboxes/packages.ubuntu +++ /dev/null @@ -1,89 +0,0 @@ -bc -dbus-x11 -direnv -fzf -libegl1-mesa -libgl1-mesa-glx -libvte-common -make -neofetch -plocate -progress -apt-utils -dialog -dirmngr -gnupg -gnupg-l10n -gnupg-utils -gnupg2 -gpg -ca-certificates -libnsl2 -libpython3-stdlib -gpg-agent -gpg-wks-client -gpg-wks-server -gpgsm -libksba8 -libnpth0 -libpython3.11-minimal -gpgconf -libnss-myhostname -libsqlite3-0 -libtirpc-common -libtirpc3 -libvte-2.91-common -openssl -lsof -pinentry-curses -time -libpython3.11-stdlib -libvulkan1 -media-types -mesa-vulkan-drivers -libbsd0 -libdrm-amdgpu1 -libdrm-common -libdrm-nouveau2 -libdrm-radeon1 -libdrm2 -libedit2 -libegl-mesa0 -libegl1 -libegl1-mesa -libelf1 -libexpat1 -libgbm1 -libgl1 -libgl1-amber-dri -libgl1-mesa-dri -libgl1-mesa-glx -libglapi-mesa -libglvnd0 -libglx-mesa0 -libglx0 -libicu70 -libllvm15 -libpciaccess0 -libsensors-config -libsensors5 -libwayland-client0 -libwayland-server0 -libx11-6 -libx11-data -libx11-xcb1 -libxau6 -libxcb-dri2-0 -libxcb-dri3-0 -libxcb-glx0 -libxcb-present0 -libxcb-randr0 -libxcb-shm0 -libxcb-sync1 -libxcb-xfixes0 -libxcb1 -libxdmcp6 -libxext6 -libxfixes3 -libxml2 -pigz diff --git a/toolboxes/packages.wolfi b/toolboxes/packages.wolfi deleted file mode 100644 index 2061f1b7cce..00000000000 --- a/toolboxes/packages.wolfi +++ /dev/null @@ -1,33 +0,0 @@ -bash -bzip2 -coreutils -curl -diffutils -findmnt -findutils -gnupg -gpg -iproute2 -iputils -keyutils -libcap=2.68-r0 -mount -ncurses -ncurses-terminfo -net-tools -openssh-client -pigz -posix-libc-utils -procps -rsync -su-exec -tcpdump -tree -tzdata -umount -util-linux -util-linux-misc -wget -xz -zip -vulkan-loader