[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#770394: [PATCH initramfs-tools] update-initramfs: Use linux-version command to sort versions



dpkg does not know how to sort -rc and -trunk suffixes as we want.
Also, we were using the deprecated '>' version operator which will
trigger warnings in newer versions of dpkg.

Closes: #770394, #795837
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 debian/control   |  2 +-
 update-initramfs | 22 +---------------------
 2 files changed, 2 insertions(+), 22 deletions(-)

diff --git a/debian/control b/debian/control
index 4da3477..67f5c5f 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Vcs-Git: https://anonscm.debian.org/git/kernel/initramfs-tools.git
 Package: initramfs-tools
 Architecture: all
 Multi-Arch: foreign
-Depends: initramfs-tools-core, ${misc:Depends}
+Depends: initramfs-tools-core, linux-base, ${misc:Depends}
 Suggests: bash-completion
 Provides: linux-initramfs-tool
 Conflicts: linux-initramfs-tool, usplash (<< 0.5.50)
diff --git a/update-initramfs b/update-initramfs
index ea301ba..487b785 100755
--- a/update-initramfs
+++ b/update-initramfs
@@ -228,27 +228,7 @@ ro_boot_check()
 
 get_sorted_versions()
 {
-	version_list=""
-
-	for gsv_x in "${STATEDIR}"/*; do
-		gsv_x="$(basename "${gsv_x}")"
-		if [ "${gsv_x}" = '*' ]; then
-			return 0
-		fi
-		worklist=""
-		for gsv_i in $version_list; do
-			if dpkg --compare-versions "${gsv_x}" '>' "${gsv_i}" 2>/dev/null; then
-				worklist="${worklist} ${gsv_x} ${gsv_i}"
-				gsv_x=""
-			else
-				worklist="${worklist} ${gsv_i}"
-			fi
-		done
-		if [ "${gsv_x}" != "" ]; then
-			worklist="${worklist} ${gsv_x}"
-		fi
-		version_list="${worklist}"
-	done
+	version_list="$(ls -1 "${STATEDIR}" | linux-version sort --reverse)"
 
 	verbose "Available versions: ${version_list}"
 }
-- 
Ben Hutchings
Life would be so much easier if we could look at the source code.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: