#! /usr/bin/env bash # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # Don't abort in version check. skip_version_check=1 # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt upgrade\n" if [ x$1 = x-h ] then printf $" Upgrade the meta-data in a working tree from an old version of quilt to the current version. This command is only needed when the quilt meta-data format has changed, and the working tree still contains old-format meta-data. In that case, quilt will request to run \`quilt upgrade'. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi if version_check then printf $"The quilt meta-data in %s are already in the version %s format; nothing to do\n" "$QUILT_PC/" "$DB_VERSION" exit 0 fi printf $"Converting meta-data to version %s\n" "$DB_VERSION" # Previously we have stripped standard patch extensions (.dif .diff # .patch .gz .bz2) of patch names; we have used the mangled names in # .pc/applied-patches, .pc/$patch/, but not in the series file. for patch in $(applied_patches) do proper_name="$(grep "^$(quote_bre $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" proper_name=${proper_name#$QUILT_PATCHES/} proper_name=${proper_name%% *} if [ -z "$proper_name" ] then failed=1 break fi if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \ && grep -q "^$(quote_bre $patch)\$" \ $QUILT_PC/applied-patches then mv $QUILT_PC/$patch $QUILT_PC/$proper_name \ || failed=1 rename_in_db $patch $proper_name \ || failed=1 [ -z "$failed" ] || break fi done if [ -n "$failed" ] then printf $"Conversion failed\n" >&2 printf $" Please remove all patches using \`quilt pop -a' from the quilt version used to create this working tree, or remove the %s directory and apply the patches from scratch.\n" "$QUILT_PC" >&2 exit 1 fi echo $DB_VERSION > $QUILT_PC/.version