diff mbox

UBUNTU: [Packaging] Fix regression with ABI subversions and backport

Message ID 1408131608-32289-1-git-send-email-dann.frazier@canonical.com
State New
Headers show

Commit Message

dann frazier Aug. 15, 2014, 7:40 p.m. UTC
Tim pointed out that 443b5814ee77f8c9083079ce0e6a0806e087630f broke the parsing
of backport versions, such as 8.13~14.10+ppa.1. This should fix it. I used the
following script to validate the regular expressions:

dannf@fluid:~$ cat test.sh

set -e

splitver() {
    local ver="$1"
    local abinum="$(echo $ver | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$/\1/')"
    local uploadnum="$(echo $ver | sed -r -e 's/[^\+~]*\.([^\.~]+)(~.*)?(\+.*)?$/\1/')"

    echo "$abinum $uploadnum"
}

do_test() {
    local ver="$1"
    local expected="$2"

    local actual="$(splitver $ver)"

    if [ "$actual" = "$expected" ]; then
	echo "PASS: $ver"
	return 0
    fi
    echo "FAIL: $ver split as $actual"
    return 1
}

do_test "33.58" "33 58"
do_test "33.59.58" "33.59 58"
do_test "8.13~14.10" "8 13"
do_test "8.13~14.10+ppa.1" "8 13"
do_test "8.13.99~14.10+ppa.3" "8.13 99"
dannf@fluid:~$ ./test.sh
PASS: 33.58
PASS: 33.59.58
PASS: 8.13~14.10
PASS: 8.13~14.10+ppa.1
PASS: 8.13.99~14.10+ppa.3

Signed-off-by: dann frazier <dann.frazier@canonical.com>
---
 debian/rules.d/0-common-vars.mk | 6 +++---
 debian/scripts/misc/getabis     | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

Comments

Tim Gardner Aug. 15, 2014, 8:13 p.m. UTC | #1

diff mbox

Patch

diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 629c12e..8530b62 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -61,11 +61,11 @@  ifeq ($(full_build),false)
 skipdbg=true
 endif
 
-abinum		:= $(shell echo $(revision) | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$$/\1/')$(abi_suffix)
-prev_abinum	:= $(shell echo $(prev_revision) | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$$/\1/')$(abi_suffix)
+abinum		:= $(shell echo $(revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
+prev_abinum	:= $(shell echo $(prev_revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
 abi_release	:= $(release)-$(abinum)
 
-uploadnum	:= $(shell echo $(revision) | sed -r -e 's/[^\+]*\.([^\.]+(\+.*)?$$)/\1/')
+uploadnum	:= $(shell echo $(revision) | sed -r -e 's/[^\+~]*\.([^\.~]+)(~.*)?(\+.*)?$$/\1/')
 ifneq ($(full_build),false)
   uploadnum	:= $(uploadnum)-Ubuntu
 endif
diff --git a/debian/scripts/misc/getabis b/debian/scripts/misc/getabis
index 4349499..b6db413 100755
--- a/debian/scripts/misc/getabis
+++ b/debian/scripts/misc/getabis
@@ -11,7 +11,7 @@  fi
 
 ver=$1
 revision=$2
-abi=$(echo $revision | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$/\1/')
+abi=$(echo $revision | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$/\1/')
 
 verabi=$ver-$abi
 verfull=$ver-$revision