From b6bf284d72905cfebfecbd6ecadaa5d93f4594d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=94=E7=A5=A5=E5=92=8C=20=20MathMiner?= Date: Mon, 10 Feb 2025 20:05:39 +0800 Subject: [PATCH] BIGTOP-4357 apply diff patches files sequence error using text sequence not number seq use numberic seq to sort patches files --- packages.gradle | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/packages.gradle b/packages.gradle index 29286653dd..3853467635 100644 --- a/packages.gradle +++ b/packages.gradle @@ -506,7 +506,22 @@ def genTasks = { target -> changelog.close() // Move patches and create "series" - def patches = new File( "$DEB_BLD_DIR/debian").list({ d, f -> f ==~ /patch.*diff/}).sort() + def patches = new File( "$DEB_BLD_DIR/debian").list({ d, f -> f ==~ /patch.*diff/}) + + // sort patches files in numberic sequence + def fileListWithNumbers = patches.collect { fileName -> + def matcher = (fileName =~ /patch(\d+)-.*/) + if (matcher.find()) { + return [fileName: fileName, number: matcher.group(1).toInteger()] + } else { + return [fileName: fileName, number: 0] + } + } + def sortedPatches = fileListWithNumbers.sort { a, b -> + a.number <=> b.number + }.collect { it.fileName } + patches = sortedPatches + if (patches.size() > 0) { mkdir("$DEB_BLD_DIR/debian/patches") def seriesWriter = new File("$DEB_BLD_DIR/debian/patches/series").newWriter() @@ -686,7 +701,22 @@ def genTasks = { target -> def specTmpFileName = "${PKG_BUILD_DIR}/rpm/SPECS/tmp_${NAME}.spec" def specFile = new File(specFileName) def specWriter = new File(specTmpFileName).newWriter() - def patches = new File("${PKG_BUILD_DIR}/rpm/SOURCES").list({ d, f -> f ==~ /patch.*diff/}).sort() + def patches = new File("${PKG_BUILD_DIR}/rpm/SOURCES").list({ d, f -> f ==~ /patch.*diff/}) + + // sort patches files in numberic sequence + def fileListWithNumbers = patches.collect { fileName -> + def matcher = (fileName =~ /patch(\d+)-.*/) + if (matcher.find()) { + return [fileName: fileName, number: matcher.group(1).toInteger()] + } else { + return [fileName: fileName, number: 0] + } + } + def sortedPatches = fileListWithNumbers.sort { a, b -> + a.number <=> b.number + }.collect { it.fileName } + patches = sortedPatches + specFile.eachLine { line -> if (line.startsWith("#BIGTOP_PATCH_FILES")) { def patchNum = 0