summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaura Abbott <labbott@fedoraproject.org>2016-10-12 13:37:34 -0700
committerLaura Abbott <labbott@fedoraproject.org>2016-10-12 13:37:37 -0700
commit523d987dc764b6ab70c3cded2f1de090d2cbf311 (patch)
treeefa551c2f418ce6fe0009f8fc05ed39b744761f3
parent996a0fa54e63f422431f4fdf3660c8a574db2883 (diff)
downloadkernel-523d987dc764b6ab70c3cded2f1de090d2cbf311.tar.gz
kernel-523d987dc764b6ab70c3cded2f1de090d2cbf311.tar.xz
kernel-523d987dc764b6ab70c3cded2f1de090d2cbf311.zip
Add script to remove binary diffs
Once upon a time, the kernel was just a series of patches. These days, git manages most of the kernel. git can do many useful things, such as maintain binary files. Binary file changes are not easily expressed in patches and can't be applied without using git. Remove the binary diffs from any snapshot or -rc patches. We will eventually pick up the changes/deletions in the final release tarball.
-rw-r--r--kernel.spec13
-rwxr-xr-xremove-binary-diff.pl32
2 files changed, 41 insertions, 4 deletions
diff --git a/kernel.spec b/kernel.spec
index 79954d00f..80fb3437e 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 <labbott@redhat.com>
+- Add script to remove binary diffs
+
* Wed Oct 12 2016 Laura Abbott <labbott@redhat.com> - 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 000000000..520ac5d73
--- /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;
+ }
+}