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