ACK: [T/X/Z/A v2][PATCH] UBUNTU: d/s/m/insert-ubuntu-changes: use full version numbers

Stefan Bader stefan.bader at canonical.com
Wed Sep 27 20:36:18 UTC 2017


On 27.09.2017 16:23, Marcelo Henrique Cerri wrote:
> Ignore: yes
> 
> Make insert-ubuntu-changes to consider full version numbers when looping
> through debian.master/changelog entries and comparing the version number
> of each entry with the arguments passed to the script to decide which
> entries should be included in the output changelog file.
> 
> Previously, only the last number in the version was used in this
> comparison. For example, when comparing 4.4.0-50.51 and 4.4.0-83.84 only
> the numbers 51 and 84 were actually used in the comparison. That however
> might not work properly when the major version is bumped.
> 
> For instance, using "end" as 4.4.0-50.51 and "start" as 4.4.0-83.84 used
> to work fine because 84 is greater than 51. However when using "end"
> as 4.11.0-10.11 and "start" as 4.13.0-2.3, no entry was being selected
> since 3 is not greater than 11.
> 
> Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>

> ---
>  debian/scripts/misc/insert-ubuntu-changes | 32 ++++++++++++++++++++++++++-----
>  1 file changed, 27 insertions(+), 5 deletions(-)
> 
> diff --git a/debian/scripts/misc/insert-ubuntu-changes b/debian/scripts/misc/insert-ubuntu-changes
> index 9ede7f3950d7..7af9c20c1215 100755
> --- a/debian/scripts/misc/insert-ubuntu-changes
> +++ b/debian/scripts/misc/insert-ubuntu-changes
> @@ -5,8 +5,30 @@ if ($#ARGV != 2) {
>  }
>  my ($changelog, $end, $start) = @ARGV;
>  
> -$end =~ s/.*\.//;
> -$start =~ s/.*\.//;
> +$end =~ s/^\D+//;
> +$start =~ s/^\D+//;
> +
> +sub version_cmp($$) {
> +	my @a = split(/[\.-]+/, $_[0]);
> +	my @b = split(/[\.-]+/, $_[1]);
> +	for (my $i = 1;; $i++) {
> +		if (!defined $a[$i]) {
> +			if (!defined $b[$i]) {
> +				return 0;
> +			}
> +			return -1;
> +		}
> +		if (!defined $b[$i]) {
> +			return 1;
> +		}
> +		if ($a[$i] < $b[$i]) {
> +			return -1;
> +		}
> +		if ($a[$i] > $b[$i]) {
> +			return 1;
> +		}
> +	}
> +}
>  
>  my @changes = ();
>  my $output = 0;
> @@ -14,11 +36,11 @@ open(CHG, "<debian.master/changelog") ||
>  	open(CHG, "<debian/changelog") ||
>  	die "$0: debian/changelog: open failed - $!\n";
>  while (<CHG>) {
> -	if (/^\S+\s+\((.*\.(\d+))\)/) {
> -		if ($2 <= $end) {
> +	if (/^\S+\s+\((.*)\)/) {
> +		if (version_cmp($1, $end) <= -1) {
>  			last;
>  		}
> -		if ($2 == $start) {
> +		if ($1 eq $start) {
>  			$output = 1;
>  		}
>  		if ($output) {
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20170927/fd1663b6/attachment.sig>


More information about the kernel-team mailing list