From efe47381c599b07e4c7bbdb2e91e8090a541c887 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:53:52 +0200 Subject: Adding upstream version 2.23.4+deb12u1. Signed-off-by: Daniel Baumann --- scripts/diff2patches.sh | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 scripts/diff2patches.sh (limited to 'scripts/diff2patches.sh') diff --git a/scripts/diff2patches.sh b/scripts/diff2patches.sh new file mode 100755 index 0000000..fa5fd6a --- /dev/null +++ b/scripts/diff2patches.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +#################### +# Copyright (C) 2007, 2008 by Raphael Geissert +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this file If not, see . +# +# On Debian systems, the complete text of the GNU General +# Public License 3 can be found in '/usr/share/common-licenses/GPL-3'. +#################### + +set -e + +PROGNAME=${0##*/} + +usage() { + echo \ +"Usage: $PROGNAME [options] FILE.diff.gz + Options: + --help Show this message + --version Show version and copyright information + debian/control must exist on the current path for this script to work + If debian/patches exists and is a directory, patches are extracted there, + otherwise they are extracted under debian/ (unless the environment variable + DEB_PATCHES is defined and points to a valid directory, in which case + patches are extracted there)." +} + +version() { + echo \ +"This is $PROGNAME, from the Debian devscripts package, version ###VERSION### +This code is copyright 2007, 2008 by Raphael Geissert, all rights reserved. +This program comes with ABSOLUTELY NO WARRANTY. +You are free to redistribute this code under the terms of the +GNU General Public License, version 3 or later." +} + +case "$1" in + --help) usage; exit 0 ;; + --version) version; exit 0 ;; +esac + +if ! which lsdiff > /dev/null 2>&1; then + echo "lsdiff was not found in \$PATH, package patchutils probably not installed!" + exit 1 +fi + +diffgz="$1" + +if [ ! -f "$diffgz" ]; then + [ -z "$diffgz" ] && diffgz="an unspecified .diff.gz" + echo "Couldn't find $diffgz, aborting!" + exit 1 +fi + +if [ -x /usr/bin/dh_testdir ]; then + /usr/bin/dh_testdir || exit 1 +else + [ ! -f debian/control ] && echo "Couldn't find debian/control!" && exit 1 +fi + +if [ -z "$DEB_PATCHES" ] || [ ! -d "$DEB_PATCHES" ]; then + DEB_PATCHES=debian + [ -d debian/patches ] && DEB_PATCHES=debian/patches +else + DEB_PATCHES="$(readlink -f "$DEB_PATCHES")" +fi + +echo "Patches will be extracted under $DEB_PATCHES/" + +FILES=$(zcat "$diffgz" | lsdiff --strip 1 | grep -v ^debian/) || \ + echo "$(basename "$diffgz") doesn't contain any patch outside debian/" + +for file in $FILES; do + [ ! -z "$file" ] || continue + echo -n "Extracting $file..." + newFileName="$DEB_PATCHES/$(echo "$file" | sed 's#/#___#g').patch" + zcat "$diffgz" | filterdiff -i "$file" -p1 > "$newFileName" + echo "done" +done + +exit -- cgit v1.2.3