From c3e539bb00805fe7b6121379f23c0cc6d75a589d Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 08:41:11 +0300 Subject: [PATCH 1/8] Improvements for better compatibility with ebuild.sh Bringing it into full compliance with ebuild.sh --- buildme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildme b/buildme index 240248c82f..3a2d53d178 100755 --- a/buildme +++ b/buildme @@ -151,8 +151,8 @@ if [[ "$SYSNAME" == Linux ]]; then local TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} elif [[ "$SYSNAME" == Darwin ]]; then pathmunge "$(xcode-select --print-path)/usr/bin" - if [[ -d "$BASE_DIR/opt/local" ]]; then - TOOLCHAIN_DIR="$BASE_DIR/opt/local" + if [[ -d "$BASE_DIR/../opt/local" ]]; then + TOOLCHAIN_DIR="$BASE_DIR/../opt/local" else TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT/toolchain"} fi From 16b7714f9785fdf8159422269eb3633b3cd26c06 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:53:31 +0300 Subject: [PATCH 2/8] Update main.yml --- .github/workflows/main.yml | 44 -------------------------------------- 1 file changed, 44 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 21357c1b6f..8b13789179 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,45 +1 @@ -name: CI -on: - push: - pull_request: - workflow_dispatch: - -jobs: - build-macos: - name: Build Clover Release - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - - name: Manage Version - run: | - git fetch --prune --unshallow --tags - echo "CUR_TAG=$(git tag -l | tail -1)" >> $GITHUB_ENV - echo "GIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - name: Install Dependencies - run: brew install p7zip - env: - HOMEBREW_NO_INSTALL_CLEANUP: 1 - HOMEBREW_NO_AUTO_UPDATE: 1 - - - name: Build Clover Pack - run: | - chmod +x ./buildme - ./buildme "" ci - - name: Prepare Release Packs - run: | - (cd "CloverPackage/CloverV2/EFI/CLOVER/" && zip -q "CLOVERX64.efi.zip" "CLOVERX64.efi" || exit 1) - (cd "CloverPackage/sym/CloverISO-${{ env.CUR_TAG }}" && 7z a Clover-${{ env.CUR_TAG }}-X64.iso.7z *.iso || exit 1) - releaseItems=(CloverPackage/sym/CloverISO*/*.7z CloverPackage/sym/CloverV2*.zip CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi.zip CloverPackage/sym/Clover_r*.pkg) - for releaseItem in "${releaseItems[@]}"; do cp -Rf "${releaseItem}" ./ || exit 1; done - - name: Upload to Artifacts - uses: actions/upload-artifact@v4 - with: - name: Clover-GCC-15.1.0-${{ env.GIT_SHA }} - path: | - *.7z - CloverV2*.zip - CLOVERX64.efi.zip - Clover_r*.pkg From dc5fa62bbaee430a58054b0f4102af62deac4f0a Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 18:25:49 +0300 Subject: [PATCH 3/8] Update main.yml --- .github/workflows/main.yml | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8b13789179..ce444e96cd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1 +1,40 @@ +name: YB + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + build-macos: + name: Build Clover Release + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - name: Manage Version + run: | + git fetch --prune --unshallow --tags + echo "CUR_TAG=$(git tag -l | tail -1)" >> $GITHUB_ENV + echo "GIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Build Clover Pack + run: | + chmod +x ./buildme + ./buildme + - name: Prepare Release Packs + run: | + (cd "CloverPackage/CloverV2/EFI/CLOVER/" && zip -q "CLOVERX64.efi.zip" "CLOVERX64.efi" || exit 1) + (cd "CloverPackage/sym/CloverISO-${{ env.CUR_TAG }}" && 7z a Clover-${{ env.CUR_TAG }}-X64.iso.7z *.iso || exit 1) + releaseItems=(CloverPackage/sym/CloverISO*/*.7z CloverPackage/sym/CloverV2*.zip CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi.zip CloverPackage/sym/Clover_r*.pkg) + for releaseItem in "${releaseItems[@]}"; do cp -Rf "${releaseItem}" ./ || exit 1; done + - name: Upload to Artifacts + uses: actions/upload-artifact@v4 + with: + name: Clover-GCC-15.1.0-${{ env.GIT_SHA }} + path: | + *.7z + CloverV2*.zip + CLOVERX64.efi.zip + Clover_r*.pkg From 84248df33fe232a50bfaa13655c69777a0500152 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 18:29:51 +0300 Subject: [PATCH 4/8] Delete buildme --- buildme | 735 -------------------------------------------------------- 1 file changed, 735 deletions(-) delete mode 100755 buildme diff --git a/buildme b/buildme deleted file mode 100755 index 3a2d53d178..0000000000 --- a/buildme +++ /dev/null @@ -1,735 +0,0 @@ -#!/bin/bash - -# created by vector sigma on July 15 2019 -# modified by LAbyOne on My 2021 -# Remastered by YBronst in Aug 2025. -# github version - -export TERM=xterm-256color -export LC_ALL=C.UTF-8 - -# Defining the base directory -BASE_DIR="$(dirname "$0")" - -# $1 argument overrides MYTOOLCHAIN variable (e.g., GCC53) -MYTOOLCHAIN="${1:-GCC151}" # Default to GCC151 if no argument provided - -# ====== COLORS ====== -# Основные цвета -COL_RED=$(tput setaf 1) # Red -COL_GREEN=$(tput setaf 2) # Green -COL_YELLOW=$(tput setaf 3) # Yellow -COL_BLUE=$(tput setaf 4) # Blue -COL_PURPLE=$(tput setaf 5) # Purple -COL_CYAN=$(tput setaf 6) # Cyan -COL_WHITE=$(tput setaf 7) # White - -# Light shades -COL_LIGHT_RED=$(tput setaf 9) # Light Red -COL_LIGHT_GREEN=$(tput setaf 10) # Light Green -COL_LIGHT_YELLOW=$(tput setaf 229) # Light Yellow (замена для setaf 11) -COL_LIGHT_BLUE=$(tput setaf 153) # Light Blue (замена для setaf 12) -COL_LIGHT_PURPLE=$(tput setaf 183) # Light Purple (замена для setaf 13) -COL_LIGHT_CYAN=$(tput setaf 14) # Light Cyan - -# Dark shades -COL_DARK_RED=$(tput setaf 124) # Dark Red -COL_DARK_GREEN=$(tput setaf 22) # Dark Green -COL_DARK_YELLOW=$(tput setaf 94) # Dark Yellow -COL_DARK_BLUE=$(tput setaf 18) # Dark Blue -COL_DARK_PURPLE=$(tput setaf 54) # Dark Purple -COL_DARK_CYAN=$(tput setaf 30) # Dark Cyan - -# Bold options -COL_RED_BOLD=$(tput bold; tput setaf 1) # Bold Red -COL_GREEN_BOLD=$(tput bold; tput setaf 2) # Bold Green -COL_YELLOW_BOLD=$(tput bold; tput setaf 3) # Bold Yellow -COL_BLUE_BOLD=$(tput bold; tput setaf 4) # Bold Blue -COL_PURPLE_BOLD=$(tput bold; tput setaf 5) # Bold Purple -COL_CYAN_BOLD=$(tput bold; tput setaf 6) # Bold Cyan -COL_WHITE_BOLD=$(tput bold; tput setaf 7) # Bold White - -# Italic variants -COL_RED_ITALIC=$(tput sitm; tput setaf 1) # Italic Red -COL_GREEN_ITALIC=$(tput sitm; tput setaf 2) # Italic Green -COL_YELLOW_ITALIC=$(tput sitm; tput setaf 3) # Italic Yellow -COL_BLUE_ITALIC=$(tput sitm; tput setaf 4) # Italic Blue -COL_PURPLE_ITALIC=$(tput sitm; tput setaf 5) # Italic Purple -COL_CYAN_ITALIC=$(tput sitm; tput setaf 6) # Italic Cyan -COL_WHITE_ITALIC=$(tput sitm; tput setaf 7) # Italic White - -# Reset all attributes -COL_RESET=$(tput sgr0) - -# Checking the availability of the Downloads folder -if [[ ! -w "$HOME/Downloads" ]]; then - echo "${COL_RED}Error: Cannot write to $HOME/Downloads. Please check permissions.${COL_RESET}" - exit 1 -fi - -# ====== Main Window SetUp ====== -if [[ "$2" != "ci" ]]; then - osascript <Locations," - echo " and select the Command Line Tools" - exit 1 -fi -} - -checkGETTEXT() { -exportPaths -local locations=($(which msgmerge)) -if [ "${#locations[@]}" -eq 0 ]; then - export GETTEXT_PREFIX="${TOOLCHAIN_DIR}" - "${CLOVERROOT}/buildgettext.sh" -else - export GETTEXT_PREFIX="$(dirname "${locations[0]}")" -fi -} - -exportPaths() { -if [[ "$SYSNAME" == Linux ]]; then - local TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} -elif [[ "$SYSNAME" == Darwin ]]; then - pathmunge "$(xcode-select --print-path)/usr/bin" - if [[ -d "$BASE_DIR/../opt/local" ]]; then - TOOLCHAIN_DIR="$BASE_DIR/../opt/local" - else - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT/toolchain"} - fi -fi - -pathmunge "$TOOLCHAIN_DIR/bin" -export TOOLCHAIN_DIR=$TOOLCHAIN_DIR -export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT/toolchain"} -export DIR_TOOLS=${DIR_TOOLS:-"$DIR_MAIN/tools"} -export DIR_DOWNLOADS=${DIR_DOWNLOADS:-"$DIR_TOOLS/download"} -export DIR_LOGS=${DIR_LOGS:-"$DIR_TOOLS/logs"} -export PREFIX=${TOOLCHAIN_DIR} -} - -checkTools() { -if [[ "$SYSNAME" == Darwin ]]; then - checkXCODE - exportPaths - local GCC151_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc" - if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC151_BIN}" ]]; then - if [[ $MYTOOLCHAIN == GCC151 ]]; then - cd "${CLOVERROOT}" - ./build_gcc15.sh - else - MYTOOLCHAIN="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" - fi - fi -else - exportPaths -fi -} - -# Clone OR Update OpenCorePkg -function clone_OpenCorePkg() { -cd "${CLOVERROOT}" -if [ ! -d OpenCorePkg/AppleModels ]; then - echo "Cloning OpenCorePkg...." - git clone https://github.com/CloverHackyColor/OpenCorePkg.git > /dev/null - cd "${OpenCorePkg}" - git submodule update --init -else - echo "Updating OpenCorePkg...." - cd "${OpenCorePkg}" - git pull > /dev/null -fi -} - -updateClover() { -echo "[UPDATE CLOVER]" -cd "${CLOVERROOT}" -clone_OpenCorePkg -if [[ -d .git ]]; then - git fetch --all --recurse-submodules - git pull --recurse-submodules origin master -else - echo "Error: this is not a git repository, can't update!" -fi -} - -updateResetClover() { -echo "[UPDATE RESET CLOVER]" -cd "${CLOVERROOT}" -if [[ -d .git ]]; then - git fetch --all --recurse-submodules - git submodule foreach --recursive git clean -d -f -f - git clean -d -f -f - git submodule foreach --recursive git reset --hard origin/master - git reset --hard origin/master - git pull --recurse-submodules origin master -else - echo "Error: this is not a git repository, can't update!" -fi -} - -buildCloverHFSPlus() { -if [[ -f "${CLOVERROOT}/FileSystems/HFSPlus/X64/HFSPlus.efi" ]]; then - echo "building Clover with HFSPlus" - buildClover HFSPlus -else - echo "${CLOVERROOT}/FileSystems/HFSPlus/X64/HFSPlus.efi: no such file!" - sleep 3 - menu -fi -} - -makeRelease() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -if [[ -z "$WORKSPACE" ]]; then - export EDK_TOOLS_PATH="${PWD}/BaseTools" - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - WORKSPACE="${PWD}" -fi - -echo "[BUILD CLOVER RELEASE]" -./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN -./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN -if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then - chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" - echo "Running Clover postbuild script" - "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -} - -makeReleaseXC() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -if [[ -z "$WORKSPACE" ]]; then - export EDK_TOOLS_PATH="${PWD}/BaseTools" - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - WORKSPACE="${PWD}" -fi - -echo "[BUILD CLOVER RELEASE WITH XCODE]" -local xrel="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" -./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $xrel -./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -t $xrel -if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then - chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" - echo "Running Clover postbuild script" - "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -} - -buildClover() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -if [[ -z "$WORKSPACE" ]]; then - export EDK_TOOLS_PATH="${PWD}/BaseTools" - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - WORKSPACE="${PWD}" -fi - -echo "[BUILD CLOVER]" -if [[ -x "${DIR_TOOLS}/Scripts/build.sh" ]]; then - echo "Running custom build script" - "${DIR_TOOLS}/Scripts/build.sh" "${CLOVERROOT}" $MYTOOLCHAIN -else - local parameter=${1:-none} - if [[ "${parameter}" == HFSPlus ]]; then - ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN - else - ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN - fi -fi -if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then - chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" - echo "Running Clover postbuild script" - "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -if [[ -x "${DIR_TOOLS}/Scripts/postbuild.sh" ]]; then - echo "Running postbuild script" - "${DIR_TOOLS}/Scripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -} - -buildCloverXC() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -if [[ -z "$WORKSPACE" ]]; then - export EDK_TOOLS_PATH="${PWD}/BaseTools" - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - WORKSPACE="${PWD}" -fi - -echo "[BUILD CLOVER WITH XCODE]" -if [[ -x "${DIR_TOOLS}/Scripts/build.sh" ]]; then - echo "Running custom build script" - "${DIR_TOOLS}/Scripts/build.sh" "${CLOVERROOT}" $MYTOOLCHAIN -else - xrel="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" - ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $xrel -fi -if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then - chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" - echo "Running Clover postbuild script" - "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -if [[ -x "${DIR_TOOLS}/Scripts/postbuild.sh" ]]; then - echo "Running postbuild script" - "${DIR_TOOLS}/Scripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN -fi -} - -buildtestsix() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -echo "[BUILD CLOVERDB]" -./hebuild.sh -t $MYTOOLCHAIN -} - -buildtestsev() { -checkTools -rm -rf "$CLOVERROOT/Conf" -mkdir "$CLOVERROOT/Conf" -cd "${CLOVERROOT}" -echo "[BUILD CLOVERDB]" -./hebuild.sh -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN -} - -buildCloverTest() { -checkTools -cd "${CLOVERROOT}" -if [[ -z "$WORKSPACE" ]]; then - export EDK_TOOLS_PATH="${PWD}/BaseTools" - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - WORKSPACE="${PWD}" -fi - -echo "[BUILD CLOVER TEST]" -./ebuild.sh -nb -t $MYTOOLCHAIN -} - -buildPkg() { -if [[ "$SYSNAME" == Darwin ]]; then - cd "${CLOVERROOT}/CloverPackage" - checkXCODE - checkGETTEXT - echo "[BUILD PKG]" - echo "The log will be created in the CloverPackage folder." - rm -f mpkg.log - make pkg | tee mpkg.log -else - echo && echo "can't build pkg on a non Darwin OS!" -fi -} - -buildApp() { -local withClover=${1-"none"} -if [[ "$SYSNAME" == Darwin ]]; then - if [[ -f "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi" ]]; then - rm -f "${CLOVERROOT}/CloverPackage/sym/.withV2" - mkdir -p "${CLOVERROOT}/CloverPackage/sym" - if [[ $withClover == withV2 ]]; then - touch "${CLOVERROOT}/CloverPackage/sym/.withV2" - fi - cd "${CLOVERROOT}/CloverApp" - echo "[BUILD APP]" - checkXCODE - make - else - echo && echo "please, build Clover first!" - sleep 3 - fi -else - echo && echo "Clover.app can only be built in macOS!" -fi -} - -buildIso() { -cd "${CLOVERROOT}/CloverPackage" -echo "[BUILD ISO]" -make iso -} - -makeV2() { -export V2=${V2:-"${CLOVERROOT}/CloverPackage/CloverV2"} -if [[ -f "$V2/EFI/CLOVER/CLOVERX64.efi" ]]; then - cd "${CLOVERROOT}/CloverPackage" - echo "" && echo -e "${COL_CYAN}[BUILD CloverV2]" - make zip -else - echo "" && echo -e "${COL_RED}please, Compile Clover first!!" - sleep 3 -fi -} - -checkStatus() { -if [[ -d .git ]]; then - git fetch --recurse-submodules origin - git log -n 1 > "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt - git status >> "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt - git submodule foreach --recursive "git log -n 1 && git status" >> "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt && open "${DIR_OUT}"/status_${revision}-*.txt -else - echo "Error: this is not a git repository, can't get info!" -fi -} - -showdiff() { -if [[ -d .git ]]; then - git fetch --recurse-submodules origin - git diff > "${DIR_OUT}"/diff_${revision}-$(date +%Y%m%d-%H.%M.%S).txt && open "${DIR_OUT}"/diff_${revision}-*.txt -else - echo "Error: this is not a git repository, can't get info!" -fi -} - -cleanBaseTools() { -cd "${CLOVERROOT}/BaseTools" -make clean -} - -makeBaseTools() { -cd "${CLOVERROOT}" -make -C BaseTools "BUILD_CC=clang" -} - -testing() { -echo -echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" -echo -e " 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" -echo -e "${COL_CYAN} Test Builds${COL_RESET}" -echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" -echo -e "\n\n\n\n\n\n\n\n\n\n\n" - -PS3=' -Please enter your choice: ' -options=( 'test Clover with boot6' - 'test Clover with boot7' - 'test build (no autogen, no boot files)' - 'back to Cloverbuilds' - 'Exit') -select opt in "${options[@]}" -do - case $opt in - "test Clover with boot6") - buildtestsix - break - ;; - "test Clover with boot7") - buildtestsev - break - ;; - "test build (no autogen, no boot files)") - buildCloverTest - break - ;; - "back to Cloverbuilds") - menu - break - ;; - "Exit") - exit - break - ;; - *) - echo "invalid option $REPLY" - break - ;; - esac -done -testing -} - -Extra() { -echo -echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" -if [[ ! -x "$(which python3)" ]]; then - echo -e " ${pynone}" -fi -echo -e "${COL_GREEN} 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" -echo -e "${COL_WHITE} Default TOOLCHAIN:${COL_CYAN} $MYTOOLCHAIN${COL_WHITE}" -echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} can be done on${COL_CYAN} Cloverbuilds${COL_RESET}" -if [[ -x "$(which python3)" ]]; then - echo -e "${COL_GREEN} ---------------------- ${pyversion}${COL_GREEN} -------------------- ${COL_RESET}" - echo -e "\n\n\n\n\n\n\n\n\n\n" -else - echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" - echo -e "\n\n\n\n\n\n\n\n\n" -fi -PS3=' -Please enter your choice:' -options=( 'back to main menu' - 'make BaseTools' - 'test Clover' - 'check status' - 'show diff' - 'open CloverV2 directory' - 'update Clover (reset changes)' - 'clean BaseTools' - 'Exit') - -select opt in "${options[@]}" -do - case $opt in - "back to main menu") - menu - break - ;; - "make BaseTools") - makeBaseTools - break - ;; - "test Clover") - testing - break - ;; - "check status") - checkStatus - break - ;; - "show diff") - showdiff - break - ;; - "open CloverV2 directory") - if [[ -d "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER" ]]; then - open "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER" - else - echo && echo "Directory not found. Compile Clover first!!" - sleep 2 - fi - break - ;; - "update Clover (reset changes)") - read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - updateResetClover - fi - break - ;; - "clean BaseTools") - read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - cleanBaseTools - fi - break - ;; - "Utilities") - Utilities - break - ;; - "Exit") - exit 0 - ;; - *) - echo "invalid option $REPLY" - break - ;; - esac -done -Extra -} - -menu() { -echo -echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" -if [[ ! -x "$(which python3)" ]]; then - echo -e " ${pynone}" -fi -echo -e "${COL_GREEN} 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" -echo -e "${COL_WHITE} Default TOOLCHAIN:${COL_CYAN} $MYTOOLCHAIN${COL_WHITE}" -echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} select:${COL_CYAN} build (with XCode)" -echo -e "${COL_WHITE} Depending on your${COL_CYAN} XCODE version${COL_WHITE} the Toolset will be${COL_CYAN} automatically chosen" -if [[ -x "$(which python3)" ]]; then - echo -e "${COL_GREEN} ---------------------- ${pyversion}${COL_GREEN} -------------------- ${COL_RESET}" - echo -e "\n\n\n\n\n\n\n" -else - echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" - echo -e "\n\n\n\n\n\n\n" -fi -PS3=' -Please enter your choice: ' -options=( 'build Clover (Default Toolchain)' - 'build all (Default Toolchain)' - 'make Release (Default Toolchain)' - 'update Clover' - 'make pkg' - 'make iso' - 'make Clover_V2' - 'build Clover (with XCode)' - 'build all (with XCode)' - 'make Release (with XCode)' - 'build Clover with HFSPlus' - 'Extra Options' - 'Exit') - -select opt in "${options[@]}" -do - case $opt in - "build Clover (Default Toolchain)") - buildClover - break - ;; - "build all (Default Toolchain)") - buildClover - buildPkg - buildIso - makeV2 - break - ;; - "make Release (Default Toolchain)") - makeRelease - buildPkg - buildIso - makeV2 - break - ;; - "update Clover") - updateClover - break - ;; - "make pkg") - buildPkg - break - ;; - "make iso") - buildIso - break - ;; - "make Clover_V2") - makeV2 - break - ;; - "build Clover (with XCode)") - buildCloverXC - break - ;; - "build all (with XCode)") - buildCloverXC - buildPkg - buildIso - makeV2 - break - ;; - "make Release (with XCode)") - makeReleaseXC - buildPkg - buildIso - makeV2 - break - ;; - "build Clover with HFSPlus") - buildCloverHFSPlus - break - ;; - "Extra Options") - Extra - break - ;; - "Exit") - exit 0 - ;; - *) - echo "invalid option $REPLY" - break - ;; - esac -done -menu -} - -# Main -clone_OpenCorePkg -set -e -if [[ "$2" == ci ]]; then - makeRelease - buildPkg - buildIso - makeV2 -else - menu -fi From ee2b5b19c531a1a5feeec2808d6147dc2366c1ae Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 18:31:17 +0300 Subject: [PATCH 5/8] Add files via upload --- buildme | 735 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 735 insertions(+) create mode 100644 buildme diff --git a/buildme b/buildme new file mode 100644 index 0000000000..3a2d53d178 --- /dev/null +++ b/buildme @@ -0,0 +1,735 @@ +#!/bin/bash + +# created by vector sigma on July 15 2019 +# modified by LAbyOne on My 2021 +# Remastered by YBronst in Aug 2025. +# github version + +export TERM=xterm-256color +export LC_ALL=C.UTF-8 + +# Defining the base directory +BASE_DIR="$(dirname "$0")" + +# $1 argument overrides MYTOOLCHAIN variable (e.g., GCC53) +MYTOOLCHAIN="${1:-GCC151}" # Default to GCC151 if no argument provided + +# ====== COLORS ====== +# Основные цвета +COL_RED=$(tput setaf 1) # Red +COL_GREEN=$(tput setaf 2) # Green +COL_YELLOW=$(tput setaf 3) # Yellow +COL_BLUE=$(tput setaf 4) # Blue +COL_PURPLE=$(tput setaf 5) # Purple +COL_CYAN=$(tput setaf 6) # Cyan +COL_WHITE=$(tput setaf 7) # White + +# Light shades +COL_LIGHT_RED=$(tput setaf 9) # Light Red +COL_LIGHT_GREEN=$(tput setaf 10) # Light Green +COL_LIGHT_YELLOW=$(tput setaf 229) # Light Yellow (замена для setaf 11) +COL_LIGHT_BLUE=$(tput setaf 153) # Light Blue (замена для setaf 12) +COL_LIGHT_PURPLE=$(tput setaf 183) # Light Purple (замена для setaf 13) +COL_LIGHT_CYAN=$(tput setaf 14) # Light Cyan + +# Dark shades +COL_DARK_RED=$(tput setaf 124) # Dark Red +COL_DARK_GREEN=$(tput setaf 22) # Dark Green +COL_DARK_YELLOW=$(tput setaf 94) # Dark Yellow +COL_DARK_BLUE=$(tput setaf 18) # Dark Blue +COL_DARK_PURPLE=$(tput setaf 54) # Dark Purple +COL_DARK_CYAN=$(tput setaf 30) # Dark Cyan + +# Bold options +COL_RED_BOLD=$(tput bold; tput setaf 1) # Bold Red +COL_GREEN_BOLD=$(tput bold; tput setaf 2) # Bold Green +COL_YELLOW_BOLD=$(tput bold; tput setaf 3) # Bold Yellow +COL_BLUE_BOLD=$(tput bold; tput setaf 4) # Bold Blue +COL_PURPLE_BOLD=$(tput bold; tput setaf 5) # Bold Purple +COL_CYAN_BOLD=$(tput bold; tput setaf 6) # Bold Cyan +COL_WHITE_BOLD=$(tput bold; tput setaf 7) # Bold White + +# Italic variants +COL_RED_ITALIC=$(tput sitm; tput setaf 1) # Italic Red +COL_GREEN_ITALIC=$(tput sitm; tput setaf 2) # Italic Green +COL_YELLOW_ITALIC=$(tput sitm; tput setaf 3) # Italic Yellow +COL_BLUE_ITALIC=$(tput sitm; tput setaf 4) # Italic Blue +COL_PURPLE_ITALIC=$(tput sitm; tput setaf 5) # Italic Purple +COL_CYAN_ITALIC=$(tput sitm; tput setaf 6) # Italic Cyan +COL_WHITE_ITALIC=$(tput sitm; tput setaf 7) # Italic White + +# Reset all attributes +COL_RESET=$(tput sgr0) + +# Checking the availability of the Downloads folder +if [[ ! -w "$HOME/Downloads" ]]; then + echo "${COL_RED}Error: Cannot write to $HOME/Downloads. Please check permissions.${COL_RESET}" + exit 1 +fi + +# ====== Main Window SetUp ====== +if [[ "$2" != "ci" ]]; then + osascript <Locations," + echo " and select the Command Line Tools" + exit 1 +fi +} + +checkGETTEXT() { +exportPaths +local locations=($(which msgmerge)) +if [ "${#locations[@]}" -eq 0 ]; then + export GETTEXT_PREFIX="${TOOLCHAIN_DIR}" + "${CLOVERROOT}/buildgettext.sh" +else + export GETTEXT_PREFIX="$(dirname "${locations[0]}")" +fi +} + +exportPaths() { +if [[ "$SYSNAME" == Linux ]]; then + local TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} +elif [[ "$SYSNAME" == Darwin ]]; then + pathmunge "$(xcode-select --print-path)/usr/bin" + if [[ -d "$BASE_DIR/../opt/local" ]]; then + TOOLCHAIN_DIR="$BASE_DIR/../opt/local" + else + TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT/toolchain"} + fi +fi + +pathmunge "$TOOLCHAIN_DIR/bin" +export TOOLCHAIN_DIR=$TOOLCHAIN_DIR +export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT/toolchain"} +export DIR_TOOLS=${DIR_TOOLS:-"$DIR_MAIN/tools"} +export DIR_DOWNLOADS=${DIR_DOWNLOADS:-"$DIR_TOOLS/download"} +export DIR_LOGS=${DIR_LOGS:-"$DIR_TOOLS/logs"} +export PREFIX=${TOOLCHAIN_DIR} +} + +checkTools() { +if [[ "$SYSNAME" == Darwin ]]; then + checkXCODE + exportPaths + local GCC151_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc" + if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC151_BIN}" ]]; then + if [[ $MYTOOLCHAIN == GCC151 ]]; then + cd "${CLOVERROOT}" + ./build_gcc15.sh + else + MYTOOLCHAIN="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" + fi + fi +else + exportPaths +fi +} + +# Clone OR Update OpenCorePkg +function clone_OpenCorePkg() { +cd "${CLOVERROOT}" +if [ ! -d OpenCorePkg/AppleModels ]; then + echo "Cloning OpenCorePkg...." + git clone https://github.com/CloverHackyColor/OpenCorePkg.git > /dev/null + cd "${OpenCorePkg}" + git submodule update --init +else + echo "Updating OpenCorePkg...." + cd "${OpenCorePkg}" + git pull > /dev/null +fi +} + +updateClover() { +echo "[UPDATE CLOVER]" +cd "${CLOVERROOT}" +clone_OpenCorePkg +if [[ -d .git ]]; then + git fetch --all --recurse-submodules + git pull --recurse-submodules origin master +else + echo "Error: this is not a git repository, can't update!" +fi +} + +updateResetClover() { +echo "[UPDATE RESET CLOVER]" +cd "${CLOVERROOT}" +if [[ -d .git ]]; then + git fetch --all --recurse-submodules + git submodule foreach --recursive git clean -d -f -f + git clean -d -f -f + git submodule foreach --recursive git reset --hard origin/master + git reset --hard origin/master + git pull --recurse-submodules origin master +else + echo "Error: this is not a git repository, can't update!" +fi +} + +buildCloverHFSPlus() { +if [[ -f "${CLOVERROOT}/FileSystems/HFSPlus/X64/HFSPlus.efi" ]]; then + echo "building Clover with HFSPlus" + buildClover HFSPlus +else + echo "${CLOVERROOT}/FileSystems/HFSPlus/X64/HFSPlus.efi: no such file!" + sleep 3 + menu +fi +} + +makeRelease() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +if [[ -z "$WORKSPACE" ]]; then + export EDK_TOOLS_PATH="${PWD}/BaseTools" + set +u + source ./edksetup.sh BaseTools + set -u + cd "$CLOVERROOT" + WORKSPACE="${PWD}" +fi + +echo "[BUILD CLOVER RELEASE]" +./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN +./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN +if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then + chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" + echo "Running Clover postbuild script" + "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +} + +makeReleaseXC() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +if [[ -z "$WORKSPACE" ]]; then + export EDK_TOOLS_PATH="${PWD}/BaseTools" + set +u + source ./edksetup.sh BaseTools + set -u + cd "$CLOVERROOT" + WORKSPACE="${PWD}" +fi + +echo "[BUILD CLOVER RELEASE WITH XCODE]" +local xrel="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" +./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $xrel +./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -t $xrel +if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then + chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" + echo "Running Clover postbuild script" + "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +} + +buildClover() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +if [[ -z "$WORKSPACE" ]]; then + export EDK_TOOLS_PATH="${PWD}/BaseTools" + set +u + source ./edksetup.sh BaseTools + set -u + cd "$CLOVERROOT" + WORKSPACE="${PWD}" +fi + +echo "[BUILD CLOVER]" +if [[ -x "${DIR_TOOLS}/Scripts/build.sh" ]]; then + echo "Running custom build script" + "${DIR_TOOLS}/Scripts/build.sh" "${CLOVERROOT}" $MYTOOLCHAIN +else + local parameter=${1:-none} + if [[ "${parameter}" == HFSPlus ]]; then + ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN + else + ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN + fi +fi +if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then + chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" + echo "Running Clover postbuild script" + "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +if [[ -x "${DIR_TOOLS}/Scripts/postbuild.sh" ]]; then + echo "Running postbuild script" + "${DIR_TOOLS}/Scripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +} + +buildCloverXC() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +if [[ -z "$WORKSPACE" ]]; then + export EDK_TOOLS_PATH="${PWD}/BaseTools" + set +u + source ./edksetup.sh BaseTools + set -u + cd "$CLOVERROOT" + WORKSPACE="${PWD}" +fi + +echo "[BUILD CLOVER WITH XCODE]" +if [[ -x "${DIR_TOOLS}/Scripts/build.sh" ]]; then + echo "Running custom build script" + "${DIR_TOOLS}/Scripts/build.sh" "${CLOVERROOT}" $MYTOOLCHAIN +else + xrel="XCODE$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString | cut -d. -f1)" + ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $xrel +fi +if [[ -x "${DIR_TOOLS}/CloverScripts/postbuild.sh" ]]; then + chmod +x "${DIR_TOOLS}/CloverScripts/postbuild.sh" + echo "Running Clover postbuild script" + "${DIR_TOOLS}/CloverScripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +if [[ -x "${DIR_TOOLS}/Scripts/postbuild.sh" ]]; then + echo "Running postbuild script" + "${DIR_TOOLS}/Scripts/postbuild.sh" "${CLOVERROOT}" $MYTOOLCHAIN +fi +} + +buildtestsix() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +echo "[BUILD CLOVERDB]" +./hebuild.sh -t $MYTOOLCHAIN +} + +buildtestsev() { +checkTools +rm -rf "$CLOVERROOT/Conf" +mkdir "$CLOVERROOT/Conf" +cd "${CLOVERROOT}" +echo "[BUILD CLOVERDB]" +./hebuild.sh -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN +} + +buildCloverTest() { +checkTools +cd "${CLOVERROOT}" +if [[ -z "$WORKSPACE" ]]; then + export EDK_TOOLS_PATH="${PWD}/BaseTools" + set +u + source ./edksetup.sh BaseTools + set -u + cd "$CLOVERROOT" + WORKSPACE="${PWD}" +fi + +echo "[BUILD CLOVER TEST]" +./ebuild.sh -nb -t $MYTOOLCHAIN +} + +buildPkg() { +if [[ "$SYSNAME" == Darwin ]]; then + cd "${CLOVERROOT}/CloverPackage" + checkXCODE + checkGETTEXT + echo "[BUILD PKG]" + echo "The log will be created in the CloverPackage folder." + rm -f mpkg.log + make pkg | tee mpkg.log +else + echo && echo "can't build pkg on a non Darwin OS!" +fi +} + +buildApp() { +local withClover=${1-"none"} +if [[ "$SYSNAME" == Darwin ]]; then + if [[ -f "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi" ]]; then + rm -f "${CLOVERROOT}/CloverPackage/sym/.withV2" + mkdir -p "${CLOVERROOT}/CloverPackage/sym" + if [[ $withClover == withV2 ]]; then + touch "${CLOVERROOT}/CloverPackage/sym/.withV2" + fi + cd "${CLOVERROOT}/CloverApp" + echo "[BUILD APP]" + checkXCODE + make + else + echo && echo "please, build Clover first!" + sleep 3 + fi +else + echo && echo "Clover.app can only be built in macOS!" +fi +} + +buildIso() { +cd "${CLOVERROOT}/CloverPackage" +echo "[BUILD ISO]" +make iso +} + +makeV2() { +export V2=${V2:-"${CLOVERROOT}/CloverPackage/CloverV2"} +if [[ -f "$V2/EFI/CLOVER/CLOVERX64.efi" ]]; then + cd "${CLOVERROOT}/CloverPackage" + echo "" && echo -e "${COL_CYAN}[BUILD CloverV2]" + make zip +else + echo "" && echo -e "${COL_RED}please, Compile Clover first!!" + sleep 3 +fi +} + +checkStatus() { +if [[ -d .git ]]; then + git fetch --recurse-submodules origin + git log -n 1 > "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt + git status >> "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt + git submodule foreach --recursive "git log -n 1 && git status" >> "${DIR_OUT}"/status_${revision}-$(date +%Y%m%d-%H.%M.%S).txt && open "${DIR_OUT}"/status_${revision}-*.txt +else + echo "Error: this is not a git repository, can't get info!" +fi +} + +showdiff() { +if [[ -d .git ]]; then + git fetch --recurse-submodules origin + git diff > "${DIR_OUT}"/diff_${revision}-$(date +%Y%m%d-%H.%M.%S).txt && open "${DIR_OUT}"/diff_${revision}-*.txt +else + echo "Error: this is not a git repository, can't get info!" +fi +} + +cleanBaseTools() { +cd "${CLOVERROOT}/BaseTools" +make clean +} + +makeBaseTools() { +cd "${CLOVERROOT}" +make -C BaseTools "BUILD_CC=clang" +} + +testing() { +echo +echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" +echo -e " 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" +echo -e "${COL_CYAN} Test Builds${COL_RESET}" +echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" +echo -e "\n\n\n\n\n\n\n\n\n\n\n" + +PS3=' +Please enter your choice: ' +options=( 'test Clover with boot6' + 'test Clover with boot7' + 'test build (no autogen, no boot files)' + 'back to Cloverbuilds' + 'Exit') +select opt in "${options[@]}" +do + case $opt in + "test Clover with boot6") + buildtestsix + break + ;; + "test Clover with boot7") + buildtestsev + break + ;; + "test build (no autogen, no boot files)") + buildCloverTest + break + ;; + "back to Cloverbuilds") + menu + break + ;; + "Exit") + exit + break + ;; + *) + echo "invalid option $REPLY" + break + ;; + esac +done +testing +} + +Extra() { +echo +echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" +if [[ ! -x "$(which python3)" ]]; then + echo -e " ${pynone}" +fi +echo -e "${COL_GREEN} 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" +echo -e "${COL_WHITE} Default TOOLCHAIN:${COL_CYAN} $MYTOOLCHAIN${COL_WHITE}" +echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} can be done on${COL_CYAN} Cloverbuilds${COL_RESET}" +if [[ -x "$(which python3)" ]]; then + echo -e "${COL_GREEN} ---------------------- ${pyversion}${COL_GREEN} -------------------- ${COL_RESET}" + echo -e "\n\n\n\n\n\n\n\n\n\n" +else + echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" + echo -e "\n\n\n\n\n\n\n\n\n" +fi +PS3=' +Please enter your choice:' +options=( 'back to main menu' + 'make BaseTools' + 'test Clover' + 'check status' + 'show diff' + 'open CloverV2 directory' + 'update Clover (reset changes)' + 'clean BaseTools' + 'Exit') + +select opt in "${options[@]}" +do + case $opt in + "back to main menu") + menu + break + ;; + "make BaseTools") + makeBaseTools + break + ;; + "test Clover") + testing + break + ;; + "check status") + checkStatus + break + ;; + "show diff") + showdiff + break + ;; + "open CloverV2 directory") + if [[ -d "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER" ]]; then + open "${CLOVERROOT}/CloverPackage/CloverV2/EFI/CLOVER" + else + echo && echo "Directory not found. Compile Clover first!!" + sleep 2 + fi + break + ;; + "update Clover (reset changes)") + read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + updateResetClover + fi + break + ;; + "clean BaseTools") + read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + cleanBaseTools + fi + break + ;; + "Utilities") + Utilities + break + ;; + "Exit") + exit 0 + ;; + *) + echo "invalid option $REPLY" + break + ;; + esac +done +Extra +} + +menu() { +echo +echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" +if [[ ! -x "$(which python3)" ]]; then + echo -e " ${pynone}" +fi +echo -e "${COL_GREEN} 🍀 Clover r${revision}${COL_WHITE} (SHA: ${lsha1})" +echo -e "${COL_WHITE} Default TOOLCHAIN:${COL_CYAN} $MYTOOLCHAIN${COL_WHITE}" +echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} select:${COL_CYAN} build (with XCode)" +echo -e "${COL_WHITE} Depending on your${COL_CYAN} XCODE version${COL_WHITE} the Toolset will be${COL_CYAN} automatically chosen" +if [[ -x "$(which python3)" ]]; then + echo -e "${COL_GREEN} ---------------------- ${pyversion}${COL_GREEN} -------------------- ${COL_RESET}" + echo -e "\n\n\n\n\n\n\n" +else + echo -e "${COL_GREEN} ---------------------------------------------------------------------------------${COL_RESET}" + echo -e "\n\n\n\n\n\n\n" +fi +PS3=' +Please enter your choice: ' +options=( 'build Clover (Default Toolchain)' + 'build all (Default Toolchain)' + 'make Release (Default Toolchain)' + 'update Clover' + 'make pkg' + 'make iso' + 'make Clover_V2' + 'build Clover (with XCode)' + 'build all (with XCode)' + 'make Release (with XCode)' + 'build Clover with HFSPlus' + 'Extra Options' + 'Exit') + +select opt in "${options[@]}" +do + case $opt in + "build Clover (Default Toolchain)") + buildClover + break + ;; + "build all (Default Toolchain)") + buildClover + buildPkg + buildIso + makeV2 + break + ;; + "make Release (Default Toolchain)") + makeRelease + buildPkg + buildIso + makeV2 + break + ;; + "update Clover") + updateClover + break + ;; + "make pkg") + buildPkg + break + ;; + "make iso") + buildIso + break + ;; + "make Clover_V2") + makeV2 + break + ;; + "build Clover (with XCode)") + buildCloverXC + break + ;; + "build all (with XCode)") + buildCloverXC + buildPkg + buildIso + makeV2 + break + ;; + "make Release (with XCode)") + makeReleaseXC + buildPkg + buildIso + makeV2 + break + ;; + "build Clover with HFSPlus") + buildCloverHFSPlus + break + ;; + "Extra Options") + Extra + break + ;; + "Exit") + exit 0 + ;; + *) + echo "invalid option $REPLY" + break + ;; + esac +done +menu +} + +# Main +clone_OpenCorePkg +set -e +if [[ "$2" == ci ]]; then + makeRelease + buildPkg + buildIso + makeV2 +else + menu +fi From a5528036eff8f46c43f0fd6ac6c6f45a3de873fa Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 8 Sep 2025 18:44:29 +0300 Subject: [PATCH 6/8] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ce444e96cd..173e71913f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: YB +name: YBronst on: push: From f407c7b1052f9a0bd5832e606be3eda83e5c49a7 Mon Sep 17 00:00:00 2001 From: YBronst Date: Mon, 8 Sep 2025 18:59:08 +0300 Subject: [PATCH 7/8] Update buildme --- buildme | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 buildme diff --git a/buildme b/buildme old mode 100644 new mode 100755 From 5296448486345495f99b5dd1f93241b9a1888f84 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Tue, 9 Sep 2025 01:46:28 +0300 Subject: [PATCH 8/8] Delete .github/workflows/main.yml --- .github/workflows/main.yml | 40 -------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 173e71913f..0000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: YBronst - -on: - push: - pull_request: - workflow_dispatch: - -jobs: - build-macos: - name: Build Clover Release - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - - name: Manage Version - run: | - git fetch --prune --unshallow --tags - echo "CUR_TAG=$(git tag -l | tail -1)" >> $GITHUB_ENV - echo "GIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - name: Build Clover Pack - run: | - chmod +x ./buildme - ./buildme - - name: Prepare Release Packs - run: | - (cd "CloverPackage/CloverV2/EFI/CLOVER/" && zip -q "CLOVERX64.efi.zip" "CLOVERX64.efi" || exit 1) - (cd "CloverPackage/sym/CloverISO-${{ env.CUR_TAG }}" && 7z a Clover-${{ env.CUR_TAG }}-X64.iso.7z *.iso || exit 1) - releaseItems=(CloverPackage/sym/CloverISO*/*.7z CloverPackage/sym/CloverV2*.zip CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi.zip CloverPackage/sym/Clover_r*.pkg) - for releaseItem in "${releaseItems[@]}"; do cp -Rf "${releaseItem}" ./ || exit 1; done - - name: Upload to Artifacts - uses: actions/upload-artifact@v4 - with: - name: Clover-GCC-15.1.0-${{ env.GIT_SHA }} - path: | - *.7z - CloverV2*.zip - CLOVERX64.efi.zip - Clover_r*.pkg -