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/3] 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/3] 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 @@