]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/build/freebsd-yeet.pl
ssh: Update to OpenSSH 9.5p1
[FreeBSD/FreeBSD.git] / tools / build / freebsd-yeet.pl
1 #!/usr/local/bin/perl
2 #
3 # Remove almost all of the $ FreeBSD $ tags in the tree.
4 #
5 # Copyright (c) 2023, Warner Losh
6 # SPDX-License-Identifier: BSD-2-Clause
7 #
8 # Needs p5-File-Lib package
9 # Caveat Emptor
10 #
11 use strict;
12 use warnings;
13 use File::Find;
14   
15 sub skip_list
16 {
17     my $fn = $_[0];
18
19     if ($fn =~ m=^./contrib/=) {
20         return 1;
21     }
22     if ($fn =~ m=^./sys/contrib/=) {
23         return 1;
24     }
25     if ($fn =~ m=^./cddl/contrib/=) {
26         return 1;
27     }
28     if ($fn =~ m=^./crypto/=) {
29         return 1;
30     }
31     if ($fn =~ m=^./.git/=) {
32         return 1;
33     }
34     if ($fn =~ m=~$=) {
35         return 1;
36     }
37     return 0;
38 }
39
40 my $pretty;
41 my $pattern;
42 my $repl;
43 my $count;
44 my $syshash;
45 my $hash;
46
47 sub do_one
48 {
49     $pretty = $_[0];
50     $pattern = $_[1];
51     $repl = "";
52     $repl = $_[2];
53     $syshash = $_[3];
54     $hash = $_[4];
55     $count = 0;
56
57     sub findfiles
58     {
59         return unless -f;
60         my $fn="$File::Find::name";
61         return if skip_list($fn);
62         open my $fh, '<', $_ or die "Can't open $fn: $!\n";
63         local $/;
64         my $file = <$fh>;
65         close $fh;
66         my $len = length($file);
67
68         $file =~ s=$pattern=$repl=gm;
69         my $len2 = length($file);
70         return if $len2 == $len;
71         print "$pretty: $fn\n";
72         open my $fhw, '>', $_ or die "Can't write $fn: $!\n";
73         print $fhw $file;
74         close $fhw;
75         $count++;
76     }
77
78     $count = 0;
79     find({ wanted => \&findfiles, }, './sys');
80     if ($count > 0) {
81         print "Changed $pretty\n";
82         system("git commit -a -m'sys: Remove \$FreeBSD\$: $pretty\n\nRemove /$pattern/\n\nSimilar commit in current:\n(cherry picked from commit $syshash)'");
83     }
84     $count = 0;
85     find({ wanted => \&findfiles, }, '.');
86     if ($count > 0) {
87         print "Changed $pretty\n";
88         system("git commit -a -m'Remove \$FreeBSD\$: $pretty\n\nRemove /$pattern/\n\nSimilar commit in main:\n(cherry picked from commit $hash)'");
89     }
90 }
91
92 # These are the commits to head
93 # 9524e274b548 Remove $FreeBSD$: one-line xdr pattern
94 # 26a58599a09a Remove $FreeBSD$: one-line forth tag
95 # 401ab69cff8f Remove $FreeBSD$: one-line ps tag
96 # 6ef644f5889a Remove $FreeBSD$: one-line lua tag
97 # 9636a14538f5 Remove $FreeBSD$: two-line lua tag
98 # 8c99d94c900f sys: Remove $FreeBSD$: two-line lua tag
99 # ae992a336e8d Remove $FreeBSD$: one-line catalog
100 # 2063df147163 sys: Remove $FreeBSD$: one-line catalog
101 # 05248206f720 Remove $FreeBSD$: one-line bare tag
102 # 78d146160dc5 sys: Remove $FreeBSD$: one-line bare tag
103 # b2c76c41be32 Remove $FreeBSD$: one-line nroff pattern
104 # fa9896e082a1 Remove $FreeBSD$: two-line nroff pattern
105 # 9e7892125655 sys: Remove $FreeBSD$: two-line nroff pattern
106 # d0b2dbfa0ecf Remove $FreeBSD$: one-line sh pattern
107 # 031beb4e239b sys: Remove $FreeBSD$: one-line sh pattern
108 # b1cfcffa89e6 Remove $FreeBSD$: one-line .S pattern
109 # d4bf8003ee42 sys: Remove $FreeBSD$: one-line .S pattern
110 # c8573564095b Remove $FreeBSD$: alt one-line .c pattern
111 # da5432eda807 Remove $FreeBSD$: alt two-line .c pattern
112 # 1d386b48a555 Remove $FreeBSD$: one-line .c pattern
113 # 685dc743dc3b sys: Remove $FreeBSD$: one-line .c pattern
114 # e5d258c9e599 Remove $FreeBSD$: two-line .c pattern
115 # dfc016587a1e sys: Remove $FreeBSD$: two-line .c pattern
116 # 2a63c3be1582 Remove $FreeBSD$: one-line .c comment pattern
117 # 71625ec9ad2a sys: Remove $FreeBSD$: one-line .c comment pattern
118 # 42b388439bd3 Remove $FreeBSD$: one-line .h pattern
119 # 2ff63af9b88c sys: Remove $FreeBSD$: one-line .h pattern
120 # b3e7694832e8 Remove $FreeBSD$: two-line .h pattern
121 # 95ee2897e98f sys: Remove $FreeBSD$: two-line .h pattern
122 # d54a7d337331 Remove $FreeBSD$: one-line m4 tag
123 # 82a265ad9bad sys: Remove $FreeBSD$: sound driver version
124
125 # Note: Do two line before one line
126 #       commit message                  pattern                                 replacement or ''               sys hash        src hash
127 do_one("sound driver version",          'SND_DECLARE_FILE\("\$FreeBSD\$"\);',   'SND_DECLARE_FILE("");',        '',             '82a265ad9bad');
128 do_one("one-line m4 tag",               '^dnl\s*\$FreeBSD\$.*$\n',              '',                             '',             'd54a7d337331');
129 do_one("two-line .h pattern",           '^\s*\*\n \*\s+\$FreeBSD\$$\n',         '',                             '95ee2897e98f', 'b3e7694832e8');
130 do_one("one-line .h pattern",           '^\s*\*+\s*\$FreeBSD\$.*$\n',           '',                             '2ff63af9b88c', '42b388439bd3');
131 do_one("one-line .c comment pattern",   '^/[*/]\s*\$FreeBSD\$.*\n',             '',                             '71625ec9ad2a', '2a63c3be1582');
132 do_one("two-line .c pattern",           '^#include\s+<sys/cdefs.h>.*$\n\s+__FBSDID\("\$FreeBSD\$"\);\n','',     'dfc016587a1e', 'e5d258c9e599');
133 do_one("one-line .c pattern",           '^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n', '',                          '685dc743dc3b', '1d386b48a555');
134 do_one("alt two-line .c pattern",       '^\s*__RCSID\("\$FreeBSD\$"\);\n\n',    '',                             '',             'da5432eda807');
135 do_one("alt one-line .c pattern",       '^\s*__RCSID\("\$FreeBSD\$"\);\n',      '',                             '',             'c8573564095b');
136 do_one("one-line .S pattern",           '^\s\.(asciz|ident)\s+\"\$FreeBSD\$\".*\n', '',                         'd4bf8003ee42', 'b1cfcffa89e6');
137 do_one("one-line sh pattern",           '^\s*#[#!]?\s*\$FreeBSD\$.*$\n',        '',                             '031beb4e239b', 'd0b2dbfa0ecf');
138 do_one("two-line nroff pattern",        '^\.\\\\"\n\.\\\\"\s*\$FreeBSD\$$\n',   '',                             '9e7892125655', 'fa9896e082a1');
139 do_one("one-line nroff pattern",        '^\.\\\\"\s*\$FreeBSD\$$\n',            '',                             '',             'b2c76c41be32');
140 do_one("one-line bare tag",             '^\s*\$FreeBSD\$$\n',                   '',                             '78d146160dc5', '05248206f720');
141 do_one("one-line catalog",              '^\s*\$\s*\$FreeBSD\$$\n',              '',                             '2063df147163', 'ae992a336e8d');
142 do_one("two-line lua tag",              '^--\n--\s*\$FreeBSD\$.*$\n',           '',                             '8c99d94c900f', '9636a14538f5');
143 do_one("one-line lua tag",              '^--\s*\$FreeBSD\$.*$\n',               '',                             '',             '6ef644f5889a');
144 do_one("one-line ps tag",               '^%\s*RCSID:\s*\$FreeBSD\$.*$\n',       '',                             '',             '401ab69cff8f');
145 do_one("one-line forth tag",            '^\\\\[\s*]*\$FreeBSD\$.*$\n',          '',                             '',             '26a58599a09a');
146 do_one("one-line xdr pattern",          '^\s*%\s*__FBSDID\("\$FreeBSD\$"\);?\s*\n', '',                         '',             '9524e274b548');
147 exit;