5 # Generate a kernel patch to add socketcan to a kernel src tree.
6 # The list of files to be added is read from stdin.
8 use POSIX qw(strftime);
12 if (-r "patches/$version.diff") {
13 copy_file("patches/$version.diff");
18 my ($file, $n) = split;
24 $name =~ s/[^\/]*$/$n/;
26 $name =~ s/[^\/]*\/[^\/]*\///;
28 add_file($file, $name);
34 open file, "$file" || die "open $file\n";
42 my ($file, $name) = @_;
43 my (@lines, $count, $ts, $mtime);
45 open file, "./kv $version $file |" || die "open $file\n";
48 $mtime = (stat($file))[9];
49 $ts = strftime "%F %T", gmtime((stat($file))[9]);
53 if ($lines[$i] =~ /include.*linux(\/can)?\/version\.h/) {
58 if ($lines[$i] =~ /RCSID/) {
61 while ($lines[++$i] eq "\n") {
67 if ($lines[$i] =~ /\$Id.*\$/) {
70 while ($lines[++$i] eq " *\n") {
77 print "--- a/$name 1970-01-01 00:00:00\n";
78 print "+++ b/$name $ts\n";
79 print "@@ -0,0 +1,$count @@\n";
81 print "+$_" if (defined($_));