From ec4f09addbe4c65362dd6f542ad171bde14ce890 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Thu, 23 Feb 2023 13:17:55 +0100 Subject: debian/rules: fix version detection on testing and unstable. --- debian/rules | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'debian') diff --git a/debian/rules b/debian/rules index 3ca425f76..dac7c6e41 100755 --- a/debian/rules +++ b/debian/rules @@ -20,6 +20,26 @@ VENDOR_DEBIAN := $(shell { dpkg-vendor --is 'Debian' && echo 'yes'; } || { dpkg- ifeq ($(VENDOR_DEBIAN),yes) RELEASE_VER := $(shell /usr/bin/lsb_release -r | cut -d ':' -f'2' | sed -e 's/\s*//g' | cut -d '.' -f'1') + + # Newer Debian versions might report "n/a" for testing and unstable. + ifeq ($(RELEASE_VER),n/a) + # On these platforms, the best way to determine the system version is by + # going through "apt-cache policy". + # Note that this should only be the case for either testing or unstable. + # Other systems should have a proper version number. + # This is also why we can just drop any suites/archive names (this is + # what a= means) containing a dash character (e.g., "stable-updates") + # and only pick the first match. + RELEASE_VER := $(shell /usr/bin/apt-cache policy | grep -E 'o=(De|Rasp)bian,' | grep -E 'l=(De|Rasp)bian,' | grep -F 'c=main,' | grep -Eo 'a=[^, ]*' | sed -e 's/^a=//' | grep -v -- '-' | head -n '1') + + # Do error checking. + ifneq ($(RELEASE_VER),testing) + ifneq ($(RELEASE_VER),unstable) + $(error Release version could not be determined, sorry. Extracted value: $(RELEASE_VER)) + endif + endif + endif + # Let's fake testing's and unstable's "release version"... ifeq ($(RELEASE_VER),testing) RELEASE_VER := 999 -- cgit v1.2.3