Here's a recipe for generating fpc-arm64-part1.patch, or something very like it:
mkdir a b wget http://http.debian.net/debian/pool/main/f/fpc/fpc_3.0.0~rc1+dfsg.orig.tar.gz tar xzf fpc_3.0.0~rc1+dfsg.orig.tar.gz -C a --strip-components=1 svn export http://svn.freepascal.org/svn/fpc/branches/fixes_3_0_ios b/fpcsrc rm `find [ab]/fpcsrc -name Makefile` rm `find b -name '*.[ao]' -o -name '*.exe'` ( cd b && ../a/install/updfpmkver 3.0.0rc1 ) ( cd b && ../a/install/updmkver 3.0.0rc1 true ) cp -rT [ab]/fpcsrc/installer cp -rT [ab]/fpcsrc/packages/chm cp -rT [ab]/fpcsrc/packages/fuse perl -i -pe "s/(patch_nr\s*=\s*)'.*'/\$1'0'/;" b/fpcsrc/compiler/version.pas perl -i -pe "s/(minorpatch\s*=\s*)'.*'/\$1'rc1'/;" b/fpcsrc/compiler/version.pas git diff --no-prefix [ab]/fpcsrc > diff Pedantic footnote: Generating a reproducible diff is surprisingly difficult. It seems that different versions of git order files slightly differently (x.a <> x/b), and there's some variation in whether to use diff --git a/foo b/foo or diff --bit b/foo b/foo when the patch adds a new file.