mirror of
https://github.com/winesapOS/winesapOS.git
synced 2025-07-29 05:29:13 +00:00
parent
9b608bf226
commit
34195e9820
22 changed files with 1413 additions and 1558 deletions
.github/workflows
git/hooks
rootfs
home/winesap/.winesapos
usr/local/bin
scripts
env
repo
winesapos-build.shwinesapos-convert.shwinesapos-install.shwinesapos-setup.shwinesapos-tests.shwinesapos-upgrade.sh
13
.github/workflows/image-arch-linux-stable.yml
vendored
13
.github/workflows/image-arch-linux-stable.yml
vendored
|
@ -21,13 +21,16 @@ jobs:
|
|||
- name: Change directory
|
||||
run: cd $GITHUB_WORKSPACE
|
||||
- name: Install Bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash shellcheck
|
||||
- name: Check syntax of scripts
|
||||
run: |
|
||||
for i in $(find . -name "*.sh")
|
||||
do bash -n "${i}"
|
||||
if [ $? -ne 0 ]
|
||||
then exit 1
|
||||
for i in $(find . -name "*.sh" | sort)
|
||||
do echo "${i}"
|
||||
if ! bash -n "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
if ! shellcheck "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
- name: Obtain base docker image
|
||||
|
|
13
.github/workflows/image-arch-linux.yml
vendored
13
.github/workflows/image-arch-linux.yml
vendored
|
@ -24,13 +24,16 @@ jobs:
|
|||
- name: Change directory
|
||||
run: cd $GITHUB_WORKSPACE
|
||||
- name: Install Bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash shellcheck
|
||||
- name: Check syntax of scripts
|
||||
run: |
|
||||
for i in $(find . -name "*.sh")
|
||||
do bash -n "${i}"
|
||||
if [ $? -ne 0 ]
|
||||
then exit 1
|
||||
for i in $(find . -name "*.sh" | sort)
|
||||
do echo "${i}"
|
||||
if ! bash -n "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
if ! shellcheck "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
- name: Obtain base docker image
|
||||
|
|
13
.github/workflows/image-manjaro.yml
vendored
13
.github/workflows/image-manjaro.yml
vendored
|
@ -24,13 +24,16 @@ jobs:
|
|||
- name: Change directory
|
||||
run: cd $GITHUB_WORKSPACE
|
||||
- name: Install Bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash
|
||||
run: sudo apt-get update && sudo apt-get install -y bash shellcheck
|
||||
- name: Check syntax of scripts
|
||||
run: |
|
||||
for i in $(find . -name "*.sh")
|
||||
do bash -n "${i}"
|
||||
if [ $? -ne 0 ]
|
||||
then exit 1
|
||||
for i in $(find . -name "*.sh" | sort)
|
||||
do echo "${i}"
|
||||
if ! bash -n "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
if ! shellcheck "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
- name: Obtain base docker image
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
for i in $(find . -name "*.sh")
|
||||
do bash -n "${i}"
|
||||
if [ $? -ne 0 ]
|
||||
then exit 1
|
||||
# 'find' does not always return results in the same order so it needs to be 'sort'ed.
|
||||
for i in $(find . -name "*.sh" | sort)
|
||||
do echo "${i}"
|
||||
if ! bash -n "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
if ! shellcheck "${i}"; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
set -x
|
||||
|
||||
kdialog --title "winesapOS Upgrade" --yesno "Do you want to upgrade winesapOS?\nThis may take a long time."
|
||||
if [ $? -eq 0 ]; then
|
||||
if kdialog --title "winesapOS Upgrade" --yesno "Do you want to upgrade winesapOS?\nThis may take a long time."; then
|
||||
# The secure image requires that the "sudo" password be provided for the "winesap" user.
|
||||
# This password is also required to be reset during the first login so it is unknown.
|
||||
# Prompt the user to enter in their password.
|
||||
|
@ -11,13 +10,12 @@ if [ $? -eq 0 ]; then
|
|||
# the command "sudo -S" to read the password from standard input still works as expected.
|
||||
while true;
|
||||
do user_pw=$(kdialog --title "winesapOS Upgrade" --password 'Please enter your password (default: "winesap") to start the upgrade.')
|
||||
echo ${user_pw} | sudo -S whoami
|
||||
if [ $? -eq 0 ]; then
|
||||
if echo "${user_pw}" | sudo -S whoami; then
|
||||
# Break out of the "while" loop if the password works with the "sudo -S" command.
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
echo ${USER} > /tmp/winesapos_user_name.txt
|
||||
echo "${USER}" > /tmp/winesapos_user_name.txt
|
||||
curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-upgrade.sh | sudo -E bash
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,31 +1,30 @@
|
|||
#!/bin/bash
|
||||
# shellcheck disable=SC2010
|
||||
|
||||
echo -e "winesapOS Dual-Boot Installer (Beta)\n"
|
||||
echo "Please read the full instructions first at: https://github.com/winesapOS/winesapOS?tab=readme-ov-file#dual-boot"
|
||||
echo "USE AT YOUR OWN RISK! DATA LOSS IS POSSIBLE. CLOSE THIS WINDOW IF YOU DO NOT ACCEPT THE RISK. OTHERWISE, ENTER ANY KEY TO COTINUE."
|
||||
read -p ""
|
||||
read -r -p ""
|
||||
|
||||
export WINESAPOS_IMAGE_TYPE="$(grep VARIANT_ID /usr/lib/os-release-winesapos | cut -d = -f 2)"
|
||||
WINESAPOS_IMAGE_TYPE="$(grep VARIANT_ID /usr/lib/os-release-winesapos | cut -d = -f 2)"
|
||||
if [[ "${WINESAPOS_IMAGE_TYPE}" == "secure" ]]; then
|
||||
echo "INFO: Enter the root password when prompted..."
|
||||
sudo whoami
|
||||
fi
|
||||
|
||||
echo "INFO: Determining the correct device name..."
|
||||
ls -1 /dev/disk/by-label/winesapos-root0 &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
if ls -1 /dev/disk/by-label/winesapos-root0 &> /dev/null; then
|
||||
echo "INFO: Partition with label 'winesapos-root0' found."
|
||||
root_partition=$(ls -l /dev/disk/by-label/winesapos-root0 | grep -o -P "(hdd|mmcblk|nvme|sd).+")
|
||||
echo "DEBUG: Partition name is ${root_partition}."
|
||||
echo ${root_partition} | grep -q nvme
|
||||
if [ $? -eq 0 ]; then
|
||||
root_device=$(echo ${root_partition} | grep -P -o "/dev/nvme[0-9]+n[0-9]+")
|
||||
if echo "${root_partition}" | grep -q nvme; then
|
||||
root_device=$(echo "${root_partition}" | grep -P -o "/dev/nvme[0-9]+n[0-9]+")
|
||||
else
|
||||
echo ${root_partition} | grep -q mmcblk
|
||||
if [ $? -eq 0 ]; then
|
||||
root_device=$(echo ${root_partition} | grep -P -o "/dev/mmcblk[0-9]+")
|
||||
if echo "${root_partition}" | grep -q mmcblk; then
|
||||
root_device=$(echo "${root_partition}" | grep -P -o "/dev/mmcblk[0-9]+")
|
||||
else
|
||||
root_device=$(echo ${root_partition} | sed s'/[0-9]//'g)
|
||||
# shellcheck disable=SC2001 disable=SC2026
|
||||
root_device=$(echo "${root_partition}" | sed s'/[0-9]//'g)
|
||||
fi
|
||||
fi
|
||||
echo "DEBUG: Root device name is ${root_device}."
|
||||
|
@ -35,19 +34,17 @@ else
|
|||
fi
|
||||
|
||||
|
||||
lsblk --raw -o name,label | grep -q WOS-EFI0
|
||||
if [ $? -eq 0 ]; then
|
||||
if lsblk --raw -o name,label | grep -q WOS-EFI0; then
|
||||
echo "INFO: EFI partition label WOS-EFI0 found."
|
||||
efi_partition="/dev/disk/by-label/WOS-EFI0"
|
||||
else
|
||||
efi_partition=$(sudo fdisk -l /dev/${root_device} | grep "EFI System" | awk '{print $1}')
|
||||
echo ${efi_partition} | grep -q -o -P "(hdd|mmcblk|nvme|sd|).+"
|
||||
if [ $? -ne 0 ]; then
|
||||
efi_partition=$(sudo fdisk -l "/dev/${root_device}" | grep "EFI System" | awk '{print $1}')
|
||||
if ! echo "${efi_partition}" | grep -q -o -P "(hdd|mmcblk|nvme|sd|).+"; then
|
||||
echo "ERROR: No EFI partition found."
|
||||
exit 1
|
||||
else
|
||||
echo "INFO: Setting EFI label for a more reliable /etc/fstab later..."
|
||||
sudo fatlabel ${efi_partition} WOS-EFI0
|
||||
sudo fatlabel "${efi_partition}" WOS-EFI0
|
||||
fi
|
||||
fi
|
||||
echo "INFO: EFI partition name is ${efi_partition}."
|
||||
|
@ -70,10 +67,9 @@ winesapos_find_tarball() {
|
|||
"/run/media/${USER}/wos-drive" \
|
||||
"${HOME}/Desktop" \
|
||||
"${HOME}/Downloads"; \
|
||||
do ls -1 "${i}" 2> /dev/null | grep -q -P ".+-minimal.rootfs.tar.zst$"
|
||||
if [ $? -eq 0 ]; then
|
||||
do if ls -1 "${i}" 2> /dev/null | grep -q -P ".+-minimal.rootfs.tar.zst$"; then
|
||||
echo "${i}/$(ls -1 "${i}" | grep -P ".+-minimal.rootfs.tar.zst$" | tail -n 1)"
|
||||
return 0
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo "NONE"
|
||||
|
@ -85,9 +81,9 @@ winesapos_tarball="$(winesapos_find_tarball)"
|
|||
if [[ "${winesapos_tarball}" == "NONE" ]]; then
|
||||
echo "INFO: No winesapOS tarball found."
|
||||
WINESAPOS_VERSION_LATEST="$(curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/files/os-release-winesapos | grep VERSION_ID | cut -d = -f 2)"
|
||||
cd "${HOME}/Downloads"
|
||||
cd "${HOME}/Downloads" || exit 1
|
||||
echo "INFO: Downloading the rootfs tarball..."
|
||||
wget https://winesapos.lukeshort.cloud/repo/iso/winesapos-${WINESAPOS_VERSION_LATEST}/winesapos-${WINESAPOS_VERSION_LATEST}-minimal-rootfs.tar.zst
|
||||
wget "https://winesapos.lukeshort.cloud/repo/iso/winesapos-${WINESAPOS_VERSION_LATEST}/winesapos-${WINESAPOS_VERSION_LATEST}-minimal-rootfs.tar.zst"
|
||||
winesapos_tarball="${HOME}/Downloads/winesapos-${WINESAPOS_VERSION_LATEST}-minimal-rootfs.tar.zst"
|
||||
fi
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
set -x
|
||||
|
||||
sudo /usr/bin/dmidecode -s system-product-name | grep -P ^Mac
|
||||
if [ $? -eq 0 ]; then
|
||||
if sudo /usr/bin/dmidecode -s system-product-name | grep -P ^Mac; then
|
||||
echo "Mac hardware detected."
|
||||
/usr/bin/pactl set-sink-volume 0 0
|
||||
|
||||
|
|
|
@ -9,41 +9,40 @@ if [[ "${root_partition}" == "/dev/mapper/cryptroot" ]]; then
|
|||
# Example output: "mmcblk0p5", "nvme0n1p5", "sda5"
|
||||
root_partition_shortname=$(lsblk -o name,label | grep winesapos-luks | awk '{print $1}' | grep -o -P '[a-z]+.*')
|
||||
# Example output: 5
|
||||
root_partition_number=$(echo ${root_partition_shortname} | grep -o -P "[0-9]+$")
|
||||
root_partition_number=$(echo "${root_partition_shortname}" | grep -o -P "[0-9]+$")
|
||||
|
||||
echo ${root_partition} | grep -q nvme
|
||||
if [ $? -eq 0 ]; then
|
||||
if echo "${root_partition}" | grep -q nvme; then
|
||||
# Example output: /dev/nvme0n1
|
||||
root_device=$(echo "/dev/${root_partition_shortname}" | grep -P -o "/dev/nvme[0-9]+n[0-9]+")
|
||||
else
|
||||
echo ${root_partition} | grep -q mmcblk
|
||||
if [ $? -eq 0 ]; then
|
||||
if echo "${root_partition}" | grep -q mmcblk; then
|
||||
# Example output: /dev/mmcblk0
|
||||
# shellcheck disable=SC2026
|
||||
root_device=$(echo "/dev/${root_partition_shortname}" | grep -P -o "/dev/mmcblk[0-9]+")
|
||||
else
|
||||
# Example output: /dev/sda
|
||||
# shellcheck disable=SC2026
|
||||
root_device=$(echo "/dev/${root_partition_shortname}" | sed s'/[0-9]//'g)
|
||||
fi
|
||||
fi
|
||||
|
||||
growpart ${root_device} ${root_partition_number}
|
||||
echo "password" | cryptsetup resize ${root_partition}
|
||||
growpart "${root_device}" "${root_partition_number}"
|
||||
echo "password" | cryptsetup resize "${root_partition}"
|
||||
else
|
||||
root_partition_number=$(echo ${root_partition} | grep -o -P "[0-9]+$")
|
||||
root_partition_number=$(echo "${root_partition}" | grep -o -P "[0-9]+$")
|
||||
|
||||
echo ${root_partition} | grep -q nvme
|
||||
if [ $? -eq 0 ]; then
|
||||
root_device=$(echo ${root_partition} | grep -P -o "/dev/nvme[0-9]+n[0-9]+")
|
||||
if echo "${root_partition}" | grep -q nvme; then
|
||||
root_device=$(echo "${root_partition}" | grep -P -o "/dev/nvme[0-9]+n[0-9]+")
|
||||
else
|
||||
echo ${root_partition} | grep -q mmcblk
|
||||
if [ $? -eq 0 ]; then
|
||||
root_device=$(echo ${root_partition} | grep -P -o "/dev/mmcblk[0-9]+")
|
||||
if echo "${root_partition}" | grep -q mmcblk; then
|
||||
root_device=$(echo "${root_partition}" | grep -P -o "/dev/mmcblk[0-9]+")
|
||||
else
|
||||
root_device=$(echo ${root_partition} | sed s'/[0-9]//'g)
|
||||
# shellcheck disable=SC2001 disable=SC2026
|
||||
root_device=$(echo "${root_partition}" | sed s'/[0-9]//'g)
|
||||
fi
|
||||
fi
|
||||
|
||||
growpart ${root_device} ${root_partition_number}
|
||||
growpart "${root_device}" "${root_partition_number}"
|
||||
fi
|
||||
|
||||
btrfs filesystem resize max /
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
while true
|
||||
do journalctl --unit sddm | grep -q "Could not start Display server on"
|
||||
if [ $? -eq 0 ]; then
|
||||
do if journalctl --unit sddm | grep -q "Could not start Display server on"; then
|
||||
echo "Display manager working NOT normally."
|
||||
echo -e "winesapOS\n\nSDDM has failed to start. You are now in a TTY for troubleshooting.\nPossible causes might be a bad display server configuration or other graphical issues.\nYou can try to fix the issue here or reboot the system.\nFor more detailed logs, use \'journalctl -xe | grep sddm\'.\n\n" > /etc/issue
|
||||
/usr/bin/chvt 2
|
||||
exit
|
||||
exit
|
||||
else
|
||||
echo "Display manager working normally."
|
||||
echo -e "winesapOS\n\n" > /etc/issue
|
||||
echo -e "winesapOS\n\n" > /etc/issue
|
||||
fi
|
||||
sleep 5s
|
||||
done
|
||||
|
|
|
@ -7,8 +7,9 @@ wget https://github.com/ventoy/vtoyboot/releases/download/v${VENTOY_VER}/vtoyboo
|
|||
sudo mount vtoyboot-${VENTOY_VER}.iso /mnt
|
||||
sudo mkdir /vtoyboot
|
||||
sudo tar -xvf /mnt/vtoyboot-${VENTOY_VER}.tar.gz -C /vtoyboot
|
||||
cd /vtoyboot/vtoyboot-${VENTOY_VER}/
|
||||
cd /vtoyboot/vtoyboot-${VENTOY_VER}/ || exit 1
|
||||
sudo ./vtoyboot.sh
|
||||
# shellcheck disable=SC2164
|
||||
cd -
|
||||
sudo umount /mnt
|
||||
sudo rm -r -f /vtoyboot /vtoyboot-${VENTOY_VER}.iso
|
||||
|
|
5
scripts/env/winesapos-env-chroot.sh
vendored
5
scripts/env/winesapos-env-chroot.sh
vendored
|
@ -1,3 +1,6 @@
|
|||
. "$(dirname $0)/winesapos-env-minimal.sh"
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. "$(dirname "$0")/winesapos-env-minimal.sh"
|
||||
export \
|
||||
WINESAPOS_BUILD_CHROOT_ONLY=true
|
||||
|
|
5
scripts/env/winesapos-env-defaults.sh
vendored
5
scripts/env/winesapos-env-defaults.sh
vendored
|
@ -1,8 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
winesapos_distro_detected=$(grep -P '^ID=' /etc/os-release | cut -d= -f2)
|
||||
export \
|
||||
WINESAPOS_IMAGE_TYPE="${WINESAPOS_IMAGE_TYPE:-performance}" \
|
||||
WINESAPOS_INSTALL_DIR="${WINESAPOS_INSTALL_DIR:-/winesapos}" \
|
||||
WINESAPOS_DISTRO="${WINESAPOS_DISTRO:-arch}" \
|
||||
WINESAPOS_DISTRO_DETECTED=$(grep -P '^ID=' /etc/os-release | cut -d= -f2) \
|
||||
WINESAPOS_DISTRO_DETECTED="${winesapos_distro_detected}" \
|
||||
WINESAPOS_ENABLE_TESTING_REPO="${WINESAPOS_ENABLE_TESTING_REPO:-false}" \
|
||||
WINESAPOS_DE="${WINESAPOS_DE:-plasma}" \
|
||||
WINESAPOS_ENCRYPT="${WINESAPOS_ENCRYPT:-false}" \
|
||||
|
|
2
scripts/env/winesapos-env-minimal.sh
vendored
2
scripts/env/winesapos-env-minimal.sh
vendored
|
@ -1,3 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
export \
|
||||
WINESAPOS_IMAGE_TYPE=minimal \
|
||||
WINESAPOS_ENABLE_PORTABLE_STORAGE=false \
|
||||
|
|
2
scripts/env/winesapos-env-secure.sh
vendored
2
scripts/env/winesapos-env-secure.sh
vendored
|
@ -1,3 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
export \
|
||||
WINESAPOS_IMAGE_TYPE=secure \
|
||||
WINESAPOS_ENCRYPT=true \
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
#!/bin/bash
|
||||
# shellcheck disable=SC2164
|
||||
|
||||
set -x
|
||||
|
||||
WORK_DIR="${WORK_DIR:-/tmp}"
|
||||
OUTPUT_DIR="${OUTPUT_DIR:-/output}"
|
||||
CMD_PACMAN_INSTALL=(/usr/bin/pacman --noconfirm -S --needed)
|
||||
# Sometimes this is needed to install additional dependencies from the AUR first.
|
||||
# shellcheck disable=SC2034
|
||||
CMD_YAY_INSTALL=(yay --noconfirm -S --removemake)
|
||||
# shellcheck disable=SC2016
|
||||
echo 'MAKEFLAGS="-j $(nproc)"' | sudo tee -a /etc/makepkg.conf
|
||||
|
||||
sudo pacman -S -y -y -u --noconfirm
|
||||
|
||||
# Install yay for helping install AUR build dependencies.
|
||||
sudo -E ${CMD_PACMAN_INSTALL[*]} base-devel binutils cmake curl dkms git make tar wget
|
||||
sudo -E "${CMD_PACMAN_INSTALL[@]}" base-devel binutils cmake curl dkms git make tar wget
|
||||
export YAY_VER="12.4.1"
|
||||
sudo -E curl https://github.com/Jguer/yay/releases/download/v${YAY_VER}/yay_${YAY_VER}_x86_64.tar.gz --remote-name --location
|
||||
sudo -E tar -x -v -f yay_${YAY_VER}_x86_64.tar.gz
|
||||
|
@ -20,9 +24,11 @@ sudo rm -rf ./yay*
|
|||
|
||||
failed_builds=0
|
||||
makepkg_build_failure_check() {
|
||||
# shellcheck disable=SC2010
|
||||
if ls -1 | grep pkg\.tar; then
|
||||
echo "${1} build PASSED"
|
||||
else
|
||||
# shellcheck disable=SC2003 disable=SC2086
|
||||
failed_builds=$(expr ${failed_builds} + 1)
|
||||
echo "${1} build FAILED"
|
||||
fi
|
||||
|
@ -30,16 +36,16 @@ makepkg_build_failure_check() {
|
|||
|
||||
# Usage: makepkg_fn <PACKAGE_NAME> [install|noinstall]
|
||||
makepkg_fn() {
|
||||
cd ${WORK_DIR}
|
||||
git clone https://aur.archlinux.org/${1}.git
|
||||
cd ${1}
|
||||
cd "${WORK_DIR}"
|
||||
git clone "https://aur.archlinux.org/${1}.git"
|
||||
cd "${1}"
|
||||
if [[ "${2}" == "install" ]]; then
|
||||
makepkg -s --noconfirm -i
|
||||
else
|
||||
makepkg -s --noconfirm
|
||||
fi
|
||||
cp ./*.pkg.tar.* ${OUTPUT_DIR}
|
||||
makepkg_build_failure_check ${1}
|
||||
cp ./*.pkg.tar.* "${OUTPUT_DIR}"
|
||||
makepkg_build_failure_check "${1}"
|
||||
}
|
||||
|
||||
# Usage: makepkg_local_fn [install|noop|noinstall]
|
||||
|
@ -51,8 +57,8 @@ makepkg_local_fn() {
|
|||
else
|
||||
makepkg -s --noconfirm
|
||||
fi
|
||||
cp ./*.pkg.tar.* ${OUTPUT_DIR}
|
||||
makepkg_build_failure_check ${1}
|
||||
cp ./*.pkg.tar.* "${OUTPUT_DIR}"
|
||||
makepkg_build_failure_check "${1}"
|
||||
}
|
||||
|
||||
# A proper git configuration is required to build some packages.
|
||||
|
@ -73,6 +79,7 @@ makepkg_fn linux-apfs-rw-dkms-git
|
|||
makepkg_fn linux-firmware-asus
|
||||
makepkg_fn linux-firmware-valve
|
||||
# Remove source packages downloaded by the 'linux-firmware-valve' PKGBUILD.
|
||||
# shellcheck disable=SC2086
|
||||
rm -f ${OUTPUT_DIR}/linux-firmware-neptune* ${OUTPUT_DIR}/steamdeck-dsp-*
|
||||
makepkg_fn nexusmods-app-bin
|
||||
makepkg_fn oxp-sensors-dkms-git
|
||||
|
@ -135,37 +142,37 @@ if [[ "${WINESAPOS_REPO_BUILD_LINUX_GIT}" == "true" ]]; then
|
|||
gpg --recv-keys 79BE3E4300411886
|
||||
## Greg Kroah-Hartman:
|
||||
gpg --recv-keys 38DBBDC86092693E
|
||||
cd ${WORK_DIR}
|
||||
cd "${WORK_DIR}"
|
||||
git clone https://aur.archlinux.org/linux-git.git
|
||||
cd linux-git
|
||||
makepkg -s --noconfirm
|
||||
cp ./*.pkg.tar.zst ${OUTPUT_DIR}
|
||||
cp ./*.pkg.tar.zst "${OUTPUT_DIR}"
|
||||
makepkg_build_failure_check linux-git
|
||||
fi
|
||||
|
||||
WINESAPOS_REPO_BUILD_MESA_GIT="${WINESAPOS_REPO_BUILD_MESA_GIT:-false}"
|
||||
if [[ "${WINESAPOS_REPO_BUILD_MESA_GIT}" == "true" ]]; then
|
||||
cd ${WORK_DIR}
|
||||
cd "${WORK_DIR}"
|
||||
git clone https://aur.archlinux.org/mesa-git.git
|
||||
cd mesa-git
|
||||
makepkg -s --noconfirm
|
||||
cp ./*.pkg.tar.zst ${OUTPUT_DIR}
|
||||
cp ./*.pkg.tar.zst "${OUTPUT_DIR}"
|
||||
makepkg_build_failure_check mesa-git
|
||||
cd ${WORK_DIR}
|
||||
cd "${WORK_DIR}"
|
||||
git clone https://aur.archlinux.org/lib32-mesa-git.git
|
||||
cd lib32-mesa-git
|
||||
makepkg -s --noconfirm
|
||||
cp ./*.pkg.tar.zst ${OUTPUT_DIR}
|
||||
cp ./*.pkg.tar.zst "${OUTPUT_DIR}"
|
||||
makepkg_build_failure_check lib32-mesa-git
|
||||
fi
|
||||
|
||||
# Build Pacman repository metadata.
|
||||
WINESAPOS_REPO_BUILD_TESTING="${WINESAPOS_REPO_BUILD_TESTING:-false}"
|
||||
if [[ "${WINESAPOS_REPO_BUILD_TESTING}" == "true" ]]; then
|
||||
repo-add ${OUTPUT_DIR}/winesapos-testing.db.tar.gz ${OUTPUT_DIR}/*pkg.tar.zst
|
||||
repo-add "${OUTPUT_DIR}/winesapos-testing.db.tar.gz" "${OUTPUT_DIR}/*pkg.tar.zst"
|
||||
else
|
||||
repo-add ${OUTPUT_DIR}/winesapos.db.tar.gz ${OUTPUT_DIR}/*pkg.tar.zst
|
||||
repo-add "${OUTPUT_DIR}/winesapos.db.tar.gz" "${OUTPUT_DIR}/*pkg.tar.zst"
|
||||
fi
|
||||
|
||||
echo ${failed_builds} > ${OUTPUT_DIR}/winesapos-build-repo_exit-code.txt
|
||||
exit ${failed_builds}
|
||||
echo "${failed_builds}" > "${OUTPUT_DIR}/winesapos-build-repo_exit-code.txt"
|
||||
exit "${failed_builds}"
|
||||
|
|
|
@ -6,7 +6,8 @@ export \
|
|||
WINESAPOS_CREATE_DEVICE=true \
|
||||
WINESAPOS_BUILD_IN_VM_ONLY=false
|
||||
|
||||
if [[ ! -z "${WINESAPOS_ENV_FILE}" ]]; then
|
||||
if [[ -n "${WINESAPOS_ENV_FILE}" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "/workdir/scripts/env/${WINESAPOS_ENV_FILE}"
|
||||
fi
|
||||
|
||||
|
|
|
@ -41,13 +41,12 @@ WINESAPOS_DISTRO_DETECTED=$(grep -P '^ID=' /etc/os-release | cut -d= -f2)
|
|||
if [[ "${WINESAPOS_DISTRO_DETECTED}" == "arch" ]] || [[ "${WINESAPOS_DISTRO_DETECTED}" == "manjaro" ]]; then
|
||||
echo "Arch Linux or Manjaro detected. winesapOS conversion will attempt to install all packages."
|
||||
sudo pacman -S -y
|
||||
${CMD_PACMAN_INSTALL[*]} base-devel flatpak git wget
|
||||
"${CMD_PACMAN_INSTALL[@]}" base-devel flatpak git wget
|
||||
curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/files/os-release-winesapos --location --output /usr/lib/os-release-winesapos
|
||||
ln -s /usr/lib/os-release-winesapos /etc/os-release-winesapos
|
||||
|
||||
if [[ "${WINESAPOS_DISTRO_DETECTED}" == "arch" ]]; then
|
||||
grep -P "^\[multilib\]" /etc/pacman.conf
|
||||
if [ $? -ne 0 ]; then
|
||||
if ! grep -q -P "^\[multilib\]" /etc/pacman.conf; then
|
||||
echo "Adding the 32-bit multilb repository..."
|
||||
# 32-bit multilib libraries.
|
||||
echo -e '\n\n[multilib]\nInclude=/etc/pacman.d/mirrorlist' | sudo tee -a /etc/pacman.conf
|
||||
|
@ -56,8 +55,7 @@ if [[ "${WINESAPOS_DISTRO_DETECTED}" == "arch" ]] || [[ "${WINESAPOS_DISTRO_DETE
|
|||
fi
|
||||
fi
|
||||
|
||||
grep "\[winesapos\]" /etc/pacman.conf
|
||||
if [ $? -ne 0 ]; then
|
||||
if ! grep -q "\[winesapos\]" /etc/pacman.conf; then
|
||||
echo "Adding the winesapOS repository..."
|
||||
echo "[winesapos]" | sudo tee -a /etc/pacman.conf
|
||||
echo "Server = https://winesapos.lukeshort.cloud/repo/winesapos/\$arch/" | sudo tee -a /etc/pacman.conf
|
||||
|
@ -70,8 +68,7 @@ if [[ "${WINESAPOS_DISTRO_DETECTED}" == "arch" ]] || [[ "${WINESAPOS_DISTRO_DETE
|
|||
echo "Adding the winesapOS repository complete."
|
||||
fi
|
||||
|
||||
grep "\[chaotic-aur\]" /etc/pacman.conf
|
||||
if [ $? -ne 0 ]; then
|
||||
if ! grep -q "\[chaotic-aur\]" /etc/pacman.conf; then
|
||||
# https://aur.chaotic.cx/
|
||||
echo "Adding the Chaotic AUR repository..."
|
||||
sudo pacman-key --recv-keys 3056513887B78AEB --keyserver keyserver.ubuntu.com
|
||||
|
@ -94,8 +91,9 @@ Include = /etc/pacman.d/chaotic-mirrorlist" | sudo tee -a /etc/pacman.conf
|
|||
|
||||
echo "Installing all AUR packages..."
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
cd yay || exit 1
|
||||
makepkg -si --noconfirm
|
||||
# shellcheck disable=SC2103
|
||||
cd ..
|
||||
sudo rm -rf yay
|
||||
yay --noconfirm -S --needed --removemake \
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -5,4 +5,4 @@
|
|||
|
||||
mkdir -p output
|
||||
docker build --pull --no-cache -t winesapos-img-builder build/.
|
||||
docker run --rm -v $(pwd):/workdir --privileged=true -i winesapos-img-builder:latest /bin/bash -x scripts/winesapos-build.sh
|
||||
docker run --rm -v "$(pwd)":/workdir --privileged=true -i winesapos-img-builder:latest /bin/bash -x scripts/winesapos-build.sh
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue