+++ /dev/null
-At the begining was the void. Then Andrew Morton <akpm@digeo.com> begun
-a collection of small scripts for patch management. The contributions
-came from Stephen Cameron <steve.cameron@hp.com>, Matt Reppert
-<arashi@arashi.yi.org> and Jeremy Fitzhardinge <jeremy@digeo.com>.
-
-Then, Andreas Gruenbacher <agruen@suse.de> came to cleanup, reorganize,
-document and speed up the code. He did also package it to rpm.
-
-Finally, Martin Quinson <Martin.Quinson@tuxfamily.org> did a debian
-package and came with several little patches.
-
-
-Andrew Morton <akpm@digeo.com>
- Collection of scripts for patch management (patch-scripts).
-
-Stephen Cameron <steve.cameron@hp.com>
- Contributed pstatus.
-
-Matt Reppert <arashi@arashi.yi.org>
-Jeremy Fitzhardinge <jeremy@digeo.com>
- Contributions to Andrew's scripts.
-
-Andreas Gruenbacher <agruen@suse.de>
- Clean up, reorganize, speedups, documentation.
- Package up as RPM.
-
-Gerd Knorr <kraxel@suse.de>
- Contributed spec2series.
-
-Martin Quinson <Martin.Quinson@tuxfamily.org>
- Several little patches.
- Package up for Debian.
+++ /dev/null
-* Patch is less sensitive to the file names in the diff headers than
- the scripts are. It tries both filenames specified and apparently
- checks if the file exists. We only look at the `+++ file ...' header,
- and ignore the other. Other than patch we cannot simply look at the
- file system to determine which one is the imput file.
-
-* Patch destroys the backup files it generates if a file appears more
- than once in a patch. This is the reason why we use the backup-files
- utility instead.
-
-* quilt setup doesn't detect if the source file doesn't exist.
-
-* Blank and commented out lines in series file cause problems.
-
-* rpatch should only look at .pc/applied-patches, not at the series
- file.
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-\f
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-\f
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+++ /dev/null
-PACKAGE := @PACKAGE_NAME@
-VERSION := @PACKAGE_VERSION@
-RELEASE := @PACKAGE_RELEASE@
-PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@
-
-prefix := @prefix@
-exec_prefix := @exec_prefix@
-bindir := @bindir@
-libdir := @libdir@
-datadir := @datadir@
-mandir := $(datadir)/man
-docdir := $(datadir)/doc
-localedir := $(datadir)/locale
-etcdir := $(subst /usr/etc,/etc,$(prefix)/etc)
-
-QUILT_DIR = $(datadir)/$(PACKAGE)
-SCRIPTS_DIR = $(QUILT_DIR)/scripts
-LIB_DIR = $(libdir)/$(PACKAGE)
-
-INSTALL := @INSTALL@
-PERL := @PERL@
-BASH := @BASH@
-SED := @SED@
-AWK := @AWK@
-DIFF := @DIFF@
-PATCH := @PATCH@
-MKTEMP := @MKTEMP@
-MSGFMT := @MSGFMT@
-DIFFSTAT := @DIFFSTAT@
-
-ifeq "$(MSGFMT)" ""
-MAKE_NLS := @true
-else
-MAKE_NLS := $(MAKE)
-endif
-
-CFLAGS := @CFLAGS@ -Wall
-
-ISODATE := $(shell date +%Y-%m-%d)
-
-#-----------------------------------------------------------------------
-DIRT += $(shell find -name '*~')
-DIRT += $(shell find -name '.\#*')
-
-SRC += COPYING AUTHORS TODO BUGS Makefile.in \
- configure.ac config/install-sh \
- quilt.spec.in \
- bash_completion
-DIRT += quilt.spec
-
-BIN_IN := quilt guards
-BIN_SRC := $(BIN_IN:%=%.in)
-BIN := $(BIN_IN)
-SRC += $(BIN_SRC:%=bin/%)
-DIRT += $(BIN_IN:%=bin/%)
-
-QUILT_IN := add applied delete diff files import new next patches \
- pop previous push refresh remove series setup top unapplied fork
-
-QUILT_SRC := $(QUILT_IN:%=%.in)
-QUILT := $(QUILT_IN)
-SRC += $(QUILT_SRC:%=quilt/%)
-DIRT += $(QUILT_IN:%=quilt/%)
-
-SCRIPTS_IN := apatch rpatch patchfns parse-patch spec2series
-SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in)
-SCRIPTS := $(SCRIPTS_IN)
-SRC += $(SCRIPTS_SRC:%=scripts/%)
-DIRT += $(SCRIPTS_IN:%=scripts/%)
-
-LIB_SRC := backup-files.c
-LIB := backup-files
-SRC += $(LIB_SRC:%=lib/%)
-DIRT += lib/backup-files lib/backup-files.o
-
-DOC_IN := README
-DOC_SRC := $(DOC_IN:%=doc/%.in)
-DOC := $(DOC_IN)
-SRC += $(DOC_SRC) doc/docco.txt
-DIRT += $(DOC_IN:%=doc/%)
-
-MAN1 := bin/guards.1
-
-DEBIAN := changelog control copyright docs prerm rules
-
-LINGUAS := fr de
-PO := Makefile quilt.pot $(LINGUAS:%=%.po)
-SRC += $(PO:%=po/%)
-DIRT += po/*.mo
-
-
-#-----------------------------------------------------------------------
-
-all : scripts
- $(MAKE_NLS) -C po all BUILD_ROOT=$(BUILD_ROOT)
-
-scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) $(SCRIPTS:%=scripts/%) \
- $(LIB:%=lib/%) $(DOC:%=doc/%) $(MAN1)
-
-dist : clean $(PACKAGE)-$(VERSION).tar.gz
-
-snapshot : $(PACKAGE)-$(ISODATE).tar.bz2
-
-rpm : $(PACKAGE)-$(VERSION).tar.gz
- rpmbuild -tb $<
-
-doc/README : doc/README.in
- @echo README.in -> README
- @while read line; do \
- case "$$line" in \
- '@REFERENCE''@') \
- $(MAKE) -s reference \
- ;; \
- *) \
- echo $$line \
- ;; \
- esac ; \
- done 2>&1 < $< > $@
-
-.PHONY :: reference
-reference : $(QUILT:%=quilt/%)
- @for i in $+; \
- do \
- echo "$$i >> README" >&2; \
- echo; \
- (bash -c ". scripts/patchfns ; . $$i -h"); \
- done | \
- sed -e '/^Usage: \?/ {s/^Usage: \?// ;}' \
- -e 's/^/ /'
-
-bin/guards.1 : bin/guards
- mkdir -p $$(dirname $@)
- pod2man $< > $@
-
-$(PACKAGE)-$(VERSION).tar.gz : $(SRC) configure $(PACKAGE).spec
- rm -f $(PACKAGE)-$(VERSION) $@
- ln -s . $(PACKAGE)-$(VERSION)
- tar chf - $(+:%=$(PACKAGE)-$(VERSION)/%) | gzip -9 > $@
- rm -f $(PACKAGE)-$(VERSION)
- @echo "File $@ created."
-
-$(PACKAGE)-$(ISODATE).tar.bz2 : $(SRC) configure $(PACKAGE).spec
- rm -f $(PACKAGE)-$(ISODATE) $@
- ln -s . $(PACKAGE)-$(ISODATE)
- tar chf - $(+:%=$(PACKAGE)-$(ISODATE)/%) | bzip2 -9 > $@
- rm -f $(PACKAGE)-$(ISODATE)
- @echo "File $@ created."
-
-configure : configure.ac
- autoconf
-
-$(PACKAGE).spec : $(PACKAGE).spec.in Makefile \
- scripts/parse-patch
- @echo "Generating spec file"
- @sed -e 's/^\(Version:[ \t]*\).*/\1$(VERSION)/' \
- -e 's/^\(Release:[ \t]\).*/\1$(RELEASE)/' \
- < $< > $@
- @perl -ne ' \
- m/^(|-+)$$/ and next; \
- ( \
- s/^(...) \s (...) \s (.\d) \s (\d\d:\d\d:\d\d) \s \
- ([A-Z]+|[-+]\d{4}) \s (\d\d\d\d) \s - \s (.+) \
- /* $$1 $$2 $$3 $$6 - $$7/x || \
- m/^(- | )(?!\s)/ \
- and print \
- ) or die "Syntax error in line $$. of changelog:\n$$_\n"; \
- ' $(PACKAGE).changes \
- | scripts/parse-patch -u changelog $@
-
-% : %.in
- @echo "$< -> $@"
- @sed -e 's:@LIB''@:$(LIB_DIR):g' \
- -e 's:@QUILT''@:$(QUILT_DIR):g' \
- -e 's:@SCRIPTS''@:$(SCRIPTS_DIR):g' \
- -e 's:@PERL''@:$(PERL):g' \
- -e 's:@BASH''@:$(BASH):g' \
- -e 's:@SED''@:$(SED):g' \
- -e 's:@AWK''@:$(AWK):g' \
- -e 's:@DIFF''@:$(DIFF):g' \
- -e 's:@PATCH''@:$(PATCH):g' \
- -e 's:@MKTEMP''@:$(MKTEMP):g' \
- -e 's:@PACKAGE_BUGREPORT''@:$(PACKAGE_BUGREPORT):g' \
- -e 's:@VERSION''@:$(VERSION):g' \
- -e 's:@RELEASE''@:$(RELEASE):g' \
- -e 's:@DIFFSTAT''@:$(DIFFSTAT):g' \
- $< > $@
- @chmod --reference=$< $@
-
-Makefile : Makefile.in
- @echo "Please run ./configure by hand"
- @false
-
-install : scripts
- @INSTALL@ -d $(BUILD_ROOT)$(bindir)
- @INSTALL@ -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/
-
- @INSTALL@ -d $(BUILD_ROOT)$(QUILT_DIR)
- @INSTALL@ -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(QUILT_DIR)/
-
- @INSTALL@ -d $(BUILD_ROOT)$(SCRIPTS_DIR)
- @INSTALL@ -m 755 $(filter-out scripts/patchfns, \
- $(SCRIPTS:%=scripts/%)) \
- $(BUILD_ROOT)$(SCRIPTS_DIR)
- @INSTALL@ -m 644 scripts/patchfns $(BUILD_ROOT)$(SCRIPTS_DIR)
-
- @INSTALL@ -d $(BUILD_ROOT)$(LIB_DIR)
- @INSTALL@ -m 755 -s $(LIB:%=lib/%) $(BUILD_ROOT)$(LIB_DIR)/
-
- @INSTALL@ -d $(BUILD_ROOT)$(docdir)/$(PACKAGE)
- @INSTALL@ -m 644 doc/README $(BUILD_ROOT)$(docdir)/$(PACKAGE)/
-
- @INSTALL@ -d $(BUILD_ROOT)$(mandir)/man1
- @INSTALL@ -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/
-
- $(MAKE_NLS) -C po install BUILD_ROOT=$(BUILD_ROOT) \
- LINGUAS="$(LINGUAS)" localedir=$(localedir)
-
- @INSTALL@ -d $(BUILD_ROOT)$(etcdir)
- @INSTALL@ -d $(BUILD_ROOT)$(etcdir)/bash_completion.d
- @INSTALL@ -m 644 bash_completion $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt
-
-clean :
- rm -f $(DIRT)
- rm -f po/*.mo
-
-distclean : clean
- rm -f config.log config.status Makefile
- rm -rf autom4te.cache/
+++ /dev/null
-README.in -
+++ /dev/null
-This is my current list of open issues with the patch scripts. I would
-like to do the most intrusive changes before syncing up with the
-Savannah CVS. Of course, contributions are very welcome. It wouldn't
-hurt to know if you want to work on some of the issues in advance to
-avoid duplicate work, though :)
-
- -- Andreas Gruenbacher <agruen@suse.de>
-
-
-General:
-
- - Test if patches/ can be moved with environment variable as
- planned.
-
- - Abstract backup operations to/from the .pc/ directory, so that
- optionally something like rcs can be used instead of
- lib/backup-files?
-
- - Add regression test suite; the scripts were broken often enough
- already...
-
- - Add a ~/.quiltrc that contains default options for individual
- commands, similar to ~/.cvsrc. Also requires some more
- negative options so that the effects of ~/.quiltrc can be
- reversed.
-
- - Add something similar to cvs diff, which scans all files for
- changes that have not been folded back into their patches,
- similar to:
- `for p in $(quilt series); do quilt diff -z $p; done'?
-
- - Allow to add a directory? Then we could detect also new files
- in the directory, without having to add them individually.
-
- - Add option for creating hard links.
-
- - Instead of passing around and storing in applied-patches the
- short patch name (=patch file name with .dif .diff .patch .gz
- .bz2 stripped), translate from short names to real file names
- an the user interface, and work with full names internally.
- This will simplify regexp matching in several functions.
-
- - Support different diff/patch options for different patches.
- (By specifying them in the series file?)
-
-Documentation:
-
- - How to rediff with pushpatch -f / poppatch -f?
-
- - How to import a new version of a patch?
-
- - How to import a complete directory, before doing
- wild changes? (This will also cause new files to end up in the
- patch.)
-
-quilt refresh:
-
- - Add an -m option similar to `cvs commit -m "..."' to simplify
- keeping a change log in the patch documentation?
-
-parse-patch:
-
- - Handle SIGINT in parse-patch -u (in the part that moves the
- temp file to the patch)?
-
-backup-files:
-
- - Extend so that it can also copy files instead of hard linking,
- and when hard links are not possible. Also add option to
- disallow hard links on the original file (for patchadd).
-
- - SIGINT handling?
-
-quilt import:
-
- - Add option to replace the currently applied patch with a new
- one, by backing out the topmost patch first.
-
- - Diff -u the documentation of the old and new file, unless one
- of them is empty. Let the user decide whether to keep the left
- or the right documentation, or to merge them both. (-d{ona}?)
-
-quilt add:
-
- - Add option for creating (or rather, leaving) hard links.
-
-
-quilt setup:
-
- - spec2series also prints -p1; omit.
-
-quilt patches:
-
- - Add something so that it's possible to show a list of all
- patches, with those patches marked that modify the
- specified file.
-
-rpatch:
-
- - If not removing the topmost patch, add checks if any files are
- hidden by later patches. If so, refuse to remove patch! (Note
- that poppatch takes care of that currently.)
-
-apatch:
-
- - Allow to add a patch in the middle of the applied series, and
- inject the patch in its proper position in applied-patches.
- Needs to check if any of the files in the patch are touched by
- later patches.
-
-touched_by_patch:
-
- - Implement more of patch's filename heuristic: The following
- file is not recognized, for example...
-
- *** linux/drivers/parport/parport_cs.c.orig Sun Jun 23 09:20:21 2002
- --- linux/drivers/parport/parport_cs.c Sun Jun 23 09:21:02 2002
- ***************
- *** 48,53 ****
- --- 48,54 ----
-
- #include <linux/parport.h>
- #include <linux/parport_pc.h>
- + #include <linux/major.h>
-
- #include <pcmcia/version.h>
- #include <pcmcia/cs_types.h>
-
+++ /dev/null
-#-*- mode: shell-script;-*-
-
-# Programmed completion for bash to use quilt
-# Copyright 2003 Martin Quinson <martin.quinson@tuxfamily.org>
-
-# This file is part of the distribution of quilt, and is distributed under
-# the same licence than quilt itself
-
-have quilt &&
-_quilt()
-{
- if [ "$(type -t patch_file_name)" != function ]
- then
- if ! [ -r /usr/share/quilt/scripts/patchfns ]
- then
- # Cannot read library /usr/share/quilt/scripts/patchfns
- return 0
- fi
- . /usr/share/quilt/scripts/patchfns
- fi
-
- local i cur prev cmds patches pcount patch_nums
-
- COMPREPLY=()
- cur=${COMP_WORDS[COMP_CWORD]}
- prev=${COMP_WORDS[COMP_CWORD-1]}
-
- # commands (added to patches)
- cmds='add applied delete diff files import new next patches pop \
- previous push refresh remove series setup top unapplied'
-
- patches=`cat_series`
- pcount=`cat_series | wc -l`
- patch_nums=`i=0; while [[ ++i -le $pcount ]] ; do echo $i; done `
-
- if [[ $COMP_CWORD -eq 1 ]] ; then
- # if no command were given, complete on commands
- COMPREPLY=( $( compgen -W "$cmds -h" -- $cur ) )
- return 0
- else
- # if we're completing for 'quilt -h', then just
- # complete on any valid command
- if [ ${COMP_WORDS[1]} == -h ] ; then
- COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
- return 0
- fi
- fi
-
- # Complete depending on options
- case ${COMP_WORDS[1]} in
- add)
- case $prev in
- -p)
- COMPREPLY=( $( compgen -W "$patches" -- $cur ) )
- ;;
- *)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -h" -- $cur ) )
- ;;
- esac
- ;;
- applied)
- COMPREPLY=( $( compgen -W "-n -h $patches" -- $cur ) )
- ;;
- delete)
- COMPREPLY=( $( compgen -W "$patches" -- $cur ) )
- ;;
- diff)
- case $prev in
- -p)
- COMPREPLY=( $( compgen -W "0 1" -- $cur ) )
- ;;
- -P|-c)
- COMPREPLY=( $( compgen -W "$patches" -- $cur ) )
- ;;
- *)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -P -c -R -z -h" -- $cur ) )
- ;;
- esac
- ;;
- files)
- COMPREPLY=( $( compgen -W "-v $patches" -- $cur ) )
- ;;
- import)
- case $prev in
- -p)
- COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9 10" -- $cur ) )
- ;;
- -n)
- ;;
- *)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -n -f -h" -- $cur ) )
- ;;
- esac
- ;;
- new)
- ;;
- next|previous)
- COMPREPLY=( $( compgen -W "-n $patches" -- $cur ) )
- ;;
- patches)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-v -n -h" -- $cur ) )
- ;;
- pop)
- COMPREPLY=( $( compgen -W "-a -f -R -q -v -h $patches $patch_nums" -- $cur ) )
- ;;
- push)
- COMPREPLY=( $( compgen -W "-a -f -R -q -v -h --leave-rejects --interactive $patches $patch_nums" -- $cur ) )
- ;;
- refresh)
- case $prev in
- -p)
- COMPREPLY=( $( compgen -W "0 1" -- $cur ) )
- ;;
- *)
- COMPREPLY=( $( compgen -W "-p -f -h $patches" -- $cur ) )
- ;;
- esac
- ;;
- remove)
- case $prev in
- -p)
- COMPREPLY=( $( compgen -W "$patches" -- $cur ) )
- ;;
- *)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -h" -- $cur ) )
- ;;
- esac
- ;;
- series)
- COMPREPLY=( $( compgen -W "-n -v -h" -- $cur ) )
- ;;
- setup)
- case $prev in
- -d)
- _filedir -d
- ;;
- *)
- _filedir
- COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-d -h" -- $cur ) )
- ;;
- esac
- ;;
- top)
- ;;
- unapplied)
- COMPREPLY=( $( compgen -W "-n -h $patches" -- $cur ) )
- ;;
- esac
- return 0
-}
-[ "$have" ] && complete -F _quilt $filenames quilt
-
+++ /dev/null
-.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "GUARDS 1"
-.TH GUARDS 1 "2003-07-25" "perl v5.8.0" "User Contributed Perl Documentation"
-.SH "NAME"
-guards \- select from a list of files guarded by conditions
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-\&\fIguards\fR [\-\-prefix=\fIdir\fR] [\-\-path=\fIdir2:dir2:...\fR]
- [\-\-default=\fI0\fR|\fI1\fR] [\-\-check] [\-\-config=\fIfile\fR]
- \fIsymbol\fR ...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The script reads a configuration file that may contain so-called guards, file
-names, and comments, and writes those file names that satisfy all guards to
-standard output. The script takes a list of symbols as its arguments. Each line
-in the ocnfiguration file is processed separately. Lines may start with a
-number of guards. The following guards are defined:
-.Sp
-.RS 4
-+\fIxxx\fR Include the file(s) on this line if the symbol \fIxxx\fR is defined.
-.Sp
-\&\-\fIxxx\fR Exclude the file(s) on this line if the symbol \fIxxx\fR is defined.
-.Sp
-+!\fIxxx\fR Include the file(s) on this line if the symbol \fIxxx\fR is not defined.
-.Sp
-\&\-!\fIxxx\fR Exclude the file(s) on this line if the symbol \fIxxx\fR is not defined.
-.Sp
-\&\- Exclude this file. Used to avoid spurious \fI\-\-check\fR messages.
-.RE
-.PP
-The guards are processed left to right. The last guard that matches determines
-if the file is included. If no guard is specified, the \fI\-\-default\fR
-setting determines if the file is included.
-.PP
-If no configuration file is specified, the script reads from standard input.
-.PP
-The \fI\-\-check\fR option is used to compare the specification file against the
-file system. If files are referenced in the specification that do not exist, or
-if files are not enlisted in the specification file warnings are printed. The
-\&\fI\-\-path\fR option can be used to specify which directory or directories to scan.
-Multiple directories are eparated by a colon (\f(CW\*(C`:\*(C'\fR) character. The
-\&\fI\-\-prefix\fR option specifies the location of the files.
-.SH "AUTHOR"
-.IX Header "AUTHOR"
-Andreas Gruenbacher <agruen@suse.de> (SuSE Linux \s-1AG\s0)
+++ /dev/null
-#!@PERL@ -w
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-use FileHandle;
-use Getopt::Long;
-use strict;
-
-# Prototypes
-sub files_in($$);
-sub parse($$);
-sub help();
-
-sub slashme($) {
- my ($dir) = @_;
- $dir =~ s#([^/])$#$&/#; # append a slash if necessary
- if ($dir eq './') {
- return '';
- } else {
- return $dir;
- }
-}
-
-# Generate a list of files in a directory
-#
-sub files_in($$) {
- my ($dir, $path) = @_;
- my $dh = new FileHandle;
- my (@files, $file);
-
-
- opendir $dh, length("$dir$path") ? "$dir$path" : '.'
- or die "$dir$path: $!\n";
- while ($file = readdir($dh)) {
- next if $file =~ /^(\.|\.\.|\.#.*|CVS)$/;
- if (-d "$dir$path$file") {
- @files = (@files, files_in($dir, "$path$file/"));
- } else {
- #print "[$path$file]\n";
- push @files, "$path$file";
- }
- }
- closedir $dh;
- return @files;
-}
-
-# Parse a configuration file
-# Callback called with ($patch, @guards) arguments
-#
-sub parse($$) {
- my ($fh, $callback) = @_;
-
- my $mode = 0;
-
- while (<$fh>) {
- my @guards = ();
- s/(^|\s+)#.*//;
- foreach my $token (split) {
- if ($token =~ /^[-+]/) {
- if ($mode == 1) {
- @guards = ();
- $mode = 0;
- }
- push @guards, $token;
- } else {
- $mode = 1;
- #print "[" . join(",", @guards) . "] $patch\n";
- &$callback($token, @guards);
- }
- }
- }
-}
-
-# Command line options
-#
-my ($dir, $config, $default, $check) = ('', '-', 1, 0);
-my @path;
-
-# Help text
-#
-sub help() {
- print "$0 - select from a list of files guarded by conditions\n";
- print "SYNOPSIS: $0 [--prefix=dir] [--path=dir1:dir2:...]\n" .
- " [--default=0|1] [--check] [--config=file] symbol ...\n\n" .
- " (Default values: --path='" . join(':', @path) . "', " .
- "--default=$default)\n";
- exit 0;
-}
-
-# Parse command line options
-#
-Getopt::Long::Configure ("bundling");
-eval {
- unless (GetOptions (
- 'd|prefix=s' => \$dir,
- 'c|config=s' => \$config,
- 'C|check' => \$check,
- 'p|path=s' => \@path,
- 'D|default=i' => \$default,
- 'h|help' => sub { help(); exit 0; })) {
- help();
- exit 1;
- }
-};
-if ($@) {
- print "$@";
- help();
- exit 1;
-}
-
-@path = ('.')
- unless (@path);
-@path = split(/:/, join(':', @path));
-
-my $fh = ($config eq '-') ? \*STDIN : new FileHandle($config)
- or die "$config: $!\n";
-
-$dir = slashme($dir);
-
-if ($check) {
- # Check for duplicate files, or for files that are not referenced by
- # the specification.
-
- my $problems = 0;
- my @files;
-
- foreach (@path) {
- @files = (@files, files_in($dir, slashme($_)));
- }
- my %files = map { $_ => 0 } @files;
-
- parse($fh, sub {
- my ($patch, @guards) = @_;
- if (exists $files{$patch}) {
- $files{$patch}++;
- } else {
- print "Not found: $dir$patch\n";
- $problems++;
- }});
-
- $fh->close();
-
- my ($file, $ref);
- while (($file, $ref) = each %files) {
- next if $ref == 1;
-
- print "Unused: $file\n" if $ref == 0;
- print "Multiple uses: $file\n" if $ref > 1;
- $problems++;
- }
- exit $problems ? 1 : 0;
-
-} else {
- # Generate a list of patches to apply.
-
- my %symbols = map { $_ => 1 } @ARGV;
-
- parse($fh, sub {
- my ($patch, @guards) = @_;
-
- my $selected;
- if (@guards) {
- # If the first guard is -xxx, the patch is included by default;
- # if it is -xxx, the patch is excluded by default.
- $selected = ($guards[0] =~ /^-/);
-
- foreach (@guards) {
- /^([-+])(!?)(.*)?/
- or die "Bad guard '$_'\n";
-
- # Check if the guard matches
- if (($2 eq '!' && !exists $symbols{$3}) ||
- ($2 eq '' && ( $3 eq '' || exists $symbols{$3}))) {
- # Include or exclude
- $selected = ($1 eq '+');
- }
- }
- } else {
- # If there are no guards, use the specified default result.
- $selected = $default;
- }
-
- print "$dir$patch\n"
- if $selected;
- });
-
- $fh->close();
-
- exit 0;
-}
-
-__END__
-
-=head1 NAME
-
-guards - select from a list of files guarded by conditions
-
-=head1 SYNOPSIS
-
-F<guards> [--prefix=F<dir>] [--path=F<dir2:dir2:...>]
- [--default=I<0>|I<1>] [--check] [--config=F<file>]
- I<symbol> ...
-
-=head1 DESCRIPTION
-
-The script reads a configuration file that may contain so-called guards, file
-names, and comments, and writes those file names that satisfy all guards to
-standard output. The script takes a list of symbols as its arguments. Each line
-in the ocnfiguration file is processed separately. Lines may start with a
-number of guards. The following guards are defined:
-
-=over
-
-+I<xxx> Include the file(s) on this line if the symbol I<xxx> is defined.
-
--I<xxx> Exclude the file(s) on this line if the symbol I<xxx> is defined.
-
-+!I<xxx> Include the file(s) on this line if the symbol I<xxx> is not defined.
-
--!I<xxx> Exclude the file(s) on this line if the symbol I<xxx> is not defined.
-
-- Exclude this file. Used to avoid spurious I<--check> messages.
-
-=back
-
-The guards are processed left to right. The last guard that matches determines
-if the file is included. If no guard is specified, the I<--default>
-setting determines if the file is included.
-
-If no configuration file is specified, the script reads from standard input.
-
-The I<--check> option is used to compare the specification file against the
-file system. If files are referenced in the specification that do not exist, or
-if files are not enlisted in the specification file warnings are printed. The
-I<--path> option can be used to specify which directory or directories to scan.
-Multiple directories are eparated by a colon (C<:>) character. The
-I<--prefix> option specifies the location of the files.
-
-=head1 AUTHOR
-
-Andreas Gruenbacher <agruen@suse.de> (SuSE Linux AG)
-
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-export TEXTDOMAIN=quilt
-
-usage()
-{
-
- echo $"Usage: quilt command [-h] ..."
- #echo $"Commands are:" $(
- # local command
- # for command in @QUILT@/*
- # do
- # if [ -f "$command" -a -x "$command" ]
- # then
- # echo "${command#@QUILT@/}"
- # fi
- # done \
- # | sort
- #)
- echo $"Commands are:"
- quilt_commands \
- | sort \
- | column | column -t \
- | sed -e 's/^/\t/'
- exit 1
-}
-
-quilt_commands()
-{
- local command
- for command in @QUILT@/*
- do
- if [ -f "$command" -a -x "$command" ]
- then
- echo ${command##@QUILT@/}
- fi
- done
-}
-
-for arg in "$@"
-do
- case $arg in
- [^-]*)
- if [ -z "$command" ]
- then
- command="$arg"
- else
- args[${#args[@]}]="$arg"
- fi ;;
- *)
- args[${#args[@]}]="$arg" ;;
- esac
-done
-
-if ! [ -f "@QUILT@/$command" -a -x "@QUILT@/$command" ]
-then
- if [ -n "$command" ]
- then
- for arg in $(quilt_commands)
- do
- case "$arg" in
- $command*)
- commands[${#commands[@]}]="$arg"
- ;;
- esac
- done
- fi
-
- if [ ${#commands[@]} -eq 0 ]
- then
- usage
- elif [ ${#commands[@]} -eq 1 ]
- then
- command="${commands[0]}"
- unset commands
- else
- echo "$command :" "${commands[@]}" >&2
- exit 1
- fi
-fi
-
-set -- "${args[@]}"
-unset arg args
-
-#. @QUILT@/$command
-bash -c ". @QUILT@/$command" "quilt ${command##*/}" "$@"
+++ /dev/null
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd=$cpprog
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d "$dst" ]
- then
- dst=$dst/`basename "$src"`
- else
- :
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-$defaultIFS}"
-
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp=$pathcomp$1
- shift
-
- if [ ! -d "$pathcomp" ] ;
- then
- $mkdirprog "$pathcomp"
- else
- :
- fi
-
- pathcomp=$pathcomp/
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename "$dst"`
- else
- dstfile=`basename "$dst" $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename "$dst"`
- else
- :
- fi
-
-# Make a couple of temp file names in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
- rmtmp=$dstdir/#rm.$$#
-
-# Trap to clean up temp files at exit.
-
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd "$src" "$dsttmp" &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
- if [ -f "$dstdir/$dstfile" ]
- then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
- else
- :
- fi
-} &&
-
-# Now rename the file to the real destination.
-
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-
-fi &&
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-
-{
- (exit 0); exit
-}
+++ /dev/null
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT([quilt],[0.24],[quilt-dev@nongnu.org])
-AC_CONFIG_AUX_DIR(config)
-AC_PREREQ(2.53)
-AC_REVISION ($Revision: 1.1.2.1 $)
-
-PACKAGE_RELEASE=1
-AC_SUBST(PACKAGE_RELEASE)
-
-dnl Setup for backup-files compilation
-AC_HEADER_STDC
-AC_CHECK_FUNCS([mkdir])
-AC_CHECK_FUNCS([rmdir])
-AC_CHECK_FUNCS([strchr])
-AC_CHECK_FUNCS([strerror])
-AC_CHECK_FUNCS([strrchr])
-AC_C_CONST
-AC_FUNC_STAT
-
-AC_PROG_INSTALL
-
-AC_SYS_INTERPRETER
-if test "$interpval" != yes ; then
- AC_MSG_WARN([no
-
-bash/perl scripts may not be invoked correctly due to problems with your
-systems implementation of #! being either broken or non-existant.
-])
-fi
-
-dnl Check for Bourne-Again Shell
-AC_ARG_WITH(bash, AC_HELP_STRING(
- [--with-bash], [name of the bash executable to use]),
- [
- BASH="$withval"
- AC_SUBST(BASH)
- AC_MSG_NOTICE([Using bash executable $BASH])
- ],[
- AC_PATH_PROG(BASH, bash)
- ])
-if test -z "$BASH" ; then
- AC_MSG_ERROR([Please specify the location of bash with the option '--with-bash'])
-fi
-
-# It would be nice not to have to use backticks, but too many retarded sh
-# implementations still don't support $( )
-# BEWARE: There is a distinct possibility that we are currently running under
-# bash in this configure script (/bin/sh being a symlink to /bin/bash). Even
-# though the result /could/ be available to us directly as $BASH_VERSION we
-# don't want to use, or trust it, incase the user is specifying a different
-# bash executable.
-if `$BASH -c '[[ "$BASH_VERSION" \< "2.04" ]]'` ; then
- AC_MSG_ERROR([
-$PACKAGE_NAME requires at least version 2.04 of bash, you can download a current
-version of bash from ftp.gnu.org
-])
-fi
-
-dnl Check for Perl
-AC_ARG_WITH(perl, AC_HELP_STRING(
- [--with-perl], [name of the Perl executable to use]),
- [
- PERL="$withval"
- AC_SUBST(PERL)
- AC_MSG_NOTICE([Using Perl executable $PERL])
- ],[
- AC_PATH_PROGS(PERL, [perl perl5])
- ])
-if test -z "$PERL" ; then
- AC_MSG_ERROR([Please specify the location of Perl with the option '--with-perl'])
-fi
-
-dnl Check for sed
-AC_ARG_WITH(sed, AC_HELP_STRING(
- [--with-sed], [name of the sed executable to use]),
- [
- SED="$withval"
- AC_SUBST(SED)
- AC_MSG_NOTICE([Using sed executable $SED])
- ],[
- SED="sed"
- AC_SUBST(SED)
- ])
-
-dnl Check for awk
-AC_ARG_WITH(awk, AC_HELP_STRING(
- [--with-awk], [name of the awk executable to use]),
- [
- AWK="$withval"
- AC_SUBST(AWK)
- AC_MSG_NOTICE([Using awk executable $AWK])
- ],[
- AC_PATH_PROGS(AWK, [gawk awk])
- ])
-
-dnl Test for awk features that may be mising?
-
-if test -z "$PERL" ; then
- AC_MSG_ERROR([Please specify the location of Perl with the option '--with-perl'])
-fi
-
-dnl Checks for mktemp (for creating temporary files and directories)
-AC_ARG_WITH(mktemp, AC_HELP_STRING(
- [--with-mktemp], [name of the mktemp executable to use (or 'none'
- to use a quilt internal mechanism)]),
- [
- MKTEMP="$withval"
- AC_SUBST(MKTEMP)
- AC_MSG_NOTICE([Using mktemp executable $MKTEMP])
- ],[
- AC_PATH_PROG(MKTEMP, mktemp)
- ])
-if test -z "$MKTEMP" -o "$MKTEMP" = "none" ; then
- MKTEMP=internal_mktemp
-else
- AC_MSG_CHECKING(whether $MKTEMP -d works)
- if tempdir=`$MKTEMP -d /tmp/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \
- rmdir "$tempdir" ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([
-'$MKTEMP -d' does not create temporary directories.
-If you don't have a version of mktemp that can create directories, you
-can specify '--with-mktemp=none' and $PACKAGE_NAME will use its own
-internal tempfile generation mechanism.
-])
- fi
-fi
-
-dnl Check for diff
-AC_ARG_WITH(diff, AC_HELP_STRING(
- [--with-diff], [name of the diff executable to use]),
- [
- DIFF="$withval"
- AC_SUBST(DIFF)
- AC_MSG_NOTICE([Using diff executable $DIFF])
- ],[
- AC_PATH_PROG(DIFF, diff)
- ])
-if test -z "$DIFF"; then
- AC_MSG_ERROR([Please specify the location of diff with the option '--with-diff'])
-fi
-
-dnl Check for patch
-AC_ARG_WITH(patch, AC_HELP_STRING(
- [--with-patch], [name of the patch executable to use]),
- [
- PATCH="$withval"
- AC_SUBST(PATCH)
- AC_MSG_NOTICE([Using patch executable $PATCH])
- ],[
- AC_PATH_PROG(PATCH, patch)
- ])
-if test -z "$PATCH"; then
- AC_MSG_ERROR([Please specify the location of patch with the option '--with-patch'])
-fi
-
-# Sun's patch is a mess, issue a warning. But we are going to continue with
-# the build because you might just be lucky.
-AC_MSG_CHECKING([whether $PATCH will work])
-if $PATCH -v 2>&1 | grep -q "Sun" >/dev/null 2>&1; then
- AC_MSG_RESULT(no)
- AC_MSG_WARN([
-Sorry, you have a Sun version of patch which is notoriously buggy. $PACKAGE_NAME
-may function correctly, or minor errors may occur due to Sun's patch tool.
-Please consider upgrading to GNU patch, if you already have GNU patch then you
-can supply its path with the '--with-patch=' option.
-])
-elif $PATCH --version 2>&1 | grep -q "patch 2.0" >/dev/null 2>&1; then
- AC_MSG_RESULT(no)
- AC_MSG_WARN([
-Sorry, the version of patch you are using can cause severe problems when a patch
-creates a directory. $PACKAGE_NAME may well function correctly with this version
-of patch or small problems could creep in.
-Please consider upgrading your patch to a more recent version, if you already
-have a more recent version of patch then you can supply its path with the
-'--with-patch=' option.
-])
-else
- AC_MSG_RESULT(yes)
-fi
-
-dnl Check for diffstat
-AC_ARG_WITH(diffstat, AC_HELP_STRING(
- [--with-diffstat], [name of the diffstat executable to use]),
- [
- DIFFSTAT="$withval"
- AC_SUBST(DIFFSTAT)
- AC_MSG_NOTICE([Using diffstat executable $DIFFSTAT])
- ],[
- AC_PATH_PROG(DIFFSTAT, diffstat)
- ])
-if test -z "$DIFFSTAT"; then
- AC_MSG_WARN([
-diffstat does not appear to be in your path, this is not a fatal error however
-$PACKAGE_NAME has increased functionality if diffstat exists. If you have diffstat
-you can specify the location the option '--with-diffstat'.
-])
-fi
-
-dnl Check for NLS
-AC_ARG_ENABLE(nls, AC_HELP_STRING(
- [--enable-nls], [include natural language support]))
-if test "$enableval" != "no"; then
- AC_PATH_PROG(MSGFMT, msgfmt)
-fi
-if test "$enableval" = "yes" -a -z "$MSGFMT" ; then
- AC_MSG_ERROR([
-You do not appear to have msgfmt, which is part of the GNU Gettext package. It
-is a required package as you chose the '--enable-nls' option to configure.
-You can download GNU Gettext from ftp.gnu.org
-])
-fi
-if test -z "$MSGFMT" ; then
- AC_MSG_NOTICE([Building without natural language support])
-fi
-
-AC_CONFIG_FILES(Makefile)
-AC_OUTPUT
-
-dnl Print results
-AC_MSG_RESULT([])
-AC_MSG_RESULT([$PACKAGE_NAME version $PACKAGE_VERSION configured.])
-AC_MSG_RESULT([])
-AC_MSG_RESULT([Using '$prefix' for installation prefix.])
-
-# we don't need to see this just for the backup-files command
-# but we may as well spec it for the future
-#AC_MSG_RESULT([Using '$CC' for C compiler.])
-#AC_MSG_RESULT([Building with '$CFLAGS' for C compiler flags.])
-#AC_MSG_RESULT([Building with '$LIBS' for linker flags.])
-
-AC_MSG_RESULT([])
-AC_MSG_RESULT([Report bugs to $PACKAGE_BUGREPORT])
+++ /dev/null
-The scripts in this package simplify working with a series of patches.
-The usual tasks like applying, refreshing and reversing are supported.
-
-docco.txt contains Adrew Morton's description of his suite of patch
-scripts. These scripts are based on Andrew's scripts, but include many
-changes. Please keep this in mind when reading Andrew's documentation.
-
-
-Concepts
-========
-
-(Please see docco.txt.)
-
-The scripts maintain a stack of patches, on top of which additional
-patches can be applied, and from with patches can be removed. The list of
-patches is kept in a file (searched for in this order in
-.pc/series, series, patches/series).
-
-The scripts keep meta information in the .pc/ directory. The .pc/
-directory contains:
-
- .pc/applied-patches
- The list of currently applied patches.
-
- .pc/patch/.pc (for each applied patch)
- A list of files modified by the patch.
-
- .pc/patch/ (for each applied patch)
- Copies of the files that the patch modifies,
- before modifying. The original versions of
- the files are needed for refreshing patches,
- and for ensuring that removing a patch does
- recreate the original file contents.
-
-
-Operation
-=========
-
-Patches to be applied must be listed in the series file.
-
-Patches are applied with pushpatch, and are removed with poppatch.
-
-Refpatch refreshes a patch.
-
-New patches can be added at the current position in the patch sequence
-with newpatch.
-
-Additional files to be modified can be added to a patch with patchadd.
-
-
-Installation
-============
-
-To start using the scripts the working directory must contain:
-
- patches/
- Patches to work with.
-
- series (or patches/series)
- List of patches in order of applying.
-
-The scripts will create the .pc/ directory that contains the meta
-information needed for managing the patches automatically.
-
-
-Series file
-===========
-
-The patches that are relevant for a project must be listed in the file
-series, which is searched for in .pc/, ./ and patches/ in this order.
-The patches will be applied in the order given. The series file has
-the following format:
-
- # Comment
- subdir/patch-file-name.patch [-pN]
-
-The location of patches is specified relative to the patches/ directory.
-Optionally a strip level (-p0, -p1, etc.) can be specified. When
-refreshing a patch, only levels 0 and 1 are supported.
-
-
-Command reference
-=================
-@REFERENCE@
-
-guards [--prefix=dir] [--path=dir1:dir2:...] [--default=0|1]
- [--check] [--config=file] symbol ...
-
- Convert a series file with conditional statements into a series
- file as expected; see the guards(1) manual page.
-
-
-Helper files/scripts
-====================
-
-patchfns
- A collection of functions.
-
-apatch
- Add a patch. Used by pushpatch.
-
-rpatch
- Remove a patch. Used by poppatch.
-
-parse-patch {-s|-u} section file [< replacement]
- Select a %section from a patch (-s) or replace a
- %section with the text from standard input (-u).
-
-touched-by-patch filename
- Print a list of files modified by a patch file.
-
-backup-files
- A simple utility that creates / restores / removes
- backup files; this works around a patch bug (see BUGS).
-
+++ /dev/null
-Patch management scripts
-Andrew Morton <akpm@digeo.com>
-18 October 2002
-
-This is a description of a bunch of shell scripts which I use for
-managing kernel patches. They are quite powerful. They can be used on
-projects other than the linux kernel. They are easy to use, and fast.
-
-You end up doing a ton of recompiling with these scripts, because
-you're pushing and popping all the time. ccache takes away the pain of
-all that. http://ccache.samba.org/ - be sure to put the cache
-directory on the same fs as where you're working so that ccache can use
-hardlinks.
-
-The key philosophical concept is that your primary output is patches.
-Not ".c" files, not ".h" files. But patches. So patches are the
-first-class object here.
-
-Installation
-============
-
-You place all the scripts somewhere in your path, or in
-/usr/lib/patch-scripts.
-
-Terminology
-===========
-
-The patch scripts require three special directories called "pc",
-"patches" and "txt".
-
-If the environment variable PATCHSCRIPTS is set, it is taken to to be
-the directory in which those three directories reside. Typically, it
-would be a relative pathname. So
-
- setenv PATCHSCRIPTS ./i-put-them-here
-
-would tell the patch scripts to look in ./i-put-them-here/pc, etc.
-
-If PATCHSCRIPTS is not set, and the directory ./patch-scripts is
-present then the patch scripts will us ./patch-scripts/pc/,
-./patch-scripts/patches/ and ./patch-scripts/txt/.
-
-Otherwise, the patch scripts use ./pc, ./patches and ./txt.
-
-In this document, the symbol $P is used to describe the directory which
-holds the pc/, patches/ and txt/ directories, as determined by the
-above search.
-
-It is expected that $P will always expand to a relative path.
-
-Concepts
-========
-
-All work occurs with a single directory tree. All commands are invoked
-within the root of that tree. The scripts manage a "stack" of patches.
-
-Each patch is a changeset against the base tree plus the preceding patches.
-
-All patches are listed, in order, in the file ./series. You manage the
-series file. Lines in the series file which start with `#' are ignored.
-
-Any currently-applied patches are described in the file
-./applied-patches. The patch scripts manage this file.
-
-Each patch affects a number of files in the tree. These files are
-listed in a "patch control" file. These .pc files live in the
-directory $P/pc/
-
-Patches are placed in the directory $P/patches/
-
-Documentation for the patches is placed in $P/txt/
-
-So for a particular patch "my-first-patch" the following will exist:
-
-- An entry "my-first-patch.patch" in ./series
-
-- An entry "my-first-patch" in ./applied-patches (if it's currently applied)
-
-- A file $P/pc/my-first-patch.pc which contains the names of the
- files which my-first-patch modifies, adds or removes
-
-- A file $P/txt/my-first-patch.txt which contains the patch's
- changelog.
-
-- A file $P/patches/my-first-patch.patch, which is the output of the
- patch scripts.
-
-Operation
-=========
-
-When a patch "my-patch" is applied with apatch, or with pushpatch
-(which calls apatch), all the affected files (from $P/pc/my-patch.pc)
-are copied to files with ~my-patch appended. So if $P/pc/my-patch.pc
-contained
-
- kernel/sched.c
- fs/inode.c
-
-then apatch will copy those files into kernel/sched.c~my-patch and
-fs/inode.c~my-patch. It will then apply the patch to kernel/sched.c
-and fs/inode.c
-
-When a diff is regenerated by refpatch (which calls mpatch), the diff
-is made between kernel/sched.c and kernel/sched.c~my-patch. How do the
-scripts know to use "~my-patch"? Because my-patch is the current
-topmost patch. It's the last line in ./applied-patches.
-
-In this way, the whole thing is stackable. If you have four patches
-applied, say "patch-1", "patch-2", "patch-3" and "patch-4", and if
-patch-2 and patch-4 both touch kernel/sched.c then you will have:
-
- kernel/sched.c~patch-2 Original copy, before patch-2
- kernel/sched.c~patch-4 Copy before patch-4. Contains changes
- from patch-2
- kernel/sched.c Current working copy. Contains changes
- from patch-4.
-
-This means that your diff headers contain "~patch-name" in them, which
-is convenient documentation.
-
-Walkthrough
-===========
-
-Let's start.
-
-Go into /usr/src/linux (or wherever)
-
- mkdir pc patches txt
-
-Now let's generate a patch
-
- fpatch my-patch kernel/sched.c
-
-OK, we've copied kernel/sched.c to kernel/sched.c~my-patch. We've
-appended "my-patch" to ./applied-patches and we've put "kernel/sched.c"
-into the patch control file, pc/my-patch.pc.
-
- Now edit kernel/sched.c a bit.
-
-Now we're ready to document the patch
-
- Now write txt/my-patch.txt
-
-Now generate the patch
-
- refpatch
-
-This will generate patches/my-patch.patch. Take a look.
-
-Now remove the patch
-
- poppatch
-
-applied-patches is now empty, and the patch is removed.
-
-Now let's add a file to my-patch and then generate my-second-patch:
-
- Add "my-patch.patch" to ./series (no blank lines in that file please)
-
- pushpatch
-
-OK, the patch is applied again. Let's add another file
-
- fpatch kernel/printk.c
-
-Note that here we gave fpatch a single argument. So rather than
-opening a new patch, it adds kernel/printk.c to the existing topmost
-patch. That's my-patch.
-
- Edit kernel/printk.c
-
-Refresh my-patch (you end up running refpatch a lot)
-
- refpatch
-
-Now start a second patch:
-
- fpatch my-second-patch kernel/sched.c
-
-Now take a look at applied-patches. Also do an `ls kernel/sched*'.
-
- Edit kernel/sched.c, to make some changes for my-second-patch
-
-Generate my-second-patch:
-
- refpatch
-
-Take a look in patches/my-second-patch.patch
-
-Don't forget to add "my-second-patch.patch" to the series file.
-
-And remove both patches:
-
- poppatch
- poppatch
-
-
-That's pretty much it, really.
-
-
-Command reference
-=================
-
-Generally, where any of these commands take a "patch-name", that can be
-of the form txt/patch-name.txt, patch-name.pc, just patch-name or
-whatever. The scripts will strip off a leading "txt/", "patches/" or
-"pc/" and any trailing extension. This is so you can do
-
- apatch patches/a<tab>
-
-to conveniently use shell tabbing to select patch names.
-
-
-
-added-by-patch
-
- Some internal thing.
-
-apatch [-f] patch-name
-
- This is the low-level function which adds patches. It does the
- copying into ~-files and updates the applied-patches file. It
- applies the actual patch.
-
- apatch will do a patch --dry-run first and will refuse to apply the
- patch if the dryrun fails.
-
- So when you are getting rejects you do this:
-
- pushpatch # This fails, due to rejects. Drat.
- apatch -f patch-name # Force the patch
- (or) pushpatch -f # Force the patch
-
- OK, you've now applied patch-name, but you have rejects. Go fix
- those up and do
-
- refpatch
-
- And you're ready to move on.
-
-combine-series output-file
-
- It incrementally combinediffs all the patches in series to make a
- complete patch for the series. Requires combinediff frmo patchutils.
-
- See http://cyberelk.net/tim/patchutils/ (Don't download the
- "experimental" patchutils - it seems to only have half of the
- commands in it. Go for "stable")
-
-cvs-take-patch
-
- I forget.
-
-export_patch
-
- export the patches listed in ./series to a set of files which
- are named in such a way that the sort order is the same as the
- order of the series file.
-
- Usage: export_patch directory [prefix]
-
- Example:
-
- Suppose ./series contains
-
- mango.patch
- orange.patch
- banana.patch
- apple.patch
- pear.patch
-
- export_patch ../mypatches fruit
-
- The patches would be copied to
-
- ../mypatches/p00001_fruit_mango.patch
- ../mypatches/p00002_fruit_orange.patch
- ../mypatches/p00003_fruit_banana.patch
- ../mypatches/p00003_fruit_banana.patch
- ../mypatches/p00003_fruit_banana.patch
-
- Named in this way, someone may easily apply them:
-
- cat mypatches/p*fruit* | patch -p1
-
- If prefix is omitted, the patchnames will be transformed
- such that "original.patch" becomes "pXXXXX_original.patch".
-
-fpatch [patch-name] foo.c
-
- If patch-name is given, fpatch will start a new patch which
- modifies (or adds, or removes) the single file foo.c. It updates
- ./applied-patches and creates pc/patch-name.pc. fpatch will copy
- foo.c to foo.c~patch-name in preparation for edits of foo.c.
-
- If patch-name is not given then fpatch will add foo.c to the
- current topmost patch. It will add "foo.c" to $P/pc/$(toppatch).pc.
- It will copy foo.c to foo.c~$(toppatch).
-
-import_patch
-
- Imports a set of patch files, creating $P/pc, $P/txt, $P/patches and
- ./series as necessary. It also creates $P/txt/*.txt by stripping
- off the top of the patches (and removes any diffstat output it finds,
- so that it can eat refpatch output and export_patch output.) The
- imported patch names are appended to the series file.
-
- In creating the $P/txt/*.txt files, mail headers are stripped with
- formail, preserving the "From:" and "Subject:" lines. "DESC" and
- "EDESC" markers are added if they are not already present, using the
- "From:" and "Subject:" lines for the DESC portion, if they are present.
- (See "patchdesc" command, below, for more on these markers.)
-
- Also, it can rename the patch file as it is imported by stripping out
- a pattern. This is useful if, as often is the case, you have patch
- sets with filenames designed to help sort the patches into the correct
- order, such as "p001_xxx_funky_stuff.patch" you can have it automatically
- renamed to funky_stuff.patch on import, and let the series file manage
- the ordering.
-
- Import_patch will uncompress patches (*.Z, *.bz2, *.gz) as necessary.
-
- Usage:
-
- import_patch [-p pattern] patchfile ...
-
- Example:
-
- % ls ../fruit/p*patch
- ../fruit/p00001_northern_apple.patch
- ../fruit/p00001_tropical_mango.patch
- ../fruit/p00002_northern_pear.patch
- ../fruit/p00002_tropical_orange.patch
- ../fruit/p00003_tropical_banana.patch
- % import_patch -p 'p[0-9]*_tropical_' ../fruit/p*tropical*
- Recreated pc/mango.pc
- Recreated pc/orange.pc
- Recreated pc/banana.pc
- % import_patch -p 'p[0-9]*_northern_' ../fruit/p*northern*
- Recreated pc/apple.pc
- Recreated pc/pear.pc
-
- Then you can "pushpatch; refpatch" 5 times.
-
-inpatch
-
- List the names of ths files which are affected by the current
- topmost patch.
-
- This is basically
-
- cat pc/$(toppatch).pc
-
-join-patch patchname
-
- "joins" the named patch to the current topmost patch.
-
- Use this when you want to merge two patches into one. All the
- files which `patchname' affects are added to pc/$(toppatch).pc (if
- they are not already there) and patch `patchname' is applied. The
- top patch remains unchanged. You'll need to run refpatch afterwards.
-
-mpatch
-
- A low-level thing to generate patches
-
-new-kernel
-
- Some thing I use for importing a new kernel from kernel.org
-
-p0-2-p1
-
- Internal thing to convert patch -p0 form into patch -p1
-
-patchdesc
-
- Generates a single-line description of a patch.
-
- The txt/my-patch.txt files have the following format:
-
- <start of file>
- DESC
- some short description
- EDESC
-
- The long description
- <end of file>
-
- I use
-
- patchdesc $(cat series)
-
- to generate short-form summaries of the patch series.
-
-patchfns
-
- Internal utilities
-
-pcpatch
-
- Standalone tool to generate a .pc file from a patch.
-
- Say someone sends you "his-patch.diff". What you do is:
-
- cp ~/his-patch.diff patches/his-patch.patch
- pcpatch his-patch
-
- This generates $P/pc/his-patch.pc and you're all set. Add
- "his-patch.patch" to ./series in the right place and start pushing.
-
-p_diff
-
- I forget
-
-poppatch
-
- Remove one or more patches from the current stack. This command
- does *not* use the series file. It works purely against
- applied-patches.
-
- Usage:
-
- poppatch
- Remove the topmost patch
- poppatch 10
- Remove ten patches
- poppatch some-patch-name[.patch]
- Remove patches until "some-patch-name" is top patch
-
-pstatus
-
- Shows status of patches
-
- Usage:
- pstatus [patchfile ...]
-
- One line per patch is output showing:
- 1: Patch number in the series file
- 2: Whether the patch is currently applied
- 3: Name of patch
- 4: Status of the patch (needs pcpatch, changelog, refpatch)
-
- If no patchfiles are specified, $P/patches/*.patch
- are assumed.
-
- Caveats:
- A patch set which contains separate patches to add a file
- and modify that same file may give spurious "Needs refpatch"
- status for the patch which adds the file or the topmost patch.
-
-ptkdiff
-
- Two modes:
-
- ptkdiff -
-
- Run tkdiff against all the file affected
- by $(toppatch). The diff is only for the changes made
- by the top patch! ie: it's between "filename" and
- "filename~toppatch-name".
-
- ptkdiff filename
-
- Just run tkdiff against that file,
- showing the changes which are due to toppatch.
-
-pushpatch [-f]
-
- Apply the next patch, from the series file.
-
- This consults ./applied-patches to find out the top patch, then
- consults ./series to find the next patch. And pushes it.
-
- pushpatch
-
- Apply the next patch
-
- pushpatch 10
-
- Apply the next ten patches
-
- pushpatch some-patch-name
-
- Keep pushing patches until "some-patch-name" is toppatch
-
- pushpatch -f
-
- Push the next patch, ignoring rejects.
-
-refpatch
-
- regnerates the topmost patch. Reads all the affected files
- from pc/$(toppatch).pc and diffs them against their tilde-files.
-
- Also pastes into the patch your patch documentation and
- generates a diffstat summary.
-
-removed-by-patch
-
- Some thing.
-
-rename-patch
-
- CVS rename for patches.
-
-rolled-up-patch
-
- Bit of a hack. Is designed to generate a rolled-up diff of all
- currently-applied patches. But it requires a ../linux-2.x.y tree to
- diff against. Needs to be redone.
-
-rpatch
-
- Internal command
-
-split-patch
-
- Some thing someone write to split patches up. I don't use it.
-
-tag-series
-
- Assuming you keep pc/*, patches/* and txt/* under CVS revision
- control, tag-series allows you to tag a patchset's individual
- components. I use
-
- tag-series s2_5_44-mm3 pc/2.5.44-mm3-series
-
- which will attach the cvs tag "s2_5_44-mm3" to every .pc, .patch
- and .txt file which is mentioned in the series file
- "pc/2.5.44-mm3-series".
-
- It will also tag pc/2.5.44-mm3-series, which is a bit redundant
- given that I use a different series file for each patchset release..
-
-
-toppatch
-
- Print the name of the topmost patch. From ./applied-patches
-
-touched-by-patch patch-filename
-
- List the names of files which are affected by a diff.
-
-unitdiff.py
-
- Rasmus Andersen's script to convert a diff into minimum-context
- form. This form has a better chance of applying if you're getting
- nasty rejects. But patch can and will make mistakes when fed
- small-context input.
-
-
-Work Practices
-==============
-
-I keep the kernel tree, the $P/pc/, $P/patches/ and $P/txt/ contents under
-CVS control. This is important...
-
-I have several "series" files. I keep these in $P/pc/foo-series and use
-
- ln -s pc/foo-series series
-
-when I'm working on foo.
-
-If someone sends me a patch I'll do:
-
- cp ~/whatever patches/his-patch.patch
- pcpatch his-patch
- apatch his-patch
-
- If apatch fails then run `apatch -f his-patch' and fix the rejects.
-
- refpatch
-
- to clean up any fuzz.
-
- poppatch
- cvs add pc/his-patch.pc patches/his-patch.patch
- cvs commit pc patches
-
- Now edit ./series and place "his-patch.patch" in the appropriate place.
-
-
-If you're working on a particular patch (say, "dud-patch") and you
-balls something up, just run:
-
- refpatch # Generate the crap patch
- poppatch # Remove it all
- rm patches/dud-patch.patch
- cvs up patches/dud-patch.patch
-
-and all is well.
-
-
-Getting updates from Linus
-==========================
-
-What I do is to grab the latest -bk diff from
-http://www.kernel.org/pub/linux/kernel/people/dwmw2/bk-2.5/
-and do:
-
- gzip -d < cs<tab> > patches/linus.patch
- pcpatch linus
- apatch linus | grep diff
-
- Now fix up all the files which got deleted,
- because there's something wrong with bitkeeper diffs:
-
- cvs up -ko <missing files from the above diff>
-
- apatch linus
- $EDITOR linus/linus.txt
-
- Add the changeset number to txt/linus.txt
-
- refpatch
- poppatch
-
- Now add "linus.patch" as the first entry in your ./series file and
- start pushing your other patches on top of that.
-
-BUGS
-====
-
-Tons and tons. The scripts are fragile, the error handling is ungraceful and
-if you do something silly you can end up in a pickle.
-
-Generally the scripts are very careful to not wreck your files or your
-patches. But they can get the ./applied-patches and ~-files into an
-awkward state.
-
-Usually you can sort it out by copying the ~-files back onto the originals
-and removing the last line from ./applied-patches. Or do a "refpatch ;
-poppatch ; rm patches/troublesome-patch.patch ; cvs up patches".
-
-If it's really bad, just blow away the entire tree and do a new CVS checkout.
-
-
-Working on non-kernel projects
-==============================
-
-Well it's the same thing. Say you've downloaded a copy of util-linux
-and you want to make a change:
-
- cd /usr/src
- tar xvfz ~/util-linux.tar.gz
- cd util-linux
- mkdir pc patches txt
- fpatch my-patch sys-utils/rdev.c
- fpatch sys-utils/ipcs.8
- <edit, edit>
- refpatch
- <ship patches/my-patch.patch>
-
-How to balls things up
-======================
-
-Well here's one way. Suppose you have 20 patches applied, and three of
-them (say, "p1", "p6" and "p11") all modify "foo.c".
-
-Now you go and change foo.c.
-
-Well, to which patch does that change belong? You need to decide.
-Let's say you decide "p6".
-
-If you run `refpatch' when "p11" is toppatch then you lose. The diff
-went into p11.
-
-What you can do is:
-
-1:
- poppatch p6
- <edit>
- refpatch
- pushpatch p11
- <test>
-
- (See why ccache is looking good?)
-
-or
-
-2:
- <edit>
- <test>
- poppatch p6 <hope like hell that the other patches remove cleanly>
- refpatch
-
-
-Another good way of ballsing up is to cheat. Say "oh I just want to make
-this one-line change". And "oh, and this one".
-
-Now you're getting in a mess. It's much, much better to just use the system:
-
- fpatch junk file1
- fpatch file2
- <edit>
- <play>
- refpatch
- poppatch
- rm pc/junk.pc patches/junk.patch
-
-Merging with -mm kernels
-========================
-
-Haven't tried this, but it should work:
-
-- Grab all the patches from broken-out/, place them in your $P/patches/
-
-- Copy my series file into ./series (or $P/pc/akpm-series and symlink it)
-
-- pushpatch 99
-
-And you're off and running. The nice thing about this is that you can
-send me incremental diffs to diffs which I already have.
-
-Or whatever. I'm fairly handy with diffs nowadays. Rejects are
-expected. I just prefer to have "one concept per diff".
-
+++ /dev/null
-/*
- File: backup-files.c
-
- Copyright (C) 2003 Andreas Gruenbacher <agruen@suse.de>
- SuSE Labs, SuSE Linux AG
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-/*
- * Create backup files of a list of files similar to GNU patch. A path
- * name prefix and suffix for the backup file can be specified with the
- * -B and -Z options.
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-const char *progname;
-
-enum { what_backup, what_restore, what_remove };
-
-const char *opt_prefix="", *opt_suffix="", *opt_file=NULL;
-int opt_silent=0, opt_what=what_backup;
-
-#define LINE_LENGTH 1024
-
-
-void
-usage(void)
-{
- printf("Usage: %s [-B prefix] [-z suffix] [-f {filelist|-}] [-s] [-r|-x] filename ...\n"
- "\n"
- "\tCreate hard linked backup copies of a list of files\n"
- "\tread from standard input.\n"
- "\n"
- "\t-r\tRestore the backup\n"
- "\t-x\tRemove backup files and empty parent directories\n"
- "\t-B\tPath name prefix for backup files\n"
- "\t-z\tPath name suffix for backup files\n"
- "\t-s\tSilent operation; only print error messages\n\n",
- progname);
-}
-
-void
-create_parents(char *filename)
-{
- struct stat st;
- char *f = strchr(filename, '/');
-
- if (f == NULL)
- return;
- *f = '\0';
- if (stat(f, &st) != 0) {
- while (f != NULL) {
- *f = '\0';
- mkdir(filename, 0777);
- *f = '/';
- f = strchr(f+1, '/');
- }
- } else {
- *f = '/';
- }
-}
-
-void
-remove_parents(char *filename)
-{
- char *f, *g = NULL;
-
- f = strrchr(filename, '/');
- while ((f = strrchr(filename, '/')) != NULL) {
- if (g != NULL)
- *g = '/';
- g = f;
- *f= '\0';
-
- rmdir(filename);
- }
- if (g != NULL)
- *g = '/';
-}
-
-static int
-link_or_copy(const char *from, const char *to)
-{
- char buffer[4096];
- int from_fd, to_fd, error = 1;
- size_t len;
-
- if (link(from, to) == 0)
- return 0;
- if (errno != EXDEV && errno != EPERM && errno != EMLINK) {
- fprintf(stderr, "Could not link file `%s' to `%s': %s\n",
- from, to, strerror(errno));
- return 1;
- }
-
- if ((from_fd = open(from, O_RDONLY)) == -1) {
- perror(from);
- return 1;
- }
- if ((to_fd = open(to, O_WRONLY|O_TRUNC))) {
- perror(to);
- close(from_fd);
- return 1;
- }
- while ((len = read(from_fd, buffer, sizeof(buffer))) > 0) {
- if ((write(to_fd, buffer, len)) == -1) {
- perror(to);
- unlink(to);
- goto out;
- }
- }
- if (len != 0) {
- perror(from);
- unlink(to);
- goto out;
- }
-
- error = 0;
-out:
- close(from_fd);
- close(to_fd);
-
- return error;
-}
-
-int
-process_file(char *file)
-{
- char backup[LINE_LENGTH];
-
- if (strlen(opt_prefix) + strlen(file) +
- strlen(opt_suffix) >= sizeof(backup)) {
- perror("Line buffer too small\n");
- return 1;
- }
-
- snprintf(backup, sizeof(backup), "%s%s%s",
- opt_prefix, file, opt_suffix);
-
- if (opt_what == what_backup) {
- struct stat st;
- int new_file = (stat(file, &st) == -1 && errno == ENOENT);
-
- unlink(backup);
- create_parents(backup);
- if (new_file) {
- int fd;
-
- if (!opt_silent)
- printf("New file %s\n", file);
- if ((fd = creat(backup, 0666)) == -1) {
- perror(backup);
- return 1;
- }
- close(fd);
- } else {
- if (!opt_silent)
- printf("Copying %s\n", file);
- if (link_or_copy(file, backup) != 0)
- return 1;
- }
- return 0;
- } else if (opt_what == what_restore) {
- struct stat st;
-
- create_parents(file);
- if (stat(backup, &st) != 0) {
- perror(backup);
- return 1;
- }
- if (st.st_size == 0) {
- if (unlink(file) == 0 || errno == ENOENT) {
- if (!opt_silent)
- printf("Removing %s\n", file);
- unlink(backup);
- remove_parents(backup);
- } else {
- perror(file);
- return 1;
- }
- } else {
- if (!opt_silent)
- printf("Restoring %s\n", file);
- unlink(file);
- if (link(backup, file) == -1) {
- if (link_or_copy(backup, file) != 0)
- return 1;
- unlink(backup);
- remove_parents(backup);
- }
- }
- return 0;
- } else if (opt_what == what_remove) {
- unlink(backup);
- remove_parents(backup);
- return 0;
- } else
- return 1;
-}
-
-int
-main(int argc, char *argv[])
-{
- int opt, status=0;
-
- progname = argv[0];
-
- while ((opt = getopt(argc, argv, "rxB:z:f:sh")) != -1) {
- switch(opt) {
- case 'r':
- opt_what = what_restore;
- break;
-
- case 'x':
- opt_what = what_remove;
- break;
-
- case 'B':
- opt_prefix = optarg;
- break;
-
- case 'f':
- opt_file = optarg;
- break;
-
- case 'z':
- opt_suffix = optarg;
- break;
-
- case 's':
- opt_silent = 1;
- break;
-
- case 'h':
- default:
- usage();
- return 0;
- }
- }
-
- if ((*opt_prefix == '\0' && *opt_suffix == '\0') ||
- (opt_file == NULL && optind == argc)) {
- usage();
- return 1;
- }
-
- if (opt_file != NULL) {
- FILE *file;
- char line[LINE_LENGTH];
-
- if (!strcmp(opt_file, "-")) {
- file = stdin;
- } else {
- if ((file = fopen(opt_file, "r")) == NULL) {
- perror(opt_file);
- return 1;
- }
- }
-
- while (fgets(line, sizeof(line), file)) {
- char *l = strchr(line, '\0');
-
- if (l > line && *(l-1) == '\n')
- *(l-1) = '\0';
- if (*line == '\0')
- continue;
-
- if ((status = process_file(line)) != 0)
- return status;
- }
-
- if (file != stdin) {
- fclose(file);
- }
- }
- for (; optind < argc; optind++) {
- if ((status = process_file(argv[optind])) != 0)
- return status;
- }
-
- return status;
-}
+++ /dev/null
-QUILT_IN := add applied delete diff files import new next patches \
- pop previous push refresh remove series setup top unapplied
-SCRIPTS_IN := apatch rpatch patchfns spec2series patchfns
-# scripts/parse-patch is perl based
-
-# LINGUAS = ...
-# localedir = ...
-
-all: $(LINGUAS:%=%.mo)
-
-%.mo : %.po
- msgfmt --statistics -o $@ $<
-
-%.po : quilt.pot
- msgmerge -o $@ $@ $^
-
-quilt.pot: $(QUILT_IN:%=../quilt/%.in) $(SCRIPTS_IN:%=../scripts/%.in) ../bin/quilt.in
- rm -f quilt.pot; touch quilt.pot
- for file in $+ ; do \
- bash --dump-po-strings $$file \
- |msguniq \
- |msgcat --force-po -F - quilt.pot -o quilt.pot; \
- done
-
-clean:
- rm -f *.mo *~
-
-install: all
- for lang in $(LINGUAS) ; do \
- install -d $(BUILD_ROOT)$(localedir)/$$lang/LC_MESSAGES ; \
- install -m 644 $$lang.mo \
- $(BUILD_ROOT)$(localedir)/$$lang/LC_MESSAGES/quilt.mo ; \
- done
-
-.PHONY: install clean all
+++ /dev/null
-# German quilt translation
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Andreas Gruenbacher <agruen@suse.de>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: quilt 0.21\n"
-"PO-Revision-Date: 2003-02-15 22:15 +0100\n"
-"Last-Translator: Andreas Gruenbacher <agruen@suse.de>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../bin/quilt.in:14
-msgid "Usage: quilt command [-h] ..."
-msgstr "Verwendung: quilt befehl [-h] ..."
-
-#: ../bin/quilt.in:26
-msgid "Commands are:"
-msgstr "Folgende Befehle gibt es:"
-
-#: ../quilt/add.in:22
-msgid "Usage: quilt add [-p patch] {file} ..."
-msgstr "Verwendung: quilt add [-p patch] {datei} ..."
-
-#: ../quilt/add.in:25
-msgid ""
-"\n"
-"\n"
-"Add one or more files to the topmost or named patch. Files must be\n"
-"added to the patch before being modified. Files that are modified by\n"
-"patches on top of the specified patch cannot be added.\n"
-"\n"
-"-p patch\n"
-"\tPatch to add files to."
-msgstr ""
-"\n"
-"\n"
-"Fügt eine oder mehrere Dateien zum obersten oder angegebenen Patch\n"
-"hinzu. Dateien müssen einem Patch hinzugefügt werden, bevor sie\n"
-"verändert werden. Dateien können einem Patch nur hinzugefügt werden,\n"
-"solange sie von keinem Patch höher auf dem Stapel verändert werden.\n"
-"\n"
-"-p patch\n"
-"\tDer Patch, zu dem die Dateien hinzugefügt werden sollen."
-
-#: ../quilt/add.in:75 ../quilt/delete.in:69 ../quilt/files.in:74
-#: ../quilt/push.in:184 ../quilt/remove.in:75
-msgid "No patch applied"
-msgstr "Kein Patch angewandt"
-
-#: ../quilt/add.in:80 ../quilt/applied.in:70 ../quilt/refresh.in:113
-#: ../quilt/remove.in:80
-msgid "Patch $patch is not applied"
-msgstr "Patch $patch ist nicht angewandt"
-
-#: ../quilt/add.in:89
-msgid "File $file is already in patch $patch"
-msgstr "Datei $file ist bereits in Patch $patch enthalten"
-
-#: ../quilt/add.in:96 ../quilt/remove.in:97
-msgid "File $file modified by patch $next_patch"
-msgstr "Datei $file wird von Patch $next_patch verändert"
-
-#: ../quilt/add.in:104
-msgid "Failed to back up file $file"
-msgstr "Konnte Datei $file nicht sichern"
-
-#: ../quilt/add.in:124
-msgid "File $file added to patch $patch"
-msgstr "Datei $file zu Patch $patch hinzugefügt"
-
-#: ../quilt/applied.in:22
-#, fuzzy
-msgid "Usage: quilt applied [-n] [patch]"
-msgstr "Verwendung: quilt applied [patch]"
-
-#: ../quilt/applied.in:25
-#, fuzzy
-msgid ""
-"\n"
-"\n"
-"Print a list of applied patches.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt den Namen des Patches vor dem obersten oder angegebenen\n"
-"Patch in der series-Datei aus.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-
-#: ../quilt/delete.in:22
-msgid "Usage: quilt delete [patch]"
-msgstr "Verwendung: quilt delete [patch]"
-
-#: ../quilt/delete.in:25
-msgid ""
-"\n"
-"\n"
-"Remove the specified or topmost patch from the series file. If the\n"
-"patch is applied, quilt will attempt to remove it first. (Only the\n"
-"topmost patch can be removed right now.)"
-msgstr ""
-"\n"
-"\n"
-"Löscht den obersten oder angegebenen Patch aus der series-Datei. Falls\n"
-"dieser Patch angewandt ist, entfernt quilt ihn zuerst. (Momentan kann \n"
-"nur der oberste Patch entfernt werden.)"
-
-#: ../quilt/delete.in:75
-msgid "Patch $patch does not exist"
-msgstr "Patch $patch existiert nicht"
-
-#: ../quilt/delete.in:84
-msgid "Patch $patch is currently applied"
-msgstr "Patch $patch ist momentan angewandt"
-
-#: ../quilt/delete.in:90
-msgid "Failed to remove patch $patch"
-msgstr "Konnte Patch $patch nicht entfernen"
-
-#: ../quilt/diff.in:27
-msgid "Usage: quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [file ...]"
-msgstr ""
-"Verwendung: quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [datei ...]"
-
-#: ../quilt/diff.in:31
-#, fuzzy
-msgid ""
-"\n"
-"\n"
-"Produces a diff of the specified file(s) in the topmost or specified\n"
-"patch. If no files are specified, all files that are modified are\n"
-"included.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n"
-"\n"
-"-P patch\n"
-"\tCreate a diff for the specified patch. (Defaults to the topmost\n"
-"\tpatch.)\n"
-"\n"
-"-c patch\n"
-"\tCreate a combined diff for all patches between this patch and\n"
-"\tthe patch specified with -P. A patch name of \\\"-\\\" is equivalent\n"
-"\tto specifying the first applied patch.\n"
-"\n"
-"-R\tCreate a reverse diff.\n"
-"\n"
-"-z\tWrite to standard output the changes that have been made\n"
-"\trelative to the topmost or specified patch.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Erzeugt ein Diff der angegebenen Dateien im obersten oder angegebenen\n"
-"Patch. Wenn keine Dateien angegeben sind, werden alle im Patch\n"
-"enthaltenen Dateien einbezogen.\n"
-"\n"
-"-p n\tErzeugt einen -p n Patch (n=0 oder n=1 wird unterstützt).\n"
-"\n"
-"-P patch\n"
-"\tErzeuge ein Diff für den angegebenen Patch. (Wenn nicht angegeben,\n"
-"\toberster Patch.)\n"
-"\n"
-"-c patch\n"
-"\tErzeuge ein kombiniertes Diff für alle Patches zwischen diesem und\n"
-"\tdem mit -P angegebenen Patch.\n"
-"\n"
-"-R\tErzeuge ein umgekehrtes Diff.\n"
-"\n"
-"-z\tÄnderungen relativ zum angewandten Patch ausgeben.\n"
-"\n"
-
-#: ../quilt/diff.in:132
-msgid "Options \\`-c patch' and \\`-z' cannot be combined."
-msgstr "Die Optionen \\`-c patch' and \\`-z' können nicht kombiniert werden."
-
-#: ../quilt/diff.in:141 ../quilt/refresh.in:106
-msgid "No patch seem to be applied"
-msgstr "Es ist kein Patch angewandt"
-
-#: ../quilt/diff.in:148
-msgid "Patch $last_patch is not applied"
-msgstr "Patch $last_patch ist nicht angewandt"
-
-#: ../quilt/diff.in:158
-msgid ""
-"Cannot diff patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-"Kann kein Diff mit -p$opt_strip_level erzeugen, bitte -p0 oder -p1 verwenden."
-
-#: ../quilt/diff.in:166
-msgid "refresh_patches_per_file failed."
-msgstr "Fehler in refresh_patches_per_file."
-
-#: ../quilt/diff.in:179
-msgid "Patch $opt_combine not applied before $last_patch."
-msgstr "Patch $opt_combine ist nicht vor Patch $last_patch angewandt."
-
-#: ../quilt/diff.in:213
-msgid "File $file is not being modified."
-msgstr "Datei $file wird nicht verändert."
-
-#: ../quilt/diff.in:230
-msgid "Cannot change into .pc/$last_patch"
-msgstr "Kann nicht in Verzeichnis .pc/$last_patch wechseln."
-
-#: ../quilt/diff.in:235
-msgid "Failed to copy files to temporary directory"
-msgstr "Konnte Dateien nicht in ein temporäres Verzeichnis kopieren"
-
-#: ../quilt/diff.in:240
-msgid "Cannot change to temporary directory"
-msgstr "Kann nicht in temporäres Verzeichnis wechseln"
-
-#: ../quilt/diff.in:257
-msgid "Failed to patch temporary files"
-msgstr "Konnte temporäre Dateien nicht patchen"
-
-#: ../quilt/diff.in:264
-msgid "Cannot change to source directory"
-msgstr "Kann nicht in Quellverzeichnis wechseln"
-
-#: ../quilt/diff.in:293 ../quilt/refresh.in:144
-msgid "Diff failed, aborting."
-msgstr "Diff fehlgeschlagen, Abbruch."
-
-#: ../quilt/diff.in:300
-msgid "More recent patches modify files in $last_patch."
-msgstr "Später angewandte Patches verändern Dateien von $last_patch."
-
-#: ../quilt/files.in:22
-msgid "Usage: quilt files [-v] [patch]"
-msgstr "Verwendung: quilt files [-v] [patch]"
-
-#: ../quilt/files.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of files that the topmost or specified patch changes.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt eine Liste der Dateien aus, die der oberste oder angegebene Patch\n"
-"beinhaltet.\n"
-"\n"
-"-v\tAusführlichere, benutzerfreundliche Ausgabe.\n"
-"\n"
-
-#: ../quilt/files.in:83
-msgid "Patch is not applied (no verbose output)"
-msgstr "Patch ist nicht angewandt (keine ausführliche Ausgabe)"
-
-#: ../quilt/files.in:86
-msgid "Patch is not applied"
-msgstr "Patch ist nicht angewandt"
-
-#: ../quilt/import.in:22
-msgid "Usage: quilt import [-f] [-p num] [-n patch] [patchfile]"
-msgstr "Verwendung: quilt import [-f] [-p num] [-n patch] [patchdatei]"
-
-#: ../quilt/import.in:25
-msgid ""
-"\n"
-"\n"
-"Import an external patch. If a patch file name is specified, the patch\n"
-"will be stored in this relative path in the patches/ directory. Else,\n"
-"if an input file name is given this name is used as the patch name.\n"
-"\n"
-"-p num\n"
-"\tNumber of directory levels to strip when aplying (default=1)\n"
-"\n"
-"-n patch\n"
-"\tFile name relative to patches/ to use.\n"
-"\n"
-"-f\tOverwite/update existing patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Importiert einen Patch aus einer Datei. Ist ein Patch-Dateiname\n"
-"angegeben, so wird er Patch in diesem Pfad relativ zum\n"
-"patches/-Verzeichnis abgelegt. Sonst wird (wenn angegeben) der\n"
-"Patch-Dateiname verwendet.\n"
-"\n"
-"-p num\n"
-"\tAnzahl der Verzeichnisebenen, die beim Anwenden des Patches entfernt\n"
-"\twerden (Standardwert=1)\n"
-"\n"
-"-n patch\n"
-"\tPatch-Dateiname relativ zum patches/-Verzeichnis.\n"
-"\n"
-"-f\tBestehende Patches überschreiben/aktualisieren.\n"
-"\n"
-
-#: ../quilt/import.in:97
-msgid "Please use -n to specify a patch file name."
-msgstr "Bitte -n verwenden, um einen Patch-Namen anzugeben."
-
-#: ../quilt/import.in:105
-msgid "Patch file name \\\"$patch_file\\\" contains whitespace."
-msgstr "Patch-Dateiname \\\"$patch_file\\\" enthält Leerstellen."
-
-#: ../quilt/import.in:111
-msgid "Patch $patch is applied."
-msgstr "Patch $patch ist angewandt."
-
-#: ../quilt/import.in:120
-msgid "Cannot read from standard input."
-msgstr "Kann nicht von der Standardeingabe lesen."
-
-#: ../quilt/import.in:129 ../quilt/import.in:138
-msgid "Cannot decompress file $input_file"
-msgstr "Kann Datei $input_file nicht dekomprimieren"
-
-#: ../quilt/import.in:146
-msgid "Cannot read from file $input_file"
-msgstr "Kann nicht von Datei $input_file lesen"
-
-#: ../quilt/import.in:155
-msgid "Patch $patch exists. Replace with -f."
-msgstr "Patch $patch existiert bereits. Ersetzen mit -f."
-
-#: ../quilt/import.in:162
-msgid "Updating %patch section of patch $patch"
-msgstr "Aktualisiere %patch-Abschnitt von Patch $patch"
-
-#: ../quilt/import.in:165
-msgid "Failed to update %patch section of patch $patch"
-msgstr "Konnte %patch-Abschnitt in Patch $patch nicht aktualisieren"
-
-#: ../quilt/import.in:169
-msgid "Replacing patch $patch with new version"
-msgstr "Ersetze Patch $patch durch neuere Version"
-
-#: ../quilt/import.in:172
-msgid "Failed to replace patch $patch"
-msgstr "Konnte Patch $patch nicht ersetzen"
-
-#: ../quilt/import.in:177
-msgid "Importing patch $patch (stored as $patch_file)"
-msgstr "Importiere Patch $patch (abgelegt als $patch_file)"
-
-#: ../quilt/import.in:184
-msgid "Failed to import patch $patch"
-msgstr "Konnte Patch $patch nicht importieren"
-
-#: ../quilt/import.in:194
-msgid "Failed to insert $patch in file series."
-msgstr "Konnte Patch $patch nicht in die series-Datei einfügen."
-
-#: ../quilt/new.in:22
-msgid "Usage: quilt new {patchname}"
-msgstr "Verwendung: new {patchname}"
-
-#: ../quilt/new.in:25
-msgid ""
-"\n"
-"\n"
-"Create a new patch with the specified file name, and insert it after the\n"
-"topmost patch in the patch series file.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Erzeugr einen neuen Patch mit dem angegebenen Dateinamen, und fügt\n"
-"ihn nach dem obersten Patch in die series-Datei ein.\n"
-"\n"
-
-#: ../quilt/new.in:67
-msgid "Patch $patch exists already"
-msgstr "Patch $patch existiert bereits"
-
-#: ../quilt/new.in:77
-msgid "Failed to create patch $patch"
-msgstr "Konnte Patch $patch nicht erzeugen"
-
-#: ../quilt/new.in:80
-msgid "Patch $patch is now on top"
-msgstr "Der oberste Patch ist jetzt $patch"
-
-#: ../quilt/next.in:22
-msgid "Usage: quilt next [patch]"
-msgstr "Verwendung: quilt next [patch]"
-
-#: ../quilt/next.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the next patch after the specified or topmost patch in\n"
-"the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt den Namen des nächsten Patches nach dem obersten oder angegebenen\n"
-"Patch in der series-Datei aus.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-
-#: ../quilt/patches.in:22
-msgid "Usage: quilt patches {file}"
-msgstr "Verwendung: quilt patches {file}"
-
-#: ../quilt/patches.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of patches that modify the specified file.\n"
-"\n"
-"-n\tPrint the patch file names instead of the patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt die Liste der Patches aus, die die angegebene Datei verändern.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-"-v\tAusführlichere, benutzerfreundliche Ausgabe.\n"
-"\n"
-
-#: ../quilt/pop.in:22
-msgid "Usage: quilt pop [-afRqv] [num|patch]"
-msgstr "Verwendung: quilt pop [-afRqv] [num|patch]"
-
-#: ../quilt/pop.in:25
-msgid ""
-"\n"
-"\n"
-"Remove patch(es) from the current stack. A number of patches to remove,\n"
-"or a patch name can be specified. If a patch name is given, remove all\n"
-"patches applied on top of the named patch. If neither a number nor a\n"
-"patch name is specified, remove the next patch from the series file.\n"
-"\n"
-"-a\tRemove all applied patches.\n"
-"\n"
-"-f\tForce remove. The state before the patch(es) were applied will\n"
-"\tbe restored from backup files.\n"
-"\n"
-"-R\tRemove the patch with \\`patch -R' and check if the patch reverts\n"
-"\tall changes properly.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Entfernt Patches vom Stapel. Es kann eine Anzahl von Patches, die\n"
-"entfernt werden soll, oder der Name eines Patches angegeben werden.\n"
-"Wenn ein Name angegeben wird, werden alle Patches über dem angegebenen\n"
-"Patch entfernt. Wenn weder ein Patchname noch eine Nummer angegeben\n"
-"wird, wird der oberste Patch entfernt.\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\tEntfernen über \\`patch -R'. Überprüft auch, ob der\n"
-"\tAusgangszustand vor dem Anwenden des Patches wieder erreicht wird.\n"
-"\n"
-"-q\tWenige Meldungen ausgeben.\n"
-"\n"
-"-v\tViele Meldungen ausgeben.\n"
-"\n"
-
-#: ../quilt/pop.in:146
-msgid "Patch $stop_at_patch is not applied."
-msgstr "Patch $stop_at_patch ist nicht angewandt."
-
-#: ../quilt/pop.in:156
-msgid "No patch removed"
-msgstr "Kein Patch entfernt"
-
-#: ../quilt/pop.in:170 ../quilt/push.in:201
-msgid "Interrupted by user"
-msgstr "Unterbrechung durch Benutzer"
-
-#: ../quilt/pop.in:179 ../quilt/push.in:210
-msgid "No patches applied"
-msgstr "Keine Patches angewandt"
-
-#: ../quilt/pop.in:181 ../quilt/push.in:212
-msgid "Now at patch $patch"
-msgstr "Jetzt in Patch $patch"
-
-#: ../quilt/previous.in:22
-#, fuzzy
-msgid "Usage: quilt previous [-n] [patch]"
-msgstr "Verwendung: quilt previous [patch]"
-
-#: ../quilt/previous.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the previous patch before the specified or topmost\n"
-"patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt den Namen des Patches vor dem obersten oder angegebenen\n"
-"Patch in der series-Datei aus.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-
-#: ../quilt/push.in:21
-msgid "Usage: quilt push [-afqv] [--leave-rejects] [num|patch]"
-msgstr "Verwendung: quilt push [-afqv] [--leave-rejects] [num|patch]"
-
-#: ../quilt/push.in:24
-#, fuzzy
-msgid ""
-"\n"
-"\n"
-"Apply patch(es) from the series file. A number of patches to apply, or\n"
-"a patch name can be specified. If a patch name is given, apply all\n"
-"patches up to and including the named patch. If neither a number nor a\n"
-"patch name is specified, apply the next patch from the series file.\n"
-"\n"
-"-a\tApply all patches in the series file.\n"
-"\n"
-"-f\tForce apply, even if the patch has rejects.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-"--leave-rejects\n"
-"\tLeave around the reject files patch produced, even if the patch\n"
-"\tis not actually applied.\n"
-"\n"
-"--interactive\n"
-"\tAllow the patch utility to ask how to deal with conflicts. If\n"
-"\tthis option is not given, the option -f will be passed to the \n"
-"\tpatch program.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Patches in der series-Datei anwenden. Es kann eine Anzahl von Patches,\n"
-"die angewandt werden soll, oder der Name eines Patches angegeben werden.\n"
-"Wenn ein Name angegeben wird, werden alle Patches bis einschließlich zum\n"
-"angegebenen Patch angewandt. Wenn weder ein Patchname noch eine Nummer\n"
-"angegeben wird, wird der nächste Patch angewandt.\n"
-"\n"
-"-a\tAlle folgenden Patches anwenden.\n"
-"\n"
-"-f\tAnwenden erzwingen, solbst wenn dabei Fehler (Rejects) auftreten.\n"
-"\n"
-"-q\tWenige Meldungen ausgeben.\n"
-"\n"
-"-v\tViele Meldungen ausgeben.\n"
-"\n"
-"--leave-rejects\n"
-"\tReject-Dateien (von \\`patch') bestehen lassen, selbst wenn ein Patch\n"
-"\tnicht sauber angewandt werden kann.\n"
-"\t\n"
-
-#: ../quilt/push.in:86
-msgid "Patch $stop_at_patch not found in file series"
-msgstr "Patch $stop_at_patch in series-Datei nicht gefunden"
-
-#: ../quilt/push.in:162
-msgid "Patch $stop_at_patch is already applied."
-msgstr "Patch $stop_at_patch ist bereits angewandt."
-
-#: ../quilt/push.in:186
-msgid "File series fully applied, ends at patch $top"
-msgstr "series-Datei vollständig angewandt, endet in Patch $top"
-
-#: ../quilt/refresh.in:27
-msgid "Usage: quilt refresh [-p n] [-f] [patch]"
-msgstr "Verwendung: quilt refresh [-p n] [-f] [patch]"
-
-#: ../quilt/refresh.in:31
-msgid ""
-"\n"
-"\n"
-"Refreshes the specified patch, or the topmost patch by default.\n"
-"Documentation that comes before the actual patch in the patch file is\n"
-"retained.\n"
-"\n"
-"It is possible to refresh patches that are not on top. If any patches\n"
-"on top of the patch to refresh modify the same files, the script aborts\n"
-"by default. Patches can still be refreshed with -f. In that case this\n"
-"script will print a warning for each shadowed file, changes by more\n"
-"recent patches will be ignored, and only changes in files that have not\n"
-"been modified by any more recent patches will end up in the specified\n"
-"patch.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n"
-"\t\n"
-"-f\tForce refresh, even if more recent patches modify\n"
-"\tsome of the same files.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Frischt den obersten oder angegebenen Patch auf. Dokumentation in der\n"
-"Patch-Datei, die vor dem eigentlichen Patch steht, bleibt dabei\n"
-"erhalten.\n"
-"\n"
-"Es können beliebige angewandte Patches aufgefrischt 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 Auffrischen 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"
-"Auffrischen berücksichtigt.\n"
-"\n"
-"-p n\tErzeugt einen -p n Patch (n=0 oder n=1 werden unterstützt).\n"
-"\t\n"
-"-f\tAuffrischen erzwingen, selbst wenn Patches über dem angegebenen Patch\n"
-"\teinige der selben Dateien verändern.\n"
-"\n"
-
-#: ../quilt/refresh.in:123
-msgid ""
-"Cannot refresh patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-"Kann Patches mit Level -p$opt_strip_level nicht auffrischen, bitte -p0 oder -"
-"p1 angeben"
-
-#: ../quilt/refresh.in:150
-msgid "More recent patches modify files in $patch. Enforce refresh with -f."
-msgstr ""
-"Später angewandte Patches verändern Dateien von $patch. Auffrischen mit -f "
-"erzwingen."
-
-#: ../quilt/refresh.in:157
-msgid "Nothing in patch $patch"
-msgstr "Patch $patch is leer"
-
-#: ../quilt/refresh.in:197
-msgid "Refreshed patch $patch"
-msgstr "Patch $patch aufgefrischt."
-
-#: ../quilt/remove.in:22
-msgid "Usage: quilt remove [-p patch] {file} ..."
-msgstr "Verwendung: quilt remove [-p patch] {datei} ..."
-
-#: ../quilt/remove.in:25
-msgid ""
-"\n"
-"\n"
-"Remove one or more files from the topmost or named patch. Files that\n"
-"are modified by patches on top of the specified patch cannot be removed.\n"
-"\n"
-"-p patch\n"
-"\tPatch to remove files from.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Entfernt Dateien aus dem obersten oder angegebenen Patch. Dateien, die\n"
-"durch Patches über dem angegebenen Patch verändert werden, können nicht\n"
-"entfernt werden.\n"
-"\n"
-"-p patch\n"
-"\tPatch, aus dem Dateien entfernt werden sollen.\n"
-"\n"
-
-#: ../quilt/remove.in:89
-msgid "File $file is not in patch $patch"
-msgstr "Datei $file ist nicht in Patch $patch enthalten."
-
-#: ../quilt/remove.in:105
-msgid "Failed to remove file $file from patch $patch"
-msgstr "Konnte Datei $file nicht aus Patch $patch entfernen."
-
-#: ../quilt/remove.in:116
-msgid "File $file removed from patch $patch"
-msgstr "Datei $file aus Patch $patch entfernt."
-
-#: ../quilt/series.in:22
-msgid "Usage: quilt series [-v]"
-msgstr "Verwendung: quilt series [-v]"
-
-#: ../quilt/series.in:25
-msgid ""
-"\n"
-"\n"
-"Print the names of all patches in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt die Namen aller Dateien in der series-Datei aus.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-"-v\tAusführlichere, benutzerfreundliche Ausgabe.\n"
-"\n"
-
-#: ../quilt/setup.in:22
-msgid "Usage: quilt setup [-d sourcedir] {seriesfile|specfile}"
-msgstr "Verwendung: quilt setup [-d quellvz.] {seriesdatei|specdatei}"
-
-#: ../quilt/setup.in:25
-msgid ""
-"\n"
-"\n"
-"Initializes a source tree from a patch series file. The patch series\n"
-"file must contain the name of the relevant tar archive, in addition to\n"
-"the list of patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Baut einen Quellen-Baum aus einer series-Datei auf. Die series-Datei\n"
-"muß neben der Liste der Patches auch den Namen der entsprechenden\n"
-"Tar-Datei enthalten.\n"
-"\n"
-
-#: ../quilt/setup.in:100
-msgid "Series file $series_file not found"
-msgstr "Seriendatei $series_file nicht gefunden"
-
-#: ../quilt/setup.in:118
-#, fuzzy
-msgid "create link patch $packagedir/patches to $source"
-msgstr "Kopiere Patch $source/$arg"
-
-#: ../quilt/setup.in:121
-#, fuzzy
-msgid "creat link of $series_file"
-msgstr "Kopiere Seriendatei"
-
-#: ../quilt/setup.in:131
-msgid "Directory $packagedir set up."
-msgstr "Verzeichnis $packagedir aufgebaut."
-
-#: ../quilt/top.in:22
-msgid "Usage: quilt top"
-msgstr "Verwendung: quilt top"
-
-#: ../quilt/top.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the topmost patch on the current stack of applied\n"
-"patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gibt den Namen des obersten Patches auf dem Stapel aus.\n"
-
-#: ../quilt/unapplied.in:22
-msgid "Usage: quilt unapplied [patch]"
-msgstr "Verwendung: quilt unapplied [patch]"
-
-#: ../quilt/unapplied.in:25
-msgid ""
-"\n"
-"\n"
-"Print a list of patches that are not applied, or all patches that follow\n"
-"the specified patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Gint eine Liste der Patches aus, die momentan nicht angewandt sind, bzw.\n"
-"eine Liste der Patches, die dem angegebenen Patch folgen.\n"
-"\n"
-"-n\tPatch-Dateinamen statt Patch-Namen ausgeben.\n"
-"\n"
-
-#: ../scripts/apatch.in:22
-msgid "Usage: $0 [-fqv] patchname"
-msgstr "Verwendung: $0 [-fqv] patchname"
-
-#: ../scripts/apatch.in:40
-msgid "Interrupted by user; patch $patch was not applied."
-msgstr "Unterbrechung durch Benutzer; Patch $patch wurde nicht angewandt."
-
-#: ../scripts/apatch.in:51 ../scripts/rpatch.in:113
-msgid "Patch file $patch_file appears to be empty"
-msgstr "Patch-Datei $patch_file scheint leer zu sein"
-
-#: ../scripts/apatch.in:80
-msgid "refresh_file_list failed"
-msgstr "Fehler in refresh_file_list"
-
-#: ../scripts/apatch.in:84
-msgid "Applying $patch"
-msgstr "Anwenden von $patch"
-
-#: ../scripts/apatch.in:87
-msgid "Patch $patch appears to be empty, applied"
-msgstr "Patch $patch scheint leer zu sein, angewandt"
-
-#: ../scripts/apatch.in:95
-msgid "Recreated file list for $patch"
-msgstr "Dateiliste für $patch aktualisiert"
-
-#: ../scripts/apatch.in:126
-msgid "Applied $patch (forced; needs refresh)"
-msgstr "Patch $patch angewandt (erzwungen, muß aufgefrischt werden (Refresh))"
-
-#: ../scripts/apatch.in:130
-msgid "Patch $patch does not apply (enforce with -f)"
-msgstr "Patch $patch läßt sich nicht anwenden (erzwingen mit -f)"
-
-#: ../scripts/apatch.in:186 ../scripts/rpatch.in:245
-msgid "The topmost patch $top needs to be refreshed first."
-msgstr "Der oberste Patch $top muss zuerst aufgefrischt werden (Refresh)."
-
-#: ../scripts/rpatch.in:22
-msgid "Usage: $0 [-fRq] patchname"
-msgstr "Verwendung: $0 [-fRq] patchname"
-
-#: ../scripts/rpatch.in:44
-msgid "Patch does not remove changes:"
-msgstr "Patch entfernt folgende Änderungen nicht:"
-
-#: ../scripts/rpatch.in:102
-msgid "Interrupted by user; patch $patch was not removed."
-msgstr "Unterbrechung durch Benutzer; Patch $patch wurde nicht entfernt."
-
-#: ../scripts/rpatch.in:146
-msgid "Patch $patch appears to be empty, removed"
-msgstr "Patch $patch scheint leer zu sein, entfernt"
-
-#: ../scripts/rpatch.in:151
-msgid "Removing $patch"
-msgstr "Entferne $patch"
-
-#: ../scripts/rpatch.in:172
-msgid "Failed to create temporary files"
-msgstr "Konnte temporäres Verzeichnis nicht erstellen"
-
-#: ../scripts/rpatch.in:193
-msgid "Patch $patch does not remove (enforce with -f)"
-msgstr "Patch $patch kann nicht entfernt werden (erzwingen mit -f)"
-
-#: ../scripts/spec2series.in:100 ../scripts/spec2series.in:192
-msgid " done"
-msgstr " fertig"
-
-#~ msgid "Reading sources from $arg"
-#~ msgstr "Quellen werden von $arg gelesen"
-
-#~ msgid "Unpacking archive $source/$arg"
-#~ msgstr "Entpacke Archiv source/$arg"
-
-#~ msgid "Directory $packagedir exists already."
-#~ msgstr "Verzeichnis $packagedir existiert bereits."
-
-#~ msgid "File $packagedir exists."
-#~ msgstr "Datei $packagedir existiert."
-
-#, fuzzy
-#~ msgid "create link patch $source"
-#~ msgstr "Kopiere Patch $source/$arg"
-
-#, fuzzy
-#~ msgid "creat link of series file"
-#~ msgstr "Kopiere Seriendatei"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "Print a list of applied patches, or all patches up to and including the\n"
-#~ "specified patch in the file series.\n"
-#~ "\n"
-#~ "-n\tPrint patch file names instead of patch names."
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "Gibt eine Liste der angewandten Patches aus, oder eine Liste aller "
-#~ "Patches\n"
-#~ "vom Anfang der Serie bis zum angegebenen Patch.\n"
-#~ "\n"
-#~ "-n\tPatch-Dateinamen statt Patch-Namen ausgeben."
+++ /dev/null
-# quilt french translation
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Martin Quinson <Martin.Quinson@tuxfamily.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: quilt 0.22\n"
-"PO-Revision-Date: 2003-06-25 15:40+0200\n"
-"Last-Translator: Martin Quinson <Martin.Quinson@tuxfamily.org>\n"
-"Language-Team: French <traduc@traduc.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../bin/quilt.in:14
-msgid "Usage: quilt command [-h] ..."
-msgstr "Usage : quilt commande [-h] ..."
-
-#: ../bin/quilt.in:26
-msgid "Commands are:"
-msgstr "Les commandes sont :"
-
-#: ../quilt/add.in:22
-msgid "Usage: quilt add [-p patch] {file} ..."
-msgstr "Usage : quilt add [-p patch] {fichier} ..."
-
-#: ../quilt/add.in:25
-msgid ""
-"\n"
-"\n"
-"Add one or more files to the topmost or named patch. Files must be\n"
-"added to the patch before being modified. Files that are modified by\n"
-"patches on top of the specified patch cannot be added.\n"
-"\n"
-"-p patch\n"
-"\tPatch to add files to."
-msgstr ""
-"\n"
-"\n"
-"Ajoute un ou plusieurs fichiers au patch indiqué ou à celui au sommet.\n"
-"Les fichiers doivent être ajoutés au patch avant toute modification.\n"
-"Les fichiers modifiés par d'autres patches plus haut dans la pile ne\n"
-"peuvent pas être ajoutés.\n"
-"\n"
-"-p patch\n"
-"\tPatch auquel les fichiers doivent être ajoutés."
-
-#: ../quilt/add.in:75 ../quilt/delete.in:69 ../quilt/files.in:74
-#: ../quilt/push.in:184 ../quilt/remove.in:75
-msgid "No patch applied"
-msgstr "Aucun patch n'est appliqué"
-
-#: ../quilt/add.in:80 ../quilt/applied.in:70 ../quilt/refresh.in:113
-#: ../quilt/remove.in:80
-msgid "Patch $patch is not applied"
-msgstr "Le patch $patch n'est pas appliqué"
-
-#: ../quilt/add.in:89
-msgid "File $file is already in patch $patch"
-msgstr "Le fichier $file est déjà dans le patch $patch"
-
-#: ../quilt/add.in:96 ../quilt/remove.in:97
-msgid "File $file modified by patch $next_patch"
-msgstr "Le fichier $file est modifié par le patch $next_patch"
-
-#: ../quilt/add.in:104
-msgid "Failed to back up file $file"
-msgstr "Impossible de faire une copie de sécurité de $file"
-
-#: ../quilt/add.in:124
-msgid "File $file added to patch $patch"
-msgstr "Le fichier $file a été ajouté au patch $patch"
-
-#: ../quilt/applied.in:22
-#, fuzzy
-msgid "Usage: quilt applied [-n] [patch]"
-msgstr "Usage : quilt applied [patch]"
-
-#: ../quilt/applied.in:25
-#, fuzzy
-msgid ""
-"\n"
-"\n"
-"Print a list of applied patches.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche le nom du patch avant celui spécifié (ou après celui au sommet)\n"
-"dans le fichier de série.\n"
-"\n"
-"-n\tAffiche le nom de fichier au lieu du nom de patch.\n"
-"\n"
-
-#: ../quilt/delete.in:22
-msgid "Usage: quilt delete [patch]"
-msgstr "Usage : quilt delete [patch]"
-
-#: ../quilt/delete.in:25
-msgid ""
-"\n"
-"\n"
-"Remove the specified or topmost patch from the series file. If the\n"
-"patch is applied, quilt will attempt to remove it first. (Only the\n"
-"topmost patch can be removed right now.)"
-msgstr ""
-"\n"
-"\n"
-"Efface le patch spécifié (ou celui au sommet de la pile) de la série \n"
-"actuelle. Si le patch est appliqué, quilt tentera de le retirer avant.\n"
-"(Seul le patch au sommet peut être retiré pour l'instant)."
-
-#: ../quilt/delete.in:75
-msgid "Patch $patch does not exist"
-msgstr "Le patch $patch n'existe pas"
-
-#: ../quilt/delete.in:84
-msgid "Patch $patch is currently applied"
-msgstr "Le patch $patch est appliqué"
-
-#: ../quilt/delete.in:90
-msgid "Failed to remove patch $patch"
-msgstr "Impossible de retirer le patch $patch"
-
-#: ../quilt/diff.in:27
-msgid "Usage: quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [file ...]"
-msgstr "Usage : quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [fichier ...]"
-
-#: ../quilt/diff.in:31
-#, fuzzy
-msgid ""
-"\n"
-"\n"
-"Produces a diff of the specified file(s) in the topmost or specified\n"
-"patch. If no files are specified, all files that are modified are\n"
-"included.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n"
-"\n"
-"-P patch\n"
-"\tCreate a diff for the specified patch. (Defaults to the topmost\n"
-"\tpatch.)\n"
-"\n"
-"-c patch\n"
-"\tCreate a combined diff for all patches between this patch and\n"
-"\tthe patch specified with -P. A patch name of \\\"-\\\" is equivalent\n"
-"\tto specifying the first applied patch.\n"
-"\n"
-"-R\tCreate a reverse diff.\n"
-"\n"
-"-z\tWrite to standard output the changes that have been made\n"
-"\trelative to the topmost or specified patch.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Produit un diff du ou des fichiers spécifiés par le patch spécifié (ou à \n"
-"défaut, par le patch au sommet). Si aucun fichier n'est indiqué, tous les\n"
-"fichiers modifiés par ce patch sont inclus.\n"
-"\n"
-"-p n\tCrée un patch au style -p n (-p0 et -p1 sont possibles).\n"
-"\n"
-"-P patch\n"
-"\tCrée un diff pour ce patch (par défaut, le patch au sommet)\n"
-"\n"
-"-c patch\n"
-"\tCrée un diff combiné pour tous les patches se trouvant entre\n"
-"\tce patch et celui indiqué avec l'option -P.\n"
-"\n"
-"-R\tCrée un patch inversé.\n"
-"\n"
-"-z\tÉcrit sur la sortie standard les changements fait par rapport\n"
-"\tau patch spécifié.\n"
-"\n"
-
-#: ../quilt/diff.in:132
-msgid "Options \\`-c patch' and \\`-z' cannot be combined."
-msgstr "Les options \\`-c patch' et \\`-z' ne peuvent pas être combinées."
-
-#: ../quilt/diff.in:141 ../quilt/refresh.in:106
-msgid "No patch seem to be applied"
-msgstr "Aucun patch ne semble appliqué"
-
-#: ../quilt/diff.in:148
-msgid "Patch $last_patch is not applied"
-msgstr "Le patch $last_patch ne semble pas appliqué"
-
-#: ../quilt/diff.in:158
-msgid ""
-"Cannot diff patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-"Impossible de créer des patches avec -p$opt_strip_level. Veuillez spécifier -"
-"p0 ou -p1 Ã la place"
-
-#: ../quilt/diff.in:166
-msgid "refresh_patches_per_file failed."
-msgstr "refresh_patches_per_file a échoué."
-
-#: ../quilt/diff.in:179
-msgid "Patch $opt_combine not applied before $last_patch."
-msgstr "Le patch $opt_combine n'est pas appliqué avant $last_patch."
-
-#: ../quilt/diff.in:213
-msgid "File $file is not being modified."
-msgstr "Le fichier $file n'est pas modifié."
-
-#: ../quilt/diff.in:230
-msgid "Cannot change into .pc/$last_patch"
-msgstr "Impossible d'entrer dans .pc/$last_patch"
-
-#: ../quilt/diff.in:235
-msgid "Failed to copy files to temporary directory"
-msgstr "Impossible de copier les fichiers dans le répertoire temporaire"
-
-#: ../quilt/diff.in:240
-msgid "Cannot change to temporary directory"
-msgstr "Impossible d'entrer dans le répertoire temporaire"
-
-#: ../quilt/diff.in:257
-msgid "Failed to patch temporary files"
-msgstr "Impossible de patcher les fichiers temporaires"
-
-#: ../quilt/diff.in:264
-msgid "Cannot change to source directory"
-msgstr "Impossible d'entrer dans le répertoire source"
-
-#: ../quilt/diff.in:293 ../quilt/refresh.in:144
-msgid "Diff failed, aborting."
-msgstr "Le diff a échoué. Abandon."
-
-#: ../quilt/diff.in:300
-msgid "More recent patches modify files in $last_patch."
-msgstr "Un patch plus recent modifie des fichiers communs à $last_patch."
-
-#: ../quilt/files.in:22
-msgid "Usage: quilt files [-v] [patch]"
-msgstr "Usage : quilt files [-v] [patch]"
-
-#: ../quilt/files.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of files that the topmost or specified patch changes.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche la liste des fichiers modifiés par le patch spécifié (ou celui \n"
-"au sommet).\n"
-"\n"
-"-v\tAffichage verbeux, plus simple à lire.\n"
-"\n"
-
-#: ../quilt/files.in:83
-msgid "Patch is not applied (no verbose output)"
-msgstr "Le patch n'est pas appliqué (affichage non verbeux)"
-
-#: ../quilt/files.in:86
-msgid "Patch is not applied"
-msgstr "Le patch n'est pas appliqué"
-
-#: ../quilt/import.in:22
-msgid "Usage: quilt import [-f] [-p num] [-n patch] [patchfile]"
-msgstr "Usage : quilt import [-f] [-p num] [-n patch] [fichier_de_patch]"
-
-#: ../quilt/import.in:25
-msgid ""
-"\n"
-"\n"
-"Import an external patch. If a patch file name is specified, the patch\n"
-"will be stored in this relative path in the patches/ directory. Else,\n"
-"if an input file name is given this name is used as the patch name.\n"
-"\n"
-"-p num\n"
-"\tNumber of directory levels to strip when aplying (default=1)\n"
-"\n"
-"-n patch\n"
-"\tFile name relative to patches/ to use.\n"
-"\n"
-"-f\tOverwite/update existing patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Importe un patch externe. Si le nom de fichier spécifié est un chemin, il\n"
-"est relatif au répertoire patches/. Si aucun nom de fichier n'est donné, le\n"
-"patch sera stocké dans un fichier du même nom que le fichier d'entrée.\n"
-"\n"
-"-p num\n"
-"\tNombre de niveaux de répertoires à retirer lors de l'application du \n"
-"\tpatch (1 par défaut).\n"
-"\n"
-"-n patch\n"
-"\tNom de fichier (relatif à patches/) à utiliser.\n"
-"\n"
-"-f\tÉcrase/met à jour les patchs existants.\n"
-"\n"
-
-#: ../quilt/import.in:97
-msgid "Please use -n to specify a patch file name."
-msgstr "Veuillez utiliser -n pour spécifier un nom de fichier de patch."
-
-#: ../quilt/import.in:105
-msgid "Patch file name \\\"$patch_file\\\" contains whitespace."
-msgstr "Le nom de fichier de patch \"$patch_file\" contient des espaces."
-
-#: ../quilt/import.in:111
-msgid "Patch $patch is applied."
-msgstr "Le patch $patch est appliqué."
-
-#: ../quilt/import.in:120
-msgid "Cannot read from standard input."
-msgstr "Impossible de lire depuis l'entrée standard."
-
-#: ../quilt/import.in:129 ../quilt/import.in:138
-msgid "Cannot decompress file $input_file"
-msgstr "Impossible de décompresser le fichier $input_file"
-
-#: ../quilt/import.in:146
-msgid "Cannot read from file $input_file"
-msgstr "Impossible de lire depuis le fichier $input_file"
-
-#: ../quilt/import.in:155
-msgid "Patch $patch exists. Replace with -f."
-msgstr "Le patch $patch existe. Utilisez -f pour le remplacer."
-
-#: ../quilt/import.in:162
-msgid "Updating %patch section of patch $patch"
-msgstr "Mise à jour de la section %patch dans $patch"
-
-#: ../quilt/import.in:165
-msgid "Failed to update %patch section of patch $patch"
-msgstr "Impossible de mettre à jour la section %patch du patch $patch"
-
-#: ../quilt/import.in:169
-msgid "Replacing patch $patch with new version"
-msgstr "Remplacement du patch $patch avec la nouvelle version"
-
-#: ../quilt/import.in:172
-msgid "Failed to replace patch $patch"
-msgstr "Impossible de remplacer le patch $patch"
-
-#: ../quilt/import.in:177
-msgid "Importing patch $patch (stored as $patch_file)"
-msgstr "Import du patch $patch (enregistré dans $patch_file)"
-
-#: ../quilt/import.in:184
-msgid "Failed to import patch $patch"
-msgstr "Impossible d'importer le patch $patch"
-
-#: ../quilt/import.in:194
-msgid "Failed to insert $patch in file series."
-msgstr "Impossible d'inserer $patch dans le fichier de série."
-
-#: ../quilt/new.in:22
-msgid "Usage: quilt new {patchname}"
-msgstr "Usage : quilt new {nom_de_patch}"
-
-#: ../quilt/new.in:25
-msgid ""
-"\n"
-"\n"
-"Create a new patch with the specified file name, and insert it after the\n"
-"topmost patch in the patch series file.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Crée un nouveau patch au nom spécifié, et l'insere après le patch\n"
-"au sommet dans le fichier de série.\n"
-"\n"
-
-#: ../quilt/new.in:67
-msgid "Patch $patch exists already"
-msgstr "Le patch $patch existe déjà "
-
-#: ../quilt/new.in:77
-msgid "Failed to create patch $patch"
-msgstr "Impossible de crée le patch $patch"
-
-#: ../quilt/new.in:80
-msgid "Patch $patch is now on top"
-msgstr "Le patch $patch est maintenant au sommet"
-
-#: ../quilt/next.in:22
-msgid "Usage: quilt next [patch]"
-msgstr "Usage : quilt next [patch]"
-
-#: ../quilt/next.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the next patch after the specified or topmost patch in\n"
-"the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche le nom du patch après celui spécifié (ou après celui au sommet)\n"
-"dans le fichier de série.\n"
-"\n"
-"-n\tAffiche le nom de fichier au lieu du nom de patch.\n"
-"\n"
-
-#: ../quilt/patches.in:22
-msgid "Usage: quilt patches {file}"
-msgstr "Usage : quilt patches {fichier}"
-
-#: ../quilt/patches.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of patches that modify the specified file.\n"
-"\n"
-"-n\tPrint the patch file names instead of the patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche la liste des patches modifiant le fichier spécifié.\n"
-"\n"
-"-n\tAffiche les noms de fichier au lieu des noms de patch.\n"
-"\n"
-"-v\tAffichage verbeux, plus simple à lire.\n"
-"\n"
-
-#: ../quilt/pop.in:22
-msgid "Usage: quilt pop [-afRqv] [num|patch]"
-msgstr "Usage : quilt pop [-afRqv] [num|patch]"
-
-#: ../quilt/pop.in:25
-msgid ""
-"\n"
-"\n"
-"Remove patch(es) from the current stack. A number of patches to remove,\n"
-"or a patch name can be specified. If a patch name is given, remove all\n"
-"patches applied on top of the named patch. If neither a number nor a\n"
-"patch name is specified, remove the next patch from the series file.\n"
-"\n"
-"-a\tRemove all applied patches.\n"
-"\n"
-"-f\tForce remove. The state before the patch(es) were applied will\n"
-"\tbe restored from backup files.\n"
-"\n"
-"-R\tRemove the patch with \\`patch -R' and check if the patch reverts\n"
-"\tall changes properly.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Retire un ou plusieurs patches de la pile. Il est possible de donner en\n"
-"argument un nombre de patch à retirer ou un nom de patch. Dans ce dernier\n"
-"cas, tous les patches placés au dessus du patch à retirer seront retirés\n"
-"eux aussi. Si aucun argument n'est spécifié, le patch au sommet est retiré.\n"
-"\n"
-"-a\tRetire tous les patches de la série.\n"
-"\n"
-"-f\tForce l'action. L'état des patches avant qu'ils ne soient retirés \n"
-"\tsera restoré depuis les fichiers de sauvegarde.\n"
-"\n"
-"-R\tRetire le patche avec \\`patch -R' et vérifie que cela retire \n"
-"\tproprement tous les changements.\n"
-"\n"
-"-q\tOpère silencieusement.\n"
-"\n"
-"-v\tOpère verbeusement.\n"
-"\n"
-
-#: ../quilt/pop.in:146
-msgid "Patch $stop_at_patch is not applied."
-msgstr "Le patch $stop_at_patch n'est pas appliqué."
-
-#: ../quilt/pop.in:156
-msgid "No patch removed"
-msgstr "Aucun patch retiré"
-
-#: ../quilt/pop.in:170 ../quilt/push.in:201
-msgid "Interrupted by user"
-msgstr "Interrompu par l'utilisateur"
-
-#: ../quilt/pop.in:179 ../quilt/push.in:210
-msgid "No patches applied"
-msgstr "Aucun patch n'est appliqué"
-
-#: ../quilt/pop.in:181 ../quilt/push.in:212
-msgid "Now at patch $patch"
-msgstr "Le patch $patch est maintenant au sommet"
-
-#: ../quilt/previous.in:22
-#, fuzzy
-msgid "Usage: quilt previous [-n] [patch]"
-msgstr "Usage : quilt previous [patch]"
-
-#: ../quilt/previous.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the previous patch before the specified or topmost\n"
-"patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche le nom du patch avant celui spécifié (ou après celui au sommet)\n"
-"dans le fichier de série.\n"
-"\n"
-"-n\tAffiche le nom de fichier au lieu du nom de patch.\n"
-"\n"
-
-#: ../quilt/push.in:21
-msgid "Usage: quilt push [-afqv] [--leave-rejects] [num|patch]"
-msgstr "Usage: quilt push [-afqv] [--leave-rejects] [num|patch]"
-
-#: ../quilt/push.in:24
-msgid ""
-"\n"
-"\n"
-"Apply patch(es) from the series file. A number of patches to apply, or\n"
-"a patch name can be specified. If a patch name is given, apply all\n"
-"patches up to and including the named patch. If neither a number nor a\n"
-"patch name is specified, apply the next patch from the series file.\n"
-"\n"
-"-a\tApply all patches in the series file.\n"
-"\n"
-"-f\tForce apply, even if the patch has rejects.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-"--leave-rejects\n"
-"\tLeave around the reject files patch produced, even if the patch\n"
-"\tis not actually applied.\n"
-"\n"
-"--interactive\n"
-"\tAllow the patch utility to ask how to deal with conflicts. If\n"
-"\tthis option is not given, the option -f will be passed to the \n"
-"\tpatch program.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Applique un ou plusieurs patches de la série. Il est possible de donner en\n"
-"argument un nombre de patch à appliquer ou un nom de patch. Dans ce dernier\n"
-"cas, tous les patches placés au dessous du patch à retirer seront appliqués\n"
-"eux aussi. Si aucun argument n'est spécifié, le prochain patch est\n"
-"appliqué.\n"
-"\n"
-"-a\tApplique tous les patches de la série.\n"
-"\n"
-"-f\tForce l'application, même si cela doit produire des rejets.\n"
-"\n"
-"-q\tOpère silencieusement.\n"
-"\n"
-"-v\tOpère verbeusement.\n"
-"\n"
-"--leave-rejects\n"
-"\tLaisse les fichiers de rejets produits, même si l'application du\n"
-"\tpatch a échoué et qu'il n'est finalement pas appliqué.\n"
-"\n"
-"--interactive\n"
-"\tLaisse l'utilitaire patch demander comment résoudre les conflits.\n"
-"\tSi cette option n'est pas donnée, l'option -f sera passée au \n"
-"\tprogramme patch.\n"
-
-#: ../quilt/push.in:86
-msgid "Patch $stop_at_patch not found in file series"
-msgstr "Le patch $stop_at_patch est introuvable dans le fichier de série"
-
-#: ../quilt/push.in:162
-msgid "Patch $stop_at_patch is already applied."
-msgstr "Le patch $stop_at_patch est déjà appliqué."
-
-#: ../quilt/push.in:186
-msgid "File series fully applied, ends at patch $top"
-msgstr "La série est complètement appliquée. Le dernier patch est $top."
-
-#: ../quilt/refresh.in:27
-msgid "Usage: quilt refresh [-p n] [-f] [patch]"
-msgstr "Usage : quilt refresh [-p n] [-f] [patch]"
-
-#: ../quilt/refresh.in:31
-msgid ""
-"\n"
-"\n"
-"Refreshes the specified patch, or the topmost patch by default.\n"
-"Documentation that comes before the actual patch in the patch file is\n"
-"retained.\n"
-"\n"
-"It is possible to refresh patches that are not on top. If any patches\n"
-"on top of the patch to refresh modify the same files, the script aborts\n"
-"by default. Patches can still be refreshed with -f. In that case this\n"
-"script will print a warning for each shadowed file, changes by more\n"
-"recent patches will be ignored, and only changes in files that have not\n"
-"been modified by any more recent patches will end up in the specified\n"
-"patch.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n"
-"\t\n"
-"-f\tForce refresh, even if more recent patches modify\n"
-"\tsome of the same files.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Rafraîchit un patch appliqué. Si aucun patch n'est spécifié, il s'agit de\n"
-"celui au sommet. La documentation au début du patch est conservée.\n"
-"\n"
-"Il est possible de rafraîchir un patch ne se trouvant pas au sommet. Dans\n"
-"ce cas et si un autre patch placé plus haut modifie les mêmes fichiers, ce\n"
-"script affiche ces patches conflictuels, ainsi que le nom du fichier sur\n"
-"lequel porte le conflit. \n"
-"\n"
-"Même en cas de conflit, il est possible de rafraîchir le patch en utilisant\n"
-"l'option -f. Le script affichera alors un message d'avertissement pour\n"
-"chaque fichier masqué de la sorte, et ignorera tout changement à ces\n"
-"fichiers.\n"
-"\n"
-"-p n\tCrée un patch du style -p n (-p0 ou -p1)\n"
-"\n"
-"-f\tForce le rafraîchissement, même si des patches plus haut changent \n"
-"\tles mêmes fichiers.\n"
-
-#: ../quilt/refresh.in:123
-msgid ""
-"Cannot refresh patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-"Impossible de rafraîchir des patchs avec -p$opt_strip_level. Veuillez\n"
-"spécifier -p0 ou -p1 à la place."
-
-#: ../quilt/refresh.in:150
-msgid "More recent patches modify files in $patch. Enforce refresh with -f."
-msgstr ""
-"Des fichiers plus récents modifient les mêmes fichiers que $patch.\n"
-"Forcez le rafraîchissement avec -f."
-
-#: ../quilt/refresh.in:157
-msgid "Nothing in patch $patch"
-msgstr "Le patch $patch ne contient rien"
-
-#: ../quilt/refresh.in:197
-msgid "Refreshed patch $patch"
-msgstr "Le patch $patch a été rafraichi."
-
-#: ../quilt/remove.in:22
-msgid "Usage: quilt remove [-p patch] {file} ..."
-msgstr "Usage : quilt remove [-p patch] {fichier} ..."
-
-#: ../quilt/remove.in:25
-msgid ""
-"\n"
-"\n"
-"Remove one or more files from the topmost or named patch. Files that\n"
-"are modified by patches on top of the specified patch cannot be removed.\n"
-"\n"
-"-p patch\n"
-"\tPatch to remove files from.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Retire un ou plusieurs fichiers du patch au sommet ou du patch spécifié.\n"
-"Des fichiers modifiés par des patches plus haut dans la série ne peuvent\n"
-"pas être retirés. \n"
-"\n"
-"-p patch\n"
-"\tPatch duquel les fichiers doivent être retirés.\n"
-"\n"
-
-#: ../quilt/remove.in:89
-msgid "File $file is not in patch $patch"
-msgstr "Le fichier $file n'est pas dans le patch $patch."
-
-#: ../quilt/remove.in:105
-msgid "Failed to remove file $file from patch $patch"
-msgstr "Impossible d'enlever le fichier $file du patch $patch."
-
-#: ../quilt/remove.in:116
-msgid "File $file removed from patch $patch"
-msgstr "Le fichier $file a été enlevé du patch $patch."
-
-#: ../quilt/series.in:22
-msgid "Usage: quilt series [-v]"
-msgstr "Usage : quilt series [-v]"
-
-#: ../quilt/series.in:25
-msgid ""
-"\n"
-"\n"
-"Print the names of all patches in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche le nom de tous les patches de la série.\n"
-"\n"
-"-n\tAffiche les noms de fichier au lieu des noms de patch.\n"
-"\n"
-"-v\tAffichage verbeux, plus simple à lire.\n"
-"\n"
-
-#: ../quilt/setup.in:22
-msgid "Usage: quilt setup [-d sourcedir] {seriesfile|specfile}"
-msgstr ""
-"Usage : quilt setup [-d répertoire_source] {fichier_séries|fichier_spec}"
-
-#: ../quilt/setup.in:25
-msgid ""
-"\n"
-"\n"
-"Initializes a source tree from a patch series file. The patch series\n"
-"file must contain the name of the relevant tar archive, in addition to\n"
-"the list of patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Initialise une arborescence source depuis un fichier de série. Ce fichier "
-"doit contenir le nom de l'archive tar à utiliser, ainsi que la liste des "
-"patches.\n"
-"\n"
-
-#: ../quilt/setup.in:100
-msgid "Series file $series_file not found"
-msgstr "Fichier de série $series_file introuvable"
-
-#: ../quilt/setup.in:118
-#, fuzzy
-msgid "create link patch $packagedir/patches to $source"
-msgstr "Copie du patch $source/$arg"
-
-#: ../quilt/setup.in:121
-#, fuzzy
-msgid "creat link of $series_file"
-msgstr "Copie du fichier de série"
-
-#: ../quilt/setup.in:131
-msgid "Directory $packagedir set up."
-msgstr "Le répertoire $packagedir est configuré."
-
-#: ../quilt/top.in:22
-msgid "Usage: quilt top"
-msgstr "Usage : quilt top"
-
-#: ../quilt/top.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the topmost patch on the current stack of applied\n"
-"patches.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche le nom du patch au sommet de la pile des patches actuellement\n"
-"appliqués.\n"
-"\n"
-
-#: ../quilt/unapplied.in:22
-msgid "Usage: quilt unapplied [patch]"
-msgstr "Usage : quilt unapplied [patch]"
-
-#: ../quilt/unapplied.in:25
-msgid ""
-"\n"
-"\n"
-"Print a list of patches that are not applied, or all patches that follow\n"
-"the specified patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Affiche la liste de tous les patches non appliqués, ou de tous les patches\n"
-"suivant celui indiqué en paramètre.\n"
-"\n"
-"-n\tAffiche les noms de fichier au lieu des noms de patch.\n"
-"\n"
-
-#: ../scripts/apatch.in:22
-msgid "Usage: $0 [-fqv] patchname"
-msgstr "Usage : $0 [-fqv] patchname"
-
-#: ../scripts/apatch.in:40
-msgid "Interrupted by user; patch $patch was not applied."
-msgstr "Interrompu par l'utilisateur ; le patch $patch n'a pas été appliqué."
-
-#: ../scripts/apatch.in:51 ../scripts/rpatch.in:113
-msgid "Patch file $patch_file appears to be empty"
-msgstr "Le fichier de patch $patch_file semble vide"
-
-#: ../scripts/apatch.in:80
-msgid "refresh_file_list failed"
-msgstr "refresh_file_list a échoué."
-
-#: ../scripts/apatch.in:84
-msgid "Applying $patch"
-msgstr "Application de $patch"
-
-#: ../scripts/apatch.in:87
-msgid "Patch $patch appears to be empty, applied"
-msgstr "Le patch $patch semble vide. Il a été appliqué."
-
-#: ../scripts/apatch.in:95
-msgid "Recreated file list for $patch"
-msgstr "La liste des fichiers pour $patch a été recrée."
-
-#: ../scripts/apatch.in:126
-msgid "Applied $patch (forced; needs refresh)"
-msgstr "$patch a été appliqué (forcé ; vous devriez le rafraîchir)"
-
-#: ../scripts/apatch.in:130
-msgid "Patch $patch does not apply (enforce with -f)"
-msgstr ""
-"Le patch $patch ne s'applique pas proprement (forcez l'application avec -f)"
-
-#: ../scripts/apatch.in:186 ../scripts/rpatch.in:245
-msgid "The topmost patch $top needs to be refreshed first."
-msgstr "Le patch au sommet $top doit être rafraichi au préalable."
-
-#: ../scripts/rpatch.in:22
-msgid "Usage: $0 [-fRq] patchname"
-msgstr "Usage: $0 [-fRq] nom_de_patch"
-
-#: ../scripts/rpatch.in:44
-msgid "Patch does not remove changes:"
-msgstr "Le patch d'enlève pas les changements :"
-
-#: ../scripts/rpatch.in:102
-msgid "Interrupted by user; patch $patch was not removed."
-msgstr "Interrompu par l'utilisateur ; le patch $patch n'a pas été retiré;"
-
-#: ../scripts/rpatch.in:146
-msgid "Patch $patch appears to be empty, removed"
-msgstr "Le patch $patch semble vide. Il a été retiré."
-
-#: ../scripts/rpatch.in:151
-msgid "Removing $patch"
-msgstr "Retrait de $patch"
-
-#: ../scripts/rpatch.in:172
-msgid "Failed to create temporary files"
-msgstr "Impossible de créer les fichiers temporaires"
-
-#: ../scripts/rpatch.in:193
-msgid "Patch $patch does not remove (enforce with -f)"
-msgstr "Le patch $patch ne se retire pas proprement (forcez avec -f)"
-
-#: ../scripts/spec2series.in:100 ../scripts/spec2series.in:192
-msgid " done"
-msgstr " fini"
-
-#~ msgid "Reading sources from $arg"
-#~ msgstr "Lecture des sources depuis $arg"
-
-#~ msgid "Unpacking archive $source/$arg"
-#~ msgstr "Désarchivage depuis $source/$arg"
-
-#~ msgid "Directory $packagedir exists already."
-#~ msgstr "Le répertoire $packagedir existe déjà ."
-
-#~ msgid "File $packagedir exists."
-#~ msgstr "Le fichier $packagedir existe."
-
-#, fuzzy
-#~ msgid "create link patch $source"
-#~ msgstr "Copie du patch $source/$arg"
-
-#, fuzzy
-#~ msgid "creat link of series file"
-#~ msgstr "Copie du fichier de série"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "Print a list of applied patches, or all patches up to and including the\n"
-#~ "specified patch in the file series.\n"
-#~ "\n"
-#~ "-n\tPrint patch file names instead of patch names."
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "Affiche la liste des patches appliqués, ou la liste de tous les patches\n"
-#~ "jusqu'à celui passé en paramètre (inclus).\n"
-#~ "\n"
-#~ "-n\tAffiche les noms des fichiers de patch au lieu des noms de patch."
+++ /dev/null
-#: ../bin/quilt.in:14
-msgid "Usage: quilt command [-h] ..."
-msgstr ""
-
-#: ../bin/quilt.in:26
-msgid "Commands are:"
-msgstr ""
-
-#: ../quilt/add.in:22
-msgid "Usage: quilt add [-p patch] {file} ..."
-msgstr ""
-
-#: ../quilt/add.in:25
-msgid ""
-"\n"
-"\n"
-"Add one or more files to the topmost or named patch. Files must be\n"
-"added to the patch before being modified. Files that are modified by\n"
-"patches on top of the specified patch cannot be added.\n"
-"\n"
-"-p patch\n"
-"\tPatch to add files to."
-msgstr ""
-
-#: ../quilt/add.in:75 ../quilt/delete.in:69 ../quilt/files.in:74
-#: ../quilt/push.in:184 ../quilt/remove.in:75
-msgid "No patch applied"
-msgstr ""
-
-#: ../quilt/add.in:80 ../quilt/applied.in:70 ../quilt/refresh.in:113
-#: ../quilt/remove.in:80
-msgid "Patch $patch is not applied"
-msgstr ""
-
-#: ../quilt/add.in:89
-msgid "File $file is already in patch $patch"
-msgstr ""
-
-#: ../quilt/add.in:96 ../quilt/remove.in:97
-msgid "File $file modified by patch $next_patch"
-msgstr ""
-
-#: ../quilt/add.in:104
-msgid "Failed to back up file $file"
-msgstr ""
-
-#: ../quilt/add.in:124
-msgid "File $file added to patch $patch"
-msgstr ""
-
-#: ../quilt/applied.in:22
-msgid "Usage: quilt applied [-n] [patch]"
-msgstr ""
-
-#: ../quilt/applied.in:25
-msgid ""
-"\n"
-"\n"
-"Print a list of applied patches.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/delete.in:22
-msgid "Usage: quilt delete [patch]"
-msgstr ""
-
-#: ../quilt/delete.in:25
-msgid ""
-"\n"
-"\n"
-"Remove the specified or topmost patch from the series file. If the\n"
-"patch is applied, quilt will attempt to remove it first. (Only the\n"
-"topmost patch can be removed right now.)"
-msgstr ""
-
-#: ../quilt/delete.in:75
-msgid "Patch $patch does not exist"
-msgstr ""
-
-#: ../quilt/delete.in:84
-msgid "Patch $patch is currently applied"
-msgstr ""
-
-#: ../quilt/delete.in:90
-msgid "Failed to remove patch $patch"
-msgstr ""
-
-#: ../quilt/diff.in:27
-msgid "Usage: quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [file ...]"
-msgstr ""
-
-#: ../quilt/diff.in:31
-msgid ""
-"\n"
-"\n"
-"Produces a diff of the specified file(s) in the topmost or specified\n"
-"patch. If no files are specified, all files that are modified are\n"
-"included.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n"
-"\n"
-"-P patch\n"
-"\tCreate a diff for the specified patch. (Defaults to the topmost\n"
-"\tpatch.)\n"
-"\n"
-"-c patch\n"
-"\tCreate a combined diff for all patches between this patch and\n"
-"\tthe patch specified with -P. A patch name of \\\"-\\\" is equivalent\n"
-"\tto specifying the first applied patch.\n"
-"\n"
-"-R\tCreate a reverse diff.\n"
-"\n"
-"-z\tWrite to standard output the changes that have been made\n"
-"\trelative to the topmost or specified patch.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/diff.in:132
-msgid "Options \\`-c patch' and \\`-z' cannot be combined."
-msgstr ""
-
-#: ../quilt/diff.in:141 ../quilt/refresh.in:106
-msgid "No patch seem to be applied"
-msgstr ""
-
-#: ../quilt/diff.in:148
-msgid "Patch $last_patch is not applied"
-msgstr ""
-
-#: ../quilt/diff.in:158
-msgid ""
-"Cannot diff patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-
-#: ../quilt/diff.in:166
-msgid "refresh_patches_per_file failed."
-msgstr ""
-
-#: ../quilt/diff.in:179
-msgid "Patch $opt_combine not applied before $last_patch."
-msgstr ""
-
-#: ../quilt/diff.in:213
-msgid "File $file is not being modified."
-msgstr ""
-
-#: ../quilt/diff.in:230
-msgid "Cannot change into .pc/$last_patch"
-msgstr ""
-
-#: ../quilt/diff.in:235
-msgid "Failed to copy files to temporary directory"
-msgstr ""
-
-#: ../quilt/diff.in:240
-msgid "Cannot change to temporary directory"
-msgstr ""
-
-#: ../quilt/diff.in:257
-msgid "Failed to patch temporary files"
-msgstr ""
-
-#: ../quilt/diff.in:264
-msgid "Cannot change to source directory"
-msgstr ""
-
-#: ../quilt/diff.in:293 ../quilt/refresh.in:144
-msgid "Diff failed, aborting."
-msgstr ""
-
-#: ../quilt/diff.in:300
-msgid "More recent patches modify files in $last_patch."
-msgstr ""
-
-#: ../quilt/files.in:22
-msgid "Usage: quilt files [-v] [patch]"
-msgstr ""
-
-#: ../quilt/files.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of files that the topmost or specified patch changes.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/files.in:83
-msgid "Patch is not applied (no verbose output)"
-msgstr ""
-
-#: ../quilt/files.in:86
-msgid "Patch is not applied"
-msgstr ""
-
-#: ../quilt/import.in:22
-msgid "Usage: quilt import [-f] [-p num] [-n patch] [patchfile]"
-msgstr ""
-
-#: ../quilt/import.in:25
-msgid ""
-"\n"
-"\n"
-"Import an external patch. If a patch file name is specified, the patch\n"
-"will be stored in this relative path in the patches/ directory. Else,\n"
-"if an input file name is given this name is used as the patch name.\n"
-"\n"
-"-p num\n"
-"\tNumber of directory levels to strip when aplying (default=1)\n"
-"\n"
-"-n patch\n"
-"\tFile name relative to patches/ to use.\n"
-"\n"
-"-f\tOverwite/update existing patches.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/import.in:97
-msgid "Please use -n to specify a patch file name."
-msgstr ""
-
-#: ../quilt/import.in:105
-msgid "Patch file name \\\"$patch_file\\\" contains whitespace."
-msgstr ""
-
-#: ../quilt/import.in:111
-msgid "Patch $patch is applied."
-msgstr ""
-
-#: ../quilt/import.in:120
-msgid "Cannot read from standard input."
-msgstr ""
-
-#: ../quilt/import.in:129 ../quilt/import.in:138
-msgid "Cannot decompress file $input_file"
-msgstr ""
-
-#: ../quilt/import.in:146
-msgid "Cannot read from file $input_file"
-msgstr ""
-
-#: ../quilt/import.in:155
-msgid "Patch $patch exists. Replace with -f."
-msgstr ""
-
-#: ../quilt/import.in:162
-msgid "Updating %patch section of patch $patch"
-msgstr ""
-
-#: ../quilt/import.in:165
-msgid "Failed to update %patch section of patch $patch"
-msgstr ""
-
-#: ../quilt/import.in:169
-msgid "Replacing patch $patch with new version"
-msgstr ""
-
-#: ../quilt/import.in:172
-msgid "Failed to replace patch $patch"
-msgstr ""
-
-#: ../quilt/import.in:177
-msgid "Importing patch $patch (stored as $patch_file)"
-msgstr ""
-
-#: ../quilt/import.in:184
-msgid "Failed to import patch $patch"
-msgstr ""
-
-#: ../quilt/import.in:194
-msgid "Failed to insert $patch in file series."
-msgstr ""
-
-#: ../quilt/new.in:22
-msgid "Usage: quilt new {patchname}"
-msgstr ""
-
-#: ../quilt/new.in:25
-msgid ""
-"\n"
-"\n"
-"Create a new patch with the specified file name, and insert it after the\n"
-"topmost patch in the patch series file.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/new.in:67
-msgid "Patch $patch exists already"
-msgstr ""
-
-#: ../quilt/new.in:77
-msgid "Failed to create patch $patch"
-msgstr ""
-
-#: ../quilt/new.in:80
-msgid "Patch $patch is now on top"
-msgstr ""
-
-#: ../quilt/next.in:22
-msgid "Usage: quilt next [patch]"
-msgstr ""
-
-#: ../quilt/next.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the next patch after the specified or topmost patch in\n"
-"the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/patches.in:22
-msgid "Usage: quilt patches {file}"
-msgstr ""
-
-#: ../quilt/patches.in:25
-msgid ""
-"\n"
-"\n"
-"Print the list of patches that modify the specified file.\n"
-"\n"
-"-n\tPrint the patch file names instead of the patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/pop.in:22
-msgid "Usage: quilt pop [-afRqv] [num|patch]"
-msgstr ""
-
-#: ../quilt/pop.in:25
-msgid ""
-"\n"
-"\n"
-"Remove patch(es) from the current stack. A number of patches to remove,\n"
-"or a patch name can be specified. If a patch name is given, remove all\n"
-"patches applied on top of the named patch. If neither a number nor a\n"
-"patch name is specified, remove the next patch from the series file.\n"
-"\n"
-"-a\tRemove all applied patches.\n"
-"\n"
-"-f\tForce remove. The state before the patch(es) were applied will\n"
-"\tbe restored from backup files.\n"
-"\n"
-"-R\tRemove the patch with \\`patch -R' and check if the patch reverts\n"
-"\tall changes properly.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/pop.in:146
-msgid "Patch $stop_at_patch is not applied."
-msgstr ""
-
-#: ../quilt/pop.in:156
-msgid "No patch removed"
-msgstr ""
-
-#: ../quilt/pop.in:170 ../quilt/push.in:201
-msgid "Interrupted by user"
-msgstr ""
-
-#: ../quilt/pop.in:179 ../quilt/push.in:210
-msgid "No patches applied"
-msgstr ""
-
-#: ../quilt/pop.in:181 ../quilt/push.in:212
-msgid "Now at patch $patch"
-msgstr ""
-
-#: ../quilt/previous.in:22
-msgid "Usage: quilt previous [-n] [patch]"
-msgstr ""
-
-#: ../quilt/previous.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the previous patch before the specified or topmost\n"
-"patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/push.in:21
-msgid "Usage: quilt push [-afqv] [--leave-rejects] [num|patch]"
-msgstr ""
-
-#: ../quilt/push.in:24
-msgid ""
-"\n"
-"\n"
-"Apply patch(es) from the series file. A number of patches to apply, or\n"
-"a patch name can be specified. If a patch name is given, apply all\n"
-"patches up to and including the named patch. If neither a number nor a\n"
-"patch name is specified, apply the next patch from the series file.\n"
-"\n"
-"-a\tApply all patches in the series file.\n"
-"\n"
-"-f\tForce apply, even if the patch has rejects.\n"
-"\n"
-"-q\tQuiet operation.\n"
-"\n"
-"-v\tVerbose operation.\n"
-"\n"
-"--leave-rejects\n"
-"\tLeave around the reject files patch produced, even if the patch\n"
-"\tis not actually applied.\n"
-"\n"
-"--interactive\n"
-"\tAllow the patch utility to ask how to deal with conflicts. If\n"
-"\tthis option is not given, the option -f will be passed to the \n"
-"\tpatch program.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/push.in:86
-msgid "Patch $stop_at_patch not found in file series"
-msgstr ""
-
-#: ../quilt/push.in:162
-msgid "Patch $stop_at_patch is already applied."
-msgstr ""
-
-#: ../quilt/push.in:186
-msgid "File series fully applied, ends at patch $top"
-msgstr ""
-
-#: ../quilt/refresh.in:27
-msgid "Usage: quilt refresh [-p n] [-f] [patch]"
-msgstr ""
-
-#: ../quilt/refresh.in:31
-msgid ""
-"\n"
-"\n"
-"Refreshes the specified patch, or the topmost patch by default.\n"
-"Documentation that comes before the actual patch in the patch file is\n"
-"retained.\n"
-"\n"
-"It is possible to refresh patches that are not on top. If any patches\n"
-"on top of the patch to refresh modify the same files, the script aborts\n"
-"by default. Patches can still be refreshed with -f. In that case this\n"
-"script will print a warning for each shadowed file, changes by more\n"
-"recent patches will be ignored, and only changes in files that have not\n"
-"been modified by any more recent patches will end up in the specified\n"
-"patch.\n"
-"\n"
-"-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n"
-"\t\n"
-"-f\tForce refresh, even if more recent patches modify\n"
-"\tsome of the same files.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/refresh.in:123
-msgid ""
-"Cannot refresh patches with -p$opt_strip_level, please specify -p0 or -p1 "
-"instead"
-msgstr ""
-
-#: ../quilt/refresh.in:150
-msgid "More recent patches modify files in $patch. Enforce refresh with -f."
-msgstr ""
-
-#: ../quilt/refresh.in:157
-msgid "Nothing in patch $patch"
-msgstr ""
-
-#: ../quilt/refresh.in:197
-msgid "Refreshed patch $patch"
-msgstr ""
-
-#: ../quilt/remove.in:22
-msgid "Usage: quilt remove [-p patch] {file} ..."
-msgstr ""
-
-#: ../quilt/remove.in:25
-msgid ""
-"\n"
-"\n"
-"Remove one or more files from the topmost or named patch. Files that\n"
-"are modified by patches on top of the specified patch cannot be removed.\n"
-"\n"
-"-p patch\n"
-"\tPatch to remove files from.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/remove.in:89
-msgid "File $file is not in patch $patch"
-msgstr ""
-
-#: ../quilt/remove.in:105
-msgid "Failed to remove file $file from patch $patch"
-msgstr ""
-
-#: ../quilt/remove.in:116
-msgid "File $file removed from patch $patch"
-msgstr ""
-
-#: ../quilt/series.in:22
-msgid "Usage: quilt series [-v]"
-msgstr ""
-
-#: ../quilt/series.in:25
-msgid ""
-"\n"
-"\n"
-"Print the names of all patches in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead patch names.\n"
-"\n"
-"-v\tVerbose, more user friendly output.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/setup.in:22
-msgid "Usage: quilt setup [-d sourcedir] {seriesfile|specfile}"
-msgstr ""
-
-#: ../quilt/setup.in:25
-msgid ""
-"\n"
-"\n"
-"Initializes a source tree from a patch series file. The patch series\n"
-"file must contain the name of the relevant tar archive, in addition to\n"
-"the list of patches.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/setup.in:100
-msgid "Series file $series_file not found"
-msgstr ""
-
-#: ../quilt/setup.in:118
-msgid "create link patch $packagedir/patches to $source"
-msgstr ""
-
-#: ../quilt/setup.in:121
-msgid "creat link of $series_file"
-msgstr ""
-
-#: ../quilt/setup.in:131
-msgid "Directory $packagedir set up."
-msgstr ""
-
-#: ../quilt/top.in:22
-msgid "Usage: quilt top"
-msgstr ""
-
-#: ../quilt/top.in:25
-msgid ""
-"\n"
-"\n"
-"Print the name of the topmost patch on the current stack of applied\n"
-"patches.\n"
-"\n"
-msgstr ""
-
-#: ../quilt/unapplied.in:22
-msgid "Usage: quilt unapplied [patch]"
-msgstr ""
-
-#: ../quilt/unapplied.in:25
-msgid ""
-"\n"
-"\n"
-"Print a list of patches that are not applied, or all patches that follow\n"
-"the specified patch in the series file.\n"
-"\n"
-"-n\tPrint patch file names instead of patch names.\n"
-"\n"
-msgstr ""
-
-#: ../scripts/apatch.in:22
-msgid "Usage: $0 [-fqv] patchname"
-msgstr ""
-
-#: ../scripts/apatch.in:40
-msgid "Interrupted by user; patch $patch was not applied."
-msgstr ""
-
-#: ../scripts/apatch.in:51 ../scripts/rpatch.in:113
-msgid "Patch file $patch_file appears to be empty"
-msgstr ""
-
-#: ../scripts/apatch.in:80
-msgid "refresh_file_list failed"
-msgstr ""
-
-#: ../scripts/apatch.in:84
-msgid "Applying $patch"
-msgstr ""
-
-#: ../scripts/apatch.in:87
-msgid "Patch $patch appears to be empty, applied"
-msgstr ""
-
-#: ../scripts/apatch.in:95
-msgid "Recreated file list for $patch"
-msgstr ""
-
-#: ../scripts/apatch.in:126
-msgid "Applied $patch (forced; needs refresh)"
-msgstr ""
-
-#: ../scripts/apatch.in:130
-msgid "Patch $patch does not apply (enforce with -f)"
-msgstr ""
-
-#: ../scripts/apatch.in:186 ../scripts/rpatch.in:245
-msgid "The topmost patch $top needs to be refreshed first."
-msgstr ""
-
-#: ../scripts/rpatch.in:22
-msgid "Usage: $0 [-fRq] patchname"
-msgstr ""
-
-#: ../scripts/rpatch.in:44
-msgid "Patch does not remove changes:"
-msgstr ""
-
-#: ../scripts/rpatch.in:102
-msgid "Interrupted by user; patch $patch was not removed."
-msgstr ""
-
-#: ../scripts/rpatch.in:146
-msgid "Patch $patch appears to be empty, removed"
-msgstr ""
-
-#: ../scripts/rpatch.in:151
-msgid "Removing $patch"
-msgstr ""
-
-#: ../scripts/rpatch.in:172
-msgid "Failed to create temporary files"
-msgstr ""
-
-#: ../scripts/rpatch.in:193
-msgid "Patch $patch does not remove (enforce with -f)"
-msgstr ""
-
-#: ../scripts/spec2series.in:100 ../scripts/spec2series.in:192
-msgid " done"
-msgstr ""
+++ /dev/null
--------------------------------------------------------------------
-Sun Jul 20 00:31:53 CEST 2003 - agruen@suse.de
-
-- lib/backup-files.c: Copy files if hard linking is not possible,
- e.g., because the backups go to a ram disc, etc.
-
--------------------------------------------------------------------
-Wed 26 Jun 15:35:55 CEST 2003 - martin.quinson@tuxfamily.org
-
-- Add what needed to have inteligent bash completion when using quilt
-- Bump version to 0.24
-
--------------------------------------------------------------------
-Wed 25 Jun 15:35:55 CEST 2003 - martin.quinson@tuxfamily.org
-
-- Make clean before dist to avoid to put cruft in tarballs
-- remove po/*mo on make clean
-- update fr.po
-- Fix a typo in push.in help message about --interactive
-
--------------------------------------------------------------------
-Tue May 20 13:22:18 CEST 2003 - agruen@suse.de
-
-- Preserve permissions of files added with `quilt add'.
-
--------------------------------------------------------------------
-Sun May 18 15:23:03 CEST 2003 - agruen@suse.de
-
-- Do not add the whole /usr/share/locale directory to the RPM
- file list, but only the quilt message catalogs: Otherwise RPM
- complains when uninstalling.
-
--------------------------------------------------------------------
-Fri May 16 20:44:50 CEST 2003 - agruen@suse.de
-
-- Rename DIFF_OPTS environment variable to QUILT_DIFF_OPTS
-- Add ~/.quiltrc resource file (this file is sourced from
- the patchfsn file, which is used by all commands).
-
--------------------------------------------------------------------
-Fri Apr 11 17:17:35 CEST 2003 - agruen@suse.de
-
-- Apply patches with `patch -f' by default. Add --interactive
- option top `quilt push' to allow applying patches without
- `patch -f'.
-
--------------------------------------------------------------------
-Wed Apr 9 12:08:47 CEST 2003 - agruen@suse.de
-
-- Remove awk hacks in Makefile.in with shell loop and sed hack:
- The awk hack(s) didn't work for Martin Quinson.
-
--------------------------------------------------------------------
-Wed Apr 9 04:00:52 CEST 2003 - agruen@suse.de
-
-- Never reorder files in patches. (Previously the file list
- was run through (sort | uniq) to remove duplicate entries.)
-- Update test script to new format, and add regression test
- cases.
-
--------------------------------------------------------------------
-Wed Apr 9 02:38:30 CEST 2003 - agruen@suse.de
-
-- The change from Mar 24 caused empty lines to be removed in
- patch descriptions.
-
--------------------------------------------------------------------
-Mon Apr 7 16:03:55 CEST 2003 - agruen@suse.de
-
-- `head -1' and `tail -1' is non-standard and deprecated, and
- does not work with coreutils-5.0 any longer.
-
--------------------------------------------------------------------
-Sat Apr 5 22:17:44 CEST 2003 - agruen@suse.de
-
-- Improve error checking of `quilt diff'.
-
--------------------------------------------------------------------
-Mon Mar 24 12:29:58 CET 2003 - agruen@suse.de
-
-- Update patch_description function used in `quilt refresh' to
- recognize `====' lines. Without that, quilt thinks these
- lines are part of the comments before the actual patch starts,
- so those lines will accumulate.
-
--------------------------------------------------------------------
-Sun Mar 23 21:37:20 CET 2003 - agruen@suse.de
-
-- Update test script to reflect recent patch format changes.
-
--------------------------------------------------------------------
-Sat Mar 22 12:28:43 CET 2003 - agruen@suse.de
-
-- Also substitute @SED@ and @AWK@.
-- Some versions of sed don't like '\t'. Expand those in the
- shell instead.
-
--------------------------------------------------------------------
-Fri Mar 21 10:42:27 CET 2003 - agruen@suse.de
-
-- Bump version number to 0.23 (CVS tag VER_0_23).
-
--------------------------------------------------------------------
-Fri Feb 14 15:53:52 CET 2003 - agruen@suse.de
-
-- A couple more I18N fixes, minor cleanups in status messages.
-- Remove "quilt guidiff" (obsolete).
-
--------------------------------------------------------------------
-Fri Feb 14 14:10:39 CET 2003 - martin.quinson@tuxfamily.org
-
-- Implement i18n, along with the french l10n.
-- It was long enough that we didn't release, so bump the version number.
-
--------------------------------------------------------------------
-Sat Feb 8 15:43:26 CET 2003 - agruen@suse.de
-
-- Merge James Rowe <Jay@jnrowe.uklinux.net>'s quilt-help.diff
- patch that fixes several help messages.
-
--------------------------------------------------------------------
-Thu Feb 6 01:22:52 CET 2003 - agruen@suse.de
-
-- Quilt refresh: Create sub-directories in patches directory
- so that new patches in sub-directories can be added easily.
-
--------------------------------------------------------------------
-Wed Feb 5 12:37:34 CET 2003 - agruen@suse.de
-
-- Quilt diff: If a patch has been force applied, quilt diff -z
- will also have failures when generating the temporary files.
- Ignore these failures in this case.
-- Add -R option to quilt diff to generate a a reverse patch.
-- Fix deleting the temporary directory (by using an absolute
- instead of a relative path).
-
--------------------------------------------------------------------
-Sun Feb 2 15:23:20 CET 2003 - agruen@suse.de
-
-- Make quilt setup recognize the "# Sourcedir:" directive.
-- Fix bug with spurious `Index:' lines in diff/refresh output.
-- Add --diff option to quilt diff that allows to specify a
- different utility that diff to run files through. (That utility
- is only called for files that contain differences, not for
- files that are in a patches' file list but jave not been
- changed.)
-
--------------------------------------------------------------------
-Sat Feb 1 18:52:15 CET 2003 - agruen@suse.de
-
-- Integrate James Rowe's Autoconf setup (with a comple of
- additional changes/fixes).
-- Add some messages in configure.ac.
-- Make distclean removes autoconf garbage. The configure script is
- no source file. Add rule to create it when necessary.
-- Invoke configure in the RPM spec file.
-- Merge James Rowe's guidiff.
-
--------------------------------------------------------------------
-Fri Jan 31 13:05:18 CET 2003 - agruen@suse.de
-
-- Add syntax highlighting tags for emacs and vim.
-- Move all scripts from lib/ to scripts/. Install lib/backup-files
- in /usr/lib/quilt/, and install the scripts in
- /usr/share/quilt/scripts/, so that no binaries are installed
- under /usr/share.
-- Fix quoting strings for inclusion in regular expressions.
-- Change literal '@SUBST@' strings in Makefile to '@SUBST''@',
- so that Autoconf won't mess them up later.
-
--------------------------------------------------------------------
-Fri Jan 31 09:15:01 CET 2003 - Martin.Quinson@ens-lyon.fr
-
-- Change '#!@BASH@' to '#! @BASH@'. It can look a bit stupid, but
- it's needed for maximal portability.
-
--------------------------------------------------------------------
-Fri Jan 31 08:52:20 CET 2003 - Martin.Quinson@ens-lyon.fr
-
-- Fight lintian warnings (lintian is a tool to check debian
- packages):
-- Remove the dependencies on essential packages diff, gzip,
- debianutils
-- Format the copyright file properly
-- Remove the #! /bin/bash header from patchfns, since it's not an
- executable script, but a stuff to be sourced by others.
-
--------------------------------------------------------------------
-Thu Jan 30 23:56:21 CET 2003 - agruen@suse.de
-
-- Also substitute @MKTEMP@.
-- For improved scripting support, add -n option to scripts that
- print patch names prints the patch file name instead. This
- is useful for selecting which patches to grep, etc.
-
--------------------------------------------------------------------
-Thu Jan 30 19:02:14 CET 2003 - agruen@suse.de
-
-- Allow a file list to be diffed to be passed to quilt diff. Add
- -P option for specifying a patch different from the topmost
- patch,
-
--------------------------------------------------------------------
-Thu Jan 30 16:11:00 CET 2003 - Martin.Quinson@ens-lyon.fr
-
-- Remove useless oldies. Missing functionnalities needs to be
- reimplemented almost from the scratch due to the bunch of
- changes to the core since those scripts were written.
-
--------------------------------------------------------------------
-Thu Jan 30 13:25:51 CET 2003 - agruen@suse.de
-- Fix some regex quoting; use grep -E because we quote for extended
- regexps. Filenames with "+^$" in it did not work in some places.
-- Prepare for GNU Autoconf: substitute @PERL@, @BASH@, @DIFF@,
- @PATCH@ in scripts.
-- Some cleanups in Makefile.
-- Move documentation to doc/.
-- Forgot to mention that the patches produced now contain
- `Index: dir/filename' just before the diff output for each file.
- This is required by POSIX, and is also used by diffstat.
-- Adjust patch_description documentation extraction function to
- check for Index: lines.
-- Quilt refresh looses text before actual patch due to but in
- patch_description function.
-
--------------------------------------------------------------------
-Tue Jan 28 23:41:19 CET 2003 - agruen@suse.de
-
-- Add --leave-rejects option to quilt push and apatch, to
- leave reject files around for inspection even if a patch
- does not apply.
-
--------------------------------------------------------------------
-Tue Jan 28 23:38:59 CET 2003 - agruen@suse.de
-
-- Restart change log at quilt-0.21. Let orderly development
- begin :)
+++ /dev/null
-#
-# spec file for quilt - patch management scripts
-#
-
-Name: quilt
-Summary: Scripts for working with series of patches
-License: GPL
-Group: Productivity/Text/Utilities
-Version: 0
-Release: 0
-Requires: coreutils diffutils patch gzip bzip2 perl mktemp gettext
-Autoreqprov: off
-Source: quilt-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-
-%description
-The scripts allow to manage a series of patches by keeping
-track of the changes each patch makes. Patches can be
-applied, un-applied, refreshed, etc.
-
-The scripts are heavily based on Andrew Morton's patch scripts
-found at http://www.zip.com.au/~akpm/linux/patches/.
-
-Authors:
---------
- Andrew Morton <akpm@digeo.com>
- Andreas Gruenbacher <agruen@suse.de>
-
-%prep
-%setup
-
-%build
-./configure
-make prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-, root, root)
-/usr/bin/guards
-/usr/bin/quilt
-
-/usr/share/quilt/
-/usr/lib/quilt/
-
-/usr/share/locale/*/LC_MESSAGES/quilt.mo
-
-%doc /usr/share/man/man1/guards.1.gz
-%doc doc/README
-
-%changelog
-# The changelog is filled in by "make spec".
-
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt add [-p patch] {file} ..."
- if [ x$1 = x-h ]
- then
- echo $"
-
-Add one or more files to the topmost or named patch. Files must be
-added to the patch before being modified. Files that are modified by
-patches on top of the specified patch cannot be added.
-
--p patch
- Patch to add files to."
-
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o p:h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -p)
- opt_patch=$2
- shift 2 ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -lt 1 ]
-then
- usage
-fi
-
-patch=$(stripit $opt_patch)
-if [ -z "$patch" ]
-then
- patch=$(top_patch)
-fi
-if [ -z "$patch" ]
-then
- echo $"No patch applied"
-fi
-
-if ! is_applied $patch
-then
- echo $"Patch $patch is not applied"
- exit 1
-fi
-
-status=0
-for file in $*
-do
- if file_in_patch $file $patch
- then
- echo $"File $file is already in patch $patch"
- status=1
- continue
- fi
- next_patch=$(next_patch_for_file $patch $file)
- if [ -n "$next_patch" ]
- then
- echo $"File $file modified by patch $next_patch"
- status=1
- continue
- fi
-
- if ! @LIB@/backup-files -s -B .pc/$patch/ $file || \
- ! echo $file >> $(pc_file_name $patch)
- then
- echo $"Failed to back up file $file" >&2
- status=1
- continue
- fi
-
- if [ -e $file ]
- then
- if [ "$(ls -dl $file | @AWK@ '{print $2}')" -gt 1 ]
- then
- # We have a file with several hard links.
- # As the file may likely be modified by hand
- # now, create a copy to make sure nothing
- # happens to the original file.
- tmpfile=$(gen_tempfile $file) &&
- cp -fp $file $tmpfile &&
- mv -f $tmpfile $file
- rm -f $tmpfile
- fi
- fi
-
- echo $"File $file added to patch $patch"
-done
-exit $status
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt applied [-n] [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print a list of applied patches.
-
--n Print patch file names instead of patch names.
-
-"
-
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o nh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-elif [ $# -eq 1 ]
-then
- patch=$(stripit $1)
- if ! is_applied "$patch"
- then
- echo $"Patch $patch is not applied" >&2
- exit 1
- fi
-else
- patch=$(top_patch)
-fi
-
-for patch in $(applied_before "$patch") $patch
-do
- [ -n "$opt_filenames" ] && patch=$(patch_file_name $patch)
- echo $patch
-done
-
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt delete [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Remove the specified or topmost patch from the series file. If the
-patch is applied, quilt will attempt to remove it first. (Only the
-topmost patch can be removed right now.)"
-
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-fi
-
-patch=$(stripit $1)
-
-if [ -z "$patch" ]
-then
- patch="$(top_patch)"
- if [ -z "$patch" ]
- then
- echo $"No patch applied"
- exit 1
- fi
-else
- if ! patch_in_series $patch
- then
- echo $"Patch $patch does not exist"
- exit 1
- fi
-fi
-if is_applied $patch
-then
- if [ "$patch" != "$(top_patch)" ] || \
- ! @SCRIPTS@/rpatch -fq "$patch"
- then
- echo $"Patch $patch is currently applied"
- exit 1
- fi
-fi
-if ! remove_from_series $patch
-then
- echo $"Failed to remove patch $patch"
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- local redirect
- if [ x$1 != x-h ]
- then
- redirect='>&2'
- fi
- echo $"Usage: quilt diff [-p n] [-c patch|-z] [-R] [-P patch] [file ...]" $redirect
-
- if [ x$1 = x-h ]
- then
- echo $"
-
-Produces a diff of the specified file(s) in the topmost or specified
-patch. If no files are specified, all files that are modified are
-included.
-
--p n Create a -p n style patch (-p0 or -p1 are supported).
-
--P patch
- Create a diff for the specified patch. (Defaults to the topmost
- patch.)
-
--c patch
- Create a combined diff for all patches between this patch and
- the patch specified with -P. A patch name of \"-\" is equivalent
- to specifying the first applied patch.
-
--R Create a reverse diff.
-
--z Write to standard output the changes that have been made
- relative to the topmost or specified patch.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-do_diff()
-{
- local file=$1 old_file=$2 new_file=$3
-
- if [ -n "$opt_reverse" ]
- then
- local f=$new_file
- new_file=$old_file
- old_file=$f
- fi
-
- if [ -n "$opt_diff" ]
- then
- if ! @DIFF@ -qN $old_file $new_file >/dev/null
- then
- $opt_diff $old_file $new_file
- true
- fi
- else
- diff_file $file $old_file $new_file
- fi
-}
-
-die ()
-{
- local status=$1
- [ -n "$workdir" ] && rm -rf $workdir
- exit $status
-}
-
-options=`getopt -o p:P:c:Rzh --long diff: -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -p)
- opt_strip_level=$2
- shift 2 ;;
- -P)
- last_patch=$(stripit $2)
- shift 2 ;;
- -c)
- opt_combine=$(stripit $2)
- shift 2 ;;
- -R)
- opt_reverse=1
- shift ;;
- -z)
- opt_relative=1
- shift ;;
- -h)
- usage -h ;;
- --diff)
- opt_diff=$2
- shift 2 ;;
- --)
- shift
- break ;;
- esac
-done
-
-opt_files=( "$@" )
-
-if [ -n "$opt_combine" -a -n "$opt_relative" ]
-then
- echo $"Options \`-c patch' and \`-z' cannot be combined."
- die 1
-fi
-
-if [ -z "$last_patch" ]
-then
- last_patch=$(top_patch)
- if [ -z "$last_patch" ]
- then
- echo $"No patch seem to be applied" >&2
- die 1
- fi
-fi
-
-if ! is_applied "$last_patch"
-then
- echo $"Patch $last_patch is not applied" >&2
- die 1
-fi
-
-if [ -z "$opt_strip_level" ]
-then
- opt_strip_level=$(patch_strip_level $last_patch)
-fi
-if [ "$opt_strip_level" != 0 -a "$opt_strip_level" != 1 ]
-then
- echo $"Cannot diff patches with -p$opt_strip_level, please specify -p0 or -p1 instead" >&2
- die 1
-fi
-
-if [ -n "$opt_combine" ]
-then
- if ! refresh_patches_per_file
- then
- echo $"refresh_patches_per_file failed."
- die 1
- fi
-
- set -- $(patches_before $last_patch) $last_patch
- if [ "x$opt_combine" != "x-" ]
- then
- while [ $# -ge 1 -a "$1" != "$opt_combine" ]
- do
- shift
- done
- if [ $# -eq 0 ]
- then
- echo $"Patch $opt_combine not applied before $last_patch."
- die 1
- fi
- fi
-
- while read file first garbage
- do
- if [ ${#opt_files[@]} -gt 0 ] && \
- ! in_array "$file" "${opt_files[@]}"
- then
- continue
- fi
- patches[${#patches[@]}]="$first"
- files[${#files[@]}]="$file"
- done \
- < <(modified_files -- "$@")
-else
- for file in $(files_in_patch $last_patch)
- do
- if [ ${#opt_files[@]} -gt 0 ] && \
- ! in_array "$file" "${opt_files[@]}"
- then
- continue
- fi
- files[${#files[@]}]="$file"
- done
-fi
-
-if [ ${#opt_files[@]} -gt 0 ]
-then
- for file in "${opt_files[@]}"
- do
- if ! in_array "$file" "${files[@]}"
- then
- echo $"File $file is not being modified."
- fi
- done
-fi
-
-trap "die 1" SIGTERM
-
-if [ -n "$opt_relative" ]
-then
- patch_file=$(patch_file_name $last_patch)
- pc_file=$(pc_file_name $last_patch)
- patch_args=$(patch_args $last_patch)
- workdir=$(gen_tempfile -d $PWD/quilt)
- pwd=$PWD
-
- if ! cd .pc/$last_patch
- then
- echo $"Cannot change into .pc/$last_patch"
- die 1
- fi
- if ! cp -l --parents "${files[@]}" $workdir/
- then
- echo $"Failed to copy files to temporary directory"
- die 1
- fi
- if ! cd $workdir
- then
- echo $"Cannot change to temporary directory"
- die 1
- fi
-
- if [ -s $pwd/$patch_file ]
- then
- if ! cat_file $pwd/$patch_file \
- | @PATCH@ $patch_args --no-backup-if-mismatch \
- -E >/dev/null 2>/dev/null
- then
- # If a patch was force applied (and therefore needs
- # refreshing), we know that patching the temporary
- # files won't succeed, either. So, ignore the error
- # in that particular case.
-
- if ! [ -e $pwd/$pc_file~refresh ]
- then
- echo $"Failed to patch temporary files"
- die 1
- fi
- fi
- fi
- if ! cd $pwd
- then
- echo $"Cannot change to source directory"
- die 1
- fi
-fi
-
-for ((i=0; i<${#files[@]}; i++))
-do
- file="${files[$i]}"
- first_patch=${patches[$i]:-$last_patch}
-
- next_patch=$(next_patch_for_file $last_patch $file)
- if [ -z "$next_patch" ]
- then
- new_file="$file"
- else
- new_file="$(backup_file_name $next_patch $file)"
- files_were_shadowed=1
- fi
-
- if [ -z "$opt_relative" ]
- then
- old_file=$(backup_file_name $first_patch $file)
- do_diff $file $old_file $new_file
- else
- do_diff $file "$workdir/$file" $new_file
- fi
-
- if [ $? -ne 0 ]
- then
- echo $"Diff failed, aborting." >&2
- die 1
- fi
-done
-
-if [ -n "$files_were_shadowed" ]
-then
- echo $"More recent patches modify files in $last_patch."
- die 1
-fi
-die 0
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt files [-v] [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the list of files that the topmost or specified patch changes.
-
--v Verbose, more user friendly output.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o vh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -v)
- opt_verbose=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-fi
-opt_patch=$1
-
-if [ -n "$opt_patch" ]
-then
- patch=$(stripit "$opt_patch")
-else
- patch=$(top_patch)
- if [ -z "$patch" ]
- then
- echo $"No patch applied" >&2
- exit 1
- fi
-fi
-
-if ! is_applied $patch
-then
- if [ -n "$opt_verbose" ]
- then
- echo $"Patch is not applied (no verbose output)" >&2
- opt_verbose=0
- else
- echo $"Patch is not applied" >&2
- fi
-fi
-
-if [ -z "$opt_verbose" ]
-then
- files_in_patch $patch
-else
- for file in $(files_in_patch $patch)
- do
- status=" "
- if [ -s $(backup_file_name $patch $file) ]
- then
- if ! [ -s $file ]
- then
- status="-"
- fi
- else
- if [ -s $file ]
- then
- status="+"
- fi
- fi
- echo "$status $file"
- done
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt fork {new_patchname}"
- if [ x$1 = x-h ]
- then
- echo $"
- Fork the next patch in the series
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-
-patch_file=$(echo $1 | @SED@ -e 's/^'"$(quote_bre $P)"'patches\///')
-patch=$(stripit $patch_file)
-
-if patch_in_series $patch
-then
- echo $"Patch $patch exists already, please change a new_name"
- exit 1
-fi
-
-mkdir -p $(dirname $(pc_file_name $patch))
-rm -f $(pc_file_name $patch)
-
-next_patch=$(patches_after $(top_patch) | head -n 1)
-#copy the original patch to the cloned patch
-
-next_patch_file=$(patch_file_name $next_patch)
-next_pc=$(pc_file_name $next_patch)
-
-cp -f ${next_patch_file} patches/${patch_file}.patch
-
-#remove the original patch
-if [ -z next_patch ]
-then
- echo $"patch ended at $(top_patch)"
- exit 1
-else
- remove_from_series $next_patch
-fi
-
-#add the cloned patch to series
-if ! insert_in_series ${patch_file}.patch
-then
- echo $"Failed to fork patch $patch"
- exit 1
-fi
-echo $"cloned $next_patch to $patch_file"
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt import [-f] [-p num] [-n patch] [patchfile]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Import an external patch. If a patch file name is specified, the patch
-will be stored in this relative path in the patches/ directory. Else,
-if an input file name is given this name is used as the patch name.
-
--p num
- Number of directory levels to strip when aplying (default=1)
-
--n patch
- File name relative to patches/ to use.
-
--f Overwite/update existing patches.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o fn:p:h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_patch=$(echo "$2" |
- @SED@ -e 's/^'"$(quote_bre $P)"'patches\///' \
- -e 's/^\.pc\///')
- shift 2 ;;
- -p)
- opt_strip=$2
- shift 2 ;;
- -f)
- opt_force=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -eq 1 ]
-then
- input_file=$1
-elif [ $# -gt 1 ]
-then
- usage
-fi
-
-[ -n "$opt_strip" ] && patch_args="-p$opt_strip"
-
-if [ -n "$opt_patch" ]
-then
- patch=$(stripit "$opt_patch")
- patch_file="${P}patches/$opt_patch"
-else
- patch="$(stripit "$input_file")"
- if [ -n "$patch" ]
- then
- opt_patch="$patch.patch"
- else
- echo $"Please use -n to specify a patch file name."
- exit 1
- fi
- patch_file="${P}patches/$opt_patch"
-fi
-
-if echo "$patch_file" | grep -q -e $'[ \t]'
-then
- echo $"Patch file name \"$patch_file\" contains whitespace."
- exit 1
-fi
-
-if is_applied $patch
-then
- echo $"Patch $patch is applied."
- exit 1
-fi
-
-case "$input_file" in
-'')
- tmpfile=$(gen_tempfile)
- if ! cat > $tmpfile
- then
- echo $"Cannot read from standard input."
- rm -f $tmpfile
- exit 1
- fi
- input_file=$tmpfile ;;
-*.gz)
- tmpfile=$(gen_tempfile)
- if ! gzip -cd "$input_file" > $tmpfile
- then
- echo $"Cannot decompress file $input_file"
- rm -f $tmpfile
- exit 1
- fi
- input_file=$tmpfile ;;
-*.bz2)
- tmpfile=$(gen_tempfile)
- if ! bzip2 -cd "$input_file" > $tmpfile
- then
- echo $"Cannot decompress file $input_file"
- rm -f $tmpfile
- exit
- fi
- input_file=$tmpfile ;;
-*)
- if ! [ -r "$input_file" ]
- then
- echo $"Cannot read from file $input_file"
- exit 1
- fi
-esac
-
-if [ -e "$patch_file" ]
-then
- if [ -z "$opt_force" ]
- then
- echo $"Patch $patch exists. Replace with -f."
- exit 1
- fi
-
- if grep -q '^%patch$' "$patch_file" &&
- ! grep -q '^%patch$' "$input_file"
- then
- echo $"Updating %patch section of patch $patch"
- if ! @SCRIPTS@/parse-patch -u patch $patch_file < "$input_file"
- then
- echo $"Failed to update %patch section of patch $patch"
- exit 1
- fi
- else
- echo $"Replacing patch $patch with new version"
- if ! cat "$input_file" > "$patch_file"
- then
- echo $"Failed to replace patch $patch"
- exit 1
- fi
- fi
-else
- echo $"Importing patch $patch (stored as $patch_file)"
- if ! grep -q '^%patch$' "$input_file"
- then
- echo "%patch" >> "$patch_file"
- fi
- if ! cat "$input_file" >> "$patch_file"
- then
- echo $"Failed to import patch $patch"
- exit 1
- fi
-fi
-
-rm -rf .pc/$patch
-
-if ! patch_in_series $patch &&
- ! insert_in_series $opt_patch "$patch_args"
-then
- echo $"Failed to insert $patch in file series."
-fi
-
-if [ -n "$tmpfile" ]
-then
- rm -f $tmpfile
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt new {patchname}"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Create a new patch with the specified file name, and insert it after the
-topmost patch in the patch series file.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-
-patch_file=$(echo $1 | @SED@ -e 's/^'"$(quote_bre $P)"'patches\///')
-patch=$(stripit $patch_file)
-
-if patch_in_series $patch
-then
- echo $"Patch $patch exists already"
- exit 1
-fi
-
-mkdir -p $(dirname $(pc_file_name $patch))
-rm -f $(pc_file_name $patch)
-
-if ! insert_in_series $patch_file || \
- ! add_to_db $patch
-then
- echo $"Failed to create patch $patch"
- exit 1
-else
- echo $"Patch $patch is now on top"
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt next [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the name of the next patch after the specified or topmost patch in
-the series file.
-
--n Print patch file names instead of patch names.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o nh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-elif [ $# -eq 1 ]
-then
- patch=$(stripit $1)
-else
- patch=$(top_patch)
-fi
-
-if [ -z "$patch" ]
-then
- next=$(cat_series | head -n 1)
-else
- next=$(patches_after $patch | head -n 1)
-fi
-[ -n "$opt_filenames" ] && next=$(patch_file_name $next)
-echo "$next"
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt patches {file}"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the list of patches that modify the specified file.
-
--n Print the patch file names instead of the patch names.
-
--v Verbose, more user friendly output.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-scan_patches()
-{
- local prefix=$1 file=$2
- shift 2
- local patch
-
- for patch in $(modified_files $file -- "$@" \
- | cut -d $'\t' -f2)
- do
- [ -n "$opt_filenames" ] && patch=$(patch_file_name $patch)
-
- echo "$prefix$patch"
- done
-}
-
-options=`getopt -o nvh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-opt_file=$1
-
-if ! refresh_patches_per_file
-then
- exit 1
-fi
-
-if [ -n "$opt_verbose" ]
-then
- top=$(top_patch)
- if [ -n "$top" ]
- then
- patches_before="$(patches_before $top)"
- [ -n "$patches_before" ] &&
- scan_patches "+ " $opt_file $patches_before
- scan_patches "= " $opt_file $top
- patches_after="$(patches_after $top)"
- [ -n "$patches_after" ] &&
- scan_patches " " $opt_file $(patches_after $top)
- else
- scan_patches " " $opt_file
- fi
-else
- scan_patches "" $opt_file
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt pop [-afRqv] [num|patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Remove patch(es) from the current stack. A number of patches to remove,
-or a patch name can be specified. If a patch name is given, remove all
-patches applied on top of the named patch. If neither a number nor a
-patch name is specified, remove the next patch from the series file.
-
--a Remove all applied patches.
-
--f Force remove. The state before the patch(es) were applied will
- be restored from backup files.
-
--R Remove the patch with \`patch -R' and check if the patch reverts
- all changes properly.
-
--q Quiet operation.
-
--v Verbose operation.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-list_patches()
-{
- local n=0 patch
- applied_patches \
- | tac \
- | if [ -n "$opt_all" ]
- then
- cat
- else
- while read patch
- do
- if [ -n "$number" ]
- then
- if [ $n -eq $number ]
- then
- break
- fi
- n=$[$n+1]
- fi
- if [ $patch = "$stop_at_patch" ]
- then
- break
- fi
- echo $patch
- done
- fi
-}
-
-options=`getopt -o fRqvah -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -f)
- opt_force=1
- unset opt_remove
- shift ;;
- -R)
- opt_remove=1 # remove with patch -R; no tricks
- unset opt_force
- shift ;;
- -q)
- opt_quiet=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- -a)
- opt_all=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ]
-then
- usage
-fi
-
-if [ $# -eq 1 ]
-then
- if is_numeric $1
- then
- number=$1
- else
- stop_at_patch=$(stripit $1)
- fi
-else
- [ -n "$opt_all" ] || number=1
-fi
-
-[ -n "$opt_force" ] &&
- rpatch_options="$rpatch_options -f"
-[ -n "$opt_remove" ] &&
- rpatch_options="$rpatch_options -R"
-[ -n "$opt_quiet" ] &&
- rpatch_options="$rpatch_options -q"
-[ -n "$opt_verbose" ] &&
- rpatch_options="$rpatch_options -v"
-
-if [ -n "$stop_at_patch" ]
-then
- if ! is_applied $stop_at_patch
- then
- echo $"Patch $stop_at_patch is not applied."
- exit 1
- fi
-fi
-
-if ! patches=$(list_patches) 2>&1
-then
- exit 1
-elif [ -z "$patches" ]
-then
- echo $"No patch removed"
- exit 0
-fi
-
-trap "interrupted=1" SIGINT
-
-for patch in $patches
-do
- if ! @SCRIPTS@/rpatch $rpatch_options $patch
- then
- exit 1
- fi
- if [ -n "$interrupted" ]
- then
- echo $"Interrupted by user"
- exit 1
- fi
- [ -z "$opt_quiet" ] && echo
-done
-
-patch="$(top_patch)"
-if [ -z "$patch" ]
-then
- echo $"No patches applied"
-else
- echo $"Now at patch $patch"
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt previous [-n] [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the name of the previous patch before the specified or topmost
-patch in the series file.
-
--n Print patch file names instead of patch names.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o nh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-elif [ $# -eq 1 ]
-then
- patch=$(stripit $1)
-else
- patch=$(top_patch)
-fi
-
-previous=$(applied_before "$patch" | tail -n 1)
-if [ -n "$previous" ]
-then
- [ -n "$opt_filenames" ] && previous=$(patch_file_name $previous)
- echo "$previous"
-fi
-
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt push [-afqv] [--leave-rejects] [num|patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Apply patch(es) from the series file. A number of patches to apply, or
-a patch name can be specified. If a patch name is given, apply all
-patches up to and including the named patch. If neither a number nor a
-patch name is specified, apply the next patch from the series file.
-
--a Apply all patches in the series file.
-
--f Force apply, even if the patch has rejects.
-
--q Quiet operation.
-
--v Verbose operation.
-
---leave-rejects
- Leave around the reject files patch produced, even if the patch
- is not actually applied.
-
---interactive
- Allow the patch utility to ask how to deal with conflicts. If
- this option is not given, the option -f will be passed to the
- patch program.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-list_patches()
-{
- local top=$(top_patch) n=0 patch
- if [ -n "$top" ]
- then
- patches_after $top
- else
- cat_series
- fi \
- | if [ -n "$opt_all" ]
- then
- cat
- else
- while read patch
- do
- if [ -n "$number" ]
- then
- if [ $n -eq $number ]
- then
- break
- fi
- n=$[$n+1]
- fi
- echo $patch
- if [ $patch = "$stop_at_patch" ]
- then
- break
- fi
- done
- if [ -n "$stop_at_patch" -a "$patch" != "$stop_at_patch" ]
- then
- echo $"Patch $stop_at_patch not found in file series" >&2
- return 1
- fi
- fi
-}
-
-options=`getopt -o fqvah --long leave-rejects,interactive -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -f)
- opt_force=1
- shift ;;
- -q)
- opt_quiet=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- -a)
- opt_all=1
- shift ;;
- -h)
- usage -h ;;
- --leave-rejects)
- opt_leave_rejects=1
- shift ;;
- --interactive)
- opt_interactive=1
- shift ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ]
-then
- usage
-fi
-
-if [ $# -eq 1 ]
-then
- if is_numeric $1
- then
- number=$1
- else
- stop_at_patch=$(stripit $1)
- fi
-else
- [ -z "$opt_all" ] && number=1
-fi
-
-[ -n "$opt_force" ] &&
- apatch_options="$apatch_options -f"
-[ -n "$opt_quiet" ] &&
- apatch_options="$apatch_options -q"
-[ -n "$opt_verbose" ] &&
- apatch_options="$apatch_options -v"
-[ -n "$opt_leave_rejects" ] &&
- apatch_options="$apatch_options --leave-rejects"
-[ -n "$opt_interactive" ] &&
- apatch_options="$apatch_options --interactive"
-
-if [ -n "$stop_at_patch" ]
-then
- if is_applied $stop_at_patch
- then
- echo $"Patch $stop_at_patch is already applied."
- exit 1
- fi
-fi
-if ! patches=$(list_patches) 2>&1
-then
- exit 1
-elif [ -z "$patches" ]
-then
- top=$(top_patch)
- top_patch_file=$(patch_file_name $top)
-
- if [ -z "$top_patch_file" ]
- then
- echo "Now the top patch $top are not in series files anymore"
- echo "Can not decide your next patches from the seriesi!"
- echo "please pop -f the top file and check your series file again"
- exit 1
- fi
-
- if [ -z "$top" ]
- then
- echo $"No patch applied"
- else
- echo $"File series fully applied, ends at patch $top"
- fi
- exit 0
-fi
-
-trap "interrupted=1" SIGINT
-
-for patch in $patches
-do
- if ! @SCRIPTS@/apatch $apatch_options $patch
- then
- exit 1
- fi
- if [ -n "$interrupted" ]
- then
- echo $"Interrupted by user"
- exit 1
- fi
- [ -z "$opt_quiet" ] && echo
-done
-
-patch="$(top_patch)"
-if [ -z "$patch" ]
-then
- echo $"No patches applied"
-else
- echo $"Now at patch $patch"
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- local redirect
- if [ x$1 != x-h ]
- then
- redirect='>&2'
- fi
- echo $"Usage: quilt refresh [-p n] [-f] [patch]" $redirect
-
- if [ x$1 = x-h ]
- then
- echo $"
-
-Refreshes the specified patch, or the topmost patch by default.
-Documentation that comes before the actual patch in the patch file is
-retained.
-
-It is possible to refresh patches that are not on top. If any patches
-on top of the patch to refresh modify the same files, the script aborts
-by default. Patches can still be refreshed with -f. In that case this
-script will print a warning for each shadowed file, changes by more
-recent patches will be ignored, and only changes in files that have not
-been modified by any more recent patches will end up in the specified
-patch.
-
--p n Create a -p n style patch (-p0 or -p1 supported).
-
--f Force refresh, even if more recent patches modify
- some of the same files.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-die ()
-{
- local status=$1
- [ -n "$tmpfile" ] && rm -f $tmpfile
- [ -n "$tmpfile2" ] && rm -f $tmpfile2
- exit $status
-}
-
-options=`getopt -o p:fh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -p)
- opt_strip_level=$2
- shift 2 ;;
- -f)
- opt_force=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -eq 1 ]
-then
- opt_patch=$1
-elif [ $# -gt 1 ]
-then
- usage
-fi
-
-if [ -n "$opt_patch" ]
-then
- patch=$(stripit $opt_patch)
-else
- patch=$(top_patch)
- if [ -z "$patch" ]
- then
- echo $"No patch seem to be applied" >&2
- exit 1
- fi
-fi
-
-if ! is_applied "$patch"
-then
- echo $"Patch $patch is not applied" >&2
- exit 1
-fi
-
-if [ -z "$opt_strip_level" ]
-then
- opt_strip_level=$(patch_strip_level $patch)
-fi
-if [ $opt_strip_level -gt 1 ]
-then
- echo $"Cannot refresh patches with -p$opt_strip_level, please specify -p0 or -p1 instead" >&2
- exit 1
-fi
-
-trap "die 1" SIGTERM
-
-tmpfile=$(gen_tempfile)
-
-for file in $(files_in_patch $patch)
-do
- old_file=$(backup_file_name $patch $file)
- next_patch=$(next_patch_for_file $patch $file)
- if [ -z "$next_patch" ]
- then
- new_file=$file
- else
- new_file=$(backup_file_name $next_patch $file)
- files_were_shadowed=1
- fi
- if ! diff_file $file $old_file $new_file >> $tmpfile
- then
- echo $"Diff failed, aborting." >&2
- die 1
- fi
-
- if [ -n "$files_were_shadowed" -a -z "$opt_force" ]
- then
- echo $"More recent patches modify files in $patch. Enforce refresh with -f." >&2
- die 1
- fi
-done
-
-if ! [ -s $tmpfile ]
-then
- echo $"Nothing in patch $patch" >&2
- die 1
-fi
-
-patch_file=$(patch_file_name $patch)
-
-trap "" SIGINT
-
-if [ -e $patch_file ] && grep -q '^%patch$' $patch_file
-then
- if [ -x "@DIFFSTAT@" ]
- then
- @DIFFSTAT@ $tmpfile 2>/dev/null \
- | @SCRIPTS@/parse-patch -u diffstat $patch_file
- fi
- cat $tmpfile \
- | @SCRIPTS@/parse-patch -u patch $patch_file
-else
- if ! tmpfile2=$(gen_tempfile)
- then
- die 1
- fi
-
- mkdir -p $(dirname $patch_file)
-
- if ! cat_file $patch_file \
- | patch_description > $tmpfile2 || \
- ! cat $tmpfile >> $tmpfile2 || \
- ! cat $tmpfile2 \
- | cat_to_file $patch_file
- then
- die 1
- fi
-fi
-if [ $? -ne 0 ]
-then
- die 1
-fi
-
-rm -f $(pc_file_name $patch)~refresh
-echo $"Refreshed patch $patch"
-if ! change_db_strip_level -p$opt_strip_level $patch
-then
- die 1
-fi
-die 0
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt remove [-p patch] {file} ..."
- if [ x$1 = x-h ]
- then
- echo $"
-
-Remove one or more files from the topmost or named patch. Files that
-are modified by patches on top of the specified patch cannot be removed.
-
--p patch
- Patch to remove files from.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o p:h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -p)
- opt_patch=$2
- shift 2 ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -lt 1 ]
-then
- usage
-fi
-
-patch=$(stripit $opt_patch)
-if [ -z "$patch" ]
-then
- patch=$(top_patch)
-fi
-if [ -z "$patch" ]
-then
- echo $"No patch applied"
-fi
-
-if ! is_applied $patch
-then
- echo $"Patch $patch is not applied"
- exit 1
-fi
-
-status=0
-for file in $*
-do
- if ! file_in_patch $file $patch
- then
- echo $"File $file is not in patch $patch"
- status=1
- continue
- fi
-
- next_patch=$(next_patch_for_file $patch $file)
- if [ -n "$next_patch" ]
- then
- echo $"File $file modified by patch $next_patch"
- status=1
- continue
- fi
-
- # Restore file from backup
- if ! @LIB@/backup-files -s -B .pc/$patch/ -r $file
- then
- echo $"Failed to remove file $file from patch $patch"
- status=1
- continue
- fi
-
- pc_file=$(pc_file_name $patch)
- tmpfile=$(gen_tempfile)
- grep -v -E '^'"$(quote_re $file)"'$' $pc_file > $tmpfile
- mv -f $tmpfile $pc_file
- rm -f $tmpfile
-
- echo $"File $file removed from patch $patch"
-done
-exit $status
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt series [-v]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the names of all patches in the series file.
-
--n Print patch file names instead patch names.
-
--v Verbose, more user friendly output.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-cat_patches()
-{
- local prefix=$1
- shift
- local patch
-
- for patch in "$@"
- do
- [ -n "$opt_filenames" ] && patch=$(patch_file_name $patch)
- echo "$prefix$patch"
- done
-}
-
-options=`getopt -o nvh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-opt_what=here
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 0 ]
-then
- usage
-fi
-
-if [ -n "$opt_verbose" ]
-then
- top=$(top_patch)
- cat_patches "+ " $(patches_before $top)
- [ -n "$top" ] && cat_patches "= " $top
- cat_patches " " $(patches_after $top)
-else
- cat_series
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt setup [-d sourcedir] {seriesfile|specfile}"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Initializes a source tree from a patch series file. The patch series
-file must contain the name of the relevant tar archive, in addition to
-the list of patches.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-parse_series()
-{
- local series="$1"
-
- perl -e '
- while(<>) {
- if (/^#\s*Sourcedir:\s*(\S+)/) {
- print "SOURCEDIR $1\n";
- } elsif (/^#\s*[Ss]ource:\s*(\S+)\s*(-C\s*(\S+))?/) {
- print "SOURCE $1 ", ($3 ? $3 : "."), "\n";
- } elsif (/^#\s*[Pp]atchdir:\s*(\S+)/) {
- print "PATCHDIR $1\n";
- } elsif (/^([^#\s]+)/) {
- print "PATCH $1\n";
- }
- }
- ' $series
- echo "SERIES $series"
-}
-
-options=`getopt -o d:h -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -d)
- opt_source=$2
- shift 2 ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-
-case "$1" in
-*.spec)
- spec_file="$1"
- tmpfile=$(gen_tempfile)
- series_file=$tmpfile
- if ! @SCRIPTS@/spec2series "$spec_file" > $tmpfile
- then
- exit 1
- fi
- ;;
-*)
- series_file=$1
- if ! [ -e "$series_file" ]
- then
- echo $"Series file $series_file not found"
- exit 1
- fi
- ;;
-esac
-
-if [ -n "$opt_source" ]
-then
- source="$opt_source"
-elif [ -n "$spec_file" ]
-then
- source="$(dirname "$spec_file")"
-else
- source="$(dirname "$series_file")"
-fi
-
-packagedir=.
-
-echo $"create link patch $packagedir/patches to $source"
-ln -s "$source" "${packagedir}/patches"
-rm -rf "${packagedir}/patches/series"
-echo $"creat link of $series_file"
-ln -s "$series_file" "${packagedir}/patches/series"
-
-if [ -n "$tmpfile" ]
-then
- rm -f $tmpfile
-fi
-
-if [ "$packagedir" != "." ]
-then
- echo $"Directory $packagedir set up."
-fi
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt top"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print the name of the topmost patch on the current stack of applied
-patches.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o nh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 0 ]
-then
- usage
-fi
-
-top=$(top_patch)
-[ -n "$opt_filenames" ] && top=$(patch_file_name $top)
-echo "$top"
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: quilt unapplied [patch]"
- if [ x$1 = x-h ]
- then
- echo $"
-
-Print a list of patches that are not applied, or all patches that follow
-the specified patch in the series file.
-
--n Print patch file names instead of patch names.
-
-"
- exit 0
- else
- exit 1
- fi
-}
-
-options=`getopt -o nh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -n)
- opt_filenames=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -gt 1 ]
-then
- usage
-elif [ $# -eq 1 ]
-then
- patch=$(stripit $1)
-else
- patch=$(top_patch)
-fi
-
-if [ -z "$patch" ]
-then
- cat_series
-else
- patches_after $patch
-fi \
-| while read patch
-do
- [ -n "$opt_filenames" ] && patch=$(patch_file_name $patch)
- echo "$patch"
-done
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: $0 [-fqv] patchname"
- exit 1
-}
-
-rollback_patch()
-{
- local patch=$1 pc_file=$(pc_file_name $patch)
- @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -B .pc/$patch/ -r
- if [ -z "$opt_leave_rejects" ]
- then
- rm -f $(files_in_patch $patch | @SED@ -e 's/$/\.rej/')
- fi
-}
-
-interrupt()
-{
- rollback_patch $1
- echo $"Interrupted by user; patch $patch was not applied."
- exit 1
-}
-
-apply_patch()
-{
- local patch=$1
- local patch_file=$(patch_file_name $patch)
-
- if ! [ -s $patch_file ]
- then
- echo $"Patch file $patch_file appears to be empty"
- return 0
- fi
-
- if [ "x${patch_file:(-3)}" = "x.gz" ]
- then
- gzip -cd $patch_file \
- | @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -E $silent $force_apply
- elif [ "x${patch_file:(-4)}" = "x.bz2" ]
- then
- bzip2 -cd $patch_file \
- | @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -E $silent $force_apply
- else
- @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -E $silent -i $patch_file $force_apply
- fi
-}
-
-apatch()
-{
- local patch=$(stripit $1)
- local pc_file=$(pc_file_name $patch)
- local file status
-
- trap "" SIGINT
- if ! refresh_file_list $patch
- then
- echo $"refresh_file_list failed"
- return 1
- fi
-
- echo $"Applying $patch"
- if ! [ -e $pc_file ]
- then
- echo $"Patch $patch appears to be empty, applied"
- add_to_db $patch
- return 0
- fi
-
- status=$?
- if [ $status -eq 2 ]
- then
- [ -z "$opt_quiet" ] && echo $"Recreated file list for $patch"
- elif [ $status -ne 0 ]
- then
- return 1
- fi
-
- if ! @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -B .pc/$patch/
- then
- exit 1
- fi
-
- trap "interrupt $patch" SIGINT
-
- apply_patch $patch
- status=$?
-
- trap "" SIGINT
-
- # Remember date/time of applying so that pop can
- # avoid reverse applying the patch in the usual cases.
- touch $pc_file
-
- if [ $status -eq 0 -o -n "$opt_force" ]
- then
- add_to_db $patch
- if [ $status -eq 0 ]
- then
- rm -f $pc_file~refresh
- else
- touch $pc_file~refresh
- echo $"Applied $patch (forced; needs refresh)"
- fi
- else
- rollback_patch $patch
- echo $"Patch $patch does not apply (enforce with -f)"
- status=1
- fi
- trap - SIGINT
- return $status
-}
-
-options=`getopt -o fqvh --long leave-rejects,interactive -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -f)
- opt_force=1
- shift ;;
- -q)
- opt_quiet=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- --leave-rejects)
- opt_leave_rejects=1
- shift ;;
- --interactive)
- opt_interactive=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-
-[ -n "$opt_quiet" ] && silent=-s
-[ -z "$opt_verbose" ] && silent_unless_verbose=-s
-[ -z "$opt_interactive" ] && force_apply=-f
-
-patch=$(stripit $1)
-
-top=$(top_patch)
-if [ -n "$top" -a -e $(pc_file_name $top)~refresh ]
-then
- echo $"The topmost patch $top needs to be refreshed first."
- exit 1
-fi
-
-apatch $patch
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#!@PERL@ -w
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Extract or update a section from a combined patch + documentation +
-# meta information file.
-
-use FileHandle;
-use Getopt::Long;
-use File::Temp qw(tempfile);
-use strict;
-
-my $select;
-my $update;
-
-if (!GetOptions("s|select=s" => \$select,
- "u|update=s" => \$update) ||
- (!defined $select && !defined $update)) {
- print STDERR "USAGE: $0 {-s|-u} section file [< replacement]\n";
- exit 1;
-}
-
-foreach my $arg (@ARGV) {
- my $fh;
-
- if (! -e $arg) {
- $fh = new FileHandle("/dev/null");
- } elsif ($arg =~ /\.gz$/) {
- $fh = new FileHandle("gzip -cd $arg |");
- } elsif ($arg =~ /\.bz2$/) {
- $fh = new FileHandle("bzip2 -cd $arg |");
- } else {
- $fh = new FileHandle("< $arg");
- }
-
- unless ($fh) {
- print STDERR "$arg: $!\n";
- next;
- }
-
- if (defined $select) {
- my $section = "head";
- my $newline = "";
- while (<$fh>) {
- if (/^%(.*)/) {
- last if $section eq $select;
- $section = $1;
- next;
- }
- if ($section eq $select) {
- print $newline;
- if ($_ eq "\n") {
- $newline = $_;
- } else {
- $newline="";
- print;
- }
- }
- }
- } elsif (defined $update) {
- my ($fh2, $tempname) = tempfile("$arg.XXXXXX");
- if ($arg =~ /\.gz$/) {
- $fh2->close();
- if (! -e $tempname) {
- die "File $tempname disappeared!\n";
- }
- $fh2 = new FileHandle("| gzip -c > $tempname");
- } elsif ($arg =~ /\.bz2$/) {
- $fh2->close();
- if (! -e $tempname) {
- die "File $tempname disappeared!\n";
- }
- $fh2 = new FileHandle("| bzip2 -c > $tempname");
- }
- unless ($fh2) {
- die "$tempname: $!\n";
- }
-
- # Copy things before updated section
- my $last_was_newline=1; # start first section in first line
- while (<$fh>) {
- if (/^%(.*)/ && $1 eq $update) {
- last;
- }
- $last_was_newline = ($_ eq "\n");
- print $fh2 $_;
- }
- print $fh2 "\n"
- unless ($last_was_newline);
-
- # Create/replace updated section
- print $fh2 "%$update\n";
- while (<STDIN>) {
- print $fh2 $_;
- }
- print $fh2 "\n";
-
- # Skip obsolete section
- while (<$fh>) {
- if (/^%(.*)/) {
- print $fh2 $_;
- last;
- }
- }
- # Copy things after updated section
- while (<$fh>) {
- print $fh2 $_;
- }
- unless (close $fh2) {
- die "$arg.patch: $!\n";
- }
-
- if (-e $arg) {
- unlink "$arg~";
- unless (rename $arg, "$arg~") {
- die "Failed to rename $arg to $arg~: $!\n";
- }
- }
- unless (rename $tempname, $arg) {
- rename("$arg~", $arg);
- die "Failed to rename $arg.parse to $arg: $!\n";
- }
- }
- close $fh;
-}
+++ /dev/null
-# This file contains the common functions used in all quilt script
-# It is meant to be sourced by bash scripts.
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-export TEXTDOMAIN=quilt
-
-
-if [ -e $HOME/.quiltrc ]
-then
- . $HOME/.quiltrc
-fi
-
-if [ -n "$PATCHSCRIPTS" ]
-then
- P=$PATCHSCRIPTS/
-else
- unset P
-fi
-
-if [ -e .pc/series ]
-then
- SERIES=.pc/series
-elif [ -e series ]
-then
- SERIES=series
-else
- SERIES=${P}patches/series
-fi
-
-DB=".pc/applied-patches"
-DB_FILE=".pc/applied-patches-file"
-
-# Quote a string for use in a basic regular expression.
-quote_bre()
-{
- echo "$1" | @SED@ -e 's:\([][^$/.*\\]\):\\\1:g'
-}
-
-# Quote a string for use in an extended regular expression.
-quote_re()
-{
- echo "$1" | @SED@ -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g'
-}
-
-basename()
-{
- local path="${1//\/\//}"
- path="${path%%/}"
- echo "${path##*/}"
-}
-
-dirname()
-{
- local path="${1//\/\//}"
- path="${path%%/}"
- local basename="${path##*/}"
- path="${path:0:${#path}-${#basename}}"
- [ x"$path" != x"/" ] && path="${path%/}"
- echo "${path:-.}"
-}
-
-patch_file_name()
-{
- local patch=$1
-
- if [ -e $SERIES ]
- then
- @AWK@ '/^'"$(quote_re $patch)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { printf "'"$P"'patches/%s\n", $1
- exit
- }
- ' $SERIES
- fi
-}
-applied_patch_file_name()
-{
- local patch=$1
-
- if [ -e $DB_FILE ]
- then
- /bin/gawk '/^'"$(quote_re $patch)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { printf "'"$P"'patches/%s\n", $1
- exit
- }
- ' $DB_FILE
- fi
-}
-# The -pN option and possibly others that should be passed to patch.
-patch_args()
-{
- local patch=$1
-
- if [ -e $SERIES ]
- then
- @AWK@ '
- /^'"$(quote_re $patch)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { if (NF >= 2)
- for (i=2; i <= NF; i++)
- print $i
- else
- print "-p1" ;
- exit
- }
- ' $SERIES
- fi
-}
-
-patch_strip_level()
-{
- local patch=$1 i
- for i in $(patch_args $patch)
- do
- case $i in
- -p)
- echo $2
- return ;;
- -p*)
- echo ${i:2}
- return ;;
- esac
- done
- echo "1"
-}
-
-change_db_strip_level()
-{
- local level=$1 patch=$2
-
- if [ x$level != x-p1 ]
- then
- level="$level"
- else
- level=""
- fi
-
- if [ -e $SERIES ]
- then
- local tmpfile=$(gen_tempfile)
- @AWK@ '
- /^'"$(quote_re $patch)"'(\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { for(i=2; i<=NF; i++)
- if ($i ~ /^-p/) {
- $i="'"$level"'"
- break
- }
- if (i > NF)
- $i="'"$level"'"
- }
- { print }
- ' $SERIES > $tmpfile
- if cmp $SERIES $tmpfile >/dev/null 2>/dev/null
- then
- rm -f $tmpfile
- else
- mv -f $tmpfile $SERIES
- fi
- else
- return 1
- fi
-}
-
-patch_in_series()
-{
- local patch=$1
-
- if ! [ -e $SERIES ]
- then
- return 1
- else
- grep -q -E '^'"$(quote_re $patch)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)' $SERIES
- fi
-}
-
-# Insert new patch after topmost patch
-insert_in_series()
-{
- local patch=$1 patch_args=$2
- local top=$(top_patch) tmpfile
-
- if [ -n "$patch_args" ]
- then
- patch_args=" $patch_args"
- fi
-
- tmpfile=$(gen_tempfile) || return 1
- mkdir -p $(dirname $SERIES)
- if [ -n "$top" ]
- then
- @AWK@ '
- { print }
- /^'"$(quote_re $top)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { print "'"$patch$patch_args"'" }
- ' $SERIES > $tmpfile
- status=$?
- if [ $status -ne 0 ]
- then
- rm -f $tmpfile
- return 1
- fi
- else
- echo $patch$patch_args > $tmpfile
- if [ -e $SERIES ]
- then
- cat $SERIES >> $tmpfile
- fi
- fi
- mv -f $tmpfile $SERIES
-}
-
-remove_from_series()
-{
- local patch=$1
-
- tmpfile=$(gen_tempfile) || return 1
- @AWK@ '
- ! /^'"$(quote_re $patch)"'(|\.patch|\.diff?)(|\.gz|\.bz2)([ \t]|$)/ \
- { print }
- ' $SERIES > $tmpfile
- if [ $? -eq 0 ]
- then
- mv -f $tmpfile $SERIES
- else
- rm -f $tmpfile
- return 1
- fi
-}
-
-pc_file_name()
-{
- while [ $# -gt 0 ]
- do
- echo ".pc/$1/.pc"
- shift
- done
-
-}
-
-backup_file_name()
-{
- local patch=$1
- while [ $# -gt 1 ]
- do
- echo ".pc/$patch/$2"
- shift
- done
-}
-
-cat_series()
-{
- if [ -e $SERIES ]
- then
- @SED@ -e '/^#/d' -e 's/^[ '$'\t'']*//' -e 's/[ '$'\t''].*//' \
- -e 's/\.gz$//' -e 's/\.bz2$//' \
- -e 's/\.patch$//' -e 's/\.diff\?$//' $SERIES
- else
- return 1
- fi
-}
-
-top_patch()
-{
- [ -e $DB ] && tail -n 1 $DB
-}
-
-is_numeric()
-{
- echo $1 | grep -q '^[0-9]*$'
-}
-
-is_applied_last()
-{
- local patch=$1
- [ "$(top_patch)" == $patch ]
-}
-
-is_applied()
-{
- local patch=$1
- [ -e $DB ] || return 1
- grep -q -E "^$(quote_re $patch)\$" $DB
-}
-
-applied_patches()
-{
- [ -e $DB ] || return 1
- cat $DB
-}
-
-applied_before()
-{
- local patch=$1
-
- if [ -n "$patch" ]
- then
- @AWK@ '
- $0 == "'"$patch"'" { exit }
- { print }
- ' $DB
- fi
-}
-
-patches_before()
-{
- local patch=$1
-
- if [ -n "$patch" ]
- then
- cat_series \
- | @AWK@ '
- $0 == "'"$patch"'" { exit }
- { print }
- '
- fi
-}
-
-patches_after()
-{
- local patch=$1
- if [ -n "$patch" ]
- then
- cat_series \
- | @AWK@ '
- seen { print }
- $0 == "'"$patch"'" { seen=1 }
- '
- else
- cat_series
- fi
-}
-
-# List all patches that have been applied on top of patch $1
-patches_on_top_of()
-{
- local patch=$1
- [ -e $DB ] || return
- @AWK@ '
- $0 == "'"$patch"'" { seen=1 ; next }
- seen { print }
- ' $DB
-}
-
-# Print the name of the patch that modified the file $2 next after
-# patch $1, or print nothing if patch $1 is on top.
-next_patch_for_file()
-{
- local patch=$1 file=$2
- local patches_on_top=$(patches_on_top_of $patch)
-
- if [ -n "$patches_on_top" ]
- then
- grep -l -E "^$(quote_re $file)\$" \
- $(pc_file_name $patches_on_top) \
- | head -n 1 \
- | @SED@ -e 's:^\.pc/::' -e 's:/\.pc$::'
- fi
-
- #modified_files $file -- $patches_on_top \
- #| cut -d $'\t' -f2 \
- #| cut -d ' ' -f1
-}
-
-# Create a list of files and the patches that modify them.
-refresh_patches_per_file()
-{
- local pc_files=$(pc_file_name $(cat_series))
- local ex_pc_files pc_file
-
- if [ -e .pc/patches-per-file ]
- then
- local needs_refresh
- for pc_file in pc_files
- do
- if [ .pc/patches-per-file -ot $pc_file ]
- then
- needs_refresh=1
- break
- fi
- done
- if [ -z "$needs_refresh" ]
- then
- return 0
- fi
- fi
-
- for pc_file in $pc_files
- do
- if [ -e $pc_file ]
- then
- ex_pc_files[${#ex_pc_files[@]}]=$pc_file
- fi
- done
-
- if [ ${#ex_pc_files[@]} -eq 0 ]
- then
- rm -f .pc/patches-per-file
- return 0
- fi
-
- @AWK@ '
- ARGIND!=saved { sub(/^.pc\//, "", FILENAME)
- sub(/\/\.pc/, "", FILENAME)
- saved=ARGIND
- }
- { if (files[$0])
- files[$0]=files[$0] " " FILENAME
- else
- files[$0]=FILENAME
- }
- END { for (file in files)
- printf "%s\t%s\n", file, files[file]
- }
- ' "${ex_pc_files[@]}" > .pc/patches-per-file
-}
-
-# For a lists of patches and a list of files, compute which patches
-# modify which files. Invoked as
-# modified_files file ... [-- patch ...]
-#
-modified_files()
-{
- if ! refresh_patches_per_file
- then
- return 1
- fi
-
- @AWK@ '
- BEGIN { no_files=1
- no_patches=1
- for (i=1; i<ARGC; i++) {
- if (ARGV[i]=="--")
- break
- files[ARGV[i]]=1
- no_files=0
- }
- for (i++; i<ARGC; i++) {
- patches[ARGV[i]]=1
- no_patches=0
- }
- split("", ARGV) # read from standard input
- }
- no_files || files[$1] {
- if (no_patches) {
- print
- next
- }
- for (i=2; i<=NF; i++)
- if ($i in patches) {
- printf "%s\t%s", $1, $i
- for (i++; i<=NF; i++)
- if ($i in patches)
- printf " %s", $i
- printf "\n"
- }
- }
- ' "$@" < .pc/patches-per-file
-}
-
-add_to_db()
-{
- local file_name=$(patch_file_name $1)
- file_name=`basename $(patch_file_name $1)`
- echo $1 >> $DB
- echo $file_name >> $DB_FILE
-}
-
-remove_from_db()
-{
- local patch=$1
- local tmpfile tmpfile2
- local patch_file=$(applied_patch_file_name $1)
- tmpfile2=$(gen_tempfile)
- if tmpfile=$(gen_tempfile)
- then
- grep -v -E "^$(quote_re $patch)\$" $DB > $tmpfile
- grep -v -E "^$(quote_re $patch_file)\$" $DB > $tmpfile2
- mv -f $tmpfile $DB
- mv -f $tmpfile2 $DB_FILE
- rm -f $tmpfile
- rm -f $tmpfile2
- [ -s $DB ] || rm -f $DB
- [ -s $DB_FILE ] || rm -f $DB_FILE
- fi
-}
-
-stripit()
-{
- if [ -n "$1" ]
- then
- echo $1 |
- @SED@ -e 's/^\(\.\/\)*//' \
- -e 's/^'"$(quote_bre $P)"'patches\///' \
- -e 's/\.gz$//' -e 's/\.bz2$//' \
- -e 's/\.patch$//' -e 's/\.diff\?$//'
- fi
-}
-
-file_in_patch()
-{
- local file=$1 patch=$2
- files_in_patch $patch \
- | grep -q -E "^$(quote_re $file)\$"
-}
-
-files_in_patch()
-{
- local pc_file=$(pc_file_name $1)
- if [ -e "$pc_file" ]
- then
- cat $pc_file
- fi
-}
-
-touched_by_patch()
-{
- local strip=$1 patch=$2
- cat_file $(patch_file_name $patch) \
- | @AWK@ '
- /^\+\+\+[ \t]/ {
- sub(/^\+\+\+[ \t]/, "")
- sub(/[ \t].*/, "")
- sub(/^\/dev\/null/, "")
- for (i=0; i<'$strip'; i++)
- sub(/^[^\/]*\//, "")
- print
- }'
-}
-
-refresh_file_list()
-{
- local patch=$1
- local pc_file=$(pc_file_name $patch)
- local patch_file=$(patch_file_name $patch)
-
- if ! [ -e "$patch_file" ]
- then
- return 0
- fi
- if [ ! -e $pc_file -o \
- $pc_file -ot $patch_file -o \
- $pc_file -ot $SERIES ]
- then
- local tmpfile status
- if ! mkdir -p $(dirname $pc_file) || \
- ! tmpfile=$(gen_tempfile)
- then
- return 1
- fi
-
- # Do not reorder files in the file list...
-
- if [ -e $pc_file ]
- then
- cat $pc_file >> $tmpfile
- fi
- if ! touched_by_patch $(patch_strip_level $patch) \
- $patch >> $tmpfile
- then
- return 1
- fi
- @AWK@ ' { if (seen[$0]) next
- seen[$0]=1
- print
- }' $tmpfile > $pc_file
- rm $tmpfile
- return 0
- fi
-}
-
-fix_diff_header()
-{
- local from=$1 to=$2
- @SED@ -e 's/^--- [^ '$'\t'']*/--- '"$(quote_bre $from)"'/' \
- -e 's/^+++ [^ '$'\t'']*/+++ '"$(quote_bre $to)"'/'
-}
-
-diff_file()
-{
- local file=$1 old_file=$2 new_file=$3
- local old_hdr new_hdr line
-
- if [ ! -e "$old_file" -a ! -e "$new_file" ]
- then
- return 0
- fi
- if [ $opt_strip_level -eq 0 ]
- then
- old_hdr=$file.orig
- new_hdr=$file
- else
- local dir=$(basename $PWD)
- old_hdr=$dir.orig/$file
- new_hdr=$dir/$file
- fi
-
- @DIFF@ -Nu $QUILT_DIFF_OPTS $old_file $new_file |
- if read line
- then
- echo "Index: $new_hdr"
- echo "==================================================================="
- (echo "$line" ; cat) \
- | fix_diff_header $old_hdr $new_hdr
- fi
-}
-
-cat_file()
-{
- local filename
-
- for filename in "$@"
- do
- if [ -e "$filename" ]
- then
- case "$filename" in
- *.gz|*.tgz)
- gzip -cd "$filename" ;;
- *.bz2)
- bzip2 -cd "$filename" ;;
- *)
- cat "$filename" ;;
- esac
- fi
- done
-}
-
-cat_to_file()
-{
- local filename="$1"
-
- if [ -z "$filename" ]
- then
- cat
- else
- case "$filename" in
- *.gz|*.tgz)
- gzip -c > "$filename" ;;
- *.bz2)
- bzip2 -c > "$filename" ;;
- *)
- cat > "$filename" ;;
- esac
- fi
-}
-
-patch_description()
-{
- local patch_file=$1
-
- if [ -e "$patch_file" -o -z "$patch_file" ]
- then
- @AWK@ '
- $1 == "---" { exit }
- /^Index:[ \t]|^diff[ \t]|^==*$/ \
- { eat = eat $0
- next }
- eat { print eat
- eat="" }
- { print }
- ' $patch_file
- fi
-}
-
-in_array()
-{
- local a=$1
- while [ $# -gt 1 ]
- do
- shift
- [ "$a" = "$1" ] && return 0
- done
- return 1
-}
-
-gen_tempfile()
-{
- # This is a substitute for the mktemp executable.
- internal_mktemp()
- {
- local try n
- if [ x"$1" = x"-d" ]
- then
- for ((n=0 ; $n<100 ; n++))
- do
- try=${2%XXXXXX}$RANDOM
- mkdir -m 700 $try 2>/dev/null \
- && break
- done
- else
- local user_mask=$(umask)
- umask 077
- set -o noclobber
- for ((n=0 ; $n<100 ; n++))
- do
- try=${1%XXXXXX}$RANDOM
- echo -n "" 2> /dev/null > $try \
- && break
- done
- set +o noclobber
- umask $user_mask
- fi
- if [ $n -lt 100 ]
- then
- echo $try
- else
- return 1
- fi
- }
-
- local dir
- if [ x"$1" = x"-d" ]
- then
- dir=-d
- shift
- fi
- @MKTEMP@ $dir ${1:-${TMPDIR:-/tmp}/quilt}.XXXXXX
-}
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# Read in library functions
-if [ "$(type -t patch_file_name)" != function ]
-then
- if ! [ -r @SCRIPTS@/patchfns ]
- then
- echo "Cannot read library @SCRIPTS@/patchfns" >&2
- exit 1
- fi
- . @SCRIPTS@/patchfns
-fi
-
-usage()
-{
- echo $"Usage: $0 [-fRq] patchname"
- exit 1
-}
-
-verify_removal()
-{
- local patch=$1
- local bup file status=0
- local dir=$(basename $PWD) suffix=${patch//\//_}
-
- # Check if all changes of the patch are undone
- for file in $(files_in_patch $patch)
- do
- bup=$(backup_file_name $patch $file)
- if ! [ -s $file -o -s $bup ] || \
- cmp $file $bup > /dev/null 2> /dev/null
- then
- continue
- fi
-
- if [ $status -eq 0 ]
- then
- echo $"Patch does not remove changes:"
- fi
-
- @DIFF@ -Nu $QUILT_DIFF_OPTS $bup $file \
- | @SED@ -e 's:^--- [^ '$'\t'']*:--- '"$dir/$file.orig"':' \
- -e 's:^+++ [^ '$'\t'']*:+++ '"$dir/$file"':'
-
- status=1
- done
- return $status
-}
-
-files_may_have_changed()
-{
- local patch=$1 file
- local patch_file=$(applied_patch_file_name $patch)
- local pc_file=$(pc_file_name $patch)
-
- if ! [ -e $pc_file ]
- then
- return 1
- fi
-
- local apply_ts=$(date -r $pc_file '+%s') ts
-
- if [ -e "$patch_file" -a $pc_file -ot "$patch_file" ]
- then
- return 0
- fi
-
- for file in $(files_in_patch $patch)
- do
- if ! [ -e $file ]
- then
- return 0 # file is missing
- fi
-
- ts=$(date -r $file '+%s')
- if [ $? -ne 0 -o $ts -gt $apply_ts ]
- then
- return 0 # file has changed
- fi
- done
- return 1
-}
-
-rollback_patch()
-{
- local patch=$1 pc_file=$(pc_file_name $patch)
- @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -z ~rpatch -r
- rm -f $(files_in_patch $patch | @SED@ -e 's/$/\.rej/')
-}
-
-interrupt()
-{
- local patch=$1
- rollback_patch $patch
- echo $"Interrupted by user; patch $patch was not removed."
- exit 1
-}
-
-reverse_patch()
-{
- local patch=$1
- local patch_file=$(patch_file_name $patch)
-
- if ! [ -s $patch_file ]
- then
- echo $"Patch file $patch_file appears to be empty"
- return 0
- fi
-
- if [ "x${patch_file:(-3)}" = "x.gz" ]
- then
- gzip -cd $patch_file \
- | @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -R -E $silent
- elif [ "x${patch_file:(-4)}" = "x.bz2" ]
- then
- bzip2 -cd $patch_file \
- | @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -R -E $silent
- else
- @PATCH@ $(patch_args $patch) --no-backup-if-mismatch \
- -R -E $silent -i $patch_file
- fi
-}
-
-rpatch()
-{
- local patch=$1 pc_file=$(pc_file_name $patch)
-
- local patch_file=$(patch_file_name $patch)
- if [ $opt_force != 1 ] && [ -z "$patch_file" ]
- then
- echo "can not find the $patch in your series file, the series file may changed"
- echo "please use -f option"
- return 0
- fi
- if ! [ -e $pc_file ]
- then
- echo $"Patch $patch appears to be empty, removed"
- remove_from_db $patch
- return 0
- fi
-
- echo $"Removing $patch"
- trap "" SIGINT
- if [ -n "$opt_force" ] || \
- ( [ -z "$opt_remove" ] && ! files_may_have_changed $patch )
- then
- # Optimize: Force remove if the patch has not been
- # modified since it was applied. (Forced remove is
- # faster!)
-
- @LIB@/backup-files $silent -f $pc_file -B .pc/$patch/ -r
- status=$?
- remove_from_db $patch
- rm -f $pc_file~refresh
- if [ $status != 0 ]
- then
- exit $status
- fi
- else
- if ! @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -z ~rpatch
- then
- echo $"Failed to create temporary files" >&2
- return 1
- fi
-
- trap "interrupt $patch" SIGINT
-
- reverse_patch $patch
- status=$?
-
- trap "" SIGINT
-
- if [ $status -eq 0 ] && verify_removal $patch
- then
- @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -z ~rpatch -x
- @LIB@/backup-files $silent_unless_verbose \
- -f $pc_file -B .pc/$patch/ -x
-
- remove_from_db $patch
- else
- rollback_patch $patch
- echo $"Patch $patch does not remove (enforce with -f)"
- return 1
- fi
- fi
- trap - SIGINT
-}
-
-options=`getopt -o fRqvh -- "$@"`
-
-if [ $? -ne 0 ]
-then
- usage
-fi
-opt_force=0
-eval set -- "$options"
-
-while true
-do
- case "$1" in
- -f)
- opt_force=1
- shift ;;
- -R)
- opt_remove=1 # remove properly with patch -R; no tricks
- unset opt_force
- shift ;;
- -q)
- opt_quiet=1
- shift ;;
- -v)
- opt_verbose=1
- shift ;;
- -h)
- usage -h ;;
- --)
- shift
- break ;;
- esac
-done
-
-if [ $# -ne 1 ]
-then
- usage
-fi
-
-patch=$(stripit $1)
-[ -n "$opt_quiet" ] && silent=-s
-[ -z "$opt_verbose" ] && silent_unless_verbose=-s
-
-top=$(top_patch)
-if [ -n "$top" -a -e $(pc_file_name $top)~refresh -a -z "$opt_force" ]
-then
- echo $"The topmost patch $top needs to be refreshed first."
- exit 1
-fi
-
-rpatch "$patch" || exit 1
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh
+++ /dev/null
-#! @BASH@
-
-# This script is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# See the COPYING and AUTHORS files for more details.
-
-# defaults
-debug=0
-specfile=""
-outfile=""
-
-function usage() {
-cat <<EOF
-Usage: quilt spec2series [ options ] specfile
-
--h print this text
--d debug mode (prints lots additional info
- as comments into the output file)
--o <file>
- specify output file, stdout if unspecified
-
-EOF
-}
-
-# parse args
-while test "$1" != ""; do
- case "$1" in
- -h | --help)
- usage; exit 0
- ;;
- -d | --debug)
- debug=1; shift
- ;;
- -o | --outfile)
- outfile="$2"; shift; shift
- ;;
- *)
- specfile="$1"
- break;
- ;;
- esac
-done
-
-if test ! -f "$specfile"; then
- usage
- exit 1
-fi
-
-# get absolute patch for specfile location
-specdir=`dirname $specfile`
-specfile=`basename $specfile`
-case "$specdir" in
- .) specdir="`pwd`"
- ;;
- /*) # nothing
- ;;
- *) specdir="`pwd`/$specdir"
- ;;
-esac
-
-# create tmp work dir
-WORK="${TMPDIR-/tmp}/rpmlog-$$"
-mkdir -p "$WORK" || exit 1
-trap 'rm -rf "$WORK"' EXIT
-mkdir -p "$WORK/build"
-mkdir -p "$WORK/bin"
-
-# create md5 sums, also for uncompressed files
-echo -n "### md5: " >&2
-(cd $specdir; for file in /dev/null *; do
- case "$file" in
- ready | bigpack | MD5SUMS | MD5SUMS.meta | *.spec | *.changes)
- continue
- ;;
- esac
- type="`file -b $file | cut -d" " -f1`"
- case "$type" in
- compress*)
- echo -n "z" >&2
- set -- `zcat $file | md5sum`
- echo "$1 zcat ${file}"
- ;;
- gzip)
- echo -n "g" >&2
- set -- `zcat $file | md5sum`
- echo "$1 zcat ${file}"
- ;;
- bzip2)
- echo -n "b" >&2
- set -- `bzcat $file | md5sum`
- echo "$1 bzcat ${file}"
- ;;
- esac
- echo -n "." >&2
- set -- `md5sum < $file`
- echo "$1 cat ${file}"
-done) > $WORK/md5sum
-echo $" done" >&2
-
-# prepare rpm dir fixups and hooks
-RPM="rpm --rcfile=/usr/lib/rpm/rpmrc:$WORK/rpmrc"
-PATH="$WORK/bin:$PATH"
-grep ^macrofiles /usr/lib/rpm/rpmrc \
- | @SED@ -e "/macrofiles/s|$|:$WORK/rpmmacros|" \
- > $WORK/rpmrc
-cat <<-EOF > "$WORK/rpmmacros"
- %_sourcedir $specdir
- %_specdir $specdir
- %_builddir $WORK/build
-EOF
-
-# wrapper script for patch and tar
-cat <<-'EOF' > "$WORK/bin/patch"
- #!/bin/sh
-
- # save stuff for log
- unpackcmd=`basename $0`
- unpackdir=`pwd`
- unpackargs="$*"
- uncompress="false"
- unpackfile="[oops]"
-
- # sort of progress bar
- case $unpackcmd in
- tar) echo -n "t" >&2;;
- patch) echo -n "p" >&2;;
- *) echo -n "?" >&2;;
- esac
-
- # find real binary
- realcmd=""
- test -x "/bin/$unpackcmd" && realcmd="/bin/$unpackcmd"
- test -x "/usr/bin/$unpackcmd" && realcmd="/usr/bin/$unpackcmd"
- test "$realcmd" = "" && exit 1
-
- # put data into tmpfile, exec real cmd, return on failure
- WORK=`dirname $RPM_BUILD_DIR`
- cat > "$WORK/data"
- if test -x /bin/$unpackcmd; then
- cmddir="/bin"
- fi
- $realcmd $* < "$WORK/data"
- retval="$?"
- test "$retval" != "0" && exit $retval
-
- # find original data file by md5sum
- set -- `md5sum < "$WORK/data"`
- unpackfile="[$1]"
- set -- `cat "$WORK/md5sum"`
- while test "$1" != ""; do
- if test "[$1]" = "$unpackfile"; then
- uncompress="$2"
- unpackfile="$3"
- break
- fi
- shift
- done
-
- # print results
- unpackdir=`echo $unpackdir | @SED@ -e "s|$RPM_BUILD_DIR|BUILD|"`
- echo -n "# log: [$unpackdir] $uncompress $unpackfile" >>$WORK/cmdlog
- echo " | $unpackcmd $unpackargs" >>$WORK/cmdlog
- if test "$unpackcmd" = "patch" -a \
- -f "$RPM_SOURCE_DIR/$unpackfile"; then
- patchdir="${unpackdir#BUILD/}"
- if test ! -f "$WORK/patchdir"; then
- echo -n $patchdir > $WORK/patchdir
- fi
- if test "`cat $WORK/patchdir`" = "$patchdir"; then
- level=`echo $unpackargs | tr " " "\n" | grep ^-p`
- echo "$unpackfile $level" >> $WORK/patchlog
- fi
- fi
- if test "$unpackcmd" = "tar" -a \
- -f "$RPM_SOURCE_DIR/$unpackfile"; then
- echo -n "# Source: $unpackfile" >>$WORK/tarlog
- if test "$unpackdir" != "BUILD"; then
- echo -n " -C ${unpackdir#BUILD/}" >>$WORK/tarlog
- fi
- echo "" >>$WORK/tarlog
- fi
-EOF
-chmod 755 "$WORK/bin/patch"
-ln -s patch "$WORK/bin/tar"
-
-# let rpm do all the dirty specfile stuff ...
-echo -n "### rpm: " >&2
-touch $WORK/patchlog
-$RPM --nodeps --quiet -bp "$specdir/$specfile" </dev/null
-echo $" done" >&2
-
-# print results saved by the wrapper script
-(
- # header
- echo "# Patch series file for quilt, created by $0"
- echo "#"
- echo "# Sourcedir: $specdir"
- echo "# Specfile: $specfile"
- if test -f $WORK/patchdir; then
- echo "# Patchdir: `cat $WORK/patchdir`"
- fi
- echo "#"
-
- # additional info for trouble shooting
- if test "$debug" = "1"; then
- cat $WORK/md5sum | @SED@ -e 's/^/# md5: /'
- echo "#"
-
- test -f $WORK/cmdlog && cat $WORK/cmdlog && echo "#"
- fi
-
- # list tarballs + patches
- test -f $WORK/tarlog && cat $WORK/tarlog && echo "#"
- test -f $WORK/patchlog && cat $WORK/patchlog
-)|(
- if test "$outfile" != ""; then
- cat > "$outfile"
- else
- cat
- fi
-)
-### Local Variables:
-### mode: shell-script
-### End:
-# vim:filetype=sh