SHA256
1
0
forked from pool/quilt

Accepting request 287372 from devel:tools:scm

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/287372
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/quilt?expand=0&rev=62
This commit is contained in:
Dominique Leuenberger 2015-02-27 10:06:35 +00:00 committed by Git OBS Bridge
commit ec370b016f
40 changed files with 1236 additions and 2114 deletions

View File

@ -1,43 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: mail: Don't include the release number in User-Agent
Upstream: Committed (2c8ddc751606ad7c36381269af1f64b4c62ba44c)
@RELEASE@ is replaced with the package-level release number in two
places: the spec file, where it is legitimate, and the mail command's
User-Agent string, where I think it is not. The package release
number should not affect the contents of the package, otherwise it
makes it difficult to compare build results.
I have checked other MUA (Mutt, Thunderbird, Claws Mail) and they all
only include the version, not the release number in their User-Agent
string.
Drop the @RELEASE@ replacement rule to make sure we don't use it
accidentally anywhere in the future. The spec file has its own build
rule so it is not affected.
---
Makefile.in | 1 -
quilt/mail.in | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
--- a/Makefile.in
+++ b/Makefile.in
@@ -264,7 +264,6 @@ $(patsubst %.in,%,$(wildcard bin/*.in qu
-e 's:@PATCH''@:$(PATCH):g' \
-e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \
-e 's:@VERSION''@:$(VERSION):g' \
- -e 's:@RELEASE''@:$(RELEASE):g' \
-e 's:@ETCDIR''@:$(etcdir):g' \
-e 's:@LOCALEDIR''@:$(localedir):g' \
-e 's:@DOCSUBDIR''@:$(docdir):g' \
--- a/quilt/mail.in
+++ b/quilt/mail.in
@@ -495,7 +495,7 @@ introduction="$(gen_tempfile)"
(
cat <<-EOF
Message-Id: <$(msgid)>
- User-Agent: quilt/@VERSION@-@RELEASE@
+ User-Agent: quilt/@VERSION@
Date: $(date --rfc-822)
From: ${opt_from:-$opt_sender}
To: $(IFS=,; echo "${opt_to[*]}")

View File

@ -0,0 +1,66 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: edit: Improve the test case
Upstream: Submitted (2011-02-11)
Cover one more use case of the "edit" command in the test case: file
creation.
Also reorder some of the commands to make the tests easier to follow.
The intent is easier to understand when the result is tested after
each command.
---
test/edit.test | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
--- a/test/edit.test
+++ b/test/edit.test
@@ -1,5 +1,6 @@
$ mkdir patches subdir
+# Test the behavior if the editor modifies existing files
$ cat > editor
< #! /bin/sh
< echo Editing $1
@@ -16,15 +17,15 @@ $ quilt edit foobar
> File foobar added to patch patches/patch
> Editing foobar
+$ cat foobar
+> barbar
+
$ cd subdir
$ echo foo > foo
$ quilt edit foo
> File subdir/foo added to patch ../patches/patch
> Editing subdir/foo
-
$ cd ..
-$ cat foobar
-> barbar
$ cat subdir/foo
> bar
@@ -32,3 +33,23 @@ $ cat subdir/foo
$ quilt files
> foobar
> subdir/foo
+
+$ quilt refresh
+> Refreshed patch patches/patch
+
+# Test the behavior if the editor creates a brand new file
+$ cat > editor
+< #! /bin/sh
+< echo Creating $1
+< echo "new line" > $1
+
+$ quilt edit foo2
+> File foo2 added to patch patches/patch
+> Creating foo2
+$ cat foo2
+> new line
+
+$ quilt files -v
+> + foo2
+> foobar
+> subdir/foo

View File

@ -0,0 +1,48 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: edit: Use command "remove" to remove files
Upstream: Submitted (2011-02-11)
Commit f1c186ee renamed command "remove" to "revert". Commit bd1dfdab
changed the semantics of command "revert". Commit 6d2501ac restored
command "remove". However command "edit" is still calling command
"revert" to remove files from the patch when it should be using
command "remove".
This case was not covered by the test suite, which is why the bug was
not spotted earlier.
---
quilt/edit.in | 2 +-
test/edit.test | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
--- a/quilt/edit.in
+++ b/quilt/edit.in
@@ -71,7 +71,7 @@ for file in "$@"
do
if ! [ -e "$SUBDIR$file" ]
then
- quilt_command revert "$file"
+ quilt_command remove "$file"
status=1
fi
done
--- a/test/edit.test
+++ b/test/edit.test
@@ -37,6 +37,17 @@ $ quilt files
$ quilt refresh
> Refreshed patch patches/patch
+# Test the behavior if the editor is called on a new file but
+# does not actually create it
+$ cat > editor
+< #! /bin/sh
+< echo Doing nothing to $1
+
+$ quilt edit nofoo
+> File nofoo added to patch patches/patch
+> Doing nothing to nofoo
+> File nofoo removed from patch patches/patch
+
# Test the behavior if the editor creates a brand new file
$ cat > editor
< #! /bin/sh

View File

@ -0,0 +1,91 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: edit: Fix a corner case
Upstream: Submitted (2011-02-11)
There is one corner case which is not properly handled by the "edit"
command. If a patch deletes a file, and the user calls "quilt edit"
on that file but does not actually add anything back to it, "quilt
remove" is called on the file when the editor exits. This causes
the file to be restored to its original state before the patch deleted
it. The user never asked for that, so the file should be left to its
deleted state in this case. The file must only be removed from the
patch if it was not part of the patch originally.
The same problem would occur if the editor deleted the file. In
general text editors don't do that, they'd leave an empty file
instead, but nothing prevents them from actually deleting the file so
we should handle this case properly too.
---
quilt/edit.in | 4 +++-
test/edit.test | 33 ++++++++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 2 deletions(-)
--- a/quilt/edit.in
+++ b/quilt/edit.in
@@ -67,9 +67,11 @@ then
fi
LANG=$ORIGINAL_LANG $EDITOR "${@/#/$SUBDIR}"
status=$?
+
+patch=$(top_patch)
for file in "$@"
do
- if ! [ -e "$SUBDIR$file" ]
+ if [ ! -e "$SUBDIR$file" -a ! -s "$QUILT_PC/$patch/$file" ]
then
quilt_command remove "$file"
status=1
--- a/test/edit.test
+++ b/test/edit.test
@@ -37,6 +37,19 @@ $ quilt files
$ quilt refresh
> Refreshed patch patches/patch
+# Test the behavior if the editor deletes a file completely
+$ echo foobaz > foobaz
+$ cat > editor
+< #! /bin/sh
+< echo Deleting $1
+< rm -f $1
+
+$ quilt edit foobaz
+> File foobaz added to patch patches/patch
+> Deleting foobaz
+
+$ [ ! -e foobaz ] || echo "File foobaz shouldn't exist"
+
# Test the behavior if the editor is called on a new file but
# does not actually create it
$ cat > editor
@@ -48,6 +61,23 @@ $ quilt edit nofoo
> Doing nothing to nofoo
> File nofoo removed from patch patches/patch
+# Test the behavior if the patch is deleting a file and the
+# user calls "quilt edit" on that file but makes no change to it
+$ rm -f foobar
+$ quilt refresh
+> Refreshed patch patches/patch
+$ quilt diff -p ab --no-index foobar
+> --- a/foobar
+> +++ /dev/null
+> @@ -1 +0,0 @@
+> -foobar
+
+$ quilt edit foobar
+> File foobar is already in patch patches/patch
+> Doing nothing to foobar
+
+$ [ ! -e foobar ] || echo "File foobar shouldn't exist"
+
# Test the behavior if the editor creates a brand new file
$ cat > editor
< #! /bin/sh
@@ -62,5 +92,6 @@ $ cat foo2
$ quilt files -v
> + foo2
-> foobar
+> - foobar
+> - foobaz
> subdir/foo

View File

@ -1,18 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Comment update
Upstream: Committed (40f5bfbbd4f0a3f9e74c2129a142aab7f6f8ac14)
---
quilt/scripts/inspect.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -150,7 +150,7 @@ done > $tmpdir/md5sums
echo >&4
shopt -u nullglob
-# wrapper script for patch and tar
+# wrapper script for patch, tar and unzip
cat <<-'EOF' > $tmpdir/bin/wrapper
#! @BASH@

View File

@ -1,98 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup/inspect: Cleanups
Upstream: Committed (aa5d1389f7ce7ca2fc51e791ec33b68404fdea6b)
* Drop quotes that aren't needed and break syntax highlighting in some
editors.
* Coding style cleanups.
---
quilt/scripts/inspect.in | 23 +++++++++++++----------
quilt/setup.in | 6 +++---
2 files changed, 16 insertions(+), 13 deletions(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -65,7 +65,7 @@ else
specdir=$PWD
fi
-tmpdir="$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/})"
+tmpdir=$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/})
mkdir -p $tmpdir || exit 1
add_exit_handler "rm -rf $tmpdir"
mkdir -p $tmpdir/build
@@ -116,7 +116,7 @@ do
filetype="xz"
;;
*)
- filetype="$(file -b "$file")"
+ filetype=$(file -b "$file")
;;
esac
@@ -239,7 +239,8 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
while [ $# -gt 0 ]; do
case "$1" in
-i|--input)
- if [ $# -ge 2 ]; then
+ if [ $# -ge 2 ]
+ then
echo "$2"
return
fi
@@ -372,12 +373,13 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
inputfile=$(unzip_input_file "$@")
;;
esac
- if [ -z "$inputfile" ]; then
- # put data from stdin into tmpfile
- cat > $tmpdir/data
+ if [ -z "$inputfile" ]
+ then
+ # put data from stdin into tmpfile
+ cat > $tmpdir/data
fi
- unpackfile="$(original_file ${inputfile:-$tmpdir/data})"
+ unpackfile=$(original_file ${inputfile:-$tmpdir/data})
if [ -n "$unpackfile" ]
then
case "${0##*/}" in
@@ -403,10 +405,11 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
fi
PATH=${PATH#*:}
- if [ -n "$inputfile" ]; then
- ${0##*/} "$@"
+ if [ -n "$inputfile" ]
+ then
+ ${0##*/} "$@"
else
- ${0##*/} "$@" < $tmpdir/data
+ ${0##*/} "$@" < $tmpdir/data
fi
EOF
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -205,7 +205,7 @@ case "$1" in
"# Source: "*)
shift 2
source="$@"
- filetype="$(file -b "$source")"
+ filetype=$(file -b "$source")
case "$filetype" in
Zip*)
echo "unzip ${tar_dir:-.} ${source// /\\ }"
@@ -273,9 +273,9 @@ while read tag dir arg1 arg2
do
case "$tag" in
tar|unzip)
- tar_dir="$dir"
+ tar_dir=$dir
[ "$tar_dir" = . ] && tar_dir=
- tar_file="$arg1"
+ tar_file=$arg1
;;
patch)
if [ ! -e "$prefix$dir/$QUILT_PATCHES" ]

View File

@ -1,20 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: List all options in usage text
Upstream: Committed (c57b81b7367ebc6f3757b114302b537d6e305431)
Options -v and --sourcedir were not listed.
---
quilt/scripts/inspect.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -21,7 +21,7 @@ cd ${SUBDIR:-.}
usage()
{
- echo "Usage: ${0##*/} [--fuzz=N] specfile"
+ echo "Usage: ${0##*/} [-v] [--sourcedir dir] [--fuzz=N] specfile"
exit 1
}

View File

@ -1,32 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Pass through the wrappers when appropriate
Upstream: Committed (e3ee2d8596cbac98d29d72292b6b45706c0010af)
The wrappers may be called before the %prep section is entered, in
which case RPM_BUILD_DIR isn't set yet. In that case we want to
pass trough transparently.
---
quilt/scripts/inspect.in | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -358,6 +358,10 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
echo "$dir"
}
+ PATH=${PATH#*:}
+ # If we are called too early, pass through without processing
+ [ -n "$RPM_BUILD_DIR" ] || exec ${0##*/} "$@"
+
tmpdir=${RPM_BUILD_DIR%/*}
rm -f $tmpdir/data
case "${0##*/}" in
@@ -404,7 +408,6 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
esac
fi
- PATH=${PATH#*:}
if [ -n "$inputfile" ]
then
${0##*/} "$@"

View File

@ -1,24 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Don't explicitly delete the temporary data file
Upstream: Committed (3931a551f43751c6c18e6439864a7d012f2d5f4e)
This temporary data file is overwritten as needed and the directory
it sits in is blasted when the script exits, so there is no point in
explicitly deleting this file at the beginning of each wrapper
invocation.
This simple change speeds up "inspect" by 3-4% in my tests.
---
quilt/scripts/inspect.in | 1 -
1 file changed, 1 deletion(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -363,7 +363,6 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
[ -n "$RPM_BUILD_DIR" ] || exec ${0##*/} "$@"
tmpdir=${RPM_BUILD_DIR%/*}
- rm -f $tmpdir/data
case "${0##*/}" in
patch)
inputfile=$(patch_input_file "$@")

View File

@ -1,24 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Exclude more files from md5sums
Upstream: Committed (367ef38abdfc93ceef435f805c97af7a092ea46e)
A few more files can be excluded from md5sums as we know they are
neither patches nor archives:
* _constraints, _service and baselibs.conf, from the Build Service
* signature files
* rpmlintrc files
---
quilt/scripts/inspect.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -95,7 +95,7 @@ for file in $sourcedir/*
do
basename=${file##*/}
case "$basename" in
- ready|bigpack|MD5SUMS|MD5SUMS.meta|*.spec|*.changes)
+ ready|bigpack|_constraints|_service|baselibs.conf|MD5SUMS|MD5SUMS.meta|*.spec|*.changes|*.sig|*.sign|*rpmlintrc)
continue
;;
esac

View File

@ -1,47 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Introduce function normalize_path
Upstream: Committed (1e8e4ff9b8027235d0577369719c0c58ba460cf8)
Move the path normalization code to a separate function, to avoid
redundancy and make the code more readable.
---
quilt/setup.in | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -71,6 +71,15 @@ check_for_existing_files()
return $status
}
+# Resolve ".." in path and clean up double slashes
+normalize_path()
+{
+ echo "$1" | sed -r -e 's://:/:g' \
+ -e ':again' \
+ -e 's:/[^/]+/\.\.(/|$):\1:g' \
+ -e 'tagain'
+}
+
create_symlink()
{
local target=$1 link=$2 up
@@ -80,16 +89,8 @@ create_symlink()
return
fi
- set -- "$(echo "$PWD/$target" | \
- sed -r -e 's://:/:g' \
- -e ':again' \
- -e 's:/[^/]+/\.\.(/|$):\1:g' \
- -e 'tagain')" \
- "$(echo "$PWD/$link" | \
- sed -r -e 's://:/:g' \
- -e ':again' \
- -e 's:/[^/]+/\.\.(/|$):\1:g' \
- -e 'tagain')"
+ set -- "$(normalize_path "$PWD/$target")" \
+ "$(normalize_path "$PWD/$link")"
while [ "${1%%/*}" = "${2%%/*}" ]
do
set -- "${1#*/}" "${2#*/}"

View File

@ -1,598 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Split the patch/tar/unzip wrapper to a separate script
Upstream: Committed (9f1f21a1fcd6700c9f9fda8c1b953f7e76538c76)
I couldn't find any reason why the patch/tar/unzip wrapper is
generated each time inspect is invoked. Make it a separate script in
its own right and let the patch, tar and unzip links point to it.
This makes this piece of code easier to read, edit, trace and debug.
This also solves the case where the filesystem hosting the temporary
files is mounted with noexec.
---
Makefile.in | 6
quilt/scripts/inspect-wrapper.in | 265 ++++++++++++++++++++++++++++++++++++
quilt/scripts/inspect.in | 282 ---------------------------------------
3 files changed, 271 insertions(+), 282 deletions(-)
--- a/Makefile.in
+++ b/Makefile.in
@@ -79,8 +79,8 @@ QUILT := $(QUILT_IN)
SRC += $(QUILT_SRC:%=quilt/%)
DIRT += $(QUILT_IN:%=quilt/%)
-SCRIPTS_IN := patchfns inspect dependency-graph edmail \
- remove-trailing-ws backup-files
+SCRIPTS_IN := patchfns inspect inspect-wrapper dependency-graph \
+ edmail remove-trailing-ws backup-files
SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in)
SCRIPTS := $(SCRIPTS_IN)
@@ -391,7 +391,7 @@ test/.depend : Makefile $(TESTS)
-e 's:quilt/graph:quilt/graph quilt/scripts/dependency-graph:' \
-e 's:quilt/mail:quilt/mail quilt/scripts/edmail:' \
-e 's:quilt/refresh:quilt/refresh quilt/scripts/remove-trailing-ws:' \
- -e 's:quilt/setup:quilt/setup quilt/scripts/inspect:' \
+ -e 's:quilt/setup:quilt/setup quilt/scripts/inspect quilt/scripts/inspect-wrapper:' \
> $@
ifneq ($(shell . $(QUILTRC) ; echo $$QUILT_PATCHES_PREFIX),)
--- /dev/null
+++ b/quilt/scripts/inspect-wrapper.in
@@ -0,0 +1,265 @@
+#! @BASH@
+
+# find original data file by md5sum
+original_file()
+{
+ local file=$1 md5sum
+
+ set -- $(md5sum < $file)
+ md5sum=$1
+ while read md5sum_ file_
+ do
+ if [ "$md5sum" = "$md5sum_" ]
+ then
+ echo ${file_#\*}
+ return 0
+ fi
+ done < $tmpdir/md5sums
+
+ # Try harder
+ if ! [ -e $tmpdir/more-md5sums ]
+ then
+ ( cd $RPM_BUILD_DIR
+ find . -type f \
+ | sed -e 's:^.\/::' \
+ | xargs md5sum \
+ ) > $tmpdir/more-md5sums
+ fi
+
+ while read md5sum_ file_
+ do
+ if [ "$md5sum" = "$md5sum_" ]
+ then
+ echo ${file_#\*}
+ return 0
+ fi
+ done < $tmpdir/more-md5sums
+
+ return 1
+}
+
+# Extract a command line option with or without argument
+cmdline_option()
+{
+ local letter=$1 no_arg=$2
+ shift
+
+ while [ $# -ne 0 ]
+ do
+ if [ "${1:0:2}" = -$letter ]
+ then
+ if [ -z "$no_arg" ]
+ then
+ [ "$1" = -$letter ] && set -- "$1$2"
+ fi
+ echo $1
+ break
+ fi
+ shift
+ done
+}
+
+# Extract the -p option from the command line
+strip_option()
+{
+ set -- $(cmdline_option p "$@")
+ [ "$1" != -p1 ] && echo $1
+}
+
+# Extract the -R option from the command line
+reverse_option()
+{
+ set -- $(cmdline_option R no_arg "$@")
+ echo $1
+}
+
+patch_opt_d()
+{
+ local subdir=$(cmdline_option d "$@")
+ [ -z "$subdir" ] || echo "${subdir:2}"
+
+}
+
+patch_input_file()
+{
+ while [ $# -gt 0 ]
+ do
+ case "$1" in
+ -i|--input)
+ if [ $# -ge 2 ]
+ then
+ echo "$2"
+ return
+ fi
+ ;;
+ -i*)
+ echo "${1#-i}"
+ return
+ ;;
+ --input=*)
+ echo "${1#--input=}"
+ return
+ ;;
+ esac
+ shift
+ done
+ return 1
+}
+
+tar_input_file()
+{
+ case "$1" in
+ # Modern option format
+ -*)
+ while [ $# -gt 0 ]
+ do
+ case "$1" in
+ # Extract the file name (long option)
+ --file)
+ echo "$2"
+ return
+ ;;
+ --file=*)
+ echo "${1#--file=}"
+ return
+ ;;
+ # Skip other long options
+ --*)
+ shift
+ ;;
+ # Extract the file name (short option)
+ -*f)
+ echo "$2"
+ return
+ ;;
+ -f*)
+ echo "${1#-f}"
+ return
+ ;;
+ # Skip other short options and parameters
+ *)
+ shift
+ ;;
+ esac
+ done
+ ;;
+ # Legacy option format (must always come first)
+ *C*f*)
+ echo "$3"
+ return
+ ;;
+ *f*)
+ echo "$2"
+ return
+ ;;
+ ?*)
+ # Eat legacy options and try again
+ until [ $# -eq 0 -o "${1:0:1}" = "-" ]
+ do
+ shift
+ done
+ tar_input_file "$@"
+ return
+ ;;
+ esac
+ return 1
+}
+
+unzip_input_file()
+{
+ while [ $# -gt 0 ]
+ do
+ case "$1" in
+ -*)
+ shift
+ ;;
+ *)
+ echo "$1"
+ return
+ ;;
+ esac
+ done
+ return 1
+}
+
+tar_opt_C()
+{
+ case "$1" in
+ *C*f*)
+ echo "$2"
+ return ;;
+ esac
+}
+
+pwd_to_dir()
+{
+ local subdir=$1 dir
+
+ if [ -n "$subdir" ]
+ then
+ dir=$(cd "$subdir" && echo $PWD)
+ else
+ dir=$PWD
+ fi
+ dir=${dir/$RPM_BUILD_DIR}
+ dir=${dir##/}
+ dir=${dir// /\\ }
+
+ echo "$dir"
+}
+
+PATH=${PATH#*:}
+# If we are called too early, pass through without processing
+[ -n "$RPM_BUILD_DIR" ] || exec ${0##*/} "$@"
+
+tmpdir=${RPM_BUILD_DIR%/*}
+case "${0##*/}" in
+patch)
+ inputfile=$(patch_input_file "$@")
+ ;;
+tar)
+ inputfile=$(tar_input_file "$@")
+ # For tar, file - means read from stdin
+ [ "$inputfile" = "-" ] && inputfile=
+ ;;
+unzip)
+ inputfile=$(unzip_input_file "$@")
+ ;;
+esac
+if [ -z "$inputfile" ]
+then
+ # put data from stdin into tmpfile
+ cat > $tmpdir/data
+fi
+
+unpackfile=$(original_file ${inputfile:-$tmpdir/data})
+if [ -n "$unpackfile" ]
+then
+ case "${0##*/}" in
+ patch)
+ echo -n p >&4
+ subdir=$(patch_opt_d "$@")
+ dir=$(pwd_to_dir $subdir)
+ echo "${0##*/} ${dir:-.} $unpackfile" \
+ $(strip_option "$@") $(reverse_option "$@") >&3
+ ;;
+ tar)
+ echo -n t >&4
+ subdir=$(tar_opt_C "$@")
+ dir=$(pwd_to_dir $subdir)
+ echo "${0##*/} ${dir:-.} $unpackfile" >&3
+ ;;
+ unzip)
+ echo -n Z >&4
+ dir=$(pwd_to_dir)
+ echo "${0##*/} ${dir:-.} $unpackfile" >&3
+ ;;
+ esac
+fi
+
+if [ -n "$inputfile" ]
+then
+ ${0##*/} "$@"
+else
+ ${0##*/} "$@" < $tmpdir/data
+fi
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -150,285 +150,9 @@ done > $tmpdir/md5sums
echo >&4
shopt -u nullglob
-# wrapper script for patch, tar and unzip
-cat <<-'EOF' > $tmpdir/bin/wrapper
- #! @BASH@
-
- # find original data file by md5sum
- original_file()
- {
- local file=$1 md5sum
-
- set -- $(md5sum < $file)
- md5sum=$1
- while read md5sum_ file_
- do
- if [ "$md5sum" = "$md5sum_" ]
- then
- echo ${file_#\*}
- return 0
- fi
- done < $tmpdir/md5sums
-
- # Try harder
- if ! [ -e $tmpdir/more-md5sums ]
- then
- ( cd $RPM_BUILD_DIR
- find . -type f \
- | sed -e 's:^.\/::' \
- | xargs md5sum \
- ) > $tmpdir/more-md5sums
- fi
-
- while read md5sum_ file_
- do
- if [ "$md5sum" = "$md5sum_" ]
- then
- echo ${file_#\*}
- return 0
- fi
- done < $tmpdir/more-md5sums
-
- return 1
- }
-
- # Extract a command line option with or without argument
- cmdline_option()
- {
- local letter=$1 no_arg=$2
- shift
-
- while [ $# -ne 0 ]
- do
- if [ "${1:0:2}" = -$letter ]
- then
- if [ -z "$no_arg" ]
- then
- [ "$1" = -$letter ] && set -- "$1$2"
- fi
- echo $1
- break
- fi
- shift
- done
- }
-
- # Extract the -p option from the command line
- strip_option()
- {
- set -- $(cmdline_option p "$@")
- [ "$1" != -p1 ] && echo $1
- }
-
- # Extract the -R option from the command line
- reverse_option()
- {
- set -- $(cmdline_option R no_arg "$@")
- echo $1
- }
-
- patch_opt_d()
- {
- local subdir=$(cmdline_option d "$@")
- [ -z "$subdir" ] || echo "${subdir:2}"
-
- }
-
- patch_input_file()
- {
- while [ $# -gt 0 ]; do
- case "$1" in
- -i|--input)
- if [ $# -ge 2 ]
- then
- echo "$2"
- return
- fi
- ;;
- -i*)
- echo "${1#-i}"
- return
- ;;
- --input=*)
- echo "${1#--input=}"
- return
- ;;
- esac
- shift
- done
- return 1
- }
-
- tar_input_file()
- {
- case "$1" in
- # Modern option format
- -*)
- while [ $# -gt 0 ]; do
- case "$1" in
- # Extract the file name (long option)
- --file)
- echo "$2"
- return
- ;;
- --file=*)
- echo "${1#--file=}"
- return
- ;;
- # Skip other long options
- --*)
- shift
- ;;
- # Extract the file name (short option)
- -*f)
- echo "$2"
- return
- ;;
- -f*)
- echo "${1#-f}"
- return
- ;;
- # Skip other short options and parameters
- *)
- shift
- ;;
- esac
- done
- ;;
- # Legacy option format (must always come first)
- *C*f*)
- echo "$3"
- return
- ;;
- *f*)
- echo "$2"
- return
- ;;
- ?*)
- # Eat legacy options and try again
- until [ $# -eq 0 -o "${1:0:1}" = "-" ]; do
- shift
- done
- tar_input_file "$@"
- return
- ;;
- esac
- return 1
- }
-
- unzip_input_file()
- {
- while [ $# -gt 0 ]; do
- case "$1" in
- -*)
- shift
- ;;
- *)
- echo "$1"
- return
- ;;
- esac
- done
- return 1
- }
-
- tar_opt_C()
- {
- case "$1" in
- *C*f*)
- echo "$2"
- return ;;
- esac
- }
-
- pwd_to_dir()
- {
- local subdir=$1 dir
-
- if [ -n "$subdir" ]
- then
- dir=$(cd "$subdir" && echo $PWD)
- else
- dir=$PWD
- fi
- dir=${dir/$RPM_BUILD_DIR}
- dir=${dir##/}
- dir=${dir// /\\ }
-
- echo "$dir"
- }
-
- PATH=${PATH#*:}
- # If we are called too early, pass through without processing
- [ -n "$RPM_BUILD_DIR" ] || exec ${0##*/} "$@"
-
- tmpdir=${RPM_BUILD_DIR%/*}
- case "${0##*/}" in
- patch)
- inputfile=$(patch_input_file "$@")
- ;;
- tar)
- inputfile=$(tar_input_file "$@")
- # For tar, file - means read from stdin
- [ "$inputfile" = "-" ] && inputfile=
- ;;
- unzip)
- inputfile=$(unzip_input_file "$@")
- ;;
- esac
- if [ -z "$inputfile" ]
- then
- # put data from stdin into tmpfile
- cat > $tmpdir/data
- fi
-
- unpackfile=$(original_file ${inputfile:-$tmpdir/data})
- if [ -n "$unpackfile" ]
- then
- case "${0##*/}" in
- patch)
- echo -n p >&4
- subdir=$(patch_opt_d "$@")
- dir=$(pwd_to_dir $subdir)
- echo "${0##*/} ${dir:-.} $unpackfile" \
- $(strip_option "$@") $(reverse_option "$@") >&3
- ;;
- tar)
- echo -n t >&4
- subdir=$(tar_opt_C "$@")
- dir=$(pwd_to_dir $subdir)
- echo "${0##*/} ${dir:-.} $unpackfile" >&3
- ;;
- unzip)
- echo -n Z >&4
- dir=$(pwd_to_dir)
- echo "${0##*/} ${dir:-.} $unpackfile" >&3
- ;;
- esac
- fi
-
- if [ -n "$inputfile" ]
- then
- ${0##*/} "$@"
- else
- ${0##*/} "$@" < $tmpdir/data
- fi
-EOF
-
-chmod 755 $tmpdir/bin/wrapper
-# If $TMPDIR is mounted with noexec, rpmbuild won't be able to execute
-# our wrapper script
-if [ ! -x $tmpdir/bin/wrapper ]
-then
- printf "Cannot execute %s; filesystem mounted with noexec?\n" \
- $tmpdir/bin/wrapper >&2
- printf "Setting %s in ~/.quiltrc may help\n" "VARTMPDIR" >&2
- exit 1
-fi
-
-ln -s wrapper $tmpdir/bin/patch
-ln -s wrapper $tmpdir/bin/tar
-ln -s wrapper $tmpdir/bin/unzip
+ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/patch
+ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/tar
+ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/unzip
# let rpm do all the dirty specfile stuff ...
echo -n "### rpmbuild: " >&4

View File

@ -1,29 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect-wrapper: Minor code optimization
Upstream: Committed (f159ee6f0bcd6b9abdc8830a1228d902e93311ae)
Don't test if inputfile is set twice in a row.
---
quilt/scripts/inspect-wrapper.in | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/quilt/scripts/inspect-wrapper.in
+++ b/quilt/scripts/inspect-wrapper.in
@@ -226,13 +226,15 @@ unzip)
inputfile=$(unzip_input_file "$@")
;;
esac
-if [ -z "$inputfile" ]
+if [ -n "$inputfile" ]
then
+ unpackfile=$(original_file "$inputfile")
+else
# put data from stdin into tmpfile
cat > $tmpdir/data
+ unpackfile=$(original_file $tmpdir/data)
fi
-unpackfile=$(original_file ${inputfile:-$tmpdir/data})
if [ -n "$unpackfile" ]
then
case "${0##*/}" in

View File

@ -1,74 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Fix path to extra patches in series file
Upstream: Committed (1e5d95849e4a09427efefc7bd7e9f33bf911f526)
Extra patches (typically contained in archives) end up in the working
directory, not the source directory where regular patches live. In
the most common case, it makes no difference because both directories
are the same. However, as soon as options -d or --sourcedir are used
in conjunction with extra patches, the working directory and the
source directory are different, and the paths to the extra patches in
the series file get wrong.
While we can't possible handle the case where the source and working
directories are completely different, we can easily handle the most
typical case where the working directory is a subdirectory of the
source directory.
---
quilt/scripts/inspect-wrapper.in | 2 +-
quilt/setup.in | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
--- a/quilt/scripts/inspect-wrapper.in
+++ b/quilt/scripts/inspect-wrapper.in
@@ -30,7 +30,7 @@ original_file()
do
if [ "$md5sum" = "$md5sum_" ]
then
- echo ${file_#\*}
+ echo $QUILT_SETUP_PREFIX${file_#\*}
return 0
fi
done < $tmpdir/more-md5sums
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -101,6 +101,27 @@ create_symlink()
ln -s "${1:-.}" "$link"
}
+dir_to_dir()
+{
+ local from=$1 to=$2
+
+ [ "${from:0:1}" = / ] || from=$PWD/$from
+ from=$(normalize_path "$from")
+
+ [ "${to:0:1}" = / ] || to=$PWD/$to
+ to=$(normalize_path "$to")
+
+ # If the target is a subdirectory of the origin, we can express the path
+ # in a relative way. Otherwise, return the absolute path.
+ if [ "${to:0:${#from}}" = "$from" ]
+ then
+ to=${to:${#from}}
+ to=${to#/}
+ fi
+
+ echo "$to"
+}
+
usage()
{
printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] {specfile|seriesfile}\n"
@@ -170,6 +191,11 @@ fi
tmpfile=$(gen_tempfile)
add_exit_handler "rm -f $tmpfile"
+# The patches link will point to the source directory, while extra patches
+# may be available under $prefix. If the latter is a subdirectory of the former,
+# a prefix can be added to fix up the path to the extra patches.
+export QUILT_SETUP_PREFIX=$(dir_to_dir "$sourcedir" "$prefix")
+
case "$1" in
*.spec)
spec_file=$1

View File

@ -1,53 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect-wrapper: Trace calls earlier
Upstream: Committed (d56b11e711533b0adae8b0fd6b36ec01807d62b1)
Trace the calls to the patch/tar/unzip wrapper earlier. That way, if
anything goes wrong, we know which type of file was being processed.
Even if nothing goes wrong, the user now sees the file type as it is
being processed (which can take a long time.)
---
quilt/scripts/inspect-wrapper.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/quilt/scripts/inspect-wrapper.in
+++ b/quilt/scripts/inspect-wrapper.in
@@ -215,14 +215,17 @@ PATH=${PATH#*:}
tmpdir=${RPM_BUILD_DIR%/*}
case "${0##*/}" in
patch)
+ echo -n p >&4
inputfile=$(patch_input_file "$@")
;;
tar)
+ echo -n t >&4
inputfile=$(tar_input_file "$@")
# For tar, file - means read from stdin
[ "$inputfile" = "-" ] && inputfile=
;;
unzip)
+ echo -n Z >&4
inputfile=$(unzip_input_file "$@")
;;
esac
@@ -239,20 +242,17 @@ if [ -n "$unpackfile" ]
then
case "${0##*/}" in
patch)
- echo -n p >&4
subdir=$(patch_opt_d "$@")
dir=$(pwd_to_dir $subdir)
echo "${0##*/} ${dir:-.} $unpackfile" \
$(strip_option "$@") $(reverse_option "$@") >&3
;;
tar)
- echo -n t >&4
subdir=$(tar_opt_C "$@")
dir=$(pwd_to_dir $subdir)
echo "${0##*/} ${dir:-.} $unpackfile" >&3
;;
unzip)
- echo -n Z >&4
dir=$(pwd_to_dir)
echo "${0##*/} ${dir:-.} $unpackfile" >&3
;;

View File

@ -1,221 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Add --fast option
Upstream: Committed (c0f677497b760028ae8aafb72d4d08604aa7870e)
This is an alternative implementation of "quilt setup" for rpm spec
files, which is much faster than the original implementation. The
idea is to have rpmbuild generate our working tree directly, instead
of taking note of everything it does and then replaying that record
from scratch.
The new implementation is enabled with option --fast. The original
implementation can be selected with --slow, which is the default.
Having this option makes it possible to set the default to --fast in
~/.quiltrc and revert to --slow on the command line on a case-by-case
basis. This will also make it easier if we decide to change the
default in the future.
In general, the generated working tree should be the same with --slow
or --fast. There are 3 known exceptions though:
* The header of the series files is incomplete when using --fast,
which means that you can't reuse these series files to feed "quilt
setup" later.
* If the spec file generates files other than with the tar, unzip and
patch commands, you wouldn't get these files in your working tree
with --slow, but with --fast you will.
* With --fast, all patches are added to the series file, regardless
of whether they apply or not. This also means that patches which
fail to apply are not reported as such until you attempt to push
them.
On large packages, this alternative implementation was found to be
up to 4 times faster than the original implementation.
---
This is my SUSE hackweek 11 project, more information at:
https://hackweek.suse.com/11/projects/194
quilt/scripts/inspect-wrapper.in | 5 ++++
quilt/scripts/inspect.in | 23 ++++++++++++++++++--
quilt/setup.in | 43 +++++++++++++++++++++++++++++++++++----
3 files changed, 64 insertions(+), 7 deletions(-)
--- a/quilt/scripts/inspect-wrapper.in
+++ b/quilt/scripts/inspect-wrapper.in
@@ -220,12 +220,14 @@ patch)
;;
tar)
echo -n t >&4
+ [ -n "$QUILT_SETUP_FAST" ] && exec ${0##*/} "$@"
inputfile=$(tar_input_file "$@")
# For tar, file - means read from stdin
[ "$inputfile" = "-" ] && inputfile=
;;
unzip)
echo -n Z >&4
+ [ -n "$QUILT_SETUP_FAST" ] && exec ${0##*/} "$@"
inputfile=$(unzip_input_file "$@")
;;
esac
@@ -259,6 +261,9 @@ then
esac
fi
+# In fast mode, we don't actually apply patches
+[ ${0##*/}$QUILT_SETUP_FAST = patch1 ] && exit 0
+
if [ -n "$inputfile" ]
then
${0##*/} "$@"
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -21,11 +21,11 @@ cd ${SUBDIR:-.}
usage()
{
- echo "Usage: ${0##*/} [-v] [--sourcedir dir] [--fuzz=N] specfile"
+ echo "Usage: ${0##*/} [-v] [--sourcedir dir] [--targetdir dir] [--fuzz=N] specfile"
exit 1
}
-options=$(getopt -o v --long sourcedir:,fuzz: -n "${0##*/}" -- "$@") || exit
+options=$(getopt -o v --long sourcedir:,targetdir:,fuzz: -n "${0##*/}" -- "$@") || exit
eval set -- "$options"
@@ -40,6 +40,9 @@ do
--sourcedir)
sourcedir=${2%/}/
shift 2 ;;
+ --targetdir)
+ targetdir=$2
+ shift 2 ;;
--fuzz)
# Only works with rpm 4.6 and later
DEFINE_FUZZ="%define _default_patch_fuzz $2"
@@ -68,8 +71,16 @@ fi
tmpdir=$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/})
mkdir -p $tmpdir || exit 1
add_exit_handler "rm -rf $tmpdir"
-mkdir -p $tmpdir/build
mkdir -p $tmpdir/bin
+if [ -n "$targetdir" ]
+then
+ # Fast mode
+ [ -d "$targetdir" ] || mkdir -p "$targetdir" || exit 1
+ ln -s "$targetdir" $tmpdir/build
+else
+ # Standard mode
+ mkdir -p $tmpdir/build
+fi
# Older versions of Suse packages have a symbolic release number, and rpmbuild
# won't like that, so change it to something compliant.
@@ -98,6 +109,11 @@ do
ready|bigpack|_constraints|_service|baselibs.conf|MD5SUMS|MD5SUMS.meta|*.spec|*.changes|*.sig|*.sign|*rpmlintrc)
continue
;;
+ # In fast mode, we are only interested in patches, so filter out
+ # archives
+ *.tar|*.tar.Z|*.tar.gz|*.tgz|*.tar.bz2|*.tar.xz|*.zip)
+ [ -n "$targetdir" ] && continue
+ ;;
esac
[ -f "$file" ] || continue
echo -n "." >&4
@@ -158,6 +174,7 @@ ln -s $QUILT_DIR/scripts/inspect-wrapper
echo -n "### rpmbuild: " >&4
export PATH="$tmpdir/bin:$PATH"
+export QUILT_SETUP_FAST=${targetdir:+1}
rpmbuild --eval "%define _sourcedir $sourcedir" \
--eval "%define _specdir $specdir" \
--eval "%define _builddir $tmpdir/build" \
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -124,7 +124,7 @@ dir_to_dir()
usage()
{
- printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] {specfile|seriesfile}\n"
+ printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--slow|--fast] {specfile|seriesfile}\n"
if [ x$1 = x-h ]
then
printf $"
@@ -139,6 +139,17 @@ Initializes a source tree from an rpm sp
--fuzz=N
Set the maximum fuzz factor (needs rpm 4.6 or later).
+
+--slow Use the original, slow method to process the spec file. This is the
+ default for now, but that might change in the future. In this mode,
+ rpmbuild generates a working tree in a temporary directory while all
+ its actions are recorded, and then everything is replayed from scratch
+ in the target directory.
+
+--fast Use an alternative, faster method to process the spec file. In this
+ mode, rpmbuild is told to generate a working tree directly in the
+ target directory. If the input is a series file, it is assumed that
+ all archives have been extracted manually beforehand.
"
exit 0
else
@@ -146,7 +157,7 @@ Initializes a source tree from an rpm sp
fi
}
-options=`getopt -o d:vh --long sourcedir:,fuzz: -- "$@"`
+options=`getopt -o d:vh --long sourcedir:,fuzz:,slow,fast -- "$@"`
if [ $? -ne 0 ]
then
@@ -175,6 +186,12 @@ do
--fuzz)
opt_fuzz="--fuzz $2"
shift 2 ;;
+ --slow)
+ opt_fast=
+ shift ;;
+ --fast)
+ opt_fast=1
+ shift ;;
--)
shift
break ;;
@@ -208,8 +225,24 @@ case "$1" in
exit 1
fi
- if ! $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \
- "$spec_file" 2>&1 > $tmpfile
+ if [ -n "$opt_fast" ]
+ then
+ if [ "${prefix:0:1}" = / ]
+ then
+ targetdir=$prefix
+ else
+ targetdir=$PWD/$prefix
+ fi
+
+ $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \
+ --targetdir "$targetdir" \
+ "$spec_file" 2>&1 > $tmpfile
+ else
+ $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \
+ "$spec_file" 2>&1 > $tmpfile
+ fi
+
+ if [ $? -ne 0 ]
then
printf $"The %%prep section of %s failed; results may be incomplete\n" "$spec_file"
if [ -z "$verbose" ]
@@ -257,8 +290,10 @@ case "$1" in
esac
# Make sure that unpacking will not overwrite anything
+[ -n "$opt_fast" ] || \
check_for_existing_directories || exit 1
+[ -n "$opt_fast" ] || \
while read tag dir arg1 arg2
do
case "$tag" in

View File

@ -1,27 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Tue, 20 Jan 2015 20:54:54 +0100
Subject: setup: Let normalize_path deal with "."
Upstream: Committed (3fd706a50b7dbb4f8db6e5db014729db51e6beb0)
Let function normalize_path handle "." path components. Otherwise
invocations like "quilt setup --sourcedir=. foo.spec" may produce
invalid series files, and "quilt setup -d ./dir foo.spec"
generates a broken "patches" link.
diff --git a/quilt/setup.in b/quilt/setup.in
index df76368..7f69f35 100644
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -71,10 +71,11 @@ check_for_existing_files()
return $status
}
-# Resolve ".." in path and clean up double slashes
+# Resolve ".." in path and clean up double slashes and "."
normalize_path()
{
echo "$1" | sed -r -e 's://:/:g' \
+ -e 's:/./:/:g' \
-e ':again' \
-e 's:/[^/]+/\.\.(/|$):\1:g' \
-e 'tagain'

View File

@ -1,22 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Sat, 24 Jan 2015 21:32:04 +0100
Subject: setup: Fix link creation
Upstream: Committed (c55c1993ffee5d137ff40fcab0f59520ddcb00bf)
Fix funtion create_symlink. If the link has an absolute path then its
target should be set to an absolute path as well. This fixes the use
of "quilt setup" with an absolute -d path and a relative --sourcedir
path.
diff --git a/quilt/setup.in b/quilt/setup.in
index 7f69f35..ddb1f00 100644
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -86,6 +86,7 @@ create_symlink()
local target=$1 link=$2 up
if [ "${target:0:1}" = / -o "${link:0:1}" = / ]
then
+ [ "${target:0:1}" = / ] || target=$PWD/$target
ln -s "$target" "$link"
return
fi

View File

@ -1,27 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Fix removal of "." components in normalize_path
Upstream: Submitted (2015-02-03)
The code was broken in 3 ways:
* I forgot to escape the "." so it would match any character.
* The g flag is not enough to catch consecutive "." components,
because pattern matches can't overlap.
* A trailing "." component would not be removed.
This fixes commit 3fd706a50b7dbb4f8db6e5db014729db51e6beb0
("setup: Let normalize_path deal with "."".)
---
quilt/setup.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -75,7 +75,7 @@ check_for_existing_files()
normalize_path()
{
echo "$1" | sed -r -e 's://:/:g' \
- -e 's:/./:/:g' \
+ -e 's:/\.(/\.)*(/|$):\2:g' \
-e ':again' \
-e 's:/[^/]+/\.\.(/|$):\1:g' \
-e 'tagain'

View File

@ -1,25 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Fix a corner case in create_symlink
Upstream: Submitted (2015-02-03)
References: boo#916007
When a link's target is the directory it lives in, create_symlink
would erroneously link to "..". Fix the code to properly link to "."
instead.
Credits to Robert Milasan for spotting the bug.
---
quilt/setup.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -97,7 +97,7 @@ create_symlink()
do
set -- "${1#*/}" "${2#*/}"
done
- up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g')
+ up=$(echo "$2" | sed -r -e 's:(^|/)[^/]*$::' -e 's:[^/]+:..:g')
set -- "${up:+$up/}$1"
set -- "${1%/}"
ln -s "${1:-.}" "$link"

View File

@ -1,24 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Skip version check
Upstream: Committed (6a5fcdc24dc47419da4cd688fe7fbfa189c91976)
Commit a626fcf8b95f2ff51701a00d65043b9f65207514 (setup: Skip version
check) is insufficient for spec file-based setup commands. inspect
itself also sources patchfns, so it must also skip the version check
explicitly.
---
quilt/scripts/inspect.in | 3 +++
1 file changed, 3 insertions(+)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -8,6 +8,9 @@
: ${QUILT_DIR=@QUILT_DIR@}
+# Version check is irrelevant to this script.
+skip_version_check=1
+
if ! [ -r $QUILT_DIR/scripts/patchfns ]
then
echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2

View File

@ -1,89 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: pop: Add --refresh option
Upstream: Committed (7189482be1393c7b9e6170410d820f1867e8ec93)
Add an option to automatically refresh each patch before it gets
unapplied.
---
quilt/pop.in | 11 +++++++++--
test/auto-refresh.test | 27 +++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
--- a/quilt/pop.in
+++ b/quilt/pop.in
@@ -19,7 +19,7 @@ fi
usage()
{
- printf $"Usage: quilt pop [-afRqv] [num|patch]\n"
+ printf $"Usage: quilt pop [-afRqv] [--refresh] [num|patch]\n"
if [ x$1 = x-h ]
then
printf $"
@@ -41,6 +41,9 @@ completion can be used.
-q Quiet operation.
-v Verbose operation.
+
+--refresh
+ Automatically refresh every patch before it gets unapplied.
"
exit 0
else
@@ -163,7 +166,7 @@ remove_patch()
return $status
}
-options=`getopt -o fRqvah -- "$@"`
+options=`getopt -o fRqvah --long refresh -- "$@"`
if [ $? -ne 0 ]
then
@@ -194,6 +197,9 @@ do
shift ;;
-h)
usage -h ;;
+ --refresh)
+ opt_refresh=1
+ shift ;;
--)
shift
break ;;
@@ -239,6 +245,7 @@ fi
for patch in $patches
do
+ [ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS
if ! remove_patch "$patch"
then
exit 1
--- /dev/null
+++ b/test/auto-refresh.test
@@ -0,0 +1,27 @@
+$ mkdir patches
+
+$ echo a > a
+$ echo b > b
+
+$ quilt new a.patch
+> Patch patches/a.patch is now on top
+$ quilt add a
+> File a added to patch patches/a.patch
+$ echo A > a
+
+$ quilt new b.patch
+> Patch patches/b.patch is now on top
+$ quilt add b
+> File b added to patch patches/b.patch
+$ echo B > b
+
+$ quilt pop -a --refresh
+> Refreshed patch patches/b.patch
+> Removing patch patches/b.patch
+> Restoring b
+>
+> Refreshed patch patches/a.patch
+> Removing patch patches/a.patch
+> Restoring a
+>
+> No patches applied

View File

@ -1,87 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: push: Add --refresh option
Upstream: Committed (a6987289e594d5bf0492fce7067723bc2ceb2cfc)
Add an option to automatically refresh each patch after is was
successfully applied.
---
quilt/push.in | 11 +++++++++--
test/auto-refresh.test | 22 ++++++++++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)
--- a/quilt/push.in
+++ b/quilt/push.in
@@ -21,7 +21,7 @@ setup_colors
usage()
{
- printf $"Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [num|patch]\n"
+ printf $"Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\n"
if [ x$1 = x-h ]
then
printf $"
@@ -53,6 +53,9 @@ be used.
--color[=always|auto|never]
Use syntax coloring (auto activates it only if the output is a tty).
+
+--refresh
+ Automatically refresh every patch after it was successfully applied.
"
exit 0
else
@@ -294,7 +297,7 @@ check_duplicate_patches()
return 1
}
-options=`getopt -o fqvam::h --long fuzz:,merge::,leave-rejects,color:: -- "$@"`
+options=`getopt -o fqvam::h --long fuzz:,merge::,leave-rejects,color::,refresh -- "$@"`
if [ $? -ne 0 ]
then
@@ -352,6 +355,9 @@ do
usage ;;
esac
shift 2 ;;
+ --refresh)
+ opt_refresh=1
+ shift ;;
--)
shift
break ;;
@@ -412,6 +418,7 @@ do
then
exit 1
fi
+ [ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS
[ -n "$opt_quiet" ] || echo
done \
| cleanup_patch_output \
--- a/test/auto-refresh.test
+++ b/test/auto-refresh.test
@@ -25,3 +25,25 @@ $ quilt pop -a --refresh
> Restoring a
>
> No patches applied
+
+$ quilt push -a --refresh
+> Applying patch patches/a.patch
+> patching file a
+> Patch patches/a.patch is unchanged
+>
+> Applying patch patches/b.patch
+> patching file b
+> Patch patches/b.patch is unchanged
+>
+> Now at patch patches/b.patch
+
+$ quilt pop -a --refresh
+> Patch patches/b.patch is unchanged
+> Removing patch patches/b.patch
+> Restoring b
+>
+> Patch patches/a.patch is unchanged
+> Removing patch patches/a.patch
+> Restoring a
+>
+> No patches applied

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79ee1884720bc23456fd9943c1cf990b2f1460e46b41ed26b747399c91602b0f
size 342022

3
quilt-0.64.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c325fda0945bae48de8647f214cf125cdfcf056771798593ccfca9c101fb8bb3
size 354564

View File

@ -1,88 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: pop: Rearm consistency check if needed
Upstream: Committed (b42985c9b2a5f8329ad393842487c4142951818e)
If the series file is inconsistent, "quilt pop" will disable the
consistency check as it updates the timestamp of the database file.
It's OK if all patches are popped. If not then the series file may
still be inconsistent. In that case, we want to update the timestamp
of the series file, to rearm the consistency check.
---
quilt/pop.in | 9 +++++++++
test/altered-series.test | 23 +++++++++++++++++------
2 files changed, 26 insertions(+), 6 deletions(-)
--- a/quilt/pop.in
+++ b/quilt/pop.in
@@ -243,6 +243,13 @@ then
exit 2
fi
+# We will update the list of applied patches, which in turn will disable the
+# consistency check. Enable it again if needed.
+if [ -z "$opt_all" -a ! "$DB" -nt "$SERIES" ] && ! consistency_check
+then
+ rearm_check=1
+fi
+
for patch in $patches
do
[ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS
@@ -264,6 +271,8 @@ else
# corner cases such as files added to a patch but not modified.
$QUILT_DIR/scripts/backup-files -L -s -B "$QUILT_PC/$patch/" -
printf $"Now at patch %s\n" "$(print_patch "$patch")"
+
+ [ -z "$rearm_check" ] || touch "$SERIES"
fi
### Local Variables:
### mode: shell-script
--- a/test/altered-series.test
+++ b/test/altered-series.test
@@ -6,22 +6,24 @@ $ cat > patches/series
< 02.patch
< 03.patch
-$ quilt push -q
+$ quilt push -q 2
> Applying patch patches/01.patch
> Patch patches/01.patch does not exist; applied empty patch
-> Now at patch patches/01.patch
+> Applying patch patches/02.patch
+> Patch patches/02.patch does not exist; applied empty patch
+> Now at patch patches/02.patch
$ quilt series -v
-> = patches/01.patch
-> patches/02.patch
+> + patches/01.patch
+> = patches/02.patch
> patches/03.patch
# Touch the series file but preserve the order -> OK
$ touch patches/series
$ quilt series -v
-> = patches/01.patch
-> patches/02.patch
+> + patches/01.patch
+> = patches/02.patch
> patches/03.patch
# Change the order of the patch series -> complain
@@ -33,6 +35,15 @@ $ cat > patches/series
$ quilt series -v
> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
+$ quilt pop
+> Patch patches/02.patch appears to be empty, removing
+>
+> Now at patch patches/01.patch
+
+# That wasn't enough, keep complaining
+$ quilt series -v
+> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
+
$ quilt pop -a
> Patch patches/01.patch appears to be empty, removing
>

View File

@ -1,139 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: Check for series file consistency
Upstream: Committed (54268c1aab28ce763ec028982bf54236488dacc5)
Quilt allows manual changes to the series file to some degree. For
example, adding comments or reordering patches in the unapplied
section of the series file is OK. However, changing the order of
applied patches breaks a number of assumptions and can cause quilt to
produce unexpected or confusing results.
For example, starting from this:
+ patches/01.patch
= patches/02.patch
patches/03.patch
patches/04.patch
and moving the last patch at the beginning of the series file,
"quilt series -v" will print:
+ patches/04.patch
+ patches/01.patch
= patches/02.patch
patches/03.patch
That is, it will claim that 04.patch is applied, while it it not.
Likewise, 04.patch would be listed by neither "quilt applied" nor
"quilt unapplied".
While addressing all such cases would certainly be possible, that
would require a significant amount of work, and would come with
performance penalties. It would also be difficult to be certain that
all issues have been found and addressed. So it seems more reasonable
to simply spot such manual changes to the series file and ask the user
to pop all patches to start from a clean state as needed.
---
quilt/scripts/patchfns.in | 35 ++++++++++++++++++++++++++++++++---
test/altered-series.test | 44 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 3 deletions(-)
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -948,6 +948,24 @@ version_check()
return 1
}
+consistency_check()
+{
+ local top applied patches
+
+ top=$(top_patch)
+ applied=$(applied_before "$top")
+ patches=$(patches_before "$top")
+
+ if [ "$applied" != "$patches" ]
+ then
+ return 1
+ else
+ # Skip check until series file is modified again
+ touch "$DB"
+ return 0
+ fi
+}
+
print_patch()
{
echo "${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/}$1"
@@ -1094,10 +1112,21 @@ fi
DB="$QUILT_PC/applied-patches"
-if [ -z "$skip_version_check" ] && ! version_check
+if [ -z "$skip_version_check" ]
then
- printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2
- exit 1
+ if ! version_check
+ then
+ printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2
+ exit 1
+ fi
+
+ # Check if series file was modified manually, and if this is the case,
+ # make sure it is still consistent with the applied patches
+ if [ -s "$DB" -a ! "$DB" -nt "$SERIES" ] && [ "$QUILT_COMMAND" != pop ] && ! consistency_check
+ then
+ printf $"The series file no longer matches the applied patches. Please run 'quilt pop -a'.\n" >&2
+ exit 1
+ fi
fi
### Local Variables:
### mode: shell-script
--- /dev/null
+++ b/test/altered-series.test
@@ -0,0 +1,44 @@
+# Check that manual changes to the series file are detected
+
+$ mkdir patches
+$ cat > patches/series
+< 01.patch
+< 02.patch
+< 03.patch
+
+$ quilt push -q
+> Applying patch patches/01.patch
+> Patch patches/01.patch does not exist; applied empty patch
+> Now at patch patches/01.patch
+
+$ quilt series -v
+> = patches/01.patch
+> patches/02.patch
+> patches/03.patch
+
+# Touch the series file but preserve the order -> OK
+$ touch patches/series
+
+$ quilt series -v
+> = patches/01.patch
+> patches/02.patch
+> patches/03.patch
+
+# Change the order of the patch series -> complain
+$ cat > patches/series
+< 03.patch
+< 01.patch
+< 02.patch
+
+$ quilt series -v
+> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
+
+$ quilt pop -a
+> Patch patches/01.patch appears to be empty, removing
+>
+> No patches applied
+
+$ quilt series -v
+> patches/03.patch
+> patches/01.patch
+> patches/02.patch

View File

@ -1,22 +0,0 @@
From: Leonid Movshovich <event.riga@gmail.com>
Date: Sun, 18 Jan 2015 10:04:56 +0100
Subject: quilt-el: Fix patch select completion
Upstream: Committed (88decf920d2741ab4411f75827ce72beb0dc6995)
A typo in quilt-patch-list prevents patch select completion operation.
Reviewed and tested by Satoru Takeuchi.
diff --git a/lib/quilt.el b/lib/quilt.el
index 0a57b05..be359e5 100644
--- a/lib/quilt.el
+++ b/lib/quilt.el
@@ -126,7 +126,7 @@
(defun quilt-patch-list ()
"Return the list of the name of patches."
- (quilt-cmd-to-list "seriess"))
+ (quilt-cmd-to-list "series"))
(defun quilt-files-affected (&optional first last)
"Return the file names which modified from FIRST to LAST."

View File

@ -1,32 +0,0 @@
From: Leonid Movshovich <event.riga@gmail.com>
Date: Sun, 18 Jan 2015 10:04:52 +0100
Subject: quilt-el: Fix tramp support
Upstream: Committed (7be8f49a95a528e4c46df0cfe26877457c95ac0e)
quilt-find-dir goes to endless recursion if root is not '/'. This
holds for files opened with tramp for example.
Reviewed and tested by Satoru Takeuchi.
diff --git a/lib/quilt.el b/lib/quilt.el
index 6fe1c32..0a57b05 100644
--- a/lib/quilt.el
+++ b/lib/quilt.el
@@ -45,14 +45,14 @@
(or (getenv "QUILT_PATCHES")
"patches")))
-(defun quilt-find-dir (fn)
+(defun quilt-find-dir (fn &optional prefn)
"Return the top level dir of quilt from FN."
- (if (or (not fn) (equal fn "/"))
+ (if (or (not fn) (equal fn "/") (equal fn prefn))
nil
(let ((d (file-name-directory fn)))
(if (file-accessible-directory-p (concat d "/.pc"))
d
- (quilt-find-dir (directory-file-name d))))))
+ (quilt-find-dir (directory-file-name d) d)))))
(defun quilt-dir (&optional fn)
"Return the top level dir of quilt from FN. FN is just a hint and find from other way if FN is nil."

View File

@ -1,24 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: Allow patch format options to pass through
Upstream: Committed (5fd023e14932bd01dbd5cbd6636a7ea5531c5d40)
In order to make "quilt_command refresh" work properly, we must ensure
that format options are passed through.
---
quilt/scripts/patchfns.in | 5 +++++
1 file changed, 5 insertions(+)
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -976,6 +976,11 @@ quilt_command()
local command=$1
shift
+ # Refreshing here must produce the same output as "quilt refresh" on
+ # the command line
+ export QUILT_NO_DIFF_INDEX
+ export QUILT_NO_DIFF_TIMESTAMPS
+
QUILT_COMMAND="" bash $BASH_OPTS -c "${SUBDIR:+cd $SUBDIR;} . $QUILT_DIR/$command" "quilt $command" "$@"
}

View File

@ -1,3 +1,64 @@
-------------------------------------------------------------------
Mon Feb 16 17:22:51 CET 2015 - jdelvare@suse.de
Translation fixes:
- translation-fixes-01.patch: Make gettext happy (needed so that
following patches apply cleanly.)
- translation-fixes-02.patch: Missing escape in Japanese
translation.
- translation-fixes-03.patch: Improve the German translation
(including a number of important fixes.)
- translation-fixes-04.patch: Fix translation of main usage message
(all languages.)
Fixes to the "edit" command:
- edit-01-test-file-creation.patch: edit: Improve the test case
(needed so that following patches apply cleanly.)
- edit-02-call-remove-not-revert.patch: edit: Use command "remove"
to remove files.
- edit-03-fix-corner-case.patch: edit: Fix a corner case.
-------------------------------------------------------------------
Mon Feb 16 15:43:04 CET 2015 - jdelvare@suse.de
- Update to version 0.64:
o Performance: Several optimizations
o Test suite: Several fixes and coverage improvements
o Test suite: Run the tests in predictable order
o files: Add support for unapplied patches
o graph: Check for graphviz availability
o mail: Remove procmail dependency
o push: Do not use interactive mode with -f
o Obsoletes dont-substitute-release.patch
o Obsoletes hackweek-11-01-comment-update.patch
o Obsoletes hackweek-11-02-cleanups.patch
o Obsoletes hackweek-11-03-inspect-list-all-options.patch
o Obsoletes hackweek-11-04-pass-through.patch
o Obsoletes hackweek-11-05-no-explicit-rm.patch
o Obsoletes hackweek-11-06-exclude-from-md5sums.patch
o Obsoletes hackweek-11-07-normalize-path.patch
o Obsoletes hackweek-11-08-inspect-split-wrapper-script.patch
o Obsoletes hackweek-11-09-inspect-temporary-data-file.patch
o Obsoletes hackweek-11-10-setup-fix-path-to-extra-patches.patch
o Obsoletes hackweek-11-11-setup-trace-call-first.patch
o Obsoletes hackweek-11-12-setup-alternative-implementation-v2.patch
o Obsoletes hackweek-11-13-setup-let-normalize_path-deal-with-dot.patch
o Obsoletes hackweek-11-14-setup-fix-link-creation.patch
o Obsoletes hackweek-11-15-setup-missing-escape-in-normalize_path.patch
o Obsoletes hackweek-11-16-setup-fix-create_symlink-corner-case.patch
o Obsoletes inspect-skip-version-check.patch
o Obsoletes pop-add-auto-refresh.patch
o Obsoletes push-add-auto-refresh.patch
o Obsoletes quilt-check-modified-series-rearm.patch
o Obsoletes quilt-check-modified-series.patch
o Obsoletes quilt-el-fix-patch-select-completion.patch
o Obsoletes quilt-el-fix-tramp-support.patch
o Obsoletes quilt-format-options-pass-through.patch
o Obsoletes setup-check-for-rpmbuild.patch
o Obsoletes setup-fix-tar-with-long-options.patch
o Obsoletes setup-skip-version-check.patch
- Refresh suse-workaround-pseudo-release.patch
-------------------------------------------------------------------
Wed Feb 4 08:52:03 CET 2015 - jdelvare@suse.de

View File

@ -17,7 +17,7 @@
Name: quilt
Version: 0.63
Version: 0.64
Release: 0
Summary: A Tool for Working with Many Patches
License: GPL-2.0+
@ -43,34 +43,13 @@ Patch1: expand.diff
Patch2: quilt-support-vimdiff.patch
Patch3: patch-wrapper-rpm.diff
Patch4: suse-workaround-pseudo-release.patch
Patch5: setup-skip-version-check.patch
Patch6: setup-check-for-rpmbuild.patch
Patch7: setup-fix-tar-with-long-options.patch
Patch8: quilt-format-options-pass-through.patch
Patch9: pop-add-auto-refresh.patch
Patch10: push-add-auto-refresh.patch
Patch11: inspect-skip-version-check.patch
Patch12: quilt-check-modified-series.patch
Patch13: quilt-check-modified-series-rearm.patch
Patch14: quilt-el-fix-tramp-support.patch
Patch15: quilt-el-fix-patch-select-completion.patch
Patch16: dont-substitute-release.patch
Patch61: hackweek-11-01-comment-update.patch
Patch62: hackweek-11-02-cleanups.patch
Patch63: hackweek-11-03-inspect-list-all-options.patch
Patch64: hackweek-11-04-pass-through.patch
Patch65: hackweek-11-05-no-explicit-rm.patch
Patch66: hackweek-11-06-exclude-from-md5sums.patch
Patch67: hackweek-11-07-normalize-path.patch
Patch68: hackweek-11-08-inspect-split-wrapper-script.patch
Patch69: hackweek-11-09-inspect-temporary-data-file.patch
Patch70: hackweek-11-10-setup-fix-path-to-extra-patches.patch
Patch71: hackweek-11-11-setup-trace-call-first.patch
Patch72: hackweek-11-12-setup-alternative-implementation-v2.patch
Patch73: hackweek-11-13-setup-let-normalize_path-deal-with-dot.patch
Patch74: hackweek-11-14-setup-fix-link-creation.patch
Patch75: hackweek-11-15-setup-missing-escape-in-normalize_path.patch
Patch76: hackweek-11-16-setup-fix-create_symlink-corner-case.patch
Patch5: translation-fixes-01.patch
Patch6: translation-fixes-02.patch
Patch7: translation-fixes-03.patch
Patch8: translation-fixes-04.patch
Patch9: edit-01-test-file-creation.patch
Patch10: edit-02-call-remove-not-revert.patch
Patch11: edit-03-fix-corner-case.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%if 0%{?suse_version}
@ -103,27 +82,6 @@ http://www.zip.com.au/~akpm/linux/patches/.
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%build
# --with-rpmbuild=/usr/lib/rpm/rpmb:

View File

@ -1,28 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Check for rpmbuild availability
References: bnc#873817
Upstream: Committed (bf8bc1cfc097ab7692d2ce41a9933ea3b0d9e5e7)
Before running inspect on a spec file, verify that rpmbuild is
available. Print a user-friendly error message if not.
---
quilt/setup.in | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -173,6 +173,14 @@ case "$1" in
*.spec)
spec_file=$1
+ # check if rpmbuild is installed before running inspect
+ if ! type rpmbuild &> /dev/null
+ then
+ printf $"You have to install '%s' (from package %s) to use 'quilt %s'\n" \
+ rpmbuild rpm-build setup >&2
+ exit 1
+ fi
+
if ! $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \
"$spec_file" 2>&1 > $tmpfile
then

View File

@ -1,87 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: inspect: Handle long options passed to tar
Upstream: Committed (1e9f433f693b4ee09ebf3267222b11694448e81f)
The command line interface to tar is complex and sometimes confusing,
but we should still do our best to figure out where the file name is
on that command line.
Add support for the --file FILE and --file=FILE options. Other long
options must be explicitly skipped, as well as short options not
containing the letter "f".
With this we should be good to go in most real-world cases, but
there are still a few corner cases we may not handle properly. Let's
just hope we never hit them.
Reported by Petr Tesarik.
---
Changes since v1:
* Fix an endless loop when trying to parse options "x --file file".
* On "-xC software -f file", the previous code would extract "-f" as
the file name, instead of "file".
quilt/scripts/inspect.in | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
--- a/quilt/scripts/inspect.in
+++ b/quilt/scripts/inspect.in
@@ -258,13 +258,58 @@ cat <<-'EOF' > $tmpdir/bin/wrapper
tar_input_file()
{
case "$1" in
+ # Modern option format
+ -*)
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ # Extract the file name (long option)
+ --file)
+ echo "$2"
+ return
+ ;;
+ --file=*)
+ echo "${1#--file=}"
+ return
+ ;;
+ # Skip other long options
+ --*)
+ shift
+ ;;
+ # Extract the file name (short option)
+ -*f)
+ echo "$2"
+ return
+ ;;
+ -f*)
+ echo "${1#-f}"
+ return
+ ;;
+ # Skip other short options and parameters
+ *)
+ shift
+ ;;
+ esac
+ done
+ ;;
+ # Legacy option format (must always come first)
*C*f*)
echo "$3"
+ return
;;
*f*)
echo "$2"
+ return
+ ;;
+ ?*)
+ # Eat legacy options and try again
+ until [ $# -eq 0 -o "${1:0:1}" = "-" ]; do
+ shift
+ done
+ tar_input_file "$@"
+ return
;;
esac
+ return 1
}
unzip_input_file()

View File

@ -1,43 +0,0 @@
From: Jean Delvare <jdelvare@suse.de>
Subject: setup: Skip version check
Upstream: Committed (a626fcf8b95f2ff51701a00d65043b9f65207514)
The version check is irrelevant when running "quilt setup", as it is
creating a brand new working tree anyway.
Reported by Petr Tesarik.
---
diff --git a/quilt/setup.in b/quilt/setup.in
index 36d0d24..a90c5ad 100644
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -6,6 +6,9 @@
#
# See the COPYING and AUTHORS files for more details.
+# Version check is irrelevant to this command.
+skip_version_check=1
+
# Read in library functions
if [ "$(type -t patch_file_name)" != function ]
then
diff --git a/test/setup.test b/test/setup.test
index 5a39475..69725ec 100644
--- a/test/setup.test
+++ b/test/setup.test
@@ -32,6 +32,13 @@ $ quilt push -qa
> Now at patch patches/again.diff
$ cd ..
$ rm -rf dir
+
+# Quilt setup should happily ignore patches and .pc directories
+$ mkdir .pc patches
+$ quilt setup series
+> Unpacking archive dir.tar.gz
+$ rm -rf dir .pc patches
+
$ quilt setup -d other series
> Unpacking archive dir.tar.gz
$ cd other/dir
--
cgit v0.9.0.2

View File

@ -5,23 +5,23 @@ newer versions of rpmbuild don't like. Filter them out to make rpmbuild
happy again. Packages in openSUSE 11.4 and later no longer need this.
---
quilt/scripts/inspect.in | 8 ++++++++
quilt/setup.in | 8 ++++++++
1 file changed, 8 insertions(+)
--- quilt-0.51.orig/quilt/scripts/inspect.in
+++ quilt-0.51/quilt/scripts/inspect.in
@@ -67,6 +67,14 @@ add_exit_handler "rm -rf $tmpdir"
mkdir -p $tmpdir/build
mkdir -p $tmpdir/bin
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -230,6 +230,14 @@ inspect()
mkdir -p $tmpdir/build
fi
+# Older versions of Suse packages have a symbolic release number, and rpmbuild
+# won't like that, so change it to something compliant.
+if grep -q '^Release:.*[<>]' "$specdir/$specfile"
+then
+ sed -e '/^Release:/s/[<>]//g' < "$specdir/$specfile" > $tmpdir/"$specfile"
+ specdir=$tmpdir
+fi
+ # Older versions of Suse packages have a symbolic release number, and
+ # rpmbuild won't like that, so change it to something compliant.
+ if grep -q '^Release:.*[<>]' "$specdir/$specfile"
+ then
+ sed -e '/^Release:/s/[<>]//g' < "$specdir/$specfile" > $tmpdir/"$specfile"
+ specdir=$tmpdir
+ fi
+
# Redirect file descriptors
# 5 is used in verbose mode, 4 in non-verbose mode, and 2 for both (real errors)
if [ -n "$verbose" ]
# Redirect file descriptors
# 5 is used in verbose mode, 4 in non-verbose mode, and 2 for both (real errors)
if [ -n "$verbose" ]

138
translation-fixes-01.patch Normal file
View File

@ -0,0 +1,138 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Tue, 10 Feb 2015 09:22:06 +0000
Subject: Make gettext happy
Upstream: Committed (cd591fb1656cf9649e92cc5f49925bbc590aae84)
---
diff --git a/po/de.po b/po/de.po
index 5686299..e8190cf 100644
--- a/po/de.po
+++ b/po/de.po
@@ -211,9 +211,9 @@ msgid ""
"R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] "
"[--sort] [--color[=always|auto|never]] [file ...]\\n"
msgstr ""
-"Aufruf: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-"
-"z] [-R] [-P patch] [--snapshot] [--diff=programm] [--no-timestamps] [--no-"
-"index] [--sort] [--color[=always|auto|never]] [datei ...]\\n"
+"Aufruf: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-"
+"R] [-P patch] [--snapshot] [--diff=programm] [--no-timestamps] [--no-index] "
+"[--sort] [--color[=always|auto|never]] [datei ...]\\n"
#: quilt/diff.in:28
msgid ""
@@ -496,8 +496,8 @@ msgid ""
"Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] "
"[-T ps] [patch]\\n"
msgstr ""
-"Aufruf: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-"
-"labels=files] [-T ps] [patch]\\n"
+"Aufruf: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] "
+"[-T ps] [patch]\\n"
#: quilt/graph.in:26
msgid ""
@@ -746,8 +746,8 @@ msgid ""
"[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--"
"subject ...] [--reply-to message] [first_patch [last_patch]]\\n"
msgstr ""
-"Aufruf: quilt mail {--mbox datei|--send} [-m text] [-M datei] [--prefix präfix] "
-"[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--"
+"Aufruf: quilt mail {--mbox datei|--send} [-m text] [-M datei] [--prefix "
+"präfix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--"
"subject ...] [--reply-to message] [first_patch [last_patch]]\\n"
#: quilt/mail.in:27
@@ -850,8 +850,8 @@ msgstr "Einleitungsnachricht bereits angegeben"
#: quilt/mail.in:310
msgid "Could not determine the envelope sender address. Please use --sender."
msgstr ""
-"Die Envelope-Adresse konnte nicht festgestellt werden. Bitte verwenden Sie "
-"--sender."
+"Die Envelope-Adresse konnte nicht festgestellt werden. Bitte verwenden Sie --"
+"sender."
#: quilt/mail.in:455
msgid "Unable to extract a subject header from %s\\n"
@@ -924,8 +924,8 @@ msgstr ""
msgid ""
"Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n"
msgstr ""
-"Patches mit Level -p%s können nicht erzeugt werden, bitte stattdessen "
-"-p0, -p1 oder -pab angeben\\n"
+"Patches mit Level -p%s können nicht erzeugt werden, bitte stattdessen -p0, -"
+"p1 oder -pab angeben\\n"
#: quilt/new.in:89
msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n"
@@ -1216,9 +1216,9 @@ msgid ""
"[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-"
"trailing-whitespace] [patch]\\n"
msgstr ""
-"Aufruf: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] "
-"[-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--"
-"strip-trailing-whitespace] [patch]\\n"
+"Aufruf: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] "
+"[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-"
+"trailing-whitespace] [patch]\\n"
#: quilt/refresh.in:26
msgid ""
@@ -1355,8 +1355,8 @@ msgid ""
"Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n"
msgstr ""
"--strip-trailing-whitespace kann nicht für Patches verwendt werden, die "
-"Dateien enthalten, welche danach von anderen Patches weiter verändert "
-"werden.\\n"
+"Dateien enthalten, welche danach von anderen Patches weiter verändert werden."
+"\\n"
#: quilt/refresh.in:253 quilt/refresh.in:355
msgid "Nothing in patch %s\\n"
@@ -1526,16 +1526,16 @@ msgstr ""
#: quilt/scripts/patchfns.in:1018
msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n"
msgstr ""
-"Sie müssen '%s' (aus dem Paket %s) installieren, um 'quilt %s' nutzen zu"
-"können\\n"
+"Sie müssen '%s' (aus dem Paket %s) installieren, um 'quilt %s' nutzen "
+"zukönnen\\n"
#: quilt/scripts/patchfns.in:1138
msgid ""
"The working tree was created by an older version of quilt. Please run 'quilt "
"upgrade'.\\n"
msgstr ""
-"Das Arbeitsverzeichnis wurde von einer älteren quilt-Version erstellt. "
-"Bitte führen Sie \\`quilt upgrade' aus.\\n"
+"Das Arbeitsverzeichnis wurde von einer älteren quilt-Version erstellt. Bitte "
+"führen Sie \\`quilt upgrade' aus.\\n"
#: quilt/scripts/patchfns.in:1146
msgid ""
@@ -1647,8 +1647,7 @@ msgid ""
msgstr ""
"\n"
"Initialisiert einen Quellbaum aus einer rpm-spec-Datei oder einer quilt-\n"
-"series-Datei."
-"\n"
+"series-Datei.\n"
"-d\tOptionaler Pfadpräfix für den resultierenden Quellbaum.\n"
"\n"
"--sourcedir\n"
diff --git a/po/ja.po b/po/ja.po
index 13fb9f5..43bb657 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1476,7 +1476,9 @@ msgstr ""
#: quilt/scripts/patchfns.in:1018
msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n"
-msgstr "'%s' (%s パッケージ) がインストールされていないと、'quilt %s' は利用できません\\n"
+msgstr ""
+"'%s' (%s パッケージ) がインストールされていないと、'quilt %s' は利用できませ"
+"ん\\n"
#: quilt/scripts/patchfns.in:1138
msgid ""
--
cgit v0.9.0.2

View File

@ -0,0 +1,23 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 11 Feb 2015 16:59:15 +0000
Subject: Missing escape in Japanese translation
Upstream: Committed (0be1e8aed41a67bca7756be10051d353ec0c2c15)
The original message has the dollar sign protected, so the Japanese
translation should do the same.
---
diff --git a/po/ja.po b/po/ja.po
index 43bb657..6697b0d 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -589,7 +589,7 @@ msgstr ""
"最上位または指定されたパッチのヘッダを出力または変更する。\n"
"\n"
"-a, -r, -e\n"
-"\tパッチのヘッダに追加 (-a) またはヘッダを変更 (-r)、$EDITOR (%s)を\n"
+"\tパッチのヘッダに追加 (-a) またはヘッダを変更 (-r)、\\$EDITOR (%s)を\n"
"\t使って編集 (-e)する。オプションが指定されなかった場合はパッチの\n"
"\tヘッダを出力する。\n"
"\n"
--
cgit v0.9.0.2

576
translation-fixes-03.patch Normal file
View File

@ -0,0 +1,576 @@
From: Holger Wansing <linux@wansing-online.de>
Date: Wed, 11 Feb 2015 16:59:19 +0000
Subject: Improve the German translation
Upstream: Committed (cecf83188b19653b0d96781bcdaf0fd8c409599a)
---
diff --git a/po/de.po b/po/de.po
index e8190cf..379acf3 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: quilt 0.64\n"
-"PO-Revision-Date: 2015-02-05 16:26+0100\n"
+"PO-Revision-Date: 2015-02-10 17:06+0100\n"
"Last-Translator: Holger Wansing <linux@wansing-online.de>\n"
"Language-Team: <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
@@ -51,14 +51,14 @@ msgstr ""
"Globale Optionen:\n"
"\n"
"--trace\n"
-"\tFührt die Befehle im bash Trace-Modus (-x) aus. Für Debugging.\n"
+"\tDie Befehle in bash im Trace-Modus (-x) ausführen, für Debugging.\n"
"\n"
"--quiltrc datei\n"
-"\tVerwenden der angegebenen Konfigurationsdatei statt ~/.quiltrc (oder\n"
-"\t@ETCDIR@/quilt.quiltrc, wenn ~/.quiltrc fehlt). Siehe die pdf-"
-"Dokumentation\n"
-"\tfür mögliche Einstellungen. Der Dateiname \\`-' bedeutet, dass keine\n"
-"\tResource-Datei eingelesen werden soll.\n"
+"\tDie angegebene Konfigurationsdatei verwenden statt ~/.quiltrc (oder\n"
+"\t@ETCDIR@/quilt.quiltrc, wenn ~/.quiltrc fehlt). Details über mögliche\n"
+"\tInhalte finden Sie in der pdf-Dokumentation.\n"
+"\tDer Dateiname \\`-' bedeutet, dass keine Konfigurationsdatei\n"
+"\teingelesen werden soll.\n"
"\n"
"--version\n"
"\tGibt die Versionsummer aus."
@@ -92,7 +92,7 @@ msgstr "Die Datei %s befindet sich unterhalb des Verzeichnisses %s\\n"
#: quilt/add.in:103
msgid "File %s is already in patch %s\\n"
-msgstr "Datei %s ist bereits in Patch $patch\\n"
+msgstr "Datei %s ist bereits in Patch %s\\n"
#: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84
msgid "File %s modified by patch %s\\n"
@@ -130,7 +130,7 @@ msgstr ""
"angezeigt.\n"
"\n"
"-P patch\n"
-"\tNur bis zum angegebenen Patch anstatt bis zum obersten Patch\n"
+"\tNur bis zum angegebenen Patch statt bis zum obersten Patch\n"
"\tnach Änderungen suchen.\n"
#: quilt/applied.in:22
@@ -168,14 +168,14 @@ msgid ""
"\tIgnored if not used with \\`-r'.\n"
msgstr ""
"\n"
-"Löscht den obersten oder angegebenen Patch aus der series-Datei. Falls\n"
+"Den obersten oder angegebenen Patch aus der series-Datei löschen. Falls\n"
"dieser Patch angewandt ist, wird er zuerst von quilt entfernt. (Momentan\n"
"kann nur der oberste Patch entfernt werden.)\n"
"\n"
-"-n\tLösche den nächsten (dem obersten folgenden) Patch statt des\n"
+"-n\tDen nächsten (dem obersten folgenden) Patch löschen statt den\n"
"\tobersten oder angegebenen.\n"
"\n"
-"-r\tEntfernt den Patch auch aus dem patches-Verzeichnis.\n"
+"-r\tDen Patch auch aus dem patches-Verzeichnis entfernen.\n"
"\n"
"--backup\n"
"\tDen Patch in patch~ umbenennen, statt ihn zu löschen.\n"
@@ -203,7 +203,7 @@ msgstr "Datei %s konnte nicht gesichert werden\\n"
#: quilt/delete.in:134
msgid "Failed to remove patch file %s\\n"
-msgstr "Patch %s konnte nicht entfernt werden\\n"
+msgstr "Patchdatei %s konnte nicht entfernt werden\\n"
#: quilt/diff.in:24
msgid ""
@@ -274,17 +274,17 @@ msgstr ""
"\tunterstützt).\n"
"\n"
"-p ab\tErzeugen einen Patches der Art -p1, jedoch a/datei und b/datei\n"
-"\tals ursprünglichen und neuen Dateinamen verwenden anstelle von\n"
+"\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n"
"\tdir.orig/datei und dir/datei.\n"
"\n"
"-u, -U anzahl, -c, -C anzahl\n"
-"\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl\n"
+"\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl von\n"
"\tKontextzeilen bzw. erzeugen eines Context-Diffs (-c, -C) mit der\n"
-"\tangegebenen Anzahl Kontextzeilen. Die Anzahl der Kontextzeilen ist 3,\n"
-"\twenn nicht anders angegeben.\n"
+"\tangegebenen Anzahl von Kontextzeilen. Die Anzahl der Kontextzeilen ist\n"
+"\t3, wenn nicht anders angegeben.\n"
"\n"
"--no-timestamps\n"
-"\tKeine Datei-Zeitstempel im Patchheader angeben.\n"
+"\tKeine Datei-Zeitstempel in Patch-Kopfzeilen angeben.\n"
"\n"
"--no-index\n"
"\tKeine \\`Index:'-Zeilen ausgeben.\n"
@@ -315,14 +315,14 @@ msgstr ""
"\tSyntaxeinfärbung verwenden (wird bei auto nur aktiviert, wenn Ausgabe\n"
"\tauf tty).\n"
"\n"
-"--sort\tDateien im Patch nach ihrem Namen sortieren, statt die\n"
-"\tursprüngliche Reihenfolge zu erhalten.\n"
+"--sort\tDateien im Patch nach ihren Namen sortieren, statt die\n"
+"\tursprüngliche Reihenfolge beizubehalten.\n"
#: quilt/diff.in:226
msgid ""
"Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n"
msgstr ""
-"Die Optionen \\`--combine', \\`--snapshot', und \\`-z' können nicht "
+"Die Optionen \\`--combine', \\`--snapshot' und \\`-z' können nicht "
"kombiniert werden.\\n"
#: quilt/diff.in:240
@@ -363,8 +363,8 @@ msgid ""
"the topmost patch.\n"
msgstr ""
"\n"
-"Füge die angegebene(n) Datei(en) dem obersten Patch hinzu, und editiere\n"
-"sie dann in \\$EDITOR (%s).\n"
+"Die angegebene(n) Datei(en) dem obersten Patch hinzufügen und dann im\n"
+"\\$EDITOR (%s) editieren.\n"
#: quilt/files.in:22
msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n"
@@ -427,10 +427,10 @@ msgid ""
"\twhen applying patchfile.\n"
msgstr ""
"\n"
-"Integriert den Patch von der Standardeingabe in den obersten Patch:\n"
-"Stellt zuerst sicher, dass alle Dateien, die verändert werden, im\n"
-"obersten Patch enthalten sind, und wendet dann den neuen Patch\n"
-"mit der angegebenen Anzahl an Strip-Ebenen an (Standardwert = 1).\n"
+"Den Patch von der Standardeingabe in den obersten Patch integrieren:\n"
+"Es wird zuerst sichergestellt, dass alle Dateien, die verändert werden,\n"
+"im obersten Patch enthalten sind, dann wird der neue Patch mit der\n"
+"angegebenen Anzahl an Strip-Ebenen angewandt (Standardwert = 1).\n"
"\n"
"-r\tPatch verkehrt herum anwenden.\n"
"\n"
@@ -470,7 +470,7 @@ msgstr ""
"\n"
"Den obersten Patch aufspalten. Aufspalten bedeutet, dass eine neue Kopie\n"
"des Patches unter einem anderen Namen angelegt wird, und der neue Patch\n"
-"anstelle des ursprünglichen in die Series-Datei eingetragen wird. Das ist\n"
+"anstelle des ursprünglichen in die series-Datei eingetragen wird. Das ist\n"
"praktisch, wenn ein Patch verändert werden soll, aber die ursprüngliche\n"
"Version erhalten bleiben soll. Eine typische Abfolge von Befehlen ist:\n"
"fork, edit, refresh.\n"
@@ -485,7 +485,7 @@ msgstr "Patch %s existiert bereits, bitte neuen Namen wählen\\n"
#: quilt/fork.in:96
msgid "Fork of patch %s to patch %s failed\\n"
-msgstr "Fehler beim Aufspalten von %s auf %s\\n"
+msgstr "Fehler beim Aufspalten von %s nach %s\\n"
#: quilt/fork.in:102 quilt/refresh.in:347
msgid "Fork of patch %s created as %s\\n"
@@ -533,7 +533,7 @@ msgstr ""
"Erzeugen eines gerichteten dot(1)-Graphen, der die Abhängigkeiten zwischen\n"
"den angewandten Patches zeigt. Ein Patch hängt von einem anderen ab, wenn\n"
"beide dieselbe Datei verändern, oder mit der --lines-Option, wenn sich die\n"
-"Anderungen in den Patches überlappen. Wenn nicht anders angegeben, zeigt\n"
+"Änderungen in den Patches überlappen. Wenn nicht anders angegeben, zeigt\n"
"der Graph alle Patches, von denen der oberste Patch abhängt.\n"
"Wenn ein Patchname angegeben wird, wird ein Graph erzeugt, der alle Patches\n"
"beinhaltet, von denen der angegebene Patch abhängt, sowie alle, die von\n"
@@ -571,14 +571,14 @@ msgid ""
"\tcan be passed after a second double-dash (-- --).\n"
msgstr ""
"\n"
-"Die Quelldateien rekursiv durchsuchen, und Patches und Quilt-\n"
+"Die Quelldateien rekursiv durchsuchen und Patches sowie Quilt-\n"
"Metainformation überspringen. Wenn kein Dateiname angegeben wird, wird\n"
-"der gesamte Quellbaum durchsucht. Siehe die Manual Page von grep(1) für\n"
-"weitere Optionen.\n"
+"der gesamte Quellbaum durchsucht. Lesen Sie die Handbuchseite (manpage)\n"
+"von grep(1) für weitere Optionen.\n"
"\n"
-"-h\tGib diese Hilfsmeldung aus. Die grep-Option -h kann nach einem\n"
-"\tDoppelstrick (--) angegeben werden. Suchausdrücke, die mit einem\n"
-"\tStrich beginnen, können nach einem weiteren Doppel-Bindestrich (--)\n"
+"-h\tDiese Hilfe ausgeben. Die grep-Option -h kann nach einem\n"
+"\tDoppel-Bindestrich (--) angegeben werden. Suchausdrücke, die mit\n"
+"\teinem Strich beginnen, können nach einem weiteren Doppel-Bindestrich\n"
"\tangegeben werden.\n"
#: quilt/header.in:24
@@ -613,9 +613,9 @@ msgstr ""
"\n"
"-a, -r, -e\n"
"\tText von der Standardeingabe an den Header anfügen (-a), den Header\n"
-"\tmit der Standardeingabe ersetzen, oder den Header in \\$EDITOR (%s)\n"
-"\teditieren. Wenn keine dieser Optionen angegeben ist, wird der Header\n"
-"\tausgegeben.\n"
+"\tmit der Standardeingabe ersetzen (-r), oder den Header in \\$EDITOR\n"
+"\t(%s) editieren (-e). Wenn keine dieser Optionen angegeben ist, wird\n"
+"\tder Header ausgegeben.\n"
"\n"
"--strip-diffstat\n"
"\tEntfernen der diffstat-Ergebnisse vom Header.\n"
@@ -667,11 +667,11 @@ msgid ""
msgstr ""
"\n"
"Importieren externer Patches. Die Patches werden nach dem momentan obersten\n"
-"Patch eingefügt und dann mit dem push-Befehl angewandt werden.\n"
+"Patch eingefügt und müssen dann mit dem push-Befehl angewandt werden.\n"
"\n"
"-p num\n"
"\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n"
-"\tentfernt werden sollen (Standard=1).\n"
+"\tentfernt werden sollen (Standard = 1).\n"
"\n"
"-R\n"
"\tPatch umgekehrt anwenden.\n"
@@ -800,22 +800,22 @@ msgstr ""
"\n"
"Erzeugen von E-Mail-Nachrichten für einen angegebenen Bereich von Patches\n"
"oder alle Patches in der series-Datei, und sie entweder in einer Mailbox-\n"
-"Datei speichern oder sofort versenden. Der Editor wird mit einer\n"
-"Einleitung als Vorlage geöffnet. Für Details lesen Sie %s.\n"
+"Datei speichern oder sofort versenden. Der Editor wird mit einem\n"
+"Einleitungstext als Vorlage geöffnet. Für Details lesen Sie %s.\n"
"Wenn ein Bereich von Patches angegeben wird, kann \\`-' für den ersten bzw.\n"
-"letzten Patch in der Series-Datei angegeben werden.\n"
+"letzten Patch in der series-Datei angegeben werden.\n"
"\n"
"-m text\n"
-"\tText, der für die Einleitung verwendet werden soll. Bei Verwendung\n"
-"\tdieser Option wird der Editor nicht gestartet, und die Patches werden\n"
-"\twerden sofort abgearbeitet.\n"
+"\tText, der als Einleitungstext verwendet werden soll. Bei Verwendung\n"
+"\tdieser Option wird der Editor nicht gestartet und die Patches werden\n"
+"\tsofort abgearbeitet.\n"
"\n"
"-M datei\n"
-"\tWie die Option -m, jedoch wird die Einleitung aus der Datei gelesen.\n"
+"\tWie -m, jedoch wird der Einleitungstext aus der Datei gelesen.\n"
"\n"
"--prefix präfix\n"
-"\tEinen anderen Präfix statt \\`patch' in dem eckig umklammerten\n"
-"\tText der Subject-Kopfzeile verwenden.\n"
+"\tEinen anderen Präfix statt \\`patch' in dem durch eckige Klammern\n"
+"\teingefassten Text der Subject-Kopfzeile verwenden.\n"
"\n"
"--mbox datei\n"
"\tAlle Nachrichten in der angegebenen Datei im mbox-Format speichern.\n"
@@ -833,11 +833,12 @@ msgstr ""
"\tOption angegeben ist, wird der Wert der Option --sender verwendet.\n"
"\n"
"--to, --cc, --bcc\n"
-"\tEinen Empfänger an die To, Cc, or Bcc-Kopfzeilen anfügen.\n"
+"\tEinen Empfänger zur To-, Cc-, oder Bcc-Kopfzeile hinzufügen.\n"
"\n"
"--signature datei\n"
"\tDie angegebene Signatur an Nachrichten anhängen (Standard ist\n"
-"\t~/.signature, falls vorhanden; \\`-' verwenden für keine Signatur.\n"
+"\t~/.signature, falls vorhanden; bei \\`-' wird keine Signatur\n"
+"\tverwendet.\n"
"\n"
"--reply-to nachrichten-header\n"
"\tDie entsprechenden Header hinzufügen, um auf die angegebene\n"
@@ -845,7 +846,7 @@ msgstr ""
#: quilt/mail.in:204 quilt/mail.in:212
msgid "Introduction message already specified"
-msgstr "Einleitungsnachricht bereits angegeben"
+msgstr "Einleitungstext bereits angegeben"
#: quilt/mail.in:310
msgid "Could not determine the envelope sender address. Please use --sender."
@@ -903,14 +904,14 @@ msgstr ""
"\n"
"Erzeugen eines neuen Patches mit dem angegebenen Dateinamen und anfügen\n"
"nach dem obersten Patch. Dem Name kann der Name eines Unterverzeichnisses\n"
-"vorangestellt werden; dies erlaubt es, zusammengehörige Patches zusammen-\n"
-"zufassen.\n"
+"vorangestellt werden; dies erlaubt es, zusammengehörige Patches\n"
+"zusammenzufassen.\n"
"\n"
"-p n\tErzeugen eines Patches der Art -p n (-p0 oder -p1 werden "
"unterstützt).\n"
"\n"
"-p ab\tErzeugen eines Patches der Art -p1, jedoch a/datei und b/datei\n"
-"\tals ursprünglichen und neuen Dateinamen verwenden anstelle von\n"
+"\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n"
"\tdir.orig/datei und dir/datei.\n"
"\n"
"Quilt kann aus Unterverzeichnissen eines Quellbaums heraus verwendet "
@@ -941,7 +942,7 @@ msgstr "Der oberste Patch ist jetzt %s\\n"
#: quilt/new.in:110 quilt/refresh.in:343
msgid "Failed to create patch %s\\n"
-msgstr "Patch konnte %s nicht erzeugt werden\\n"
+msgstr "Patch %s konnte nicht erzeugt werden\\n"
#: quilt/next.in:22
msgid "Usage: quilt next [patch]\\n"
@@ -1022,20 +1023,20 @@ msgstr ""
"Option wird der oberste Patch entfernt. Bei Angabe einer Zahl wird die\n"
"entsprechende Anzahl von Patches entfernt. Wenn ein Name angegeben wird,\n"
"werden alle Patches oberhalb des angegebenen Patches entfernt. Patchnamen\n"
-"können den patches/-Präfix enthalten, was bedeutet, dass Autovervoll-\n"
-"ständigung für die Dateinamen genutzt werden kann.\n"
+"können den patches/-Präfix enthalten, was bedeutet, dass\n"
+"Autovervollständigung für die Dateinamen genutzt werden kann.\n"
"\n"
"-a\tAlle angewandten Patches entfernen.\n"
"\n"
"-f\tErzwungenes Entfernen. Der Zustand vor dem Anwenden das Patches wird\n"
"\tüber die Sicherungsdateien wiederhergestellt.\n"
"\n"
-"-R\t Immer überprüfen, ob sich Patches vollständig entfernen lassen,\n"
+"-R\tImmer überprüfen, ob sich Patches vollständig entfernen lassen,\n"
"\tnicht auf die Zeitspempel der Dateien verlassen.\n"
"\n"
"-q\tWenige Meldungen ausgeben.\n"
"\n"
-"-v\tViele Meldungen ausgeben.\n"
+"-v\tAusführliche Meldungen ausgeben.\n"
"\n"
"--refresh\n"
"\tJeden Patch automatisch neu erzeugen, bevor seine Anwendung rückgängig\n"
@@ -1065,7 +1066,7 @@ msgstr "Optionen %s und %s können nicht kombiniert werden\\n"
#: quilt/pop.in:238
msgid "Patch %s needs to be refreshed first.\\n"
-msgstr "Patch %s muss zuerst aktualisiert werden (Refresh).\\n"
+msgstr "Patch %s muss zuerst aktualisiert werden (refresh).\\n"
#: quilt/pop.in:248
msgid "No patch removed\\n"
@@ -1137,9 +1138,9 @@ msgid ""
msgstr ""
"\n"
"Patches aus der series-Datei anwenden. Ohne weitere Optionen wird der\n"
-"nächste Patch in der series-Datei angewandt. Wird eine Zahl angegeben,\n"
-"wird die angegebene Anzahl von Patches angewandet. Wenn ein Name\n"
-"angegeben wird, werden alle Patches bis einschliesslich diesem Patch\n"
+"nächste Patch in der series-Datei angewandt. Wenn eine Zahl angegeben\n"
+"ist, wird die angegebene Anzahl von Patches angewandet. Ist ein Name\n"
+"angegeben, werden alle Patches bis einschliesslich diesem Patch\n"
"angewandt. Patchnamen können den patches/-Präfix enthalten, was\n"
"bedeutet, dass Autovervollständigung für die Dateinamen genutzt\n"
"werden kann.\n"
@@ -1150,7 +1151,7 @@ msgstr ""
"\n"
"-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten.\n"
"\n"
-"-v\tViele Meldungen ausgeben.\n"
+"-v\tAusführliche Meldungen ausgeben.\n"
"\n"
"--fuzz=N\n"
"\tDen maximalen Unscharf-Faktor (fuzz) setzen (Voreinstellung: 2).\n"
@@ -1188,11 +1189,11 @@ msgstr "Patch %s scheint leer zu sein; angewandt\\n"
#: quilt/push.in:225
msgid "Applied patch %s (forced; needs refresh)\\n"
-msgstr "Patch %s angewandt (erzwungen, muss aktualisiert werden (Refresh))\\n"
+msgstr "Patch %s angewandt (erzwungen, muss aktualisiert werden (refresh))\\n"
#: quilt/push.in:235
msgid "Patch %s can be reverse-applied\\n"
-msgstr "Patch %s kann verkehrt angewandt werden\\n"
+msgstr "Patch %s kann umgekehrt angewandt werden\\n"
#: quilt/push.in:238
msgid "Patch %s does not apply (enforce with -f)\\n"
@@ -1204,7 +1205,7 @@ msgstr "Patch %s wurde bereits angewandt; überprüfen Sie Ihre series-Datei\\n"
#: quilt/push.in:405
msgid "The topmost patch %s needs to be refreshed first.\\n"
-msgstr "Der oberste Patch %s muss zuerst aktualisiert werden (Refresh).\\n"
+msgstr "Der oberste Patch %s muss zuerst aktualisiert werden (refresh).\\n"
#: quilt/push.in:413
msgid "No patch applied\\n"
@@ -1272,58 +1273,55 @@ msgid ""
"\tStrip trailing whitespace at the end of lines.\n"
msgstr ""
"\n"
-"Den obersten oder angegebenen Patch auffrischen. Dokumentation in der\n"
+"Den obersten oder angegebenen Patch aktualisieren. Dokumentation in der\n"
"Patchdatei, die vor dem eigentlichen Patch steht, bleibt dabei\n"
"erhalten.\n"
"\n"
"Es können beliebige angewandte Patches aktualisiert werden. Wenn\n"
"Patches, die nach dem angegebenen Patch angewandt sind, dieselben\n"
-"Dateien verändern, die auch dieser Patch verändert, bricht dieses Script\n"
-"normalerweise ab. Mit der Option -f kann das Aktalisieren trotzdem\n"
+"Dateien verändern, die auch dieser Patch verändert, bricht dieses Skript\n"
+"normalerweise ab. Mit der Option -f kann das Aktualisieren trotzdem\n"
"erzwungen werden. Dann wird für jede Datei, die später noch verändert\n"
"wurde, eine Warnung ausgegeben, und nur Änderungen in Dateien, die\n"
"danach nicht von anderen Patches weiter verändert werden, werden beim\n"
-"Aktalisieren berücksichtigt.\n"
+"Aktualisieren berücksichtigt.\n"
"\n"
"-p n\tErzeugen eines Patch der Art -p n (n=0 oder n=1 werden\n"
"\tunterstützt).\n"
"\n"
"-p ab\tErzeugen einen Patches der Art -p1, jedoch a/datei und b/datei\n"
-"\tals ursprünglichen und neuen Dateinamen verwenden anstelle von\n"
+"\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n"
"\tdir.orig/datei und dir/datei.\n"
"\n"
"-u, -U anzahl, -c, -C anzahl\n"
-"\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl\n"
+"\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl von\n"
"\tKontextzeilen bzw. erzeugen eines Context-Diffs (-c, -C) mit der\n"
-"\tangegebenen Anzahl Kontextzeilen. Die Anzahl der Kontextzeilen ist 3,\n"
-"\twenn nicht anders angegeben.\n"
+"\tangegebenen Anzahl von Kontextzeilen. Die Anzahl der Kontextzeilen ist\n"
+"\t3, wenn nicht anders angegeben.\n"
"\n"
"-z[neuer_name]\n"
"\tErzeugen eines neuen Patches mit den Änderungen, statt den obersten\n"
"\tPatch zu aktualisieren. Wenn kein neuer Name angegeben wird, wird\n"
-"\t\\`-2' an den Namen angehängt, usw (siehe den fork-Befehl).\n"
+"\t\\`-2' an den Namen angehängt usw. (siehe den fork-Befehl).\n"
"\n"
"--no-timestamps\n"
-"\tKeine Zeitstempel in Patches angeben.\n"
+"\tKeine Zeitstempel in Patch-Kopfzeilen angeben.\n"
"\n"
"--no-index\n"
"\tKeine \\`Index:'-Zeilen ausgeben.\n"
"\n"
"--diffstat\n"
-"\tDem Patchkopf einen diffstat-Abschnitt hinzufügen oder den bestehenden\n"
-"\tAbschnitt ersetzen.\n"
-"\n"
-"-f\tDas Aktalisieren eines Patches erzwingen, der sich nicht an oberster\n"
-"\tPosition befindet.\n"
+"\tDen Patch-Kopfzeilen einen diffstat-Abschnitt hinzufügen oder den\n"
+"\tbestehenden Abschnitt ersetzen.\n"
"\n"
-"--no-timestamps\n"
-"\tKeine Zeitstempel in Patches angeben.\n"
+"-f\tDas Aktualisieren eines Patches erzwingen, der sich nicht an\n"
+"\toberster Position befindet.\n"
"\n"
"--backup\n"
"\tErzeugen eines Backups der alten Version von patch als patch~\n"
"\n"
-"--sort\tDateien im Patch nach ihrem Namen sortieren, statt die\n"
-"\tursprüngliche Reihenfolge zu erhalten.\n"
+"--sort\tDateien im Patch nach ihren Namen sortieren, statt die\n"
+"\tursprüngliche Reihenfolge beizubehalten.\n"
"\n"
"--strip-trailing-whitespace\n"
"\tWhitespace-Zeichen an Zeilenenden entfernen.\n"
@@ -1341,13 +1339,13 @@ msgstr ""
#: quilt/refresh.in:235
msgid "Diff failed on file '%s', aborting\\n"
-msgstr "Diff gegen Datei »%s« fehlgeschlagen, Abbruch.\\n"
+msgstr "Diff gegen Datei '%s' fehlgeschlagen, Abbruch.\\n"
#: quilt/refresh.in:241
msgid ""
"More recent patches modify files in patch %s. Enforce refresh with -f.\\n"
msgstr ""
-"Später angewandte Patches verändern Dateien von %s. Aktalisieren mit -f "
+"Später angewandte Patches verändern Dateien von %s. Aktualisieren mit -f "
"erzwingen.\\n"
#: quilt/refresh.in:247
@@ -1384,7 +1382,7 @@ msgid ""
"\tRemove named files from the named patch.\n"
msgstr ""
"\n"
-"Eine oder mehreren Dateien aus dem obersten oder angegebenen Patch\n"
+"Eine oder mehrere Dateien aus dem obersten oder angegebenen Patch\n"
"entfernen. Dateien, die durch Patches oberhalb des angegebenen Patches\n"
"verändert werden, können nicht entfernt werden.\n"
"\n"
@@ -1427,11 +1425,11 @@ msgstr "Patch %s existiert bereits, bitte einen anderen Namen wählen\\n"
#: quilt/rename.in:98
msgid "Renaming of patch %s to %s failed\\n"
-msgstr "Fehler beim Umbenennen von Patch %s auf %s\\n"
+msgstr "Fehler beim Umbenennen von Patch %s in %s\\n"
#: quilt/rename.in:104
msgid "Patch %s renamed to %s\\n"
-msgstr "Patch %s in %s umbenannt\\n"
+msgstr "Patch %s umbenannt in %s\\n"
#: quilt/revert.in:22
msgid "Usage: quilt revert [-P patch] {file} ...\\n"
@@ -1452,7 +1450,7 @@ msgid ""
msgstr ""
"\n"
"Nicht übernommene Änderungen an dem obersten oder angegebenen Patch für\n"
-"die angegebenen Dateien zurücknehmen. Danach zeigt »quilt diff -z« keine\n"
+"die angegebenen Dateien zurücknehmen. Danach zeigt 'quilt diff -z' keine\n"
"Unterschiede für diese Dateien mehr an. Änderungen an Dateien, die von\n"
"Patches oberhalb des angegebenen Patches verändert werden, können nicht\n"
"entfernt werden.\n"
@@ -1517,17 +1515,17 @@ msgid ""
"all the patches using the version of quilt used to push them before "
"downgrading.\\n"
msgstr ""
-"Die quilt-Metadaten in diesem Arbeitsverzeichnis haben Version $version, "
-"aber diese Version von quilt kann nur mit Metadaten der Versionen "
-"$DB_VERSION und darunter umgehen. Bitte entfernen Sie vor dem Downgrade von "
-"quilt alle Patches mit der Version von quilt, die zur Erstellung des "
-"Arbeitsverzeichnisses verwendet wurde.\\n"
+"Die quilt-Metadaten in diesem Arbeitsverzeichnis haben Version %s, aber "
+"diese Version von quilt kann nur mit Metadaten der Versionen %s und darunter "
+"umgehen. Bitte entfernen Sie vor dem Downgrade von quilt alle Patches mit "
+"der Version von quilt, die zur Erstellung des Arbeitsverzeichnisses "
+"verwendet wurde.\\n"
#: quilt/scripts/patchfns.in:1018
msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n"
msgstr ""
-"Sie müssen '%s' (aus dem Paket %s) installieren, um 'quilt %s' nutzen "
-"zukönnen\\n"
+"Sie müssen '%s' (aus dem Paket %s) installieren, um 'quilt %s' nutzen zu "
+"können\\n"
#: quilt/scripts/patchfns.in:1138
msgid ""
@@ -1578,7 +1576,7 @@ msgstr "Abschliessende Leerzeichen in den Zeilen %s von %s werden entfernt\n"
#: quilt/scripts/remove-trailing-ws.in:144
#, perl-format
msgid "Renaming %s to %s: %s\n"
-msgstr "Umbenennen von %s auf %s: %s\n"
+msgstr "Umbenennen von %s in %s: %s\n"
#: quilt/series.in:22
msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n"
@@ -1648,6 +1646,7 @@ msgstr ""
"\n"
"Initialisiert einen Quellbaum aus einer rpm-spec-Datei oder einer quilt-\n"
"series-Datei.\n"
+"\n"
"-d\tOptionaler Pfadpräfix für den resultierenden Quellbaum.\n"
"\n"
"--sourcedir\n"
@@ -1770,8 +1769,8 @@ msgid ""
"The quilt meta-data in %s are already in the version %s format; nothing to do"
"\\n"
msgstr ""
-"Die Metadaten in $QUILT_PC/ haben bereits das Format Version $DB_VERSION; "
-"keine Aktualisierung nötig\\n"
+"Die Metadaten in %s haben bereits das Format Version %s; keine "
+"Aktualisierung nötig\\n"
#: quilt/upgrade.in:71
msgid "Converting meta-data to version %s\\n"
@@ -1789,6 +1788,6 @@ msgid ""
"patches from scratch.\\n"
msgstr ""
"\n"
-"Bitte entfernen Sie alle Patches mit \\`quilt pop -a' der quilt-Version, die "
-"zur Erzeugung des Arbeitsverzeichnis verwendet wurden, oder entfernen Sie "
-"das Verzeichnis %s und wenden Sie die Patches neu an.\\n"
+"Bitte entfernen Sie mit \\`quilt pop -a' alle Patches der quilt-Version, die "
+"zur Erzeugung des Arbeitsverzeichnis verwendet wurde, oder entfernen Sie das "
+"Verzeichnis %s und wenden Sie die Patches neu an.\\n"
--
cgit v0.9.0.2

206
translation-fixes-04.patch Normal file
View File

@ -0,0 +1,206 @@
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 11 Feb 2015 16:59:22 +0000
Subject: Fix translation of main usage message
Upstream: Committed (249f34528986e3dbc7bb7e6eb746f85468379137)
@ETCDIR@ is substituted at build time so it should not appear in
translated messages. Replace it with %s and pass the actual value as a
parameter.
---
diff --git a/bin/quilt.in b/bin/quilt.in
index 2271833..45aebbc 100644
--- a/bin/quilt.in
+++ b/bin/quilt.in
@@ -45,7 +45,7 @@ usage()
| sort \
| column | column -t \
| sed -e $'s/^/\t/'
- echo $"
+ printf $"
Global options:
--trace
@@ -53,13 +53,13 @@ Global options:
--quiltrc file
Use the specified configuration file instead of ~/.quiltrc (or
- @ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf
+ %s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf
documentation for details about its possible contents. The
special value \"-\" causes quilt not to read any configuration
file.
--version
- Print the version number and exit immediately."
+ Print the version number and exit immediately.\n" "@ETCDIR@"
exit 1
}
diff --git a/po/de.po b/po/de.po
index 379acf3..b22173b 100644
--- a/po/de.po
+++ b/po/de.po
@@ -39,13 +39,13 @@ msgid ""
"\n"
"--quiltrc file\n"
"\tUse the specified configuration file instead of ~/.quiltrc (or\n"
-"\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
+"\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
"\tdocumentation for details about its possible contents. The\n"
"\tspecial value \\\"-\\\" causes quilt not to read any configuration\n"
"\tfile.\n"
"\n"
"--version\n"
-"\tPrint the version number and exit immediately."
+"\tPrint the version number and exit immediately.\\n"
msgstr ""
"\n"
"Globale Optionen:\n"
@@ -55,13 +55,13 @@ msgstr ""
"\n"
"--quiltrc datei\n"
"\tDie angegebene Konfigurationsdatei verwenden statt ~/.quiltrc (oder\n"
-"\t@ETCDIR@/quilt.quiltrc, wenn ~/.quiltrc fehlt). Details über mögliche\n"
+"\t%s/quilt.quiltrc, wenn ~/.quiltrc fehlt). Details über mögliche\n"
"\tInhalte finden Sie in der pdf-Dokumentation.\n"
"\tDer Dateiname \\`-' bedeutet, dass keine Konfigurationsdatei\n"
"\teingelesen werden soll.\n"
"\n"
"--version\n"
-"\tGibt die Versionsummer aus."
+"\tGibt die Versionsummer aus.\\n"
#: quilt/add.in:22
msgid "Usage: quilt add [-P patch] {file} ...\\n"
diff --git a/po/fr.po b/po/fr.po
index ffe3645..01d45cd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -36,13 +36,13 @@ msgid ""
"\n"
"--quiltrc file\n"
"\tUse the specified configuration file instead of ~/.quiltrc (or\n"
-"\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
+"\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
"\tdocumentation for details about its possible contents. The\n"
"\tspecial value \\\"-\\\" causes quilt not to read any configuration\n"
"\tfile.\n"
"\n"
"--version\n"
-"\tPrint the version number and exit immediately."
+"\tPrint the version number and exit immediately.\\n"
msgstr ""
"\n"
"Options globales :\n"
@@ -52,13 +52,13 @@ msgstr ""
"\n"
"--quiltrc fichier\n"
"\tUtilise le fichier de configuration spécifié au lieu de ~/.quiltrc\n"
-"\t(ou @ETCDIR@/quilt.quiltrc si ~/.quiltrc n'existe pas). Voir la\n"
+"\t(ou %s/quilt.quiltrc si ~/.quiltrc n'existe pas). Voir la\n"
"\tdocumentation pdf pour plus de détails sur son contenu potentiel.\n"
-"La valeur spéciale \\\"-\\\" spécifie à quilt de ne lire aucun fichier\n"
-"de configuration.\n"
+"\tLa valeur spéciale \\\"-\\\" spécifie à quilt de ne lire aucun fichier\n"
+"\tde configuration.\n"
"\n"
"--version\n"
-"\tAffiche le numéro de version et sort immédiatement."
+"\tAffiche le numéro de version et sort immédiatement.\\n"
#: quilt/add.in:22
msgid "Usage: quilt add [-P patch] {file} ...\\n"
diff --git a/po/ja.po b/po/ja.po
index 6697b0d..90a61cd 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -35,13 +35,13 @@ msgid ""
"\n"
"--quiltrc file\n"
"\tUse the specified configuration file instead of ~/.quiltrc (or\n"
-"\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
+"\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
"\tdocumentation for details about its possible contents. The\n"
"\tspecial value \\\"-\\\" causes quilt not to read any configuration\n"
"\tfile.\n"
"\n"
"--version\n"
-"\tPrint the version number and exit immediately."
+"\tPrint the version number and exit immediately.\\n"
msgstr ""
"\n"
"全コマンド共通オプション:\n"
@@ -50,13 +50,13 @@ msgstr ""
"\tコマンドをbashのトレースモード(-x)で実行。内部デバッグ用。\n"
"\n"
"--quiltrc file\n"
-"\t~/.quiltrc (存在しない場合は @ETCDIR@/quiltrc) の代りに読み込む\n"
+"\t~/.quiltrc (存在しない場合は %s/quiltrc) の代りに読み込む\n"
"\tコンフィギュレーションファイルを指定。内容の詳細については\n"
"\tPDFのドキュメントを参照。特別なファイル名 \\\"-\\\"を使うと、\n"
"\tコンフィギュレーションファイルを読み込まない。\n"
"\n"
"--version\n"
-"\tバージョン情報を出力して終了。"
+"\tバージョン情報を出力して終了。\\n"
#: quilt/add.in:22
msgid "Usage: quilt add [-P patch] {file} ...\\n"
diff --git a/po/quilt.pot b/po/quilt.pot
index d907829..264943f 100644
--- a/po/quilt.pot
+++ b/po/quilt.pot
@@ -20,13 +20,13 @@ msgid ""
"\n"
"--quiltrc file\n"
"\tUse the specified configuration file instead of ~/.quiltrc (or\n"
-"\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
+"\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
"\tdocumentation for details about its possible contents. The\n"
"\tspecial value \\\"-\\\" causes quilt not to read any configuration\n"
"\tfile.\n"
"\n"
"--version\n"
-"\tPrint the version number and exit immediately."
+"\tPrint the version number and exit immediately.\\n"
msgstr ""
#: quilt/add.in:22
diff --git a/po/ru.po b/po/ru.po
index 85e04b0..78b9f38 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -40,13 +40,13 @@ msgid ""
"\n"
"--quiltrc file\n"
"\tUse the specified configuration file instead of ~/.quiltrc (or\n"
-"\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
+"\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n"
"\tdocumentation for details about its possible contents. The\n"
"\tspecial value \\\"-\\\" causes quilt not to read any configuration\n"
"\tfile.\n"
"\n"
"--version\n"
-"\tPrint the version number and exit immediately."
+"\tPrint the version number and exit immediately.\\n"
msgstr ""
"\n"
"Общие опции:\n"
@@ -56,13 +56,13 @@ msgstr ""
"\n"
"--quiltrc файл\n"
"\tИспользовать указанный файл конфигурации вместо ~/.quiltrc (или\n"
-"\t@ETCDIR@/quilt.quiltrc, если ~/.quiltrc не существует). Смотрите\n"
+"\t%s/quilt.quiltrc, если ~/.quiltrc не существует). Смотрите\n"
"\tpdf-документацию, чтобы узнать о возможном содержимом.\n"
"\tСпециальное значение «-» запрещает quilt читать конфигурационные\n"
"\tфайлы.\n"
"\n"
"--version\n"
-"\tНапечатать номер версии и выйти из программы."
+"\tНапечатать номер версии и выйти из программы.\\n"
#: quilt/add.in:22
msgid "Usage: quilt add [-P patch] {file} ...\\n"
--
cgit v0.9.0.2