From 8bf12d0cf93760fb36772a811f94ddef67ed7d7b Mon Sep 17 00:00:00 2001 From: "Jacob L." Date: Mon, 19 Feb 2024 11:45:05 -0600 Subject: [PATCH] chore: updates --- .github/workflows/build.yml | 12 +- Dockerfile | 189 ++++++++++++++++++++++ cosign.pub | 4 +- fetch-quadlets.sh | 61 +++---- packages.json | 307 ++++++++++++++++++------------------ 5 files changed, 383 insertions(+), 190 deletions(-) create mode 100644 Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b3704937c52..57dc18b0fb6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,14 +34,10 @@ jobs: strategy: fail-fast: false matrix: - image_flavor: [main, nvidia, asus, asus-nvidia, framework, surface, surface-nvidia] - base_name: [bluefin, bluefin-dx] - major_version: [38, 39] + image_flavor: [asus] + base_name: [bluefin-dx] + major_version: [39] include: - - major_version: 38 - is_latest_version: false - is_stable_version: true - is_gts_version: true - major_version: 39 is_latest_version: true is_stable_version: true @@ -168,7 +164,7 @@ jobs: uses: redhat-actions/buildah-build@v2 with: containerfiles: | - ./Containerfile + ./Dockerfile image: ${{ env.IMAGE_NAME }} tags: | ${{ steps.generate-tags.outputs.alias_tags }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000000..62dc2b97f9f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,189 @@ +ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-asus}" +ARG TARGET_BASE="${TARGET_BASE:-bluefin}" +ARG AKMODS_FLAVOR="${AKMODS_FLAVOR:-asus}" +ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-silverblue}" +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}" +ARG SOURCE_IMAGE="${SOURCE_IMAGE:-$BASE_IMAGE_NAME-$IMAGE_FLAVOR}" +ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}" + +## bluefin image section +FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS bluefin + +ARG IMAGE_FLAVOR +ARG AKMODS_FLAVOR +ARG BASE_IMAGE_NAME +ARG FEDORA_MAJOR_VERSION +ARG IMAGE_NAME="${IMAGE_NAME}" +ARG IMAGE_VENDOR="${IMAGE_VENDOR}" +ARG PACKAGE_LIST="bluefin" + +COPY etc/yum.repos.d/ /etc/yum.repos.d/ + +# GNOME VRR & Ptyxis +RUN if [ ${FEDORA_MAJOR_VERSION} -ge "39" ]; then \ + wget --progress=dot:giga https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/repo/fedora-"${FEDORA_MAJOR_VERSION}"/kylegospo-gnome-vrr-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \ + rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr mutter mutter-common gnome-control-center gnome-control-center-filesystem && \ + rm -f /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \ + wget --progress=dot:giga https://copr.fedorainfracloud.org/coprs/kylegospo/prompt/repo/fedora-$(rpm -E %fedora)/kylegospo-prompt-fedora-$(rpm -E %fedora).repo?arch=x86_64 -O /etc/yum.repos.d/_copr_kylegospo-prompt.repo && \ + rpm-ostree override replace \ + --experimental \ + --from repo=copr:copr.fedorainfracloud.org:kylegospo:prompt \ + vte291 \ + vte-profile \ + libadwaita && \ + rpm-ostree install \ + ptyxis && \ + rm -f /etc/yum.repos.d/_copr_kylegospo-prompt.repo && \ + rpm-ostree override remove \ + power-profiles-daemon \ + || true && \ + rpm-ostree override remove \ + tlp \ + tlp-rdw \ + || true \ + ; fi + +# Add ublue kmods, add needed negativo17 repo and then immediately disable due to incompatibility with RPMFusion +COPY --from=ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms +RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \ + wget --progress=dot:giga https://negativo17.org/repos/fedora-multimedia.repo -O /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \ + if [[ "${FEDORA_MAJOR_VERSION}" -ge "39" ]]; then \ + rpm-ostree install \ + /tmp/akmods-rpms/kmods/*xpadneo*.rpm \ + /tmp/akmods-rpms/kmods/*xone*.rpm \ + /tmp/akmods-rpms/kmods/*openrazer*.rpm \ + /tmp/akmods-rpms/kmods/*v4l2loopback*.rpm \ + /tmp/akmods-rpms/kmods/*wl*.rpm \ + ; fi && \ + if grep -qv "asus" <<< "${AKMODS_FLAVOR}"; then \ + rpm-ostree install \ + /tmp/akmods-rpms/kmods/*evdi*.rpm \ + ; fi && \ + sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \ + wget https://copr.fedorainfracloud.org/coprs/che/nerd-fonts/repo/fedora-"${FEDORA_MAJOR_VERSION}"/che-nerd-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/_copr_che-nerd-fonts-"${FEDORA_MAJOR_VERSION}".repo + +# Starship Shell Prompt +RUN curl -Lo /tmp/starship.tar.gz "https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-gnu.tar.gz" && \ + tar -xzf /tmp/starship.tar.gz -C /tmp && \ + install -c -m 0755 /tmp/starship /usr/bin && \ + echo 'eval "$(starship init bash)"' >> /etc/bashrc + +# Copy atuin from bluefin-cli +COPY --from=ghcr.io/ublue-os/bluefin-cli /usr/bin/atuin /usr/bin/atuin +COPY --from=ghcr.io/ublue-os/bluefin-cli /usr/share/bash-prexec /usr/share/bash-prexec + +COPY just /tmp/just +COPY packages.json /tmp/packages.json +COPY build.sh /tmp/build.sh +COPY image-info.sh /tmp/image-info.sh +COPY fetch-quadlets.sh /tmp/fetch-quadlets.sh +# Copy ublue-update.toml to tmp first, to avoid being overwritten. +COPY usr/etc/ublue-update/ublue-update.toml /tmp/ublue-update.toml + +RUN wget https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo && \ + /tmp/build.sh && \ + /tmp/image-info.sh && \ + /tmp/fetch-quadlets.sh && \ + pip install --prefix=/usr yafti && \ + pip install --prefix=/usr topgrade && \ + rpm-ostree install ublue-update && \ + mkdir -p /usr/etc/flatpak/remotes.d && \ + wget -q https://dl.flathub.org/repo/flathub.flatpakrepo -P /usr/etc/flatpak/remotes.d && \ + cp /tmp/ublue-update.toml /usr/etc/ublue-update/ublue-update.toml && \ + if [[ "${FEDORA_MAJOR_VERSION}" -ge "39" ]]; then \ + systemctl enable tuned.service \ + ; fi && \ + systemctl enable rpm-ostree-countme.service && \ + systemctl enable tailscaled.service && \ + systemctl enable dconf-update.service && \ + systemctl enable ublue-update.timer && \ + systemctl enable ublue-system-setup.service && \ + systemctl enable ublue-system-flatpak-manager.service && \ + systemctl --global enable ublue-user-flatpak-manager.service && \ + systemctl --global enable ublue-user-setup.service && \ + fc-cache -f /usr/share/fonts/ubuntu && \ + fc-cache -f /usr/share/fonts/inter && \ + find /tmp/just -iname '*.just' -exec printf "\n\n" \; -exec cat {} \; >> /usr/share/ublue-os/just/60-custom.just && \ + rm -f /etc/yum.repos.d/tailscale.repo && \ + rm -f /etc/yum.repos.d/charm.repo && \ + rm -f /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo && \ + echo "Hidden=true" >> /usr/share/applications/fish.desktop && \ + echo "Hidden=true" >> /usr/share/applications/htop.desktop && \ + echo "Hidden=true" >> /usr/share/applications/nvtop.desktop && \ + echo "Hidden=true" >> /usr/share/applications/gnome-system-monitor.desktop && \ + rm -f /etc/yum.repos.d/_copr_che-nerd-fonts-"${FEDORA_MAJOR_VERSION}".repo && \ + sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/user.conf && \ + sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/system.conf && \ + sed -i '/^PRETTY_NAME/s/Silverblue/Bluefin/' /usr/lib/os-release + +COPY usr /usr + +RUN rm -rf /tmp/* /var/* && \ + ostree container commit && \ + mkdir -p /var/tmp && \ + chmod -R 1777 /var/tmp + +## bluefin-dx developer edition image section +FROM bluefin AS bluefin-dx + +ARG IMAGE_NAME="${IMAGE_NAME}" +ARG IMAGE_VENDOR="${IMAGE_VENDOR}" +ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}" +ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}" +ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" +ARG PACKAGE_LIST="bluefin-dx" + +# dx specific files come from the dx directory in this repo +COPY dx/etc/yum.repos.d/ /etc/yum.repos.d/ + +# Apply IP Forwarding before installing Docker to prevent messing with LXC networking +RUN sysctl -p + +RUN wget https://copr.fedorainfracloud.org/coprs/ganto/lxc4/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ganto-lxc4-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/ganto-lxc4-fedora-"${FEDORA_MAJOR_VERSION}".repo && \ + wget https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${FEDORA_MAJOR_VERSION}"/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION}".repo && \ + wget https://copr.fedorainfracloud.org/coprs/karmab/kcli/repo/fedora-"${FEDORA_MAJOR_VERSION}"/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo && \ + wget https://copr.fedorainfracloud.org/coprs/atim/ubuntu-fonts/repo/fedora-"${FEDORA_MAJOR_VERSION}"/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo + +COPY packages.json \ + build.sh \ + image-info.sh \ + /tmp/ + +# Handle packages via packages.json +RUN /tmp/build.sh && \ + /tmp/image-info.sh + +RUN wget https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -O /tmp/docker-compose && \ + install -c -m 0755 /tmp/docker-compose /usr/bin + +COPY --from=cgr.dev/chainguard/dive:latest /usr/bin/dive /usr/bin/dive +COPY --from=cgr.dev/chainguard/flux:latest /usr/bin/flux /usr/bin/flux +COPY --from=cgr.dev/chainguard/helm:latest /usr/bin/helm /usr/bin/helm +COPY --from=cgr.dev/chainguard/ko:latest /usr/bin/ko /usr/bin/ko +COPY --from=cgr.dev/chainguard/minio-client:latest /usr/bin/mc /usr/bin/mc + +# Set up services +RUN systemctl enable docker.socket && \ + systemctl enable podman.socket && \ + systemctl enable swtpm-workaround.service && \ + systemctl enable bluefin-dx-groups.service && \ + systemctl enable --global bluefin-dx-user-vscode.service && \ + systemctl disable pmie.service && \ + systemctl disable pmlogger.service + +COPY workarounds.sh /tmp +RUN /tmp/workarounds.sh + +COPY dx/usr /usr + +# Clean up repos, everything is on the image so we don't need them +RUN rm -f /etc/yum.repos.d/ublue-os-staging-fedora-"${FEDORA_MAJOR_VERSION:?}".repo && \ + rm -f /etc/yum.repos.d/ganto-lxc4-fedora-"${FEDORA_MAJOR_VERSION:?}".repo && \ + rm -f /etc/yum.repos.d/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION:?}".repo && \ + rm -f /etc/yum.repos.d/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION:?}".repo && \ + rm -f /etc/yum.repos.d/vscode.repo && \ + rm -f /etc/yum.repos.d/docker-ce.repo && \ + rm -f /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:phracek:PyCharm.repo && \ + rm -f /etc/yum.repos.d/fedora-cisco-openh264.repo && \ + rm -rf /tmp/* /var/* && \ + ostree container commit diff --git a/cosign.pub b/cosign.pub index f9482c42af9..ce905195c6d 100644 --- a/cosign.pub +++ b/cosign.pub @@ -1,4 +1,4 @@ -----BEGIN PUBLIC KEY----- -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7lh7fJMV4dBT2jT1XafixUJa7OVA -cT+QFVD8IfIJIS/KBAc8hx1aslzkH3tfeM0cwyCLB7kOStZ4sh6RyFQD9w== +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr5AAD7TIqB/CaTsrcYFuV4Uk0SsM +5C7ONui8EdY687jnhTVsGDXr4KBDgxizlNKcRFwYmFYYp2PWKpbILupsjA== -----END PUBLIC KEY----- diff --git a/fetch-quadlets.sh b/fetch-quadlets.sh index eafc704e6e3..b2e6100b6c4 100755 --- a/fetch-quadlets.sh +++ b/fetch-quadlets.sh @@ -5,45 +5,52 @@ set -oue pipefail # Make Directory mkdir -p /usr/etc/containers/systemd/users +# orora-cli +wget --output-document="/usr/etc/containers/systemd/users/orora-cli.container" --quiet https://raw.githubusercontent.com/bayou-brogrammer/orora-cli/main/quadlet/orora-cli.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/orora-cli.container +printf "\n\n[Install]\nWantedBy=orora-cli.target" >>/usr/etc/containers/systemd/users/orora-cli.container +sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/orora-cli.container +sed -i 's/ContainerName=orora/ContainerName=orora-cli/' /usr/etc/containers/systemd/users/orora-cli.container + # bluefin-cli -wget --output-document="/usr/etc/containers/systemd/users/bluefin-cli.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/bluefin-cli/bluefin-cli.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/bluefin-cli.container -printf "\n\n[Install]\nWantedBy=bluefin-cli.target" >> /usr/etc/containers/systemd/users/bluefin-cli.container +wget --output-document="/usr/etc/containers/systemd/users/bluefin-cli.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/bluefin-cli/bluefin-cli.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/bluefin-cli.container +printf "\n\n[Install]\nWantedBy=bluefin-cli.target" >>/usr/etc/containers/systemd/users/bluefin-cli.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/bluefin-cli.container sed -i 's/ContainerName=bluefin/ContainerName=bluefin-cli/' /usr/etc/containers/systemd/users/bluefin-cli.container # bluefin-dx-cli -wget --output-document="/usr/etc/containers/systemd/users/bluefin-dx-cli.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/bluefin-cli/bluefin-dx-cli.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/bluefin-dx-cli.container -printf "\n\n[Install]\nWantedBy=bluefin-dx-cli.target" >> /usr/etc/containers/systemd/users/bluefin-dx-cli.container +wget --output-document="/usr/etc/containers/systemd/users/bluefin-dx-cli.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/bluefin-cli/bluefin-dx-cli.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/bluefin-dx-cli.container +printf "\n\n[Install]\nWantedBy=bluefin-dx-cli.target" >>/usr/etc/containers/systemd/users/bluefin-dx-cli.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/bluefin-dx-cli.container sed -i 's/ContainerName=bluefin/ContainerName=bluefin-dx-cli/' /usr/etc/containers/systemd/users/bluefin-dx-cli.container # fedora-toolbox -wget --output-document="/usr/etc/containers/systemd/users/fedora-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/fedora-toolbox/fedora-distrobox-quadlet.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/fedora-toolbox.container -printf "\n\n[Install]\nWantedBy=fedora-toolbox.target" >> /usr/etc/containers/systemd/users/fedora-toolbox.container +wget --output-document="/usr/etc/containers/systemd/users/fedora-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/fedora-toolbox/fedora-distrobox-quadlet.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/fedora-toolbox.container +printf "\n\n[Install]\nWantedBy=fedora-toolbox.target" >>/usr/etc/containers/systemd/users/fedora-toolbox.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/fedora-toolbox.container sed -i 's/ContainerName=fedora-distrobox-quadlet/ContainerName=fedora-toolbox/' /usr/etc/containers/systemd/users/fedora-toolbox.container # ubuntu-toolbox -wget --output-document="/usr/etc/containers/systemd/users/ubuntu-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/ubuntu-toolbox/ubuntu-distrobox-quadlet.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/ubuntu-toolbox.container -printf "\n\n[Install]\nWantedBy=ubuntu-toolbox.target" >> /usr/etc/containers/systemd/users/ubuntu-toolbox.container +wget --output-document="/usr/etc/containers/systemd/users/ubuntu-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/ubuntu-toolbox/ubuntu-distrobox-quadlet.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/ubuntu-toolbox.container +printf "\n\n[Install]\nWantedBy=ubuntu-toolbox.target" >>/usr/etc/containers/systemd/users/ubuntu-toolbox.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/ubuntu-toolbox.container sed -i 's/ContainerName=ubuntu-distrobox-quadlet/ContainerName=ubuntu-toolbox/' /usr/etc/containers/systemd/users/ubuntu-toolbox.container # wolfi-toolbox wget --output-document="/usr/etc/containers/systemd/users/wolfi-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/wolfi-toolbox/wolfi-distrobox-quadlet.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/wolfi-toolbox.container -printf "\n\n[Install]\nWantedBy=wolfi-toolbox.target" >> /usr/etc/containers/systemd/users/wolfi-toolbox.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/wolfi-toolbox.container +printf "\n\n[Install]\nWantedBy=wolfi-toolbox.target" >>/usr/etc/containers/systemd/users/wolfi-toolbox.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/wolfi-toolbox.container sed -i 's/ContainerName=wolfi-quadlet/ContainerName=wolfi-toolbox/' /usr/etc/containers/systemd/users/wolfi-toolbox.container # wolfi-dx-toolbox wget --output-document="/usr/etc/containers/systemd/users/wolfi-dx-toolbox.container" --quiet https://raw.githubusercontent.com/ublue-os/toolboxes/main/quadlets/wolfi-toolbox/wolfi-dx-distrobox-quadlet.container -cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >> /usr/etc/containers/systemd/users/wolfi-dx-toolbox.container -printf "\n\n[Install]\nWantedBy=wolfi-dx-toolbox.target" >> /usr/etc/containers/systemd/users/wolfi-dx-toolbox.container +cat /usr/share/ublue-os/bluefin-cli/ptyxis-integration >>/usr/etc/containers/systemd/users/wolfi-dx-toolbox.container +printf "\n\n[Install]\nWantedBy=wolfi-dx-toolbox.target" >>/usr/etc/containers/systemd/users/wolfi-dx-toolbox.container sed -i '/AutoUpdate.*/ s/^#*/#/' /usr/etc/containers/systemd/users/wolfi-dx-toolbox.container sed -i 's/ContainerName=wolfi-quadlet/ContainerName=wolfi-dx-toolbox/' /usr/etc/containers/systemd/users/wolfi-dx-toolbox.container @@ -51,23 +58,23 @@ sed -i 's/ContainerName=wolfi-quadlet/ContainerName=wolfi-dx-toolbox/' /usr/etc/ mkdir -p /usr/lib/systemd/user mkdir -p /usr/share/ublue-os/bluefin-cli QUADLET_TARGETS=( - "bluefin-cli" - "bluefin-dx-cli" - "fedora-toolbox" - "ubuntu-toolbox" - "wolfi-toolbox" - "wolfi-dx-toolbox" + "orora-cli" + "bluefin-cli" + "bluefin-dx-cli" + "fedora-toolbox" + "ubuntu-toolbox" + "wolfi-toolbox" + "wolfi-dx-toolbox" ) -for i in "${QUADLET_TARGETS[@]}" -do -cat > "/usr/lib/systemd/user/${i}.target" <"/usr/lib/systemd/user/${i}.target" < "/usr/lib/systemd/user/${i}-update.service" <"/usr/lib/systemd/user/${i}-update.service" < "/usr/share/ublue-os/bluefin-cli/${i}.sh" <"/usr/share/ublue-os/bluefin-cli/${i}.sh" <