diff --git a/kernel.spec b/kernel.spec index 79954d0..80fb343 100644 --- a/kernel.spec +++ b/kernel.spec @@ -409,7 +409,7 @@ Source0: ftp://ftp.kernel.org/pub/linux/kernel/v4.x/linux-%{kversion}.tar.xz Source10: perf-man-%{kversion}.tar.gz Source11: x509.genkey - +Source12: remove-binary-diff.pl Source15: merge.pl Source16: mod-extra.list Source17: mod-extra.sh @@ -1118,17 +1118,19 @@ if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then cp -al vanilla-%{kversion} vanilla-%{vanillaversion} cd vanilla-%{vanillaversion} +cp %{SOURCE12} . + # Update vanilla to the latest upstream. # (non-released_kernel case only) %if 0%{?rcrev} - xzcat %{SOURCE5000} | patch -p1 -F1 -s + xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s %if 0%{?gitrev} - xzcat %{SOURCE5001} | patch -p1 -F1 -s + xzcat %{SOURCE5001} | ./remove-binary-diff.pl | patch -p1 -F1 -s %endif %else # pre-{base_sublevel+1}-rc1 case %if 0%{?gitrev} - xzcat %{SOURCE5000} | patch -p1 -F1 -s + xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s %endif %endif git init @@ -2140,6 +2142,9 @@ fi # # %changelog +* Wed Oct 12 2016 Laura Abbott +- Add script to remove binary diffs + * Wed Oct 12 2016 Laura Abbott - 4.9.0-0.rc0.git7.1 - Linux v4.8-14109-g1573d2c - Drop the extra parallel build optiosn from perf since perf does that on diff --git a/remove-binary-diff.pl b/remove-binary-diff.pl new file mode 100755 index 0000000..520ac5d --- /dev/null +++ b/remove-binary-diff.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w +# A script to remove those terrible binary diffs from the patches which +# screw up everything and rain on my parade. + +use strict; + +my @args=@ARGV; +my @current_patch; +my $is_binary = 0; +my $cnt = 0; + +while(my $row = <>) { + # diff marks the start of a new file to check + if ($row =~ /^diff --git.*?(\S+)$/) { + if (!$is_binary) { + foreach my $line (@current_patch) { + print $line; + } + } + $is_binary = 0; + @current_patch = (); + } elsif ($row =~ /Binary files (.)* differ$/) { + $is_binary = 1; + } + push (@current_patch, $row); +} + +if (!$is_binary) { + foreach my $line (@current_patch) { + print $line; + } +}