]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - debian/scripts/misc/insert-ubuntu-changes
UBUNTU: [Packaging] resync git-ubuntu-log
[mirror_ubuntu-bionic-kernel.git] / debian / scripts / misc / insert-ubuntu-changes
1 #!/usr/bin/perl
2
3 if ($#ARGV != 2 && $#ARGV != 3) {
4 die "Usage: $0 <changelog> <stop at> <start at> [<source changelog>]\n";
5 }
6 if ($#ARGV == 2) {
7 push(@ARGV, "debian.master/changelog")
8 }
9 my ($changelog, $end, $start, $source_changelog) = @ARGV;
10
11 $end =~ s/^\D+//;
12 $start =~ s/^\D+//;
13
14 sub version_cmp($$) {
15 my @a = split(/[\.-]+/, $_[0]);
16 my @b = split(/[\.-]+/, $_[1]);
17 for (my $i = 1;; $i++) {
18 if (!defined $a[$i]) {
19 if (!defined $b[$i]) {
20 return 0;
21 }
22 return -1;
23 }
24 if (!defined $b[$i]) {
25 return 1;
26 }
27 if ($a[$i] < $b[$i]) {
28 return -1;
29 }
30 if ($a[$i] > $b[$i]) {
31 return 1;
32 }
33 }
34 }
35
36 my @changes = ();
37 my $output = 0;
38 open(CHG, "<$source_changelog") ||
39 open(CHG, "<debian/changelog") ||
40 die "$0: debian/changelog: open failed - $!\n";
41 while (<CHG>) {
42 if (/^\S+\s+\((.*)\)/) {
43 if (version_cmp($1, $end) <= 0) {
44 last;
45 }
46 if ($1 eq $start) {
47 $output = 1;
48 }
49 if ($output) {
50 push(@changes, "\n [ Ubuntu: $1 ]\n\n");
51 next;
52 }
53 }
54 next if ($output == 0);
55
56 next if (/^\s*$/);
57 next if (/^\s--/);
58 next if (/^\s\s[^\*\s]/);
59
60 push(@changes, $_);
61 }
62 close(CHG);
63
64 open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
65 open(NEW, "> $changelog.new") or die "Cannot open new changelog";
66
67 $printed = 3;
68 while (<CHANGELOG>) {
69 if (/^ CHANGELOG: /) {
70 $printed--;
71 print NEW;
72 if ($printed == 0) {
73 print NEW @changes;
74 }
75 next;
76 }
77 print NEW;
78 }
79
80 close(NEW);
81 close(CHANGELOG);
82
83 rename("$changelog.new", "$changelog");