From b997d33aaec0cfd490938bbb8e42bc142206e2ca Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Tue, 6 Oct 2026 21:30:16 +0300 Subject: [PATCH 1/2] Fix build script naming for Alpha releases Fixed a bug where text-based Git tags --- CloverPackage/makeV2 | 9 +++++++ CloverPackage/makeiso | 18 +++++++++++-- CloverPackage/makepkg | 43 ++++++++++++++++++------------- CloverPackage/package/buildpkg.sh | 6 ++++- buildme | 12 ++++++--- xbuildme | 9 ++++--- 6 files changed, 69 insertions(+), 28 deletions(-) diff --git a/CloverPackage/makeV2 b/CloverPackage/makeV2 index c3c2e9dd24..f8f44bb0fd 100755 --- a/CloverPackage/makeV2 +++ b/CloverPackage/makeV2 @@ -7,12 +7,21 @@ cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))" ROOT="$PWD" SYMROOT="${ROOT}"/sym mkdir -p "$SYMROOT" + REVISION=$(git describe --tags "$(git rev-list --tags --max-count=1)") +# Keep the traditional "r" prefix for numeric tags only. +# Non-numeric tags are used exactly as they are. +if [[ "$REVISION" =~ ^[0-9]+$ ]]; then + REVISION="r${REVISION}" +fi + # Remove previous revision zip rm -rf $SYMROOT/CloverV2-*.zip + # zip CloverV2, excluding all .empty and all .DS_Store zip -qr CloverV2-${REVISION}.zip CloverV2 -x "*/.DS_Store" "*/.empty" + mv CloverV2-${REVISION}.zip $SYMROOT open "$SYMROOT" diff --git a/CloverPackage/makeiso b/CloverPackage/makeiso index 53783cb8ea..87e920db74 100755 --- a/CloverPackage/makeiso +++ b/CloverPackage/makeiso @@ -25,6 +25,13 @@ EFIROOT=${SRCROOT}/CloverV2/EFI BASETOOLS_DIR=${SRCROOT}/../BaseTools/Source/C/bin REVISION=$(git describe --tags $(git rev-list --tags --max-count=1)) + +# Keep the traditional "r" prefix for numeric tags only. +# Non-numeric tags are used exactly as they are. +if [[ "$REVISION" =~ ^[0-9]+$ ]]; then + REVISION="r${REVISION}" +fi + PRODUCT=Clover-${REVISION} CDLABEL=${PRODUCT}-X64 ISOIMAGE=${SYMROOT}/${CDLABEL}.iso @@ -146,15 +153,18 @@ cp -f ${CLOVERROOT}/BootSectors/boot1f32 ${IMGROOT}/usr/standalone/i386 cp -f ${CLOVERROOT}/BootSectors/boot1f32alt ${IMGROOT}/usr/standalone/i386 cp -f ${CLOVERROOT}/BootSectors/boot1x ${IMGROOT}/usr/standalone/i386 cp -f ${CLOVERROOT}/BootSectors/boot1xalt ${IMGROOT}/usr/standalone/i386 + # #ifdef CONFIG_FDISK440 # cp -f ${CLOVERROOT}/BootSectors/fdisk440 ${IMGROOT}/usr/bin # #endif + rm -rf ${IMGROOT}/.s* rm -rf ${IMGROOT}/*/.s* rm -rf ${IMGROOT}/*/*/.s* rm -rf ${IMGROOT}/*/*/*/.s* rm -rf ${IMGROOT}/*/*/*/*/.s* find "${IMGROOT}" -name '.DS_Store' -exec rm -R -f {} \; 2>/dev/null + echo "[HDIUTIL] ${ISOIMAGE}" mkdir -p ${SYMROOT}/CloverISO-${REVISION} @@ -165,16 +175,20 @@ hdiutil makehybrid -iso -joliet -hfs -hfs-volume-name ${CDLABEL} \ -eltorito-boot ${CDBOOT} -no-emul-boot -ov -o "${ISOIMAGE}" \ ${IMGROOT} -quiet fi + mv -f ${ISOIMAGE} ${SYMROOT}/CloverISO-${REVISION}/ + echo "[TAR] CloverISO-${REVISION}" tar -cv -f ${SYMROOT}/CloverISO-${REVISION}.tar -C ${SYMROOT}/CloverISO-${REVISION} . + echo "[LZMA] CloverISO-${REVISION}" if [[ "$SYSNAME" == Linux ]]; then xz -f -S .lzma ${SYMROOT}/CloverISO-${REVISION}.tar else -"$BASETOOLS_DIR"/LzmaCompress -e -o ${SYMROOT}/CloverISO-${REVISION}.tar.lzma ${SYMROOT}/CloverISO-${REVISION}.tar +"$BASETOOLS_DIR"/LzmaCompress -e -o ${SYMROOT}/CloverISO-${REVISION}.tar.lzma ${SYMROOT}/CloverISO-${REVISION}.tar fi + rm -rf ${SYMROOT}/CloverISO-${REVISION}.tar # Open the final folder. @@ -183,4 +197,4 @@ if [[ "${1:-}" == "" ]]; then [[ "$SYSNAME" != Linux ]] && open sym fi -exit 0 +exit 0 \ No newline at end of file diff --git a/CloverPackage/makepkg b/CloverPackage/makepkg index 0470365205..a5df1dafc7 100755 --- a/CloverPackage/makepkg +++ b/CloverPackage/makepkg @@ -29,23 +29,30 @@ echo } while [[ $# -gt 0 ]]; do - case "${1}" in - --nothemes ) NOEXTRAS+=" --nothemes";; - # --noprefpane ) NOEXTRAS+=" --noprefpane";; - --norc ) NOEXTRAS+=" --norc";; - --nolegacy ) NOEXTRAS+=" --nolegacy";; - * ) printf "\e[1m%s\e[0m\n" "Invalid option: ${1} !"; usage; exit 1;; - esac - shift + case "${1}" in + --nothemes ) NOEXTRAS+=" --nothemes";; + # --noprefpane ) NOEXTRAS+=" --noprefpane";; + --norc ) NOEXTRAS+=" --norc";; + --nolegacy ) NOEXTRAS+=" --nolegacy";; + * ) printf "\e[1m%s\e[0m\n" "Invalid option: ${1} !"; usage; exit 1;; + esac + shift done # Workspace = edk2/Clover/CloverPackage # Go to the script directory to create the package -cd "$(dirname $0)" +cd "$(dirname "$0")" +# Get the latest Git tag. revision=$(git describe --tags $(git rev-list --tags --max-count=1)) +# Keep the traditional "r" prefix for numeric tags only. +# Non-numeric tags are used exactly as they are. +if [[ "$revision" =~ ^[0-9]+$ ]]; then + revision="r${revision}" +fi + SRCROOT="${PWD}" SYMROOT="${SRCROOT}"/sym PKG_BUILD_DIR="${SYMROOT}"/package @@ -66,7 +73,7 @@ echo "${revision}" > revision # # Create a new sym directory # mkdir sym -# Make the translation +# Make the translation echo "" echo "========= Translating Resources ========" ./package/translate.sh || exit $? @@ -83,13 +90,12 @@ if [[ -n "$xcode_path" ]]; then # make -C "${SRCROOT}"/CloverPrefpane || exit $? # Make utils make -C "${SRCROOT}"/utils || exit $? -# temporary use ready-to-use binaries -# mkdir -p "${SYMROOT}"/utils -# cp -v "${SRCROOT}"/utils/binaries/* "${SYMROOT}"/utils/ + # temporary use ready-to-use binaries + # mkdir -p "${SYMROOT}"/utils + # cp -v "${SRCROOT}"/utils/binaries/* "${SYMROOT}"/utils/ fi # Start to build installer. - package/buildpkg.sh --srcroot "$SRCROOT" --symroot "sym" --builddir "$PKG_BUILD_DIR" ${NOEXTRAS:1} || exit $? #(cd sym ; zip Clover_r${revision}.zip \ @@ -97,15 +103,16 @@ package/buildpkg.sh --srcroot "$SRCROOT" --symroot "sym" --builddir "$PKG_BUILD_ # Clover_r${revision}.pkg.md5 ) # Workspace = edk2/Clover/CloverPackage/ -# Remove temp files. -rm -f version # take this to clean old sources -rm -f revision +# Remove temp files. +rm -f version +rm -f revision # Workspace = edk2/Clover/CloverPackage + # Open the final folder. ls -la sym open sym -# Finish building installer. +# Finish building installer. exit 0 diff --git a/CloverPackage/package/buildpkg.sh b/CloverPackage/package/buildpkg.sh index 18ea7bd4aa..009bbd15aa 100755 --- a/CloverPackage/package/buildpkg.sh +++ b/CloverPackage/package/buildpkg.sh @@ -1760,7 +1760,11 @@ generateChoices() { makedistribution () { declare -r distributionDestDir="${SYMROOT}" - declare -r distributionFilename="${packagename// /}_r${CLOVER_REVISION}.pkg" + if [[ "$CLOVER_REVISION" =~ ^r[0-9]+$ ]]; then + declare -r distributionFilename="${packagename// /}_${CLOVER_REVISION}.pkg" +else + declare -r distributionFilename="${CLOVER_REVISION}.pkg" +fi declare -r distributionFilePath="${distributionDestDir}/${distributionFilename}" rm -f "${distributionDestDir}/${packagename// /}"*.pkg diff --git a/buildme b/buildme index 108f2d1fe5..ddb93cbcd4 100755 --- a/buildme +++ b/buildme @@ -45,6 +45,10 @@ declare -r CLOVERROOT="$PWD" declare -r SYSNAME="$(uname)" MYTOOLCHAIN=${1:-GCC161} revision=$(git describe --tags $(git rev-list --tags --max-count=1)) + +if [[ "$revision" =~ ^[0-9]+$ ]]; then + revision="r${revision}" +fi lsha1="not a git repo" pyversion=$(echo $COL_CYAN"Current Python version: "$COL_WHITE$($(which python3) --version)) pynone=$(echo -e "$COL_RED Python3 seems missing on this machine, it is required to build Clover ") @@ -607,7 +611,7 @@ testing() { #clear echo echo -e $COL_GREEN" ---------------------------------------------------------------------------------" -echo -e " πŸ€ Clover r${revision}$COL_WHITE (SHA: $lsha1)" +echo -e " πŸ€ Clover: ${revision}$COL_WHITE (SHA: $lsha1)" echo -e $COL_CYAN" Test Builds" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET echo -e "\n" @@ -654,7 +658,7 @@ testing Utilities() { echo echo -e $COL_GREEN" ---------------------------------------------------------------------------------" -echo -e " πŸ€ Clover r${revision}$COL_WHITE (SHA: $lsha1)" +echo -e " πŸ€ Clover: ${revision}$COL_WHITE (SHA: $lsha1)" echo -e $COL_CYAN" External Utilities " echo -e $COL_WHITE" All Files will be put on Desktop/ClovUtils" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET @@ -751,7 +755,7 @@ 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_GREEN πŸ€ Clover: ${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" if [[ -x "$(which python3)" ]]; then @@ -845,7 +849,7 @@ 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_GREEN πŸ€ Clover: ${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" diff --git a/xbuildme b/xbuildme index dd36e4545e..5db82fa3b9 100755 --- a/xbuildme +++ b/xbuildme @@ -63,7 +63,10 @@ COL_CYAN_ITALIC=$(tput sitm; tput setaf 6) # Italic Cyan COL_WHITE_ITALIC=$(tput sitm; tput setaf 7) # Italic White COL_RESET="\x1b[39;49;00m"Β  -revision=$(git describe --tags $(git rev-list --tags --max-count=1)) +revision=$(git describe --tags $(git rev-list --tags --max-count=1)) +if [[ "$revision" =~ ^[0-9]+$ ]]; then + revision="r${revision}" +fi # ====== Main Window SetUp ====== if [[ "$2" != "ci" ]]; then @@ -83,7 +86,7 @@ fi # ====== Display Menu ====== echo -e "${COL_GREEN} ---------------------------------------------------------------------------------" -echo -e "${COL_GREEN} πŸ€ Clover r${revision} ${COL_WHITE}(SHA: 64d434947)" +echo -e "${COL_GREEN} πŸ€ Clover: ${revision} ${COL_WHITE}(SHA: 644db0b82)" echo -e "${COL_WHITE} Default TOOLCHAIN: ${COL_CYAN}GCC161${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" @@ -279,7 +282,7 @@ if [[ -d .git ]]; then lsha1=$(git rev-parse --short HEAD) fi -echo "buildme, Clover v5 r${revision} (SHA: $lsha1)" +echo "buildme, Clover: ${revision} (SHA: $lsha1)" echo "TOOLCHAIN: $MYTOOLCHAIN (override example: './buildme GCC53')" echo PS3='Please enter your choice: ' From 703bb55537a6caa019556f306d7dc4fa04599151 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Tue, 6 Oct 2026 22:39:26 +0300 Subject: [PATCH 2/2] Fix build artifacts for non-numeric Git tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Fix build artifacts for non-numeric Git tags Update the Clover build scripts to correctly handle both numeric and descriptive Git tags. Previously, the build system assumed that the revision was always numeric and unconditionally added the `r` prefix. This resulted in incorrect artifact and installer version names for descriptive tags, for example: `Clover_rClover-Build-Alpha.pkg` The revision handling is now normalized as follows: * Numeric tags such as `5175` are converted to `r5175`. * Non-numeric tags such as `Clover-Build-Alpha` are used unchanged. * Composite tags such as `Clover_r5200_Clover-Build-Alpha` are also used unchanged. This is applied consistently to: * Clover package names * CloverV2 archives * Clover ISO archives * Installer version information Examples: * `5175` β†’ `Clover_r5175.pkg` * `Clover-Build-Alpha` β†’ `Clover-Build-Alpha.pkg` * `Clover_r5200_Clover-Build-Alpha` β†’ `Clover_r5200_Clover-Build-Alpha.pkg` This preserves the existing naming convention for numeric revisions while allowing descriptive Git tags to be used without generating duplicated or invalid `r` prefixes. --- CloverPackage/package/Distribution | 2 +- .../package/Resources/templates/Conclusion.html | 2 +- CloverPackage/package/Resources/templates/Welcome.html | 2 +- .../package/Scripts.templates/EFIFolder/preinstall | 2 +- CloverPackage/package/po/ro.po | 10 +++++++--- CloverPackage/package/po/uk_UA.po | 10 +++++++--- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/CloverPackage/package/Distribution b/CloverPackage/package/Distribution index e279da7316..1b177b71b3 100644 --- a/CloverPackage/package/Distribution +++ b/CloverPackage/package/Distribution @@ -12,7 +12,7 @@ - Clover r%CLOVERREVISION% EFI bootloader + Clover %CLOVERREVISION% EFI bootloader