quilt-0.61/COPYING0000644000175000017500000004311011634336352014142 0ustar mquinsonmquinson 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. 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.) 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. 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. 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 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. Copyright (C) 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. , 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. quilt-0.61/AUTHORS0000644000175000017500000000212611634336352014161 0ustar mquinsonmquinsonQuilt started as a series of scripts written by Andrew Morton (patch-scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see below). Please report bugs to the quilt-dev mailing list, . Quilt ===== Andreas Gruenbacher Clean up, reorganize, speedups, documentation. Package up as RPM. Gerd Knorr Contributed spec2series (which is inspect now). Martin Quinson (martin.quinson#debian.org) Several little patches and improvements. Internationalization. Debian packaging. Peter Braam Tom Wang Fix pop logic if series file changes. Pre-quilt (patch-scripts) ========================= Andrew Morton Collection of scripts for patch management (patch-scripts). Stephen Cameron Contributed pstatus. Matt Reppert Jeremy Fitzhardinge Contributions to Andrew's scripts. quilt-0.61/TODO0000644000175000017500000000672411726705776013625 0ustar mquinsonmquinsonGeneral: - Abstract backup operations to/from the .pc/ directory, so that optionally something like rcs can be used instead of scripts/backup-files? - 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. - Support different diff/patch options for different patches. (By specifying them in the series file?) - Add command that generates a summary (patch names + descriptions). - Add more long-form options, and add some nagative options so that defaults from .quiltrc can easily be overruled. - series.conf: Allow to specify options like -R, -u, -Unum, -c, -Cnum per patch. - Whenever the contents of the QUILT_PATCHES directory change, optionally call a trigger so that another tool can keep track of the patches directory history (e.g., CVS, RCS). Also call the trigger when the series file changes? - Check if we can somehow support -p0 style patches that are applied in subdirectories (patch -d option): There are problems with relative $QUILT_PATCHES, and likely with several commands. - wrapper scripts: check with [ -ef ] if the wrapper is the same as the default binary found to avoid wrappers like awk -> gawk. - Add some more colors. - Add the same kind of (optional) pager handling that git has. Documentation: - How to import a complete directory before doing wild changes? - Describe how to work with hard-linked trees - /etc/quilt.quiltrc and ~/.quiltrc - diff/refresh: C -c -N -n options - Subdirectory support quilt new: - Prevent spaces in patch names. quilt push: - Add option to print the reject to stdout - If push fails, check if patch can be reversed. - Add -l option to ignore whitespace changes. - Check if there are any .orig or .rej files and barf if so. quilt pop: - The timestamp comparison logic is broken; need to track last-known timestamps per file. quilt diff: - Error message when a file is specified that isn't in the patch(es). - When a directory is specified, diff all files below it. quilt refresh: - Add an -m option similar to `cvs commit -m "..."' to simplify keeping a change log in the patch documentation? - Add option to log the updates of each patch (e.g., append the output of ``quilt diff -zR'' to patch.log on each update). - Remove existing diffstat if --diffstat is not specified? - Improve whitespace stripping quilt import: - Add option to replace the currently applied patch with a new one, by backing out the topmost patch first. quilt setup: - Also recognize other uses of tar and patch (with options in the command line), etc. quit edit: - Check for actual changes, and remove files again that haven't been changed. quilt files: - Print filenames relative to the working directory. quilt mail: - Improve recipient handling (quote special characters automatically; encode 8-bit characters). - Character set handling is missing, too. - Too many passes of edmail make it a bit slow. - If someone adds a References header to the intro, the References header added to patch messages for threading do not append to that header. They probably should; not sure if duplicate References headers are valid. quilt fold: - Add an -R option for reverse-applying a patch. quilt-0.61/Makefile.in0000644000175000017500000003176412251037232015157 0ustar mquinsonmquinsonPACKAGE := @PACKAGE_NAME@ VERSION := @PACKAGE_VERSION@ RELEASE := @PACKAGE_RELEASE@ PACKAGE_TARNAME := @PACKAGE_TARNAME@ PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@ prefix := @prefix@ exec_prefix := @exec_prefix@ bindir := @bindir@ datarootdir := @datarootdir@ datadir := @datadir@ docdir := @docdir@ mandir := @mandir@ localedir := $(datadir)/locale emacsdir := $(datadir)/emacs/site-lisp etcdir := $(subst /usr/etc,/etc,$(prefix)/etc) INSTALL := @INSTALL@ POD2MAN := @POD2MAN@ COLUMN := @COLUMN@ GETOPT := @GETOPT@ CP := @CP@ DATE := @DATE@ PERL := @PERL@ BASH := @BASH@ SHELL:= @BASH@ # It does not work if dash is used as a shell, for example GREP := @GREP@ TAIL := @TAIL@ TR := @TR@ SED := @SED@ AWK := @AWK@ FIND := @FIND@ XARGS := @XARGS@ DIFF := @DIFF@ PATCH := @PATCH@ MKTEMP := @MKTEMP@ MSGMERGE := @MSGMERGE@ MSGFMT := @MSGFMT@ XGETTEXT := @XGETTEXT@ MSGUNIQ := @MSGUNIQ@ MSGCAT := @MSGCAT@ DIFFSTAT := @DIFFSTAT@ RPMBUILD := @RPMBUILD@ SENDMAIL := @SENDMAIL@ USE_NLS := @USE_NLS@ STAT_HARDLINK := @STAT_HARDLINK@ PATCH_WRAPPER := @PATCH_WRAPPER@ COMPAT_SYMLINKS := @COMPAT_SYMLINKS@ COMPAT_PROGRAMS := @COMPAT_PROGRAMS@ default: all #----------------------------------------------------------------------- DIRT += $(shell $(FIND) . -name '*~') DIRT += $(shell $(FIND) . -name '.\#*') SRC += COPYING AUTHORS TODO Makefile.in configure.ac \ config/install-sh quilt.spec.in quilt.changes \ bash_completion quilt.quiltrc aclocal.m4 git-desc DIRT += quilt.spec DIRT += $(PACKAGE)-*.tar.gz DIRT += $(PACKAGE)-*.tar.gz.sig DIRT += $(PACKAGE)-*.tar.bz2 BIN_IN := quilt guards BIN_SRC := $(BIN_IN:%=%.in) BIN := $(BIN_IN) SRC += $(BIN_SRC:%=bin/%) bin/patch-wrapper.in DIRT += $(BIN_IN:%=bin/%) bin/patch-wrapper QUILT_IN := $(patsubst quilt/%.in,%,$(wildcard quilt/*.in)) QUILT_SRC := $(QUILT_IN:%=%.in) QUILT := $(QUILT_IN) SRC += $(QUILT_SRC:%=quilt/%) DIRT += $(QUILT_IN:%=quilt/%) SCRIPTS_IN := patchfns inspect dependency-graph edmail \ remove-trailing-ws backup-files SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in) SCRIPTS := $(SCRIPTS_IN) SRC += $(SCRIPTS_SRC:%=quilt/scripts/%) SRC += quilt/scripts/utilfns DIRT += $(SCRIPTS_IN:%=quilt/scripts/%) COMPAT := $(COMPAT_PROGRAMS:%=compat/%) $(COMPAT_SYMLINKS:%=compat/%) SRC += $(wildcard compat/*.in) $(wildcard compat/*.sh) DIRT += $(patsubst %.in,%,$(wildcard compat/*.in)) $(COMPAT_SYMLINKS:%=compat/%) LIB_SRC := quilt.el SRC += $(LIB_SRC:%=lib/%) DOC_IN := README quilt.1 DOC_SRC := $(DOC_IN:%=doc/%.in) DOC := $(DOC_IN) SRC += $(DOC_SRC) SRC += doc/main.tex doc/quilt.pdf doc/Makefile \ doc/README.MAIL doc/README.EMACS DIRT += $(DOC_IN:%=doc/%) doc/reference MAN1 := doc/quilt.1 ifneq ($(POD2MAN),) MAN1 += bin/guards.1 DIRT += bin/guards.1 endif LINGUAS := fr de ja ru PO := quilt.pot $(LINGUAS:%=%.po) SRC += $(PO:%=po/%) DIRT += po/*.mo po/*~ SRC += $(wildcard test/*.test) test/run test/test.quiltrc SRC += changes2changelog NON_EXEC_IN := doc/quilt.1 doc/README quilt/scripts/patchfns quilt/scripts/utilfns GIT_DESC := $(shell ./git-desc | sed -e 's:^v::') TESTS := $(filter-out test/patch-wrapper.test,$(wildcard test/*.test)) DIRT += test/.depend $(wildcard test/.*.ok) # Settings for running the uninstalled version of quilt in the source tree: PATH := $(CURDIR)/bin:$(CURDIR)/compat:$(PATH) QUILT_DIR := $(CURDIR)/quilt QUILTRC := $(CURDIR)/test/test.quiltrc export QUILT_DIR QUILTRC #----------------------------------------------------------------------- all : configure scripts compat $(DOC:%=doc/%) $(MAN1) mofiles ifeq ($(USE_NLS),yes) mofiles : $(LINGUAS:%=po/%.mo) else mofiles : endif %.mo : %.po $(MSGFMT) --statistics -o $@ $< %.po : po/quilt.pot $(MSGMERGE) -o $@ $@ $^ scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) \ $(SCRIPTS:%=quilt/scripts/%) \ $(if $(PATCH_WRAPPER),bin/patch-wrapper) dist : clean $(PACKAGE)-$(VERSION).tar.gz publish : dist gpg --detach-sign --use-agent $(PACKAGE)-$(VERSION).tar.gz scp $(PACKAGE)-$(VERSION).tar.gz{,.sig} \ dl.sv.nongnu.org:/releases/quilt/ snapshot : $(PACKAGE)-$(GIT_DESC).tar.bz2 rpm rpmbuild : $(PACKAGE)-$(VERSION).tar.gz $(RPMBUILD) -ta $< po/quilt.pot: $(filter-out debian/control.in doc/quilt.1.in \ doc/README.in, $(wildcard */*.in) \ $(wildcard */*/*.in)) rm -f po/quilt.pot; touch po/quilt.pot for file in $+ ; do \ if test -n "`$(SED) -ne '1{ /@BASH''@/p }' $$file`" \ -o "$$file" = quilt/scripts/patchfns.in; then \ $(BASH) --dump-po-strings $$file ; \ elif test -n "`$(SED) -ne '1{ /@PERL''@/p }' $$file`"; then \ $(XGETTEXT) --from-code=UTF-8 --omit-header --language=Perl \ --keyword=_ -o - $$file; \ else \ echo "Don't know how to handle $$file" >&2 ; \ exit 1; \ fi \ done \ |$(MSGUNIQ) \ |$(MSGCAT) --force-po -F - $@ -o $@ doc/README : doc/README.in doc/reference @echo "README.in -> README" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ cat doc/reference \ ;; \ *) \ echo $$line \ ;; \ esac ; \ done 2>&1 < $< > $@ doc/quilt.1: doc/quilt.1.in doc/reference $(COMPAT) @echo "quilt.1.in -> quilt.1" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ $(SED) -e 's/^quilt \([^ ]*\)\(.*\)/.IP "\\fB\1\\fP\2 " 4/' \ -e $$'s/^ \\(-[^\t]*\\)\t\\?/.IP " \\1" 8\\\n/' \ -e $$'s/^ \t\\?//' \ < doc/reference \ ;; \ *@DOCSUBDIR@*) \ echo "$$line" | \ $(SED) -e 's:@DOCSUBDIR''@:$(docdir):g' \ ;; \ *) \ echo "$$line" \ ;; \ esac; \ done < $< 2>&1 > $@ doc/reference : bin/quilt $(QUILT:%=quilt/%) quilt/scripts/patchfns quilt/scripts/utilfns $(COMPAT) @unset LANG LC_MESSAGES LC_CTYPE LC_ALL; \ for i in $(sort $(QUILT)); \ do \ echo; \ QUILT_PC=.fake_pc quilt $$i -h; \ echo; \ done | \ $(SED) -e 's/\$$EDITOR ([^)]*)/$$EDITOR/' \ -e '/^$$/!s/^/ /' \ -e 's/^ Usage: *//' > $@ bin/guards.1 : bin/guards $(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)-$(GIT_DESC).tar.bz2 : $(SRC) configure $(PACKAGE).spec rm -f $(PACKAGE)-$(GIT_DESC) $@ ln -s . $(PACKAGE)-$(GIT_DESC) tar chf - $(+:%=$(PACKAGE)-$(GIT_DESC)/%) | bzip2 -9 > $@ rm -f $(PACKAGE)-$(GIT_DESC) @echo "File $@ created." $(PACKAGE).spec : $(PACKAGE).spec.in $(PACKAGE).changes Makefile @echo "Generating spec file" ; \ set -e ; \ changelog="`./changes2changelog $(PACKAGE).changes`" ; \ $(AWK) '{ gsub(/@VERSION''@/, "$(VERSION)") ; \ gsub(/@RELEASE''@/, "$(RELEASE)") ; \ gsub(/@CHANGELOG''@/, changelog) ; \ print }' changelog="$$changelog" $< > $@ $(patsubst %.in,%,$(wildcard bin/*.in quilt/*.in quilt/scripts/*.in)) :: Makefile % :: %.in @echo "$< -> $@" >&2 @$(SED) -e 's:@QUILT_DIR''@:$(datadir)/$(PACKAGE):g' \ -e 's:@PERL''@:$(PERL):g' \ -e 's:@BASH''@:$(BASH):g' \ -e 's:@PATCH''@:$(PATCH):g' \ -e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \ -e 's:@VERSION''@:$(VERSION):g' \ -e 's:@RELEASE''@:$(RELEASE):g' \ -e 's:@ETCDIR''@:$(etcdir):g' \ -e 's:@LOCALEDIR''@:$(localedir):g' \ -e 's:@DOCSUBDIR''@:$(docdir):g' \ $< > $@ @$(if $(filter $@,$(NON_EXEC_IN)),,chmod +x $@) configure : configure.ac aclocal.m4 autoconf @echo "Please run ./configure" @false Makefile : Makefile.in configure @echo "Please run ./configure" @false compat_leftover := $(filter-out $(COMPAT),$(shell $(FIND) compat -type f -perm -0100)) .PHONY :: compat compat :: $(COMPAT) $(if $(compat_leftover),rm -f $(compat_leftover)) # VIRTUAL_SYMLINKS creates a shell script that operates similar to # a symbolic link. It is used to workaround the way make treats # symlinks as targets. # Usage: $(call VIRTUAL_SYMLINK, source, target) define VIRTUAL_SYMLINK @echo "Generating $(strip $(1)) wrapper" >&2; @printf "#!%s\nexec %s "'"$$@"'"\n" $(BASH) $(strip $(1)) > $(2); endef # Rule to create compat/ for each binary in $(COMPAT_SYMLINKS) $(COMPAT_SYMLINKS:%=compat/%) :: Makefile $(call VIRTUAL_SYMLINK, \ $($(shell echo $@ | $(AWK) '{split($$1, ar, "/"); print toupper(ar[2])}')), \ $(strip $@)) @chmod +x $(strip $@) install-main :: scripts $(INSTALL) -d $(BUILD_ROOT)$(bindir) $(INSTALL) -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE) $(INSTALL) -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(datadir)/$(PACKAGE)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 755 $(patsubst %,quilt/scripts/%, \ $(filter-out patchfns,$(SCRIPTS))) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 644 quilt/scripts/patchfns quilt/scripts/utilfns \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts ifneq ($(PATCH_WRAPPER),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper $(INSTALL) -m 755 bin/patch-wrapper \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper/patch endif $(INSTALL) -d $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/README \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/quilt.pdf doc/README.MAIL \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -d $(BUILD_ROOT)$(mandir)/man1 $(INSTALL) -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/ $(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 $(INSTALL) -m 644 quilt.quiltrc $(BUILD_ROOT)$(etcdir)/ $(INSTALL) -d $(BUILD_ROOT)$(emacsdir)/ $(INSTALL) -m 644 lib/quilt.el $(BUILD_ROOT)$(emacsdir)/ install-compat: install-compat1 $(COMPAT_SYMLINKS:%=install-compat-symlink-%) install-compat-symlink-% :: install-compat1 ln -sf $($(shell echo $* | $(AWK) '{print toupper($$1)}')) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat/$* install-compat1: rm -rf $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS)$(COMPAT_SYMLINKS),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS),) $(INSTALL) -m 755 $(COMPAT_PROGRAMS:%=compat/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat endif endif install: install-main install-compat uninstall :: rm -rf $(BIN:%=$(BUILD_ROOT)$(bindir)/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE) \ $(patsubst %,$(BUILD_ROOT)$(mandir)/man1/%, \ $(notdir $(MAN1))) \ $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt \ $(BUILD_ROOT)$(etcdir)/quilt.quiltrc \ $(BUILD_ROOT)$(docdir)/ \ $(BUILD_ROOT)$(emacsdir)/quilt.el check: $(TESTS:test/%.test=test/.%.ok) check-all: $(TESTS:test/%.test=check-%) check-% : test/.%.ok @/bin/true # Only include the test suite dependencies when required ifneq ($(findstring test,$(MAKECMDGOALS))$(findstring check,$(MAKECMDGOALS)),) -include test/.depend endif # (test|check) test/.patch-wrapper.ok : bin/patch-wrapper # Include a run-time generated list of dependencies for each test case test/.depend : Makefile $(TESTS) @( printf "%s : bin/quilt quilt/scripts/patchfns quilt/scripts/utilfns quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \ $(AWK) 'sub(/.*\$$ *quilt /, "") \ { print FILENAME, ":", "quilt/"$$1}' $(TESTS); \ $(AWK) 'sub(/.*\ $@ ifneq ($(shell . $(QUILTRC) ; echo $$QUILT_PATCHES_PREFIX),) CHECK_ENV := P=patches/; _P=../patches/; export P _P endif # Each tests dependencies are stored in test/.depend ifneq ($(findstring check-,$(MAKECMDGOALS)),) test/.%.ok : test/%.test FORCE else test/.%.ok : test/%.test endif @LANG=C; LC_ALL=C; \ export LANG LC_ALL; \ unset POSIXLY_CORRECT; \ $(CHECK_ENV); \ cd $(@D); \ ./run -q $(/dev/null` = "1"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ You have a version of `bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ ]) fi QUILT_COMPAT_PROG_PATH(CP, cp, [gcp cp]) QUILT_COMPAT_PROG_PATH(DATE, date, [gdate date]) if test -z "$INTERNAL_DATE"; then AC_MSG_CHECKING([whether $DATE --rfc-822 works]) if $DATE --rfc-822 >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_ERROR([no If you don't have a version of `date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. ]) fi fi QUILT_COMPAT_PROG_PATH(PERL, perl, [perl perl5]) QUILT_COMPAT_PROG_PATH(GREP, grep) AC_MSG_CHECKING([whether $GREP -q works]) if echo first | $GREP -q first 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. ]) fi AC_MSG_CHECKING([whether $GREP understands (foo|bar)]) if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. ]) fi QUILT_COMPAT_PROG_PATH(TAIL, tail) # Solaris' /usr/bin/tail doesn't understand -n. AC_MSG_CHECKING([whether $TAIL -n works]) if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. ]) fi QUILT_COMPAT_PROG_PATH(TR, tr) AC_MSG_CHECKING([whether $TR understands a-z ]) if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. ]) fi QUILT_COMPAT_PROG_PATH(STAT, stat) AC_MSG_CHECKING([whether $STAT -c '%h' works]) if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-c '%h'" else AC_MSG_RESULT(no) AC_MSG_CHECKING([whether $STAT -f '%l' works]) if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-f '%l'" else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. ]) fi fi AC_SUBST(STAT_HARDLINK) QUILT_COMPAT_PROG_PATH(SED, sed) AC_MSG_CHECKING([whether $SED understands (foo|bar)]) if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. ]) fi QUILT_COMPAT_PROG_PATH(AWK, awk, [gawk awk]) AC_MSG_CHECKING([whether $AWK supports sub]) if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. ]) fi AC_ARG_WITH(pod2man, AC_HELP_STRING( [--with-pod2man], [name of the pod2man executable to use (use --without-pod2man to disable)]), [ if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi],[ AC_PATH_PROG(POD2MAN, pod2man) ] ) AC_SUBST(POD2MAN) QUILT_COMPAT_PROG_PATH(COLUMN, column) QUILT_COMPAT_PROG_PATH(GETOPT, getopt) if test -z "$INTERNAL_GETOPT"; then AC_MSG_CHECKING(for getopt --long syntax) dnl check GNU syntax $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. ]) fi fi QUILT_COMPAT_PROG_PATH(MKTEMP, mktemp) if test -z "$INTERNAL_MKTEMP" ; then AC_MSG_CHECKING(whether $MKTEMP -d works) if tempdir=`$MKTEMP -d ${TMPDIR:-/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 '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. ]) fi fi QUILT_COMPAT_PROG_PATH(DIFF, diff) QUILT_COMPAT_PROG_PATH(PATCH, patch) # Sun diff and others will not work because GNU patch options are used. AC_MSG_CHECKING([the version of $DIFF]) if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 AC_MSG_RESULT($diff_version) saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else AC_MSG_RESULT(no GNU diff) fi if test -z "$diff_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. ]) fi # Sun's patch, and others, do not work because GNU patch options are used. AC_MSG_CHECKING([the version of $PATCH]) if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi AC_MSG_RESULT($patch_version) saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else AC_MSG_RESULT(no GNU patch) fi if test -z "$patch_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. ]) fi QUILT_COMPAT_PROG_PATH(FIND, find) AC_MSG_CHECKING([whether $FIND -path works]) if $FIND . -path '*' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. ]) fi AC_MSG_CHECKING([whether $FIND -print0 works]) if $FIND . -path '*' -print0 >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. ]) fi QUILT_COMPAT_PROG_PATH(XARGS, xargs) AC_MSG_CHECKING([whether $XARGS -0 works]) if echo | $XARGS -0 echo >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. ]) fi QUILT_COMPAT_PROG_PATH_OPT(DIFFSTAT, diffstat) if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. AC_MSG_CHECKING([for diffstat version]) diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then AC_MSG_RESULT(unknown) AC_MSG_WARN([ diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. ]) else AC_MSG_RESULT($diffstat_major_version.$diffstat_minor_version) if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then AC_MSG_WARN([ diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. ]) fi fi fi QUILT_COMPAT_PROG_PATH(SENDMAIL, sendmail, [], [/usr/sbin]) AC_PATH_PROG(MSGMERGE, [msgmerge]) AC_PATH_PROG(MSGFMT, [msgfmt]) AC_PATH_PROG(XGETTEXT, [xgettext]) AC_PATH_PROG(MSGUNIQ, [msguniq]) AC_PATH_PROG(MSGCAT, [msgcat]) if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no AC_ARG_ENABLE(nls, AC_HELP_STRING( [--disable-nls], [exclude natural language support]), [USE_NLS=$enableval],[USE_NLS=$HAVE_NLS]) if test $USE_NLS = yes -a $HAVE_NLS = no ; 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 AC_ARG_WITH(patch-wrapper, AC_HELP_STRING( [--with-patch-wrapper], [include GNU patch wrapper])) PATCH_WRAPPER=$withval AC_SUBST(PATCH_WRAPPER) if test $USE_NLS = no ; then AC_MSG_NOTICE([Building without natural language support]) fi AC_SUBST(USE_NLS) AC_SUBST(docdir) dnl Check for rpmbuild (v4) vs. rpm (v3) QUILT_COMPAT_PROG_PATH_OPT(RPMBUILD, rpmbuild, [rpmbuild rpm]) AC_SUBST(COMPAT_SYMLINKS) AC_SUBST(COMPAT_PROGRAMS) 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.]) AC_MSG_RESULT([]) AC_MSG_RESULT([Report bugs to $PACKAGE_BUGREPORT]) quilt-0.61/config/install-sh0000644000175000017500000001425311634336352016363 0ustar mquinsonmquinson#!/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 } quilt-0.61/quilt.spec.in0000644000175000017500000000261511726705776015547 0ustar mquinsonmquinson# # spec file for quilt - patch management scripts # Name: quilt Summary: Scripts for working with series of patches License: GPL Group: Productivity/Text/Utilities Version: @VERSION@ Release: @RELEASE@ Requires: coreutils diffutils findutils 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://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" ./configure --mandir=%_mandir make prefix=/usr RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog @CHANGELOG@ quilt-0.61/quilt.changes0000644000175000017500000044552412251155703015611 0ustar mquinsonmquinson------------------------------------------------------------------- Sun Dec 8 21:50:33 CET 2013 - mquinson@debian.org - configure*: Bump version to 0.61 "better releasing quilt than working" ------------------------------------------------------------------- Sun Dec 8 10:46:10 CET 2013 - mquinson@debian.org - quilt/mail.in: accept recipents that have no full name along with the email. Thanks to Christoph Lameter for the detailed bug report. - quilt/mail.in: Add missing MIME headers (MIME-Version, Content-Type) (this closes the bug #21114 on Savannah) - doc/quilt.1.in: document QUILT_COLOR (closes #32093 on Savannah) - po/fr.po: update 2 strings ------------------------------------------------------------------- Mon Sep 30 14:21:45 CEST 2013 - jdelvare@suse.de - Makefile.in: Fix support for configure --with-xargs. ------------------------------------------------------------------- Mon Sep 30 14:19:26 CEST 2013 - jdelvare@suse.de - delete.test: Cope with new quoting style in find error message. Also support find being a compat script. ------------------------------------------------------------------- Tue Sep 3 08:02:52 CEST 2013 - mquinson@debian.org - quilt/fold.in: make it work with filenames with spaces (closes http://savannah.nongnu.org/bugs/?39833) Report and patch by David Leonard, thanks! ------------------------------------------------------------------- Fri May 24 15:12:50 CEST 2013 - jdelvare@suse.de - Makefile: Fix "find -perm" usage. - failpop.test: Drop needless sleep. ------------------------------------------------------------------- Thu May 23 08:29:24 CEST 2013 - jdelvare@suse.de - patches: Also match deleted files in unapplied patches. - patches: Add support for multiple files. ------------------------------------------------------------------- Wed May 22 10:54:08 CEST 2013 - jdelvare@suse.de - patches: Fix shift in scan_unapplied. ------------------------------------------------------------------- Thu Dec 27 16:34:38 CET 2012 - mquinson@debian.org - Use 'less -R' as a default pager to help the users forcing diff to produce colors. (Closes https://bugs.launchpad.net/ubuntu/+source/quilt/+bug/933617) ------------------------------------------------------------------- Thu Dec 27 14:26:31 CET 2012 - mquinson@debian.org - Document how quilt searches for its 'patches' directory in man page (Closes http://bugs.debian.org/549482). ------------------------------------------------------------------- Tue Dec 18 18:20:49 CET 2012 - jdelvare@suse.de - test/remove-trailing-ws.test: Add a test case for the remove-trailing-ws script. - remove-trailing-ws: Undefine $file at the end of every file. ------------------------------------------------------------------- Tue Dec 18 18:20:27 CET 2012 - krebbel@linux.vnet.ibm.com - remove-trailing-ws: Fix parsing of some context diffs. ------------------------------------------------------------------- Tue Dec 18 18:19:43 CET 2012 - jdelvare@suse.de - remove-trailing-ws: Sort output. - Makefile: Fix test case dependencies on helper scripts. ------------------------------------------------------------------- Wed Dec 5 14:44:13 CET 2012 - jdelvare@suse.de - top: Fix parameter quoting. - rename: Fix parameter quoting. - diff: Fix parameter quoting. - refresh: Fix parameter quoting. - remove: Fix parameter quoting. - files: Fix parameter quoting. - push: Fix parameter quoting. - pop: Fix parameter quoting. ------------------------------------------------------------------- Wed Dec 5 14:43:58 CET 2012 - jdelvare@suse.de - push: Fix variable usage in interrupt. ------------------------------------------------------------------- Wed Dec 5 14:42:33 CET 2012 - bpoirier@suse.de - Fix handling of patch files with ':' in their name. ------------------------------------------------------------------- Mon Dec 3 10:29:57 CET 2012 - jdelvare@suse.de - push: Always let the user force pushing a patch. ------------------------------------------------------------------- Mon Dec 3 10:27:46 CET 2012 - jdelvare@suse.de - pop: Fix timestamp comparison. ------------------------------------------------------------------- Thu Oct 25 18:04:15 CEST 2012 - jdelvare@suse.de - Fix typos in japanese translation. ------------------------------------------------------------------- Thu Oct 25 15:05:42 CEST 2012 - jdelvare@suse.de - setup: Check for existing files after unpacking, not before. - setup: Try alternative patches/series names. - setup: Run create_db(). - setup/inspect: Handle zip archives. - setup: Fix white space handling by check_for_existing_files. - setup: Check for existing directories before unpacking. - inspect: Refactor code to pwd_to_dir. ------------------------------------------------------------------- Thu Oct 25 15:05:10 CEST 2012 - jdelvare@suse.de - Makefile: Keep reference entries sorted. ------------------------------------------------------------------- Sun Mar 11 14:21:58 JST 2012 - satoru.takeuchi@gmail.com New features and bug fixes for lib/quilt.el. - Be aware of QUILT_PATCHES environment variable. - Support multiple quilt trees. - Optimize "quilt-revert". - Fix some bugs and clean up code. ------------------------------------------------------------------- Wed Feb 29 18:25:56 CET 2012 - jdelvare@suse.de - configure*: Bump version to 0.60 "Happy Birthday Lina". ------------------------------------------------------------------- Wed Feb 29 18:20:35 CET 2012 - jdelvare@suse.de - fr.po: Update French translation. ------------------------------------------------------------------- Wed Feb 29 17:50:45 CET 2012 - jdelvare@suse.de Two fixes from Debian: - Ensure quilt(1) documents the correct patches directory. - Unset POSIXLY_CORRECT to ensure that patch works non-interactively. ------------------------------------------------------------------- Wed Feb 29 07:36:34 CET 2012 - jdelvare@suse.de Merge branch fixes-0.51, containing many fixes from Andreas Gruenbacher for the mail command: - mail: Skip additional recipients with "bad" email addresses - edmail: Allow to add "good" recipient addresses while skipping "bad" ones - mail: Fix wrong use of edmail - mail: Require a "reasonable looking" email address in patch headers - mail: Don't use localized date format in From lines - mail: Improve error reporting (requires bash 3.0) ------------------------------------------------------------------- Wed Feb 22 14:39:44 CET 2012 - jdelvare@suse.de - doc/main.tex, new: Document the patch grouping feature. This fixes bug #12428. ------------------------------------------------------------------- Fri Feb 17 21:18:06 CET 2012 - jdelvare@suse.de - setup.test: Increase coverage. Test for reverted patches, patches without options in the series file, as well as spaces in directory names. ------------------------------------------------------------------- Fri Feb 17 21:14:20 CET 2012 - jdelvare@suse.de - setup, scripts/inspect: Properly escape spaces in directory and archive names (bug #25579). ------------------------------------------------------------------- Wed Feb 1 21:12:11 CET 2012 - jdelvare@suse.de - Makefile.in: Let "make clean" delete generated source tarballs. ------------------------------------------------------------------- Wed Feb 1 21:00:45 CET 2012 - jdelvare@suse.de - grep: Accept file names with spaces. ------------------------------------------------------------------- Wed Feb 1 20:15:01 CET 2012 - jdelvare@suse.de - Makefile.in: Include utilfns when generating source tarball. ------------------------------------------------------------------- Wed Feb 1 17:23:39 CET 2012 - jdelvare@suse.de - backup-files: 32 performance improvements, developed during Suse Hack Week VI (February 2010.) This speeds up backup-files by a factor 50, roughly, bringing it close enough to the original C implementation. Many thanks to Raphael Hertzog for reviewing most of the series. ------------------------------------------------------------------- Wed Feb 1 17:06:24 CET 2012 - jdelvare@suse.de - Finally get rid of the old C implementation of backup-files, together with all the related checks in configure and variables in Makefile. ------------------------------------------------------------------- Wed Feb 1 17:02:32 CET 2012 - jdelvare@suse.de - backup-files: Avoid relying on GNU-specific extensions of stat, cp and rmdir. Otherwise it fails on BSD systems and probably others. ------------------------------------------------------------------- Wed Feb 1 16:58:22 CET 2012 - mquinson@debian.org - Make backup-files a shell script. This makes it possible to package quilt as an architecture-indepdendent package. ------------------------------------------------------------------- Wed Feb 1 16:55:57 CET 2012 - jdelvare@suse.de - Add a dedicated test case for backup-files. ------------------------------------------------------------------- Tue Jan 31 16:41:39 CET 2012 - jdelvare@suse.de - import.in, scripts/patchfns.in: Fix import of patches from a subdirectory (bug #35244). ------------------------------------------------------------------- Sat Jan 28 16:38:10 CET 2012 - jdelvare@suse.de - configure*: Bump version to 0.51. ------------------------------------------------------------------- Sat Jan 28 15:47:53 CET 2012 - jdelvare@suse.de - Remove parse-patch which is no longer used. Based on a preliminary patch by Yasushi SHOJI. None of quilt code uses parse-patch anymore. The last one, it seems, was contrib/import.diff, which was removed at 2f9728a9. So, just remove it. ------------------------------------------------------------------- Mon Jan 23 13:56:57 CET 2012 - jdelvare@suse.de - scripts/inspect.in: Leave stderr free for actual error reporting. - scripts/inspect.in: Complain if wrapper script can't be executed. ------------------------------------------------------------------- Mon Jan 23 10:20:16 CET 2012 - mquinson@debian.org - bash_completion: silence the errors of "quilt unapplied" in the completion of quilt push, as we did previously on other scripts. ------------------------------------------------------------------- Tue Jan 10 11:05:36 CET 2012 - jdelvare@suse.de - Makefile.in: No need to delete doc/quilt.1 twice on "make clean". - Makefile.in: Silent the generation of the quilt manual page, for consistency. - Makefile.in: Store the quilt command reference once generated. This avoids generating it twice, once for README and once for quilt.1. ------------------------------------------------------------------- Mon Jan 9 20:49:04 CET 2012 - mquinson@debian.org - Makefile.in: - revert the change to fix the generation of quilt.1 with dash It induced relying on GNU sed, which introduce severe portability issues as BSD and Mac OSX versions of sed (at least) cannot deal with \n by themselves. - Force it to use SHELL = @BASH@ to ensure that it works when dash is the default shell (bash is installed anyway since our scripts use it) ------------------------------------------------------------------- Mon Jan 2 11:02:38 CET 2012 - mquinson@debian.org - Makefile.in: Fix auto-generation of quilt.1 to work with dash - quilt/new: add a check that QUILT_PATCHES != QUILT_PC. Rational: If QUILT_PATCHES and QUILT_PC are set to the same directory, the awk script in filenames_in_patch (in scripts/patchfns) will break with a ' is a directory' error. Patch provided by anonymous in #30956 on savannah ------------------------------------------------------------------- Fri Dec 16 16:01:38 CET 2011 - jdelvare@suse.de - Makefile.in: Really skip setting execute bit on scripts/patchfns. ------------------------------------------------------------------- Fri Dec 16 15:56:46 CET 2011 - jdelvare@suse.de - configure*, Makefile.in: Use the standard docdir definition, so that it can be easily changed from the command line. ------------------------------------------------------------------- Thu Dec 15 14:20:04 CET 2011 - jdelvare@suse.de - scripts/inspect.in: Don't let TMPDIR take over /var/tmp. ------------------------------------------------------------------- Thu Dec 15 13:53:35 CET 2011 - jdelvare@suse.de - scripts/inspect.in: Fix quilt setup. A file name of "-" means "read from stdin" for tar. ------------------------------------------------------------------- Thu Dec 8 16:42:24 CET 2011 - jdelvare@suse.de - scripts/inspect.in: Consistently use ${TMPDIR:-...} when testing if TMPDIR is set. ------------------------------------------------------------------- Thu Dec 8 16:32:26 CET 2011 - jdelvare@suse.de - configure*: Honor $TMPDIR if set. ------------------------------------------------------------------- Tue Dec 6 17:44:55 CET 2011 - jdelvare@suse.de - Makefile.in, doc/quilt.1.in: Substitute documentation directory name in path to PDF documentation. ------------------------------------------------------------------- Mon Dec 5 22:00:00 CET 2011 - jdelvare@suse.de - configure*: Bump version to 0.50. ------------------------------------------------------------------- Mon Dec 5 21:23:12 CET 2011 - jdelvare@suse.de - po/*: Synchronize language files. - po/fr.po: French translation update. - po/de.po: Partial German translation update. ------------------------------------------------------------------- Mon Nov 14 22:09:32 CET 2011 - jdelvare@suse.de - scripts/inspect.in: Fix decompression of tar archives. ------------------------------------------------------------------- Thu Nov 10 21:26:10 CET 2011 - jdelvare@suse.de - scripts/inspect.in: Old versions of file don't know about xz-compressed files, so recognize them by their filename too. ------------------------------------------------------------------- Thu Nov 10 21:11:36 CET 2011 - pth@suse.de - quilt/inspect.in: Newer file changed the output for xz compressed data so adapt to it. ------------------------------------------------------------------- Wed Oct 5 16:21:28 CEST 2011 - ohering@suse.de - quilt/inspect.in: Quote strings to avoid flood of shell syntax errors during quilt setup -v *.spec. ------------------------------------------------------------------- Sun Sep 25 15:33:20 CEST 2011 - mquinson@debian.org - po/ru.po: incorporate the russian translation contributed by Sergey Basalaev as savannah bug report #34340 (thanks for your work!) ------------------------------------------------------------------- Mon Apr 4 17:50:50 CEST 2011 - jdelvare@suse.de - test/no-file-to-patch.test: New test case for patches attempting to modify files which do not exist. ------------------------------------------------------------------- Fri Mar 25 19:50:44 CET 2011 - jdelvare@suse.de - configure.ac: Fix test for GNU patch version. ------------------------------------------------------------------- Fri Mar 25 18:47:53 CET 2011 - jdelvare@suse.de - quilt/diff.in, quilt/refresh.in: Accept file names with spaces. ------------------------------------------------------------------- Fri Mar 18 12:05:33 CET 2011 - jdelvare@suse.de - test/run: Enforce single variable substitution method. There is no need to have two ways to access environment variables from test cases, one is enough. ------------------------------------------------------------------- Fri Mar 18 11:55:17 CET 2011 - jdelvare@suse.de - Makefile.in: Fix i18n of quilt/scripts/patchfns, broken by previous commit. ------------------------------------------------------------------- Wed Mar 16 19:17:18 CET 2011 - jdelvare@suse.de - quilt/scripts/patchfns.in: Drop #! stament. patchfns is meant to be sourced from other scripts, rather than executed on its own. ------------------------------------------------------------------- Wed Mar 16 19:13:36 CET 2011 - jdelvare@suse.de - quilt/diff.in: If diffing against snapshot, ensure that snapshot is actually present. If not, bail out with an error message. ------------------------------------------------------------------- Tue Mar 15 13:47:41 CET 2011 - jdelvare@suse.de - compat/getopt.in: Add support of options with optional parameters. Both short and long options are supported. This is required to pass the test suite, if nothing else. ------------------------------------------------------------------- Tue Mar 15 13:44:51 CET 2011 - jdelvare@suse.de - compat/getopt.in: Fix quoting and spacing. This way the output matches exactly the output of getopt from util-linux, and spaces and other special characters in filenames are properly supported. ------------------------------------------------------------------- Sat Mar 12 15:12:38 CET 2011 - jdelvare@suse.de - quilt/grep.in: Not all implementations of find default to the current directory as the search root. So explicitly set the root to "." if the user didn't provide one. ------------------------------------------------------------------- Wed Mar 9 22:56:29 CET 2011 - jdelvare@suse.de - quilt.spec.in: BUILD_ROOT is only needed at installation time, not at build time. ------------------------------------------------------------------- Mon Mar 7 08:39:54 CET 2011 - jdelvare@suse.de - test/example1.test, test/two.test, test/three.test: Let the test suite cover "quilt grep". ------------------------------------------------------------------- Sat Mar 5 21:06:57 CET 2011 - jdelvare@suse.de - quilt/pop.in: Add missing local variable declaration. ------------------------------------------------------------------- Wed Mar 2 09:30:10 CET 2011 - jdelvare@suse.de - compat/mktemp.in: Properly support white space in file names. ------------------------------------------------------------------- Sun Feb 6 18:03:29 CET 2011 - jdelvare@suse.de - quilt/mail.in: Fix a temporary directory leak. ------------------------------------------------------------------- Sun Feb 6 17:50:26 CET 2011 - jdelvare@suse.de - Makefile.in: Don't build quilt.spec by default, it's only needed for packaging purposes. ------------------------------------------------------------------- Sun Feb 6 17:43:28 CET 2011 - jdelvare@suse.de - quilt.spec.in: List findutils as a requirement (for find and xargs.) - configure.ac: Check for the presence of xargs. ------------------------------------------------------------------- Sun Feb 6 17:33:10 CET 2011 - yashi@atmark-techno.com - po/ja.po: Update Japanese translation. ------------------------------------------------------------------- Tue Feb 1 10:26:38 CET 2011 - jdelvare@suse.de - po/quilt.pot, po/fr.po: Update French translation. ------------------------------------------------------------------- Fri Jan 28 11:29:37 CET 2011 - jdelvare@suse.de - test/nolink.test: Add missing check, to make sure we won't miss a bug. ------------------------------------------------------------------- Tue Nov 2 18:51:17 CET 2010 - jdelvare@suse.de - Add bash completion for revert command. ------------------------------------------------------------------- Mon Jun 28 09:51:13 CEST 2010 - jdelvare@suse.de - No longer ship quilt.spec, it can easily be regerated from quilt.spec.in. ------------------------------------------------------------------- Wed Jun 23 14:01:25 CEST 2010 - jdelvare@suse.de - doc/main-rus.tex, quilt.spec.in: Update the remaining outdated links to Andrew Morton's stuff. ------------------------------------------------------------------- Wed Jun 23 13:23:08 CEST 2010 - jdelvare@suse.de - configure.ac: Properly detect newer versions of GNU patch. ------------------------------------------------------------------- Wed Jun 23 13:20:26 CEST 2010 - jdelvare@suse.de - quilt/scripts/inspect.in: Handle reversed patches in spec files. ------------------------------------------------------------------- Wed Jun 23 13:16:45 CEST 2010 - jdelvare@suse.de - quilt/setup.in, quilt/scripts/inspect.in: Add a --fuzz parameter to quilt setup and inspect. ------------------------------------------------------------------- Sun Feb 14 23:08:24 CET 2010 - agruen@suse.de - doc/main-rus.tex: Add a Russian translation of the quilt paper by Ivan Borzenkov . ------------------------------------------------------------------- Wed Jan 27 13:41:35 CET 2010 - dapal@debian.org - quilt/scripts/patchfns.in: Differentiate output when $QUILT_PATCHES/series is not found from when $QUILT_PATCHES/series is empty. - test/*.test: Update accordingly. ------------------------------------------------------------------- Wed Jan 27 13:40:10 CET 2010 - jdelvare@suse.de - configure.ac: Stop testing for cp -l. Bug reported by Olivier Mengué. ------------------------------------------------------------------- Wed Jan 27 13:39:06 CET 2010 - bert.wesarg@googlemail.com - quilt/push.in: patch's --merge option has an optional argument now. ------------------------------------------------------------------- Wed Jan 27 13:38:02 CET 2010 - hertzog@debian.org - quilt/scripts/patchfns.in: Skip non-files when selecting the SERIES file. ------------------------------------------------------------------- Sat Jan 23 21:11:12 CET 2010 - jdelvare@suse.de - test/run, test/*.test: Separate working directory for each test case. - Makefile.in, test/run: Let the test suite be run in parallel. ------------------------------------------------------------------- Sat Jan 23 17:59:33 CET 2010 - hertzog@debian.org - quilt/scripts/patchfns.in: Remember QUILT_PATCHES and QUILT_SERIES by storing them in .pc. - doc/main.tex: Document this change. - test/remember-locations.test: Add non-regression test to verify that quilt remembers QUILT_PATCHES/QUILT_SERIES. ------------------------------------------------------------------- Wed Jan 6 18:27:09 CET 2010 - jdelvare@suse.de - quilt.spec, doc/main.tex: Update URI of Andrew Morton's patch scripts. Reported by Randy Dunlap. ------------------------------------------------------------------- Sat Dec 19 15:45:12 CET 2009 - bert.wesarg@googlemail.com - quilt/scripts/patchfns.in: Fix pager on broken pipe. ------------------------------------------------------------------- Sat Dec 12 10:00:52 CET 2009 - jdelvare@suse.de - quilt/scripts/patchfns.in (diff_file): Swap options and parameters for better portability. ------------------------------------------------------------------- Fri Nov 27 18:36:27 CET 2009 - jdelvare@suse.de - Some (possibly all) versions of "file" do not recognize lzma- compressed files. Rely on the file name for these. ------------------------------------------------------------------- Fri Nov 27 15:26:22 CET 2009 - jdelvare@suse.de - Fix support of lzma- or xz-compressed files: * Let xz handle lzma compatibility externally, with links. Otherwise lzma support will not work for users with only lzma installed and not xz. * "upgrade" doesn't need to care about lzma nor xz, these compression formats were not supported back in v1. * Fix cat_to_new_file() for lzma/xz files.. * Use a different letter for lzma and xz files in inspect. ------------------------------------------------------------------- Wed Nov 25 20:52:52 CET 2009 - agruen@suse.de - quilt.quiltrc: make sure to only override QUILT_PAGER if QUILT_PAGER isn't set already. ------------------------------------------------------------------- Wed Nov 25 20:30:39 CET 2009 - agruen@suse.de - inspect: Try to better recognize "patch -d" and "tar -C" (which both change the working directory). (This may fail in some other cases now -- there are still a lot of heuristics involved here.) ------------------------------------------------------------------- Wed Nov 25 19:44:18 CET 2009 - agruen@suse.de - inspect: When guessing the tarball filename, make sure that only regular files are considered. (Otherwise, we will trip over command lines like "tar xjCf dir file"). ------------------------------------------------------------------- Wed Nov 25 18:36:12 CET 2009 - agruen@suse.de - new command: Add -p ... option (equivalent to diff -p ...). (Based on a patch from Egbert Eich .) ------------------------------------------------------------------- Wed Nov 25 15:03:38 CET 2009 - agruen@suse.de - Make sure the series file is a regular file (or a symlink to a regular file). Reported by Raphael Hertzog . ------------------------------------------------------------------- Wed Nov 25 14:21:44 CET 2009 - bert.wesarg@googlemail.com - push: update color matcher for failed merge ------------------------------------------------------------------- Sun Nov 22 21:32:39 CET 2009 - agruen@suse.de - No longer create backup files of new files with file mode 0. (This has been changed in GNU patch 2.6 as well.) ------------------------------------------------------------------- Fri Nov 20 22:43:33 CET 2009 - agruen@suse.de - Add pagination support (code based on topgit; patch from Bert Wesarg ). - When QUILT_PAGER is set to an empty value, do not paginate. - Document QUILT_PAGER in the man page. - Clean things up a little. - Add a workaround in quilt.quiltrc for color output when $LESS is defined. ------------------------------------------------------------------- Fri Nov 20 20:40:55 CET 2009 - pth@novell.com - Enable quilt to handle compressed tarballs and patches that were compressed with lzma or xz. ------------------------------------------------------------------- Thu Nov 5 17:54:32 CET 2009 - agruen@suse.de - patches command: Commit 2e581933a introduced a bug in scanning unapplied patches which lead to missed matches. - patches command: Prevent false matches in unapplied patches for patches which delete files. - patches command: Also match deleted files in unapplied patches, at the cost of more possible false matches. ------------------------------------------------------------------- Wed Nov 4 15:48:59 CET 2009 - agruen@suse.de - Fix typo in doc/quilt.1.in. ------------------------------------------------------------------- Mon Nov 2 20:12:31 CET 2009 - agruen@suse.de - Implement -r / --reference option in compat/date (patch from Olivier Mehani ). ------------------------------------------------------------------- Thu Sep 17 22:11:54 CEST 2009 - agruen@suse.de - Restore the "remove" command which a few people were missing since its replacement by "revert" in April 2007. (Patch from Pedro Alves.) ------------------------------------------------------------------- Wed Sep 9 14:59:10 CEST 2009 - agruen@suse.de - French translation update from from Jean Delvare . ------------------------------------------------------------------- Wed Jun 17 13:43:19 CEST 2009 - agruen@suse.de - No longer use $0 in gen_tempfile. ------------------------------------------------------------------- Wed Jun 17 12:58:10 CEST 2009 - agruen@suse.de - Prevent "quilt revert" from accidentally creating hard links (bug #25305; fix from Jean Delvare ). - Try to clarify the help text of "quilt revert". ------------------------------------------------------------------- Mon Jun 15 16:12:30 CEST 2009 - agruen@suse.de - Some filesystems / operating systems may miss files in readdir() loops when the directory is modified at the same time (e.g., http://support.apple.com/kb/TA21420). Avoid running into this problem in backup-files.c by reading all files before processing them. ------------------------------------------------------------------- Sun Apr 5 16:05:05 CEST 2009 - agruen@suse.de - Push command: don't imply --force when --merge is given so that a patch that doesn't merge cleanly will still require to spcify --force separately. Update merge syntax highlighting. ------------------------------------------------------------------- Tue Mar 31 14:16:07 CEST 2009 - agruen@suse.de - Rename push's -M option to -m. ------------------------------------------------------------------- Sun Mar 8 22:17:46 CET 2009 - agruen@suse.de - series and patches commands: add --color options for colorizing the output. ------------------------------------------------------------------- Sun Feb 1 21:03:42 CET 2009 - agruen@suse.de - push command: Add --fuzz=N option. Add experimental --merge option. Fail pushes when GNU patch exits with a status > 1. Some cleanups. ------------------------------------------------------------------- Sat Nov 29 15:58:21 CET 2008 - agruen@suse.de - quilt setup: Define %__tar and %__patch to refer to the tar and patch wrapper. (Patch from Jan Kratochvil, Savannah bug 24964). ------------------------------------------------------------------- Sun Nov 2 18:07:36 CET 2008 - agruen@suse.de - To allow using 'procmail' (which contains 'formail') as weak dependency in package managers, explicitely check for the 'formail' binary when invoking 'quilt mail' so that the user gets a clear error message when 'formail' is missing and knows what to do. (From Bernhard Walle .) ------------------------------------------------------------------- Sun Nov 2 18:05:14 CET 2008 - agruen@suse.de - push command: Remove leftovers of the former interactive-option. (From Wolfram Sang .) ------------------------------------------------------------------- Sun Nov 2 18:01:23 CET 2008 - agruen@suse.de - mail command: don't word boundaries in awk; it's a GNU awk extension. (From Wolfram Sang .) ------------------------------------------------------------------- Sun Nov 2 17:59:03 CET 2008 - agruen@suse.de - From Wolfram Sang : "The test for import did not always recreate a patches-dir inside the temporary location, so it would fail if you modified quilt using quilt." ------------------------------------------------------------------- Sun Nov 2 17:54:51 CET 2008 - agruen@suse.de - Fix from Dean Roehrich for Solaris: "I ran into a case solaris ON build 99 where configure found ginstall, but the Makefile.in used something else, and that led to things going a bit haywire." ------------------------------------------------------------------- Sun Nov 2 17:48:40 CET 2008 - agruen@suse.de - Add a dual BSD/GPL license header to test/run. - Only run test/patch-wrapper.test if the --with-patch-wrapper config option is used. ------------------------------------------------------------------- Wed Sep 3 09:50:48 CEST 2008 - agruen@suse.de - Bash completion fix for fold command from Bernhard Walle . ------------------------------------------------------------------- Thu Aug 21 14:26:56 CEST 2008 - agruen@suse.de - Bump version to 0.47. - Add a new "publish" makefile target for pushing releases to savannah.nongnu.org. ------------------------------------------------------------------- Tue Jun 24 09:32:29 CEST 2008 - agruen@suse.de - quilt/scripts/patchfns.in (cat_series): Handle lines properly that only contain whitespace. ------------------------------------------------------------------- Fri Jun 13 11:50:30 CEST 2008 - agruen@suse.de - quilt/import.in: When importing multiple patches at once, make sure that they won't end up in the series file in reverse order. This happened because each new patch was inserted before the "next" patch, which made it the new "next" patch. ------------------------------------------------------------------- Tue May 20 09:30:33 CEST 2008 - agruen@suse.de - Stop using cp -l: it doesn't fall back to doing a regular copy when hardlinks are not supported; on some types of filesystems like AFS and in some situtions, this is annoying. ------------------------------------------------------------------- Wed Mar 26 00:11:27 CET 2008 - agruen@suse.de - Assume patches are in unified format by default when applying them. (For working with other patch formats, make sure to remove "--unified" from QUILT_PATCH_OPTS in ~/.quiltrc or /etc/quilt.quiltrc.) ------------------------------------------------------------------- Mon Nov 5 17:25:49 CET 2007 - agruen@suse.de - quilt/mail.in: Remove the Recipient-* and Replace-* headers used internally from the resulting emails; not sure how that was missed so far. ------------------------------------------------------------------- Tue Oct 30 00:24:20 CET 2007 - agruen@suse.de - Fix `make snapshot'. - Make the changelog file chronological again. ------------------------------------------------------------------- Mon Oct 29 20:38:25 CET 2007 - agruen@suse.de - quilt/mail.in: Ran into a bash ``Broken pipe'' problem in quilt_mail_patch_filter() which I cannot explain or cleanly reproduce. Work around it by not using pipes and subshells as extensively here. ------------------------------------------------------------------- Thu Oct 25 13:52:34 CEST 2007 - agruen@suse.de - quilt/mail.in: Make sure that shell meta-characters like * in subjects won't get expanded by accident (this was broken). Add test case. - quilt/mail.in: ``formail -x Foo'' will extract all Foo* headers, so use ``formail -x Foo:'' instead. - quilt/mail.in: Recognize sequences of common subject prefixes like Fwd:, Fw:, Re:, Aw:, Tr:, [foo] only at the beginning of subjects. ------------------------------------------------------------------- Mon Oct 15 15:29:55 CEST 2007 - agruen@suse.de - quilt/mail.in: Add a --signature flag that allows to override the signature used. (The test suite still depended on the .signature file of the user runnig it; fixed now.) ------------------------------------------------------------------- Sat Oct 6 22:15:19 CEST 2007 - agruen@suse.de - Allow to define a MUA different from the one found at configure time in .quiltrc (by setting QUILT_SENDMAIL). ------------------------------------------------------------------- Sat Sep 8 20:13:34 CEST 2007 - agruen@suse.de - quite refresh: Avoid a possible environment overflow with very, very large patches (#19748). ------------------------------------------------------------------- Fri Aug 10 15:40:31 CEST 2007 - agruen@suse.de - quilt mail: only add a "-- " at the end of messages if it is actually followed by a signature. ------------------------------------------------------------------- Fri Aug 10 15:16:12 CEST 2007 - agruen@suse.de - quilt mail: Add a --reply-to option which adds the appropriate Subject, Reply-To, and References headers to the intro and patch messages. ------------------------------------------------------------------- Wed Aug 8 12:13:16 CEST 2007 - agruen@suse.de - quilt setup: replace the --path argument with --sourcedir for specifying the location of the package sources. Pass the source dir to inspect as well. Fix a test suite bug for quilt setup. Minor cosmetic changes. - Fix a quilt mail test suite bug: specify a dummy --sender in test.quiltrc. ------------------------------------------------------------------- Thu Aug 2 12:37:19 MDT 2007 - paul@pwsan.com - quilt mail: strip closing angle brackets from the mail sender address before it is inserted into the message ID. (Changed by agruen@suse.de.) ------------------------------------------------------------------- Thu Jul 26 13:53:09 CEST 2007 - agruen@suse.de - quilt diff: don't colorize the output when the --diff=... option is used (allows diff utilities to use terminal IO). ------------------------------------------------------------------- Tue Jun 5 17:37:43 CEST 2007 - agruen@suse.de - Man page improvements from Ben Pfaff . - QUILT_SERIES and series file search algorithm bugfix. ------------------------------------------------------------------- Sun May 6 14:36:25 CEST 2007 - agruen@suse.de - Mail command: when only a single patch is specified, only mail that one. Only mail all patches to the end of the series if the last patch is '-', or no patches have been specified. - Revert command: change semantics to really revert the changes relative to the patch instead of removing the file from the patch. That's much more useful; the other behavior is available as ``quilt diff | patch -p1'', anyway. - Update German translation. ------------------------------------------------------------------- Thu May 3 18:56:44 CEST 2007 - agruen@suse.de - fold command: Add -R option. - Update German translation. ------------------------------------------------------------------- Sat Apr 28 00:51:22 CEST 2007 - agruen@suse.de - Try to clean up the force-apply and interactive-apply logic in quilt push, and add a force option to quilt fold: Fold was applying patches interactively and was restoring files if there were rejects; this was very unexpected for users. ------------------------------------------------------------------- Fri Apr 27 13:52:00 CEST 2007 - agruen@suse.de - Rename the ``remove'' command to ``revert'': this removes ambiguities with the delete command, and more closely matches what the command does. ------------------------------------------------------------------- Sun Apr 22 10:40:36 CEST 2007 - khali@linux-fr.org - quilt mail: Document the possibility to specifiy a patch range. ------------------------------------------------------------------- Sun Apr 22 10:13:18 CEST 2007 - khali@linux-fr.org - Dependencies of quilt/* on quilt/scripts/* are run-time dependencies for the test suite, not build-time dependencies. ------------------------------------------------------------------- Fri Apr 20 01:13:49 CEST 2007 - agruen@suse.de - quilt mail: Allow to specify a patch range. - Remove fuzzy German translations. ------------------------------------------------------------------- Fri Apr 20 00:02:19 CEST 2007 - agruen@suse.de - Make pod2man optional (./configure --without-pod2man). ------------------------------------------------------------------- Wed Apr 18 13:29:38 CEST 2007 - agruen@suse.de - Install quilt.el into $(datadir)/emacs/site-lisp/. ------------------------------------------------------------------- Mon Apr 16 06:10:18 CEST 2007 - agruen@suse.de - lib/backup-files.c: Do not modify the original file whenever possible: previously, a ``quilt add'' usually linked the file to the backup and then copied the backup over the file to ensure a link count of one. Recognize this case, and create a copy in the first place instead. ------------------------------------------------------------------- Sun Apr 15 16:47:58 CEST 2007 - agruen@suse.de - Add quilt.el and its README file. (The emacs mode is not being installed properly, yet.) ------------------------------------------------------------------- Sun Apr 15 09:53:41 CEST 2007 - khali@linux-fr.org - quilt/refresh.in: Remove stray \n in error message. Reported by Randy Dunlap. ------------------------------------------------------------------- Mon Mar 26 15:27:07 CEST 2007 - agruen@suse.de - Quilt refresh: fix existing patch check. ------------------------------------------------------------------- Thu Feb 22 10:11:34 CET 2007 - khali@linux-fr.org - quilt/scripts/patchfns.in: Fix an off-by-one error in change_db_strip_level when inserting the strip level in the patch argument list. Also cleanup this function a bit. ------------------------------------------------------------------- Wed Feb 21 21:29:29 CET 2007 - khali@linux-fr.org - quilt/import.in, quilt/scripts/patchfns.in: Implement import -R for reverse-applying a patch. Original patch contributed by Randy Dunlap. ------------------------------------------------------------------- Tue Feb 20 11:12:05 CET 2007 - khali@linux-fr.org - test/run: Don't attempt to remove comments from command lines. We don't put such comments in our test cases, and it prevents legitimate uses of the "#" character (e.g. in a string, inside quotes) in commands. ------------------------------------------------------------------- Tue Feb 13 21:09:37 CET 2007 - khali@linux-fr.org - Update the Japanese translation. Patch from Yasushi Shoji. ------------------------------------------------------------------- Wed Jan 31 10:46:32 PST 2007 - agruen@suse.de - Update the German translation. ------------------------------------------------------------------- Thu Oct 19 20:49:23 CEST 2006 - agruen@suse.de - Refresh command: add -z option, which refreshes changes into a new patch instead of modifying the existing patch. ------------------------------------------------------------------- Thu Oct 19 18:04:36 CEST 2006 - khali@linux-fr.org - Bump version to 0.46. ------------------------------------------------------------------- Tue Oct 10 17:44:30 CEST 2006 - khali@linux-fr.org - aclocal.m4: New helper for optional binaries. - configure.ac: Use the new helper for diffstat and rpmbuild. - compat/diffstat.in: Delete. - compat/rpmbuild.in: Delete. ------------------------------------------------------------------- Mon Oct 9 17:08:19 CEST 2006 - agruen@suse.de - Update the German translation. ------------------------------------------------------------------- Mon Oct 9 16:34:04 CEST 2006 - agruen@suse.de - quilt.spec.in: Pass %_mandir to --configure (fix from Anders Larsen). ------------------------------------------------------------------- Fri Sep 22 16:09:55 CEST 2006 - khali@linux-fr.org - quilt/delete.in: Display the proper error message when using "quilt delete" with no argument and no patch is applied. - test/delete.test: Add a test for this specific case. ------------------------------------------------------------------- Wed Sep 20 08:38:51 CEST 2006 - khali@linux-fr.org - po/ja.po: Update the Japanese translation, patch from Yasushi Shoji. - po/fr.po: Update the French translation. ------------------------------------------------------------------- Tue Sep 19 17:42:45 CEST 2006 - khali@linux-fr.org - quilt/diff.in, quilt/refresh.in: Update usage line to mention "-p ab". ------------------------------------------------------------------- Tue Sep 19 17:06:36 CEST 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Drop support for "-pab" in series file, for it breaks compatibility with previous versions of quilt, and is inconsistent. - test/dir-a-b.test: Drop test case for "-pab" in series file. ------------------------------------------------------------------- Tue Sep 19 16:35:20 CEST 2006 - khali@linux-fr.org - test/*.test: Make sure that rm commands are non-interactive. ------------------------------------------------------------------- Tue Sep 19 16:24:57 CEST 2006 - khali@linux-fr.org - test/dir-a-b.test: Don't use diffstat in the regression test suite, as it may or may not be available. ------------------------------------------------------------------- Mon Sep 18 23:37:41 CEST 2006 - khali@linux-fr.org - doc/quilt.1.in: Document the fact that per-patch comments are now supported. Fix a typo. ------------------------------------------------------------------- Mon Sep 18 21:32:33 CEST 2006 - khali@linux-fr.org - Makefile.in: Set LC_ALL=C before running the regression tests, setting LANG alone isn't sufficient because LC_ALL overrides LANG when set. ------------------------------------------------------------------- Tue Sep 5 15:50:00 CEST 2006 - khali@linux-fr.org - quilt/mail.in, test/mail.test: Fix signature separator. Patch from Ville Syrjala. ------------------------------------------------------------------- Wed Jun 28 01:29:39 CEST 2006 - agruen@suse.de - A few more `-p ab' fixes. ------------------------------------------------------------------- Tue Jun 27 22:22:15 CEST 2006 - agruen@suse.de - quilt/push.in: Fix a bug introduced with the -p ab support. - test/dir-a-b.test: Add a regression test case for this fix. ------------------------------------------------------------------- Tue Jun 27 21:30:19 CEST 2006 - agruen@suse.de - Remove some broken translations that slipped in on Jun 12. ------------------------------------------------------------------- Sat Jun 24 11:47:59 CEST 2006 - khali@linux-fr.org - configure.ac: Test for bash 3.1 quoting bug (#16763). ------------------------------------------------------------------- Sat Jun 24 09:41:33 CEST 2006 - khali@linux-fr.org - bin/quilt.in, doc/quilt.1.in: Document the --quiltrc=- feature (#16727). ------------------------------------------------------------------- Mon Jun 12 17:22:42 CEST 2006 - agruen@suse.de - quilt/diff.in, quilt/refresh.in: Add `-p ab' options which produce a/file and b/file filenams in headers instead of dir.orig/file and dir/file, similar to BK, git, hg patches. - Only touch .pc/$patch/.timestamp when a path actually is being refreshed. ------------------------------------------------------------------- Fri Jun 2 11:52:11 CEST 2006 - khali@linux-fr.org - doc/quilt.1.in: Mention the QUILT_PATCHES_PREFIX, QUILT_NO_DIFF_INDEX and QUILT_NO_DIFF_TIMESTAMP variables, and describe their effects. ------------------------------------------------------------------- Thu Jun 1 11:56:34 CEST 2006 - khali@linux-fr.org - quilt/import.in: Add some missing quotes. This makes it possible to import a patch with unfriendly characters (say spaces) in its name as long as it is renamed to something more friendly in the process. ------------------------------------------------------------------- Thu Jun 1 11:29:10 CEST 2006 - agruen@suse.de - compat/rpmbuild.in: Add a version that tries to execute a rpmbuild that may have been installed after building quilt. - compat/diffstat.in: Same as for compat/rpmbuild.in, try to execute diffstat even though none was there at quilt build time. - aclocal.m4: Fix a quoting error. ------------------------------------------------------------------- Wed May 31 17:27:55 CEST 2006 - agruen@suse.de - Fix the --with-rpmbuild option of configure. ------------------------------------------------------------------- Fri May 26 12:16:18 CEST 2006 - agruen@suse.de - quilt/scripts/patchfns.in: Fix bugs in basename() and dirname(). ------------------------------------------------------------------- Thu May 25 09:12:08 CEST 2006 - khali@linux-fr.org - quilt/edit.in, quilt/header.in, quilt/mail.in: Run $EDITOR with LANG=$ORIGINAL_LANG. Fallback to $ORIGINAL_LANG rather than $LANG for charset detection. Patch from Thomas Petazzoni. ------------------------------------------------------------------- Tue May 23 16:56:02 CEST 2006 - khali@linux-fr.org - quilt/scripts/edmail.in: Declare option parameters as mandatory rather than optional. This makes more sense as the parameters are indeed not optional, and this also works around a bug in Getopt::Long. ------------------------------------------------------------------- Wed Apr 26 12:27:20 CEST 2006 - khali@linux-fr.org - quilt/pop.in: Delete .pc/$patch directory when popping empty patches. Report and original patch by Arnaud Patard. - quilt/push.in: Create .pc/$patch directory when pushing missing or empty patches. If we don't, some commands such as rename can fail later. - test/missing.test: Test rename command on missing patches. - test/empty.test: New test case similar to missing.test, but for empty patches. Somewhat based on a contribution by Arnaud Patard. ------------------------------------------------------------------- Mon Apr 24 14:57:19 CEST 2006 - agruen@suse.de - Add @datarootdir@ macro which future versions of Autoconf will start to use in @datadir@ (bug 16155, patch from Ralf Wildenhues). ------------------------------------------------------------------- Mon Apr 24 11:35:35 CEST 2006 - khali@linux-fr.org - Bump version to 0.45. ------------------------------------------------------------------- Wed Apr 19 09:07:12 CEST 2006 - khali@linux-fr.org - po/*.po: Delete obsolete translations. ------------------------------------------------------------------- Wed Apr 19 08:50:55 CEST 2006 - khali@linux-fr.org - compat/getopt.in: Ignore option -q, rather than failing on it. This prevents the test suite from failing on patch-wrapper when --without-getopt is used. Reported by Markus Oberhumer. ------------------------------------------------------------------- Sat Apr 15 16:52:12 CEST 2006 - khali@linux-fr.org - compat/getopt.in: Remove duplicate test. ------------------------------------------------------------------- Sat Apr 15 14:38:24 CEST 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Fix broken return in function find_applied_patch, which was causing a bogus error message on failed pop. - test/three.test: Test failed pop. ------------------------------------------------------------------- Sun Mar 26 15:56:40 CEST 2006 - agruen@suse.de - test/mail.in: Test UTF-8 header encoding. ------------------------------------------------------------------- Sun Mar 26 11:45:15 CEST 2006 - khali@linux-fr.org - test/mail.in: Test for recipients with a dot in their name. ------------------------------------------------------------------- Sat Mar 25 21:03:23 CET 2006 - agruen@suse.de - quilt/mail.in: Use -gt instead of > in [ ... ] expression. - quilt/scripts/edmail.in: Improve handling of quoting and special characters in recipient addresses: Automatically quote display names that contain quotable characters, and encode special and eight-bit characters according to RFC 2047 (e.g., =?utf-8?q?Andreas=20Gr=C3=BCnbacher?=). ------------------------------------------------------------------- Sat Mar 25 14:45:09 CET 2006 - khali@linux-fr.org - Makefile.in: configure depends on aclocal.m4 too. - configure.ac: Cleanup two QUILT_COMPAT_PROG_PATH calls, the second parameter is not supposed to be a list. - aclocal.m4: Document the fourth (optional) parameter of QUILT_COMPAT_PROG_PATH. - aclocal.m4: No need to check for binaries we were told not to use. ------------------------------------------------------------------- Tue Mar 21 16:47:57 CET 2006 - agruen@suse.de - quilt/edit.in: The last fix broke another way of using edit. ------------------------------------------------------------------- Mon Mar 20 20:16:42 CET 2006 - khali@linux-fr.org - configure.ac: Fix a typo in a test expression which was breaking configure on FreeBSD. Patch contributed by Dirk Jagdmann. ------------------------------------------------------------------- Mon Mar 20 20:08:01 CET 2006 - khali@linux-fr.org - Makefile.in: Fix building with GNU make < 3.80. ------------------------------------------------------------------- Wed Mar 15 20:34:42 CET 2006 - agruen@suse.de - quilt/edit.in: Fix for working in subdirectories. ------------------------------------------------------------------- Sun Mar 12 14:50:26 CET 2006 - khali@linux-fr.org - Makefile.in: Fix pseudo-symlinks under compat not being removed by "make clean". ------------------------------------------------------------------- Sun Mar 5 10:41:36 CET 2006 - khali@linux-fr.org - quilt/import.in: Fix replacement of compressed patches. - test/import2.test: New test case for compressed patches. ------------------------------------------------------------------- Thu Feb 16 09:06:01 CET 2006 - agruen@suse.de - quilt/scripts/inspect.in: Also recognize when tar is passed a filename on the command line -- in this case, md5sum will add a `*' in front of the filename, which indicates a binary file. ------------------------------------------------------------------- Thu Feb 16 08:35:17 CET 2006 - agruen@suse.de - quilt/scripts/inspect.in: Add default value for QUILT_DIR so that inspect can be used stand-alone as well. ------------------------------------------------------------------- Wed Feb 15 10:02:15 CET 2006 - agruen@suse.de - quilt.spec.in: Use wildcards for matching manpage{,.gz,bz2} (Thomas Petazzoni ). ------------------------------------------------------------------- Tue Feb 14 23:58:22 CET 2006 - agruen@suse.de - Stop using bash's =~ operator: older versions don't support it. - Bump version to 0.44. ------------------------------------------------------------------- Tue Feb 14 19:30:02 CET 2006 - khali@linux-fr.org - po/fr.po: French translation update. ------------------------------------------------------------------- Tue Feb 14 19:07:31 CET 2006 - khali@linux-fr.org - quilt/mail.in: Fix temporary file leak. ------------------------------------------------------------------- Tue Feb 14 16:43:01 CET 2006 - agruen@suse.de - po/ja.po: Translation update from Yasushi. ------------------------------------------------------------------- Tue Feb 14 04:51:24 CET 2006 - agruen@suse.de - Fix a critical bug in the push command that causes parts of patches to end up half-reversed (introduced on 22 Jan). ------------------------------------------------------------------- Sun Feb 12 00:58:49 CET 2006 - agruen@suse.de - lib/backup-files.c: Close files before rename; Windows won't rename open files. ------------------------------------------------------------------- Sun Feb 12 00:54:47 CET 2006 - agruen@suse.de - test/run: Avoid warnings with some versions of Perl. ------------------------------------------------------------------- Sat Feb 11 23:57:09 CET 2006 - agruen@suse.de - Two bash 3.1 compatibility fixes from Arnaud Patard -- thank you. ------------------------------------------------------------------- Sat Feb 11 16:16:25 CET 2006 - agruen@suse.de - Some versions of mkdir screw up on `mkdir -p dir/.' when dir does not already exist. ------------------------------------------------------------------- Sat Feb 11 15:35:51 CET 2006 - agruen@suse.de - bin/patch-wrapper.in: Call GNU patch by absolute patch to avoid recursion. Don't print an error message when a patch contains no files. ------------------------------------------------------------------- Sat Feb 11 15:15:07 CET 2006 - agruen@suse.de - quilt/setup.in: Add --path option for defining a tarball search path. Fix a bug in check_for_existing_files. When a series file is given as an argument, symlink to that series file in the same way as we symlink to the patches. Improve the symlink creation algorithm. Add testcase test/setup.test. ------------------------------------------------------------------- Sat Feb 11 15:10:03 CET 2006 - agruen@suse.de - quilt/new.in: Try to explain how to choose another source tree root directory when quilt chooses the wrong one. ------------------------------------------------------------------- Sat Feb 11 14:28:23 CET 2006 - agruen@suse.de - quilt/scripts/patchfns.in: Fix bug in quilt_command when working in subdirectories. - Add testcase test/edit.test to catch this kind of bug. ------------------------------------------------------------------- Wed Feb 8 02:03:27 CET 2006 - agruen@suse.de - bin/patch-wrapper.in: Fix permissions of installed file. ------------------------------------------------------------------- Wed Feb 8 00:32:10 CET 2006 - agruen@suse.de - quilt/scripts/inspect.in: Improve recognition of patch's -i and --input options. ------------------------------------------------------------------- Tue Feb 7 20:53:03 CET 2006 - agruen@suse.de - po/ja.po: Fix three errors: % used instead of %s (Yasushi Shoji). ------------------------------------------------------------------- Mon Feb 6 12:39:43 CET 2006 - agruen@suse.de - Add --with-patch-wrapper configure argument, and optionally install the wrapper as /usr/share/quilt/wrapper/patch. - bin/patch-wrapper.in: Minor cleanups. ------------------------------------------------------------------- Mon Feb 6 06:26:59 CET 2006 - agruen@suse.de - bin/patch-wrapper.in: Add hack to follow pipes via /proc on Linux (zcat patch.diff.gz | patch -p0, etc.). ------------------------------------------------------------------- Mon Feb 6 02:41:10 CET 2006 - agruen@suse.de - bin/patch-wrapper.in: A wrapper to GNU patch that recognizes the most common options and mimics GNU patch's behavior and output, and creates the quilt metadata as if quilt push was used to apply the patch. When options are used that this wrapper does not recognize, GNU patch is used directly, and no quilt metadata will get created. - lib/backup-files.c: Don't fail if a directory specified with -B does not exist. ------------------------------------------------------------------- Sat Feb 4 08:37:47 CET 2006 - agruen@suse.de - make dist: Add the missing aclocal.m4 to the tarball. ------------------------------------------------------------------- Fri Feb 3 13:04:52 CET 2006 - khali@linux-fr.org - bash_completion: Code refactoring, indentation fixes. ------------------------------------------------------------------- Fri Feb 3 13:03:10 CET 2006 - khali@linux-fr.org - quilt/mail.in: Strip "Tr:" from subject lines like we do with "Re:" and "Fwd:". ------------------------------------------------------------------- Fri Feb 3 10:26:36 CET 2006 - agruen@suse.de - quilt/mail.in: Disable broken patch header format check. ------------------------------------------------------------------- Fri Feb 3 12:23:00 +1100 2006 - jayvdb@gmail.com - configure.ac: Add check for GNU diff and use $GREP in GNU patch check. ------------------------------------------------------------------- Wed Feb 1 16:11:57 CET 2006 - agruen@suse.de - Bump version to 0.43. ------------------------------------------------------------------- Wed Feb 1 16:03:03 CET 2006 - agruen@suse.de - compat/date.in: Fix GetOptions problem with options starting with `+'. - test/run: Adjust $ENV{PWD} in cd command; add FIXME comment in export command: in commands like `export foo=$var/bar', $var is not evaluated. ------------------------------------------------------------------- Wed Feb 1 13:50:22 CET 2006 - agruen@suse.de - quilt/mail.in: Documentation fix. ------------------------------------------------------------------- Wed Feb 1 13:28:36 CET 2006 - agruen@suse.de - configure.ac: Remove uniq -D test; we no longer use it. ------------------------------------------------------------------- Wed Feb 1 13:21:09 CET 2006 - jayvdb@gmail.com - compat/date.in: Compatibility wrapper that emulates the GNU date features that quilt depends on (with minor cleanups from Andreas Gruenbacher). - configure.ac: Add test for date --rfc-822. ------------------------------------------------------------------- Wed Feb 1 11:40:58 CET 2006 - agruen@suse.de - bin/guards: Update to latest version (supports --with-guards option). - doc/README.in: Update the description of the helper scripts. Add Typical Usages section from Randy Dunlap . - contrib/import.diff: Remove obsolete file. ------------------------------------------------------------------- Wed Feb 1 08:19:36 CET 2006 - khali@linux-fr.org - po/fr.po: Add missing translation of quilt mail's --sender option help. Thanks to Andreas Gruenbacher for pointing out. ------------------------------------------------------------------- Wed Feb 1 05:17:05 CET 2006 - jayvdb@gmail.com - Filter duplicates with awk instead of using uniq -D. ------------------------------------------------------------------- Wed Feb 1 05:04:04 CET 2006 - agruen@suse.de - Clean up quoting in messages. Add some spaces to the Japanese translation for good measure. ------------------------------------------------------------------- Wed Feb 1 01:15:38 CET 2006 - agruen@suse.de - Japanese translation update from Yasushi Shoji. ------------------------------------------------------------------- Tue Jan 31 13:45:06 CET 2006 - agruen@suse.de - Check for GNU uniq, and test if uniq -D is supported (from Gary V. Vaughan). ------------------------------------------------------------------- Tue Jan 31 13:27:37 CET 2006 - agruen@suse.de - Make sure that the %changes section in the spec file will contain POSIX dates (#15591). ------------------------------------------------------------------- Mon Jan 30 23:52:55 CET 2006 - khali@linux-fr.org - quilt/mail.in: Don't use sed's Q command, old versions of sed don't know about it. ------------------------------------------------------------------- Mon Jan 30 17:42:11 CET 2006 - agruen@suse.de - quilt/mail.in: Use $(hostname) for the sender address for platforms on which $(hostname -f) doesn't work. ------------------------------------------------------------------- Mon Jan 30 11:57:54 CET 2006 - jayvdb@gmail.com - compat/getopt.in: Properly handle spaces in arguments to getopt. ------------------------------------------------------------------- Mon Jan 30 11:52:00 CET 2006 - agruen@suse.de - Allow backup-files to build on windows using the MinGW compiler. ------------------------------------------------------------------- Mon Jan 30 11:46:21 CET 2006 - jayvdb@gmail.com - Makefile.in: The trailing slash in `find compat/' is causing OSX /usr/bin/find to print 'compat//sed', etc. As a result, they are appearing in compat_leftover, being removed in the middle of the build, causing errors during the construction of $(DOC). ------------------------------------------------------------------- Mon Jan 30 11:36:16 CET 2006 - jayvdb@gmail.com - test/mail.test: /dev/stdin & /dev/stdout dont exist on Tru64. ------------------------------------------------------------------- Mon Jan 30 11:32:29 CET 2006 - agruen@suse.de - lib/backup-files.c: Tru64 does not have snprintf. (Reported by John Vandenberg). ------------------------------------------------------------------- Mon Jan 30 08:04:17 CET 2006 - khali@linux-fr.org - bash_completion: Update import and mail commands options. ------------------------------------------------------------------- Mon Jan 30 07:45:17 CET 2006 - khali@linux-fr.org - po/fr.po: Update French translation. ------------------------------------------------------------------- Mon Jan 30 00:22:24 CET 2006 - agruen@suse.de - Also strip any bracketed fields and Re:, Fwd:, Fw:, Aw: from subject headers. ------------------------------------------------------------------- Sun Jan 29 22:46:14 CET 2006 - agruen@suse.de - quilt/mail.in: + Add -m and --prefix options so that the mail command can be used without invoking an editor. + Verify that each message generated will have a unique subject. + Verify that the introduction has a subject header. + Fix a bug in the heuristic for adding recipients. + Add a heuristic for extracting subject headers + Clarify some messages. + Add a test case. + Update the documentation. ------------------------------------------------------------------- Sun Jan 29 22:30:57 CET 2006 - agruen@suse.de - Makefile.in: Add a missing dependency. ------------------------------------------------------------------- Sun Jan 29 21:17:10 CET 2006 - khali@linux-fr.org - quilt/files.in, bash_completion: Command files only works on applied patches. ------------------------------------------------------------------- Sun Jan 29 15:40:47 CET 2006 - khali@linux-fr.org - quilt/patches.in, quilt/refresh.in: Update usage line. - bash_completion: Resync with quilt commands options. ------------------------------------------------------------------- Sun Jan 29 12:19:24 CET 2006 - khali@linux-fr.org - quilt/push.in: Fix a temporary file leak and vulnerability. ------------------------------------------------------------------- Sun Jan 29 10:48:48 CET 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Drop an unused local variable in function find_patch_file. - quilt/import.in: Add a missing print_patch call. - quilt/import.in: Fix several temporary file leaks. ------------------------------------------------------------------- Fri Jan 27 06:42:19 CET 2006 - agruen@suse.de - po/ja.po: Translation update from Yasushi. ------------------------------------------------------------------- Fri Jan 27 06:29:02 CET 2006 - agruen@suse.de - Stop using bash <(...) process substitution: it triggers bugs on some platforms. - In source tree compat/ "virtual symlink" scripts, exec the target binary instead of only calling it. ------------------------------------------------------------------- Fri Jan 27 05:55:11 CET 2006 - agruen@suse.de - Unify existing -p and -n parameters that specify a patch: always use -P as the option name. Update test suite and the translations accordingly. Patch mostly from Gary V. Vaughan. ------------------------------------------------------------------- Thu Jan 26 22:51:10 CET 2006 - khali@linux-fr.org - po/fr.po: Update French translation. ------------------------------------------------------------------- Thu Jan 26 22:35:57 CET 2006 - khali@linux-fr.org - lib/backup-files.c: Fix usage line and help text. - lib/backup-files.c: Improve recursive processing by avoiding repeated realloc and strlen calls. Hardly measurable though. ------------------------------------------------------------------- Thu Jan 26 20:26:54 CET 2006 - khali@linux-fr.org - Makefile.in: Have Makefile depend on configure, so that the user runs ./configure only once if both Makefile.in and configure.ac have changed. ------------------------------------------------------------------- Thu Jan 26 20:08:21 CET 2006 - agruen@suse.de - quilt/import.in: Add missing quoting, stop using diff -U for portability. ------------------------------------------------------------------- Thu Jan 26 13:49:53 CET 2006 - agruen@suse.de - aclocal.m4(QUILT_COMPAT_PROG_PATH): Create missing compat symlinks for binaries that have a different basename than what quilt expects (e.g., awk/gawk). Patch from Gary V. Vaughan. ------------------------------------------------------------------- Thu Jan 26 13:39:37 CET 2006 - agruen@suse.de - Stop using find's -printf option: some versions of find don't have it. ------------------------------------------------------------------- Thu Jan 26 12:49:00 CET 2006 - agruen@suse.de - quilt/delete.in: Remove a superfluous message. ------------------------------------------------------------------- Thu Jan 26 04:20:31 CET 2006 - agruen@suse.de - lib/backup-files.c: Stop using ftw and implement our own dir walking: ftw is a portability nightmare. The foreachdir function is based a proposal from Gary V. Vaughan , thanks! ------------------------------------------------------------------- Wed Jan 25 21:41:08 CET 2006 - agruen@suse.de - quilt/import.in: Improve the help text. - Makefile.in: Make sure configure is up to date. ------------------------------------------------------------------- Wed Jan 25 21:30:36 CET 2006 - agruen@suse.de - lib/backup-files.c: Fix memory leaks (markus@oberhumer.com). ------------------------------------------------------------------- Wed Jan 25 19:49:08 CET 2006 - agruen@suse.de - lib/backup-files.c: Don't fail when link(1) returns ENOSYS, and try to copy in that case. ------------------------------------------------------------------- Wed Jan 25 19:27:11 CET 2006 - agruen@suse.de - lib/backup-files.c: Fix another missed optimization. ------------------------------------------------------------------- Wed Jan 25 18:43:38 CET 2006 - agruen@suse.de - lib/backup-files.c: Cleanups by Markus F.X.J. Oberhumer . - lib/backup-files.c: Several fixes from Markus as well. ------------------------------------------------------------------- Tue Jan 24 03:28:12 CET 2006 - agruen@suse.de - quilt/scripts/parse-patch.in: files_in_patch improvement from jayvdb@gmail.com. ------------------------------------------------------------------- Mon Jan 23 21:40:26 CET 2006 - agruen@suse.de - configure.ac: Use $TR instead of tr. ------------------------------------------------------------------- Mon Jan 23 16:00:39 CET 2006 - jayvdb@gmail.com - Fix make check-all and make check-*. ------------------------------------------------------------------- Mon Jan 23 13:51:29 CET 2006 - agruen@suse.de - configure.ac: Require GNU patch 2.4+. - quilt/import.in: Don't use diff -U-1. - Test suite: Recognize output of old versions of patch (from jayvdb@gmail.com). ------------------------------------------------------------------- Mon Jan 23 13:05:48 CET 2006 - jayvdb@gmail.com - configure.ac: Check if awk supports sub(). - quilt/scripts/patchfns.in: Syntax changes for Solaris /usr/xpg4/bin/awk. ------------------------------------------------------------------- Mon Jan 23 11:58:20 CET 2006 - agruen@suse.de - Stop using GNU awk's gensub. ------------------------------------------------------------------- Mon Jan 23 10:52:25 CET 2006 - jayvdb@gmail.com - A better rule for test/.depend. - In order to run make check immediately after configure, a few minor dependencies need to be added. - The test suite depends on the compat layer and backup-files. - quilt/refresh depends on remove-trailing-ws. ------------------------------------------------------------------- Mon Jan 23 01:08:16 CET 2006 - agruen@suse.de - Remove unnecessary uses of diff's -N option. ------------------------------------------------------------------- Mon Jan 23 00:59:10 CET 2006 - agruen@suse.de - Don't include any object files in LIBOBJS that we don't have. ------------------------------------------------------------------- Mon Jan 23 00:45:30 CET 2006 - agruen@suse.de - Call $(CMD) instead of cmd in Makefile.in. ------------------------------------------------------------------- Sun Jan 22 05:08:12 CET 2006 - agruen@suse.de - push command: when a patch doesn't apply, check if it reverse applies, and inform the user. ------------------------------------------------------------------- Sun Jan 22 03:30:09 CET 2006 - agruen@suse.de - When inserting new diffstat, put a "---" line above it. ------------------------------------------------------------------- Sun Jan 22 00:44:27 CET 2006 - agruen@suse.de - Add fallback ftw implementation for systems that don't have it. ------------------------------------------------------------------- Sat Jan 21 23:37:24 CET 2006 - agruen@suse.de - Use ftw instead of nftw (some platforms don't have nftw). ------------------------------------------------------------------- Sat Jan 21 23:17:28 CET 2006 - jayvdb@gmail.com - lib/backup-files.c: Only create and remove parents that are missing or empty. Report errors in nftw. (Minor changes by agruen@suse.de). ------------------------------------------------------------------- Sat Jan 21 22:46:23 CET 2006 - jayvdb@gmail.com - Don't use date -r for comparing file timestamps. ------------------------------------------------------------------- Sat Jan 21 22:37:29 CET 2006 - jayvdb@gmail.com - GNU patch 2.5 messages differ slightly from the messages of more recent versions. Recognize the old version's output when fixing patch's output in the push command, and also accept the old version's output in the test suite. ------------------------------------------------------------------- Sat Jan 21 21:32:59 CET 2006 - jayvdb@gmail.com - test/run: Support regex matching in test scripts. ------------------------------------------------------------------- Sat Jan 21 21:31:16 CET 2006 - jayvdb@gmail.com - Check whether cp -l works. ------------------------------------------------------------------- Sat Jan 21 21:29:22 CET 2006 - jayvdb@gmail.com - Default to use NLS when NLS binaries are available (minor changes by agruen@suse.de). ------------------------------------------------------------------- Sat Jan 21 21:03:30 CET 2006 - agruen@suse.de - Split off strip_diffstat from header command. - import command: compare patch headers to prevent destruction; add -d option to choose which header(s) to keep. ------------------------------------------------------------------- Sat Jan 21 19:44:35 CET 2006 - jayvdb@gmail.com - import command: catch several error conditions. Patches in QUILT_PATCHES can now be imported. A minor fix in the output. ------------------------------------------------------------------- Sat Jan 21 19:23:19 CET 2006 - agruen@suse.de - Fix delete -n when no patches are applied. ------------------------------------------------------------------- Fri Jan 20 02:47:35 CET 2006 - jayvdb@gmail.com - Tru64 /bin/sh complains when $(call ) is used without ; on each line of the define. ------------------------------------------------------------------- Fri Jan 20 01:30:52 CET 2006 - jayvdb@gmail.com - Clear up the internal make rules so make -d is not so verbose. ------------------------------------------------------------------- Fri Jan 20 01:24:11 CET 2006 - agruen@suse.de - Check if arguments to --with- exist, warn if they do not, and fail if they do but are no executables. (Based on a patch from jayvdb@gmail.com). ------------------------------------------------------------------- Fri Jan 20 01:11:00 CET 2006 - jayvdb@gmail.com - configure.in: Document to use --without-foo instead of --with-foo=none. ------------------------------------------------------------------- Thu Jan 19 17:34:05 CET 2006 - agruen@suse.de - Make sure quilt diff --snapshot visits files in a defined order. ------------------------------------------------------------------- Thu Jan 19 18:52:30 +1100 2006 - jayvdb@gmail.com - Move patch parameter checks into patchfns.in, adding quotes around all patch parameters, and reporting 'No patches in series' - quilt/annonate.in: Fix case where no patches have been applied. ------------------------------------------------------------------- Mon Jan 16 23:27:27 CET 2006 - jayvdb@gmail.com - test/three.test, test/import.test: Add various tests. ------------------------------------------------------------------- Mon Jan 16 23:08:36 CET 2006 - jayvdb@gmail.com - Always use full command names in the test suite. ------------------------------------------------------------------- Mon Jan 16 21:51:40 CET 2006 - jayvdb@gmail.com - doc/README and doc/quilt.1 depend on compat/getopt being built prior to their generation. As the phony target 'compat' cant be used as a prereq, except to other phony targets, $(COMPAT) has been added to refer to all necessary compat/ objects. - bin/*.in should be regenerated after a change to Makefile. ------------------------------------------------------------------- Mon Jan 16 21:45:53 CET 2006 - agruen@suse.de - Change the rules for splitting a patch into header and body so that it will work for git extanded patches as well. ------------------------------------------------------------------- Sun Jan 15 16:00:17 CET 2006 - agruen@suse.de - John Vandenberg : Make check depends on programs that have been configured with --with-=. Make dependencies would get confused by symlinks, so create wrappers in compat/ for make check. - Remove binaries in compat/ that are not listed in COMPAT_PROGRAMS or COMPAT_SYMLINKS. - configure.ac: use --without-$foo instead of --with-foo=none. - Fix processing of translations again, and update de.po. ------------------------------------------------------------------- Sat Jan 14 19:42:21 CET 2006 - agruen@suse.de - Move scripts directory to quilt/scripts to simplify running quilt directly from the source tree. - test/Makefile: merge into Makefile.in (target check). - Makefile.in: clean up. ------------------------------------------------------------------- Sat Jan 14 05:10:01 CET 2006 - agruen@suse.de - Use the quilt version in the source tree instead of the installed version for running the test suite. ------------------------------------------------------------------- Tue Jan 10 19:29:57 CET 2006 - khali@linux-fr.org - test/null-bug.test: Fix the original directory creation so that the test doesn't fail if any higher-level directory contains a patches/ sub-directory. - test/*.test: Fix the test suite after the December 8th, 2005 change to quilt diff. Contributed by Markus Oberhumer. ------------------------------------------------------------------- Wed Jan 4 17:32:47 CET 2006 - khali@linux-fr.org - po/quilt.pot, po/de.po: Resync with code. - po/ja.po: Update from Yasushi Shoji. - po/fr.po: Update from me. ------------------------------------------------------------------- Thu Dec 8 17:45:41 CET 2005 - agruen@suse.de - scripts/inspect.in (setup command): add heuristic to check for input files specified on the command line in the tar/patch wrapper. - quilt/diff.in: Degrade the ``More recent patches modify files in patch'' message to a warning. ------------------------------------------------------------------- Thu Dec 1 11:56:33 CET 2005 - mquinson@debian.org - bin/guards.in: s/ocnfiguration/configuration/ (fixes Bug#341518 in Debian) - doc/quilt.1.in: Document common options to all commands (fixes Bug#334408 in Debian) ------------------------------------------------------------------- Mon Nov 28 01:34:05 CET 2005 - agruen@suse.de - quilt/diff.in, quilt/refresh.in: for -p0 style patches, when a file is being deleted, use the real filename in the +++ line instead of filename.orig: if we don't, the patch does not contain the real filename anymore, and patch will fail. See test/null-bug.test. - files command: remove a redundant find_patch(). - Make top_patch() fail if there is no top patch. ------------------------------------------------------------------- Fri Nov 4 16:21:58 CET 2005 - agruen@suse.de - Makefile.in: don't strip the backup-files binary in the install target. - quilt.spec.in: set the CFLAGS to $RPM_OPT_FLAGS, and pass on the RPM release number when building quilt. ------------------------------------------------------------------- Wed Oct 12 15:33:53 CEST 2005 - agruen@suse.de - scripts/inspect.in: remove unnecessary path_search() function and let the shell search the path internally. ------------------------------------------------------------------- Tue Oct 4 18:43:42 CEST 2005 - khali@linux-fr.org - scripts/patchfns.in: Prevent patch_header and patch_body from mistakenly considering "---" alone on its header line as the beginning of the patch body. ------------------------------------------------------------------- Fri Sep 23 22:24:29 CEST 2005 - khali@linux-fr.org - configure.ac: Let the user select the find binary. Test that find supports -path. ------------------------------------------------------------------- Fri Sep 23 22:19:30 CEST 2005 - khali@linux-fr.org - quilt/files.in: Sort the file names rather than respecting the original order of the files in patches. This is slightly faster, and we don't much care about the original order. ------------------------------------------------------------------- Fri Sep 23 20:32:38 CEST 2005 - khali@linux-fr.org - Fix the test suite so that directories leftover from a previously interrupted test won't cause a test to fail. ------------------------------------------------------------------- Fri Sep 23 20:27:08 CEST 2005 - khali@linux-fr.org - Drop test/reorder.test, it duplicates test/sort.test but is less complete. ------------------------------------------------------------------- Fri Sep 23 20:06:50 CEST 2005 - khali@linux-fr.org - test/run: Do not depend on Term::ReadKey. ------------------------------------------------------------------- Fri Sep 23 14:47:05 CEST 2005 - agruen@suse.de - Fix the test suite so that it doesn't fail if any higher-level directory contains a patches/ sub-directory (iow, if quilt itself is patched with quilt). ------------------------------------------------------------------- Thu Sep 22 20:38:56 CEST 2005 - khali@linux-fr.org - Makefile.in: Fix extra spaces in foreach command which were causing "missing separator" errors. Patch from Gary V. Vaughan. ------------------------------------------------------------------- Thu Sep 22 20:26:09 CEST 2005 - khali@linux-fr.org - configure.ac: Test sed support for (foo|bar) constructs. ------------------------------------------------------------------- Wed Sep 21 22:44:26 CEST 2005 - khali@linux-fr.org - configure.ac, Makefile.in: Make the cp, date and tr binaries user-selectable. - configure.ac: Test grep and tr features. ------------------------------------------------------------------- Wed Sep 21 22:41:08 CEST 2005 - khali@linux-fr.org - aclocal.m4: Fix typo causing binaries with alternative names not to be properly handled. ------------------------------------------------------------------- Wed Sep 21 21:33:39 CEST 2005 - khali@linux-fr.org - quilt/files.in: Compute file status only when needed (that is, when -v is used and -l isn't). This divides the execution time by 5 in all other cases. ------------------------------------------------------------------- Wed Sep 21 21:13:19 CEST 2005 - khali@linux-fr.org - test/subdir.test: Test quilt files -v. ------------------------------------------------------------------- Wed Sep 21 20:20:47 CEST 2005 - khali@linux-fr.org - test/sort.test: Quote grep arguments, as some grep implementations seem to otherwise choke on them. Original patch from John Vandenberg. ------------------------------------------------------------------- Wed Sep 21 20:11:06 CEST 2005 - khali@linux-fr.org - quilt/diff.in: Add missing call to print_patch. ------------------------------------------------------------------- Tue Sep 20 19:57:43 CEST 2005 - khali@linux-fr.org - Makefile.in: Fix compat/tail symlink creation. Fix variable exporting bashism. - configure.ac: Use grep >/dev/null instead of grep -q for compatibility. Test for grep -q, some quilt scripts need it. - test/Makefile: Fix varible exporting and script sourcing bashisms. ------------------------------------------------------------------- Mon Sep 19 21:02:53 CEST 2005 - agruen@suse.de - Makefile.in: Fix when COMPAT_PROGRAMS is empty. - Avoid spurious rebuilds because of unnecessary chmod. ------------------------------------------------------------------- Mon Sep 19 20:26:47 CEST 2005 - khali@linux-fr.org - Makefile.in: Fix harmless error message in reference rule. ------------------------------------------------------------------- Mon Sep 19 19:48:50 CEST 2005 - khali@linux-fr.org - aclocal.m4: Fix a bug causing user-selected binary names not to be displayed properly. ------------------------------------------------------------------- Mon Sep 19 16:05:14 CEST 2005 - agruen@suse.de - Use compatibility m4 for diffstat. Correctly diagnose older diffstat on OS X 10.3, which outputs '1.2 (patch 5)'. Update configure warning message to reflect reality that quilt diff does not accept --diffstat (John Vandenberg ). ------------------------------------------------------------------- Mon Sep 19 15:54:01 CEST 2005 - agruen@suse.de - quilt/mail.in: add a --sender option for specifying the envelope sender address (defaults to ${LOGNAME:-`whoami`}@`hostname -f`). ------------------------------------------------------------------- Mon Sep 19 15:23:54 CEST 2005 - agruen@suse.de - Rename MTA program to SENDMAIL, and improve configure.ac (from John Vandenberg again, as several other recent things -- thanks!) - Must build the compatibility programs before creating the command reference (which extracts the help texts). ------------------------------------------------------------------- Mon Sep 19 12:25:15 CEST 2005 - agruen@suse.de - Fix mta check when sendmail is found. - Fix --disable-nls. - configure.ac: Don't run tests when using internal compatibility programs. ------------------------------------------------------------------- Sun Sep 18 18:39:56 CEST 2005 - agruen@suse.de - Add a missing $(BUILD_ROOT) and fix compat-symlink dependencies. ------------------------------------------------------------------- Sun Sep 18 18:28:56 CEST 2005 - khali@linux-fr.org - configure.ac: Test for tail -n. ------------------------------------------------------------------- Sun Sep 18 17:59:03 CEST 2005 - agruen@suse.de - Makefile.in: Add a dependency of all to COMPAT_PROGRAMS which was lost somewhere. Fix internal "mta" program. - Get rid of ``grep -E''. ------------------------------------------------------------------- Sun Sep 18 17:41:56 CEST 2005 - agruen@suse.de - Fix a few things in po/quilt.pot generation. - Always create the mta symlink in compat/. Replace "@MTA@" with "mta" in scripts. Replace mta check in configure.ac with QUILT_COMPAT_PROG_PATH. - quilt/mail.in: Add a User-Agent header. - Update the German translation. ------------------------------------------------------------------- Sun Sep 18 16:28:14 CEST 2005 - agruen@suse.de - Makefile.in: remove obsolete substitutions. ------------------------------------------------------------------- Sun Sep 18 15:17:54 CEST 2005 - agruen@suse.de - Get rid of ``grep -e''. ------------------------------------------------------------------- Sun Sep 18 15:05:43 CEST 2005 - agruen@suse.de - Remove config.h, and use @DEFS@ in Makefile.in instead (Gary V. Vaughan ). ------------------------------------------------------------------- Sun Sep 18 14:30:53 CEST 2005 - khali@linux-fr.org - configure.ac: Drop useless -e to grep. ------------------------------------------------------------------- Sun Sep 18 14:15:13 CEST 2005 - agruen@suse.de - Merge po/Makefile into Makefile.in. Add a lost @false to Makefile.in. ------------------------------------------------------------------- Sun Sep 18 12:55:17 CEST 2005 - agruen@suse.de - lib/backup-files.c: add missing dependency on config.h. Check for chmod and fchmod support. Remove two unnecessary chmod calls. - Makefile.in: fix cyclic dependency on Makefile. ------------------------------------------------------------------- Sun Sep 18 12:32:41 CEST 2005 - agruen@suse.de - lib/backup-files.c: use mktemp if mkstemp is not available (Gary V. Vaughan ). Add a config.h. ------------------------------------------------------------------- Sun Sep 18 12:12:47 CEST 2005 - agruen@suse.de - lib/backup-files.c: switch from alloca to malloc for portability. ------------------------------------------------------------------- Sun Sep 18 11:21:08 CEST 2005 - khali@linux-fr.org - configure.ac: Make the tail executable user-selectable. ------------------------------------------------------------------- Sun Sep 18 10:13:26 CEST 2005 - agruen@suse.de - Forgot to add new files to the repository. ------------------------------------------------------------------- Sun Sep 18 02:49:43 CEST 2005 - agruen@suse.de - Merge compatibility layer from John Vandenberg . - Only add compat/ directory to PATH if it exists. Only create it when necessary. - configure.ac: fail if getopt does not support --long. - Replace @INSTALL@ with $(INSTALL) and @BASH@ with $(BASH) in Makefile.in. - Replace @FOO@ macros in scripts with foo command where possible. - Remove compatibility shell functions and convert them to standalone scripts. ------------------------------------------------------------------- Fri Sep 16 20:57:32 CEST 2005 - khali@linux-fr.org - configure.ac: Fix a copy-n-paste bug which was causing perl to be checked twice and awk not to be checked properly. ------------------------------------------------------------------- Fri Sep 16 18:49:05 CEST 2005 - khali@linux-fr.org - Make it possible to pass arbitrary options to diffstat, by defining a QUILT_DIFFSTAT_OPTS variable in ~/.quiltrc. - Update documentation and sample configuration file accordingly. ------------------------------------------------------------------- Thu Sep 15 23:35:44 CEST 2005 - agruen@suse.de - Fix off-by-one error: it's not a good idea to edit $x instead of $x.in. ------------------------------------------------------------------- Thu Sep 15 22:19:55 CEST 2005 - khali@linux-fr.org - Makefile.in: Add missing dependency of doc/README on quilt/*. - Makefile.in: Rewrite non-portable sed command in "reference" rule. ------------------------------------------------------------------- Thu Sep 15 19:51:06 CEST 2005 - khali@linux-fr.org - Omitting the search directory in "find" is not portable; add an explicit "." (Gary V. Vaughan, John Vandenberg). ------------------------------------------------------------------- Thu Sep 15 15:20:27 CEST 2005 - agruen@suse.de - Fix quilt.spec generation after the Sep 14 change. ------------------------------------------------------------------- Thu Sep 15 12:33:32 CEST 2005 - agruen@suse.de - quilt/pop.in: get rid of tac. ------------------------------------------------------------------- Thu Sep 15 01:51:20 CEST 2005 - agruen@suse.de - quilt/mail.in: Remove stray getopt line. If --subject is given, actually fill in the subject in the message template. ------------------------------------------------------------------- Wed Sep 14 22:52:23 CEST 2005 - khali@linux-fr.org - Makefile.in: Use @BASH@ instead of bash (John Vandenberg). - Makefile.in: Use `foo` instead of $$(foo) for compatibility. - Makefile.in: Drop call to chmod --reference (Gary V. Vaughan). ------------------------------------------------------------------- Tue Sep 13 23:01:04 CEST 2005 - khali@linux-fr.org - quilt/annotate.in: Rework the annotation algorithm (Andreas Gruenbacher). The new code is shorter and faster. - quilt/annotate.in: New option "-p patch" to stop checking for changes at the specified rather than the topmost patch. - bash_completion: Support the new -p option. - test/annotation.test: Test the new -p option. ------------------------------------------------------------------- Sun Sep 11 10:32:28 CEST 2005 - khali@linux-fr.org - quilt/annotate.in: Update help text to mention that only applied patches will show (Andreas Gruenbacher). Optimize by using applied_patches() instead of cat_series(). ------------------------------------------------------------------- Fri Sep 9 20:19:39 CEST 2005 - khali@linux-fr.org - test/*.test: Fix sed compatibility issues: do not use inplace (-i); do not filter out tabs in patches, it's no more needed now that --no-timestamps is used; do not use the "a" command. Based on a patch by John Vandenberg. ------------------------------------------------------------------- Fri Sep 9 18:09:42 CEST 2005 - khali@linux-fr.org - scripts/patchfns.in: New quilt_command function for running another quilt command. Patch from Joe Green. - quilt/delete.in, quilt/edit.in: Use the new quilt_command function. Patch from Joe Green. ------------------------------------------------------------------- Wed Sep 7 18:22:29 CEST 2005 - khali@linux-fr.org - quilt/delete.in: Fix the quilt pop invocation when attempting to delete the top patch (default). Patch by Joe Green. ------------------------------------------------------------------- Tue Sep 6 20:22:04 CEST 2005 - khali@linux-fr.org - Japanese translation update contributed by Satoru Takeuchi and Yasushi Shoji. ------------------------------------------------------------------- Tue Sep 6 20:15:54 CEST 2005 - khali@linux-fr.org - It is now possible to set EDITOR in ~/.quiltrc in order to use a different editor for quilt and for the other tasks. ------------------------------------------------------------------- Tue Sep 6 19:57:38 CEST 2005 - khali@linux-fr.org - doc/README needs the same $EDITOR filtering quirk we just added for doc/quilt.1. ------------------------------------------------------------------- Tue Sep 6 19:34:03 CEST 2005 - khali@linux-fr.org - scripts/patchfns.in: Rewrite files_in_patch_ordered() so as to not require the awk asort function, which is not available on all versions of awk. - test/sort.test: Add more files to better test the ordering and sorting issues. Original patch by John Vandenberg. ------------------------------------------------------------------- Tue Sep 6 18:57:16 CEST 2005 - khali@linux-fr.org - Merge doc/sample.quiltrc into quilt.quiltrc, and delete it. It will be easier to maintain a single configuration file. ------------------------------------------------------------------- Tue Sep 6 18:35:18 CEST 2005 - khali@linux-fr.org - Makefile.in: Filter out expanded $EDITOR in quilt.1. This value being set at installation time may be irrelevant at execution time. ------------------------------------------------------------------- Tue Sep 6 11:17:10 CEST 2005 - agruen@suse.de - Fix test/perms.test for LANG=POSIX (from John Vandenberg ), and always run the test cases with LANG set to POSIX. ------------------------------------------------------------------- Sun Sep 4 14:09:10 CEST 2005 - khali@linux-fr.org - quilt/diff.in: Fix incorrect error message when incompatible options are used. Fix direct call to awk. ------------------------------------------------------------------- Fri Sep 2 19:31:51 CEST 2005 - khali@linux-fr.org - scripts/patchfns.in: Fix permissions of .pc/applied-patches being lost in remove_from_db() and rename_in_db(). ------------------------------------------------------------------- Fri Sep 2 18:57:54 CEST 2005 - khali@linux-fr.org - quilt/refresh.in: Drop a useless line in the awk script replacing the diffstat section in patch headers. Improve the regular expression matching diffstat lines. Original patch from John Vandenberg. ------------------------------------------------------------------- Sun Aug 28 20:48:12 CEST 2005 - khali@linux-fr.org - configure.ac, Makefile.in: Support GCC and other compilers. Allow executable extensions (non-Unix.) Original patch from John Vandenberg. ------------------------------------------------------------------- Fri Aug 26 13:03:19 CEST 2005 - khali@linux-fr.org - quilt/delete.in: Drop extra spaces in usage line. - quilt/graph.in: Add missing -T option to usage line. - quilt/push.in: Add missing --interactive and --color options to usage line. ------------------------------------------------------------------- Fri Aug 26 12:17:54 CEST 2005 - khali@linux-fr.org - quilt/delete.in: Add options -r (remove patch file) and --backup (backup rather than remove.) Patch from Joe Green. ------------------------------------------------------------------- Fri Aug 26 11:52:45 CEST 2005 - agruen@suse.de - scripts/patchfns.in: insert_in_series(): Insert new patches before the following patch instead of after the top patch. When no patch is in the series file, insert the new patch at the end (i.e., after comments from setup, etc.) instead of at the top. ------------------------------------------------------------------- Fri Aug 26 10:29:55 CEST 2005 - khali@linux-fr.org - quilt/import.in: Fix error path when imported patch doesn't exist. ------------------------------------------------------------------- Wed Aug 24 16:53:44 CEST 2005 - agruen@suse.de - quilt/edit.in: Check exit status after adding files, and fail except when files have already been added. ------------------------------------------------------------------- Mon Aug 22 23:15:18 CEST 2005 - agruen@suse.de - quilt/fold.in: fold did not work when invoked from a subdirectory; update test case. ------------------------------------------------------------------- Fri Aug 12 20:28:59 CEST 2005 - khali@linux-fr.org - configure.ac: Do not check for diffstat version if --without-diffstat is used. ------------------------------------------------------------------- Thu Aug 11 18:43:38 CEST 2005 - mquinson@debian.org - bash_completion: add completion of the header command [Joe Green]. - improve description of the import command [Joe Green]. ------------------------------------------------------------------- Fri Jul 29 18:56:58 CEST 2005 - khali@linux-fr.org - test/delete.test: New test case for the delete command. ------------------------------------------------------------------- Fri Jul 29 18:49:41 CEST 2005 - khali@linux-fr.org - Makefile.in: add test/Makefile and test/test.quiltrc to SRC, so that they get included into the tarball by make dist. ------------------------------------------------------------------- Wed Jul 27 18:18:38 CEST 2005 - agruen@suse.de - test/missing.test: Fix test case. ------------------------------------------------------------------- Tue Jul 26 20:02:21 CEST 2005 - khali@linux-fr.org - Bump version to 0.42. ------------------------------------------------------------------- Tue Jul 26 12:32:06 CEST 2005 - agruen@suse.de - Mike Fabian fixed two fuzzy Japanese messages for us -- thanks! ------------------------------------------------------------------- Mon Jul 25 19:32:08 CEST 2005 - khali@linux-fr.org - Fix one fuzzy message in French translation. ------------------------------------------------------------------- Mon Jul 25 09:41:19 CEST 2005 - agruen@suse.de - Japanese translation update from Yasushi SHOJI . ------------------------------------------------------------------- Sun Jul 24 16:46:54 CEST 2005 - khali@linux-fr.org - Let the perl scripts (edmail, parse-patch and remove-trailing-ws) work without Locale::gettext. ------------------------------------------------------------------- Fri Jul 22 19:05:13 CEST 2005 - khali@linux-fr.org - Makefile.in: Drop pointless dependency between quilt command files and scripts. ------------------------------------------------------------------- Tue Jul 19 19:15:45 CEST 2005 - khali@linux-fr.org - Update French translation. ------------------------------------------------------------------- Tue Jul 19 14:07:17 CEST 2005 - agruen@suse.de - Fix a few translation bugs; update german translation. ------------------------------------------------------------------- Tue Jul 19 00:22:11 CEST 2005 - agruen@suse.de - Add internationalization support to Perl scripts as well. - Rename test/create-delete.diff to *.test and fix the test. ------------------------------------------------------------------- Mon Jul 18 19:28:18 CEST 2005 - khali@linux-fr.org - French translation unfuzzying. ------------------------------------------------------------------- Mon Jul 18 18:22:00 CEST 2005 - agruen@suse.de - uninstall target: remove $(LIB_DIR) as well. ------------------------------------------------------------------- Mon Jul 18 16:54:16 CEST 2005 - agruen@suse.de - Based on work done by several contributers, add a header command. - Bump version to 0.41. ------------------------------------------------------------------- Mon Jul 18 12:15:35 CEST 2005 - agruen@suse.de - quilt/annotate.in: Fix case where the file is created/deleted by a patch. - Makefile.in: add uninstall target. ------------------------------------------------------------------- Sun Jul 17 10:05:10 CEST 2005 - agruen@suse.de - bin/quilt.in: clean up helptext. ------------------------------------------------------------------- Thu Jul 14 22:10:21 CEST 2005 - khali@linux-fr.org - Update the French translation. ------------------------------------------------------------------- Thu Jul 14 13:05:39 CEST 2005 - agruen@suse.de - Use wildcard to generate the list of all commands in Makefile instead of explicitly listing them. - Helptext improvements. ------------------------------------------------------------------- Thu Jul 7 22:13:47 CEST 2005 - khali@linux-fr.org - Makefile.in: Properly set LINGUAS before running "make all" in subdirectory po. This ensures that all .mo files will actually be built. - Makefile.in: Delete po/*.mo only once on "make clean". ------------------------------------------------------------------- Wed Jul 6 23:13:01 CEST 2005 - khali@linux-fr.org - quilt delete: Add option -n, which deletes the next patch after topmost (rather than the specified or topmost patch). ------------------------------------------------------------------- Tue Jul 5 18:33:15 CEST 2005 - khali@linux-fr.org - fr.po: Add all missing translations. - de.po: Add one easy translation. ------------------------------------------------------------------- Tue Jul 5 12:19:40 CEST 2005 - khali@linux-fr.org - quilt delete: Display the name of the deleted patch on success. ------------------------------------------------------------------- Sat Jul 2 13:51:50 CEST 2005 - agruen@suse.de - Remove outdated BUGS file and references. - refresh command: don't write into existing patches but create new files instead to avoid overwriting hardlinked copies. ------------------------------------------------------------------- Fri Jul 1 16:48:38 CEST 2005 - khali@linux-fr.org - configure.ac: Add a test on diffstat version. Versions prior to 1.32 are known to behave in a confusing manner, so we warn the user if such an old version is found. ------------------------------------------------------------------- Wed Jun 29 19:42:12 CEST 2005 - agruen@suse.de - po/de.po: Small update from Debian Bug #313827. ------------------------------------------------------------------- Wed Jun 29 17:50:47 CEST 2005 - khali@linux-fr.org - Fix a typo in diff.in's help. ------------------------------------------------------------------- Wed Jun 29 12:48:34 CEST 2005 - khali@linux-fr.org - French translation unfuzzying. ------------------------------------------------------------------- Mon Jun 27 20:22:33 CEST 2005 - khali@linux-fr.org - Fix a typo in quilt.changes. ------------------------------------------------------------------- Mon Jun 27 09:54:53 CEST 2005 - agruen@suse.de - quilt diff: Fix -z option if QUILT_PATCHES is an absolute path. ------------------------------------------------------------------- Sun Jun 26 23:37:23 CEST 2005 - agruen@suse.de - Jean Delvare: + Add a --version option that prints the program version. + patch_args: Fix comments parsing in series files. ------------------------------------------------------------------- Wed Jun 22 23:35:23 CEST 2005 - agruen@suse.de - annotate: temp file leak; add bash completions (Jean Delvare). ------------------------------------------------------------------- Wed Jun 22 00:15:19 CEST 2005 - agruen@suse.de - quilt/annotate.in: Add comment; remove some dead code. ------------------------------------------------------------------- Tue Jun 21 23:54:51 CEST 2005 - agruen@suse.de - add command: "File %s added to patch %s" message goes to stdout and not to stderr (Jean Delvare). - Don't fail when popping missing patches (Jerome Lacoste, Jean Delvare, I). ------------------------------------------------------------------- Sat Jun 18 19:51:36 CEST 2005 - agruen@suse.de - Add fix for refresh --strip-trailing-whitespace option: now refresh always checks for trailing whitespace and reports it per file and line number. With --strip-trailing-whitespace it strips the whitespace from the patch and from the affected files in the working tree. ------------------------------------------------------------------- Sat Jun 18 15:03:13 CEST 2005 - agruen@suse.de - Add new annotate command. ------------------------------------------------------------------- Thu Jun 16 13:18:33 CEST 2005 - agruen@suse.de - rpm build: add missing files to file list; remove percent-prep string from changes file so that RPM doesn't choke on it. ------------------------------------------------------------------- Tue Jun 14 12:07:43 CEST 2005 - agruen@suse.de - refresh command: also touch .pc/$patch/.timestamp when a patch is found to be up-to-date (Peter Williams, ). ------------------------------------------------------------------- Sun Jun 12 17:53:10 CEST 2005 - agruen@suse.de - Documentation update from Jerome Lacoste and me. ------------------------------------------------------------------- Sun Jun 12 13:54:30 CEST 2005 - agruen@suse.de - Remove obsolete remnants of removed -n flag (Jean Delvare). ------------------------------------------------------------------- Thu Jun 9 14:47:13 CEST 2005 - agruen@suse.de - Additional fixes to the rename command. ------------------------------------------------------------------- Wed Jun 8 22:28:12 CEST 2005 - agruen@suse.de - Add rename command from Jean Delvare . ------------------------------------------------------------------- Wed Jun 8 17:29:44 CEST 2005 - agruen@suse.de - Add testcase for diff --no-index. ------------------------------------------------------------------- Mon Jun 6 21:27:23 CEST 2005 - agruen@suse.de - Add --no-index option to diff and refresh commands: Suppress Index: lines in the patch. From Jean Delvare . ------------------------------------------------------------------- Wed Jun 1 13:19:13 CEST 2005 - agruen@suse.de - test/remove2.test: Test for remove + refresh interactions. ------------------------------------------------------------------- Tue May 24 01:25:30 CEST 2005 - agruen@suse.de - quilt.quiltrc: A minor cleanup in quilt_mail_patch_filter(). ------------------------------------------------------------------- Sun May 22 18:15:52 CEST 2005 - agruen@suse.de - setup command: When a patch cannot be identified, scan all the files in the build directory: the patch may have been created, unpacked from an archive, etc. ------------------------------------------------------------------- Sun May 22 18:14:35 CEST 2005 - agruen@suse.de - refresh command: Fix temporary file leak (from Jean Delvare). ------------------------------------------------------------------- Wed May 18 09:58:37 CEST 2005 - agruen@suse.de - debian/changelog: Fix typo. ------------------------------------------------------------------- Thu May 12 15:02:57 CEST 2005 - agruen@suse.de - Quoting fix from Jean Delvare , and one more from me. ------------------------------------------------------------------- Sun May 8 19:39:14 CEST 2005 - agruen@suse.de - doc/quilt.1.in: Fix some typos (mostly from Jean Delvare). ------------------------------------------------------------------- Sun May 1 08:49:36 CEST 2005 - agruen@suse.de - Fix misspelling in documentation (Nicolas Kaiser ). ------------------------------------------------------------------- Fri Apr 29 09:25:14 CEST 2005 - agruen@suse.de - Add trailing-whitespace check an --strip-trailing-whitespace option to the refresh command. - Bump version to 0.40. ------------------------------------------------------------------- Wed Apr 20 00:02:39 CEST 2005 - agruen@suse.de - fork command help update (Jean Delvare ). ------------------------------------------------------------------- Wed Apr 13 14:59:41 CEST 2005 - agruen@suse.de - Add --sort options to the diff and refresh commands which sorts files by filename. The default is to keep files in their original order whenever possible. - refresh command: add new files in sort order instead of the filesystem order. - diff command: output files in the order in which they show up in the patch instead of sorting them alphabetically. - Add sort testcase. ------------------------------------------------------------------- Wed Apr 13 10:11:06 CEST 2005 - agruen@suse.de - Fix typos in introduction. ------------------------------------------------------------------- Tue Apr 5 09:20:13 CEST 2005 - agruen@suse.de - doc/quilt.1.in: Remove an unnecessary 8-bit character. ------------------------------------------------------------------- Thu Mar 10 19:12:40 CET 2005 - agruen@suse.de - Debian Bug #298785: Pass -p $opt_strip_level option to diffstat in refresh command. ------------------------------------------------------------------- Mon Mar 7 09:20:14 CET 2005 - agruen@suse.de - Another Japanese translation update from Yasushi SHOJI. ------------------------------------------------------------------- Sun Mar 6 22:56:12 CET 2005 - agruen@suse.de - Add `graph', `grep' and `mail' to QUILT_IN in po/Makefile. - Fix typo and translation updates. - Add a missing ``exit 1'' to quilt/fold.in when no patches are applied. (All except the German translation update from Yasushi SHOJI -- thanks.) ------------------------------------------------------------------- Fri Feb 24 13:12:57 CET 2005 - mquinson@debian.org - quilt add: Add check to ensure that no symlink will be added since we fail to backup them properly (see #295913 in Debian). ------------------------------------------------------------------- Fri Feb 18 11:01:57 CET 2005 - agruen@suse.de - quilt add: Add check to ensure that no files below patches/ or .pc/ will be added. ------------------------------------------------------------------- Thu Feb 10 12:02:21 CET 2005 - agruen@suse.de - quilt remove: Update restored file's timestamp. Also, some uses caused a subsequent ``quilt diff -z'' to fail: we must mark the patch as dirty after removing files. - test/run: adjust to terminal width. - Bump version to 0.39. ------------------------------------------------------------------- Sun Feb 6 01:15:03 CET 2005 - agruen@suse.de - Update of the Japanese translation from Yasushi SHOJI -- thank you. - Don't leak so many temporary files in the push command. - Include command names in tempfile names to find leaks more easily. ------------------------------------------------------------------- Wed Feb 2 17:35:19 CET 2005 - agruen@suse.de - Fix date calculation bug with some versions of GNU date. ------------------------------------------------------------------- Wed Feb 2 01:16:57 CET 2005 - agruen@suse.de - Use color defaults so that QUILT_COLORS can be used to only override some colors. - When checking for remaining changes (refresh forgotten), use $QUILT_PATCH_OPTS as in the push command to get identical results. Don't generate the actually diff; it doesn't get printed anyway. This should speed things up. ------------------------------------------------------------------- Thu Jan 27 08:14:34 CET 2005 - agruen@suse.de - lib/backup-files.c: Remove unused command line option and document the remaining options. - quilt/pop.in: Colorize this as well: "Patch attempted to create file *, which already exists." "can't find file to patch at input line *" "* out of * hunk ignored" ------------------------------------------------------------------- Tue Jan 25 13:53:23 CET 2005 - agruen@suse.de - Fix pop command for recent coreutils (cp dir dir2/ no longer works if dir2 doesn't yet exist). ------------------------------------------------------------------- Sun Jan 23 19:27:17 CET 2005 - agruen@suse.de - Add color support for push command output and allow to customize colors via the QUILT_COLORS environment variable (for reverse video, etc.). ------------------------------------------------------------------- Sun Jan 23 05:03:08 CET 2005 - agruen@suse.de - Add mail command, doc/README.MAIL and example ``mail'' command filter in quilt.quiltrc. - Bump version to 0.38. ------------------------------------------------------------------- Fri Jan 21 13:49:30 CET 2005 - agruen@suse.de - Add a missing find_patch call in the files command. ------------------------------------------------------------------- Thu Jan 20 12:36:25 CET 2005 - mquinson@debian.org - fix the bash completion file: - does not complete on dir anymore, just files. - use string comparison when dealing with BASH_VERSION, it may contain letters. ------------------------------------------------------------------- Tue Jan 11 03:53:19 CET 2005 - agruen@suse.de - Add a default /etc/quilt.quiltrc file that is sourced if no ~/.quiltrc file exists. ------------------------------------------------------------------- Fri Nov 19 13:02:32 CET 2004 - agruen@suse.de - Push command: Write out output of patch process immediately instead of reading into a variable and then printing that variable. This helps to see what's happening with large patches. ------------------------------------------------------------------- Mon Nov 15 23:36:40 CET 2004 - agruen@suse.de - Get rid of the apatch and rpatch helper scripts: Integrate them in the push and pop commands. This should bring a small performance improvement. ------------------------------------------------------------------- Mon Nov 8 13:02:31 CET 2004 - agruen@suse.de - Fix extra trailing space in series file after quilt refresh (David Vrabel ). - Missing quotation in bash_completion (Axel Grossklaus ). - Fix patches command (Brent Casavant ). ------------------------------------------------------------------- Sun Oct 17 22:19:09 CEST 2004 - agruen@suse.de - When applying a patch with -q and without -f no (individual) reject files are created, and the "patching file" comments are missing as well. In that case, we don't know wich files the "-- saving rejects to file /tmp/foo" comments belong to, and we can't fix them up. Remove them, instead. - Pop command: Touch files after they are restored so that tools like make don't get confused. - Add a missing print_patch call (cosmetic). - Bump to version 0.37. ------------------------------------------------------------------- Wed Sep 22 14:24:45 CEST 2004 - agruen@suse.de - scripts/patchfns.in: set the dotglob option so that dot files will show up in file globs as well. Bug reported by James Rowe. - Add a missing tab to the patch header of files that are removed. Bug reported by James Rowe. - Push command: Without -f or --leave-rejects, when applying a patch failed, the *.rej files were not removed properly. Change the code so that they won't be created in the working tree in the first place in this case. - test/run script: Oops, the previous commit was not the latest version. - Fix the version check in bash_completion for bash 3. - Bump version to 0.36. ------------------------------------------------------------------- Tue Sep 21 15:39:09 CEST 2004 - agruen@suse.de - Series command: add missing paths to patches if $QUILT_PATCHES_PREFIX is set. - test/run script: Add export and unset statements. ------------------------------------------------------------------- Tue Sep 14 01:00:43 CEST 2004 - agruen@suse.de - bin/quilt.in: Add optional verbose modifier to --trace option by request of Dean Roehrich . - Fix a message; took a while. Thanks Yasushi SHOJI . ------------------------------------------------------------------- Sun Sep 12 18:33:07 CEST 2004 - agruen@suse.de - scripts/inspect.in: Run the RPM prep section in /var/tmp and not in /tmp: the sources can become large. - The fork command at some point broke and did not insert the "serial number" in the right place in patch names anymore. ------------------------------------------------------------------- Wed Aug 25 13:40:39 CEST 2004 - agruen@suse.de - Refresh command: recognize and ignore header lines generated by ``cvs diff''. - Add a missing print_patch call (cosmetic). ------------------------------------------------------------------- Sat Aug 14 18:26:24 CEST 2004 - agruen@suse.de - Add Japanese translation from Yasushi SHOJI . Thank you. ------------------------------------------------------------------- Fri Aug 13 19:49:59 CEST 2004 - agruen@suse.de - setup command: detect errors when running ``rpm -bp'' and improve the messages of ``quilt setup''. ------------------------------------------------------------------- Wed Aug 11 14:28:59 CEST 2004 - agruen@suse.de - Merge improvement to files command from Dean Roehrich: Allow to list all files modified, or all files modified by a range of patches. - Fix pop command help. ------------------------------------------------------------------- Wed Aug 11 09:18:56 CEST 2004 - agruen@suse.de - Working in sub-directories: `quilt new' so far did always create patches in the current directory, even if the current directory appeared to be a sub-directory of the working tree. This was confusing for several people now. Make `quilt new' behave like all other commands, and thus allow it to be used from within sub-directories. ------------------------------------------------------------------- Sat Aug 7 14:47:53 PDT 2004 - mquinson@fuxfamily.org - Small fix by Yasushi SHOJI: display the name of the patch which is not applied in the error message. ------------------------------------------------------------------- Wed Jul 21 19:38:14 PDT 2004 - mquinson@tuxfamily.org - repharse the output of rpatch when patch does not remove properly: refreshing the patch is another way to fix it - sync french translation. ------------------------------------------------------------------- Thu Jul 15 15:23:33 PDT 2004 - mquinson@tuxfamily.org - patch from Joe Green to "Complete options for a partial command as long as it's unique. quilt will accept such a partial command as valid." ------------------------------------------------------------------- Thu Jul 15 02:25:44 CEST 2004 - agruen@suse.de - Add test case for permissions. - Very minor translation updates. - Convert timestamps in changes file into UTC when generating the RPM changelog: the changelog does not understand timestamps. - Bump version to 0.35. ------------------------------------------------------------------- Tue Jul 13 15:26:18 PDT 2004 - mquinson@tuxfamily.org - Fix a typo (s/prinf/printf/) reported by Dean Roehrich. - Track down two variable expensions in printf $"" constructs. - update the french translation accordingly ------------------------------------------------------------------- Tue Jul 13 00:31:38 CEST 2004 - agruen@suse.de - refresh command: Fix --diffstat option; it did swap lines. Also remove stray dollar sign. - Also set TEXTDOMAINDIR in the wrapper script (bin/quilt.in). - Fix stripping of the path to $QUILT_PATCHES when working in sub-dirextories. (This could be fixed more flexibly later...) ------------------------------------------------------------------- Sun Jul 11 21:33:13 PDT 2004 - mquinson@tuxfamily.org - Sync french translation after the recent butchery ;) - Commit patch from Joe Green to make the completion file usable on non-debian systems. ------------------------------------------------------------------- Mon Jul 12 03:02:19 CEST 2004 - agruen@suse.de - Some more QUILT_PATCHES_PREFIX fixes. - Disable CDPATH within quilt (Joe Green writes: I've seen some cases where having CDPATH set results in the path being printed by cd, and I suppose it's possible that the wrong destination might be selected in some cases.) ------------------------------------------------------------------- Tue Jul 9 07:26:23 CEST 2004 - agruen@suse.de - Switch from echo to printf for all translations: This is more stable than having expansions in messages that might change independent of the message. - Add print_patch function and always use it when printing patch names. Remove -n options from various scripts and use a global switch QUILT_PATCHES_PREFIX in .quiltrc to decide between patch names with and without directory prefix. Depending on user experience this switch may eventually go away. - Add --diffstat option to refresh command: If given, this option inserts diffstat statistics at the end of the patch header, or refreshes the existing diffstat output. No special tags in the path file (%diffstat or the like) are needed. - Minor fix inserting changelog into RPM specfile. ------------------------------------------------------------------- Tue Jul 6 19:57:25 PDT 2004 - mquinson@tuxfamily.org - Fix the bash_completion by not using quilt internals, but the external commands [Joe Green]. ------------------------------------------------------------------- Sun Jul 4 04:29:25 CEST 2004 - agruen@suse.de - Add common GNU diff format options to diff and refresh commands: -u, -U num, -c, -C num. Rename old -c option (combine patches) of diff command to --combine. - Extend the function that splits comments from patches and syntax coloring to handle combined diff format. - Honor the LANG environment variable again; this got broken at some point. - Set TEXTDOMAINDIR to where the translations are put so that Messages are found even when not installing into /usr. ------------------------------------------------------------------- Fri Jul 2 03:08:39 CEST 2004 - agruen@suse.de - Several Fixes from Joe Green : + Another sed \t\r problem, in Makefile.in + Bad error message on "quilt delete" of non-existent patch + "import" doesn't remove all leading components on patch file + Misspelling in "import" help text - With using the GNU diff --label option, file timestamps disappeared. Specify the timestamps in --label by hand: This gives us added flexibility when generating patches; we may some day want to support diff styles other than unified. Also reported by Joe Green. - Add --backup option to quilt refresh. - Update documentation to QUILT_${COMMAND}_ARGS in .quiltrc. (The old settings still work but they are no longer documented.) - Update German translation. ------------------------------------------------------------------- Thu Jul 1 22:55:11 CEST 2004 - agruen@suse.de - Allow passing of default options to commands by defining QUILT_${COMMAND}_ARGS in .quiltrc. This should eventually get us rid of some of the mess in .quiltrc. ------------------------------------------------------------------- Thu Jul 1 00:39:53 CEST 2004 - agruen@suse.de - Quilt diff: add --color option for optionally colorizing the output. ------------------------------------------------------------------- Sat Jun 26 23:24:42 CEST 2004 - agruen@suse.de - Quilt import: when importing patches with their original file name, strip path prefixes from the patch names. ------------------------------------------------------------------- Sat Jun 12 03:03:46 CEST 2004 - agruen@suse.de - Fix another upgrade bug: The series file may optionally contain a strip level argument (-pN) which must be stripped off when determining the patch name. - A minor correction in the doumentation; some whitespace fixes. - Translation update. ------------------------------------------------------------------- Fri Jun 11 00:43:07 PDT 2004 - mquinson@tuxfamily.org - Fix the man page generation - Add a --no-timestamps option to diff and refresh doing what QUILT_NO_DIFF_TIMESTAMPS does. This should make more visible a feature I was about reimplementing ;) - Document all options from the pdf into the man page. - update the bash completion stuff so that : - it does not kill the shell when completing in a tree not matching the meta data version. - it does not move the current directory around, seeking for patches/ - it completes on the new commands (grep graph upgrade) - Various output messages polishing (and translation fuzzying) - French translation unfuzzying ------------------------------------------------------------------- Thu Jun 10 22:08:07 CEST 2004 - agruen@suse.de - Add meta-data version check/upgrade code from Martin Quinson and me; new `quilt upgrade' command. - Handle new/removed files correctly in generated patches: If the old or new file is missing, the file name in the patch should be /dev/null. Fix test suite accordingly, and add test/create-delete.diff. GNU patch recognizes this, and does additional file existance tests when a patch creates/deletes a file. Also use the --label option of GNU diff instead of hand-editing file name headers. - Add test/Makefile for running the test suite. Note: The tests run against the installed version of quilt! - Bump version to 0.34. ------------------------------------------------------------------- Sun Jun 6 20:16:44 CEST 2004 - agruen@suse.de - Preserve the order of files in patches in the diff and refresh commands. Files added to a patch appear at the end of a patch. The files command also lists the files in the order in which they appear in patches. - Update to version 0.33. ------------------------------------------------------------------- Sun Jun 6 12:21:11 CEST 2004 - agruen@suse.de - dependency-graph: Fix for --lines option in patcher mode; restrict to applied patches. ------------------------------------------------------------------- Sun Jun 6 03:35:32 CEST 2004 - agruen@suse.de - import: Create patches/ and parent directories to patch to be imported. Insert the correct patch name in the series file. ------------------------------------------------------------------- Sun Jun 6 02:02:32 CEST 2004 - agruen@suse.de - backup-file.c: Add code to recursively search .pc directories. Add a "no-op" mode as default, and allow to just unlink files. - apatch/rpatch: let backup-files search .pc directories instead of generating temporary file lists. - rpatch/pop: unlink files of topmost patch after popping instead of unlinking at each step. - If QUILTRC is set in the environment, use this as the configuration file. ------------------------------------------------------------------- Sat Jun 5 16:12:17 CEST 2004 - agruen@suse.de - Return exit status 2 when commands go beyond the series (top with no series, push/next when all patches are applied, pop/ previous when no patches are applied). - From John Lenz : Add compatibility code to the dependency-graph script for reading the meta-data of Holger Schurig's patcher tool, http://www.holgerschurig.de/patcher.html. - Update German translation. ------------------------------------------------------------------- Tue Jun 1 22:59:41 CEST 2004 - agruen@suse.de - Fix from Dean Roehrich : Preserve file mode of original file when creating backup files. ------------------------------------------------------------------- Tue Jun 1 10:23:01 PDT 2004 - mquinson@tuxfamily.org - document common options to all scripts (--trace and --quiltrc) - update french translation ------------------------------------------------------------------- Mon May 31 05:03:30 CEST 2004 - agruen@suse.de - Rewrite spec2series to return what the new `quilt setup' needs, and rename it to inspect. - `quilt setup': Rewrite so that it supports multiple archives per spec file. Always make the patches directory a symlink to the original patch files instead of copying the patches. - Update German translation. ------------------------------------------------------------------- Sun May 16 12:15:13 CEST 2004 - agruen@suse.de - Clarify help text of `quilt add' (thanks to Tom Rini ). Update translations. ------------------------------------------------------------------- Sun May 16 01:35:10 CEST 2004 - agruen@suse.de - Add `quilt grep': Grep over all files, recursively, skipping the $QUILT_PATCHES and $QUILT_PC directories. ------------------------------------------------------------------- Wed Apr 28 00:46:31 CEST 2004 - agruen@suse.de - Fix `quilt fork': It destroys .pc/applied patches; that bug got introduced when reverting it to its previous semantics. ------------------------------------------------------------------- Wed Apr 21 21:18:14 CEST 2004 - agruen@suse.de - Replace two occurrences of \t in sed regular expressions with bash $'\t': Some older versions of sed don't understand \t. Thanks to Randy Dunlap and Greg Edwards for reporting. ------------------------------------------------------------------- Sat Mar 20 18:04:01 CET 2004 - agruen@suse.de - Fix an algorithmic bug in `quilt graph --lines': Edges were sometimes lost. - A few minor cleanups. ------------------------------------------------------------------- Mon Mar 15 00:01:56 CET 2004 - agruen@suse.de - Extend `quilt graph' to also support checking for overlapping changes in patches. - Export QUILT_PATCHES QUILT_PC SUBDIR SERIES DB for use in non-shell components of quilt. ------------------------------------------------------------------- Sun Mar 14 00:39:46 CET 2004 - agruen@suse.de - Change `quilt import' to allow importing multiple patches at once. - Fix a bug in backup-files.c (introduced just before). - Update to version 0.32. ------------------------------------------------------------------- Sun Mar 14 00:25:27 CET 2004 - agruen@suse.de - Add `quilt graph' command for generating a dependency graph between patches. This requires the graphviz package for removing transitive edges (optional) and for rendering the graph. Please note that the graph command itself is minimal, while the underlying scripts/dependency-graph is more flexible. - Complete one more detail in scripts/dependency-graph. - Revert `quilt fork' to how it originally worked: fork the *topmost* patch, not the next unapplied patch. Adapt the test suite accordingly. - Add flag to backup-files.c to make sure that files in the working tree have a link count of at most one. Use this where appropriate. - Fix a bug in `quilt snapshot': Taking snapshots caused files to get link counts bigger than one, so modifying them could cause multiple files to get modified. Speed up the command, too. - Update the documentation. Add example1.test from the documentation. ------------------------------------------------------------------- Wed Mar 10 10:46:56 CET 2004 - agruen@suse.de - Quilt push/pop: exit with a non-zero status when beyond series. - Ignore empty lines in series file. - Add man page to tarball and to spec file; add make dependencies. - Sort the commands in the man page command reference. ------------------------------------------------------------------- Tue Mar 9 02:00:14 CET 2004 - agruen@suse.de - Make files writeable in `quilt add' (and `quilt edit') for working with read-only trees. ------------------------------------------------------------------- Wed Feb 25 10:45:39 CET 2004 - martin.quinson@tuxfamily.org - Add completion to the edit command in bash ------------------------------------------------------------------- Sun Feb 22 16:04:36 CET 2004 - martin.quinson@tuxfamily.org - Add a man page (generated automatically from -h) ------------------------------------------------------------------- Sat Feb 21 15:20:57 CET 2004 - agruen@suse.de - Sub-directory support: `quilt setup' could get confused, too. ------------------------------------------------------------------- Fri Feb 20 14:30:11 CET 2004 - agruen@suse.de - Sub-directory support: + Fix another bug that triggers when /patches exists. + Working in sub-directories: Force `quilt new' to always create the new patch in the current working directory even if there is a patches/ sub-directory further up the directory tree. This should restore the behavior from before Jan 28 very well. - quilt files, diff, refresh: Sort the files in the patch alphabetically. ------------------------------------------------------------------- Sun Feb 15 15:53:42 CET 2004 - agruen@suse.de - Never fail when patching temporary files in `quilt diff -z', only warn. ------------------------------------------------------------------- Thu Feb 5 11:51:21 CET 2004 - agruen@suse.de - Add some fixes from Manuel Estrada Sainz . - Add QUILT_SERIES setting: Override the location of the series file to use. - Don't print an empty line for `quilt top' if no patches are applied. ------------------------------------------------------------------- Tue Feb 3 12:58:49 CET 2004 - agruen@suse.de - Add --quiltrc={rcfile|-} option. Remove some superfluous quoting from quilt wrapper. - Extra tests in `quilt refresh' did not check if the old patch was missing. ------------------------------------------------------------------- Mon Feb 2 14:04:31 CET 2004 - agruen@suse.de - Fix test for bash in configure.ac. - Add `--trace' option to quilt wrapper (runs commands with -x, which prints an execution trace). - Add QUILT_BACKUP setting in .quiltrc (creates backup copies when refreshing patches). - Fix `quilt next'. ------------------------------------------------------------------- Sat Jan 31 22:23:51 CET 2004 - agruen@suse.de - Also fix `quilt import' after patch name mangling removal. ------------------------------------------------------------------- Sat Jan 31 14:33:48 CET 2004 - agruen@suse.de - No longer remove common extensions (.dif, .diff, .patch, .gz, .bz2) from patch names. This allows patches in the same series that only differ by extension, and cleans up the scripts a little. Also don't remove extensions when printing patch names. - Remove unused diffstat code. - Fix generating doc/README after subdirectory support broke it. - Remove excessive newlines in -h messages. ------------------------------------------------------------------- Wed Jan 28 02:42:40 CET 2004 - agruen@suse.de - Fix bugs introduced while merging Chris's patch. - Add more test cases for subdirectory support. - Fix `make dist': Some files in debian/ did not exist. - Update to version 0.30. ------------------------------------------------------------------- Wed Jan 28 01:13:16 CET 2004 - agruen@suse.de - Patch from Chris Mason : Add support for working in subdirectories of the base directory that contains patches/ and .pc/. In the unlikely case that quilt shall operate in the sub-directory itself, it is sufficient to create a patches/ directory there. - Add a small testcase for subdirectory support. ------------------------------------------------------------------- Sat Jan 24 23:58:01 CET 2004 - agruen@suse.de - Add QUILT_NO_DIFF_TIMESTAMPS option in .quiltrc. - Add QUILT_PATCH_OPTS setting to allow passing options to GNU patch. - Fix help for `quilt diff'. ------------------------------------------------------------------- Thu Jan 8 03:48:22 CET 2004 - agruen@suse.de - Also accept `quilt diff -z ./file' (ignore the ./ prefix that is often produced by find etc.) ------------------------------------------------------------------- Thu Nov 27 17:16:48 CET 2003 - agruen@suse.de - `quilt fold' did not create directories for additional files, and the code for recovering from failures was wrong. ------------------------------------------------------------------- Tue Nov 25 15:48:37 CET 2003 - agruen@suse.de - Update quilt paper. ------------------------------------------------------------------- Mon Nov 24 13:23:39 CET 2003 - agruen@suse.de - Error check for `quilt diff -z filelist' was too strict; relax. ------------------------------------------------------------------- Mon Nov 17 20:31:36 CET 2003 - agruen@suse.de - Add new command `quilt fold' to fold one patch into another. - Fix bug in `quilt files': Files that are neither present in the working directory and have an empty backup copy sometimes were still listed. - Some minor cleanups in apatch. - Add test/fold.test, and fix a now-useless check in one.test. ------------------------------------------------------------------- Sat Nov 15 08:44:19 CET 2003 - agruen@suse.de - Merge some changes from wangdi: + Use -f (force) option of GNU patch in `quilt diff -z'. + Build source and binary RPMs in `make rpm' target. + Simplify sed expression in Makefile.in. ------------------------------------------------------------------- Wed Nov 12 01:37:17 CET 2003 - agruen@suse.de - Add introductory paper to CVS repository. - Remove obsolete documentation. - Bump version number to 0.29 (cvs tag VER_0_29). ------------------------------------------------------------------- Tue Nov 4 16:51:49 CET 2003 - agruen@suse.de - Add failpop.test that checks if modified patches are recognized. - Fix the check for modified patches: That broke with the .pc file removal. - `quilt setup' sometimes forgot to create the patches sub-dir. - Fix the timestamp check in scripts/rpatch.in for missing files. ------------------------------------------------------------------- Fri Oct 31 16:59:06 CET 2003 - agruen@suse.de - Bump version number to 0.28 (cvs tag VER_0_28). ------------------------------------------------------------------- Fri Oct 31 15:55:29 CET 2003 - agruen@suse.de - No longer verify if patches remove cleanly by reverse applying them: This doesn't always succeed, and the the equivalent of `quilt diff -z' should suffice, anyway. - Add `touch .pc/$patch' after successful refresh: Speeds up `quilt pop' after a refresh. - Update test suite. - apatch was printing a spurious newline. ------------------------------------------------------------------- Wed Oct 29 17:19:24 CET 2003 - agruen@suse.de - If a patch does not apply cleanly and `quilt push' removes rejects files it GNU patch left behind, change the output from ``saving rejects to file x.rej'' to ``rejects in file x''. ------------------------------------------------------------------- Tue Oct 28 14:51:07 CET 2003 - agruen@suse.de - Remove .pc/*/.pc files, and adjust various scripts accordingly. - Run test/one.test inside sub-directory. - Bump version number to 0.27 (cvs tag VER_0_27). ------------------------------------------------------------------- Tue Oct 28 14:32:13 CET 2003 - agruen@suse.de - Change name and semantics of PATCHSCRIPTS variable: Before, if PATCHSCRIPTS was set, the patches were in $PATCHSCRIPTS/patches. Now, if QUILT_PATCHES is set, the patches are in $QUILT_PATCHES. QUILT_PATCHES defaults to "patches", like before. ------------------------------------------------------------------- Sun Oct 26 17:53:53 CET 2003 - agruen@suse.de - Get rid of patches_per cache_in `quilt patches'. Remove patches_per_file and associated functions. `quilt patches' now is a bit slow for unapplied patches. ------------------------------------------------------------------- Sun Oct 26 14:45:08 CET 2003 - agruen@suse.de - Rename snapshot directory from ".snap0" to ".snap". - `quilt diff: Speed up file list generation in `quilt diff'. Don't use modified_files anymore. Instead, add first_modified_by function. I want to get rid of the patches_per_file cache; it sometimes was not brought up to date. Some cleanups. - Add test/snapshot.test. - Fix two errors in the date format in quilt.changes. ------------------------------------------------------------------- Fri Oct 24 00:50:08 CEST 2003 - agruen@suse.de - `quilt add': Return exit code 2 when a file has already been added. - Add `quilt edit' command: Does a `quilt add' and then invokes $EDITOR (fallback is `vi'). Files that don't exist after editing are again removed from the patch. ------------------------------------------------------------------- Wed Oct 22 01:44:04 CEST 2003 - agruen@suse.de - `Quilt fork' should better fork the next patch instead of the topmost one. Also fix a bug in updating the series file when forking. The rename_in_db() function is no longer needed. ------------------------------------------------------------------- Tue Oct 21 20:44:00 CEST 2003 - agruen@suse.de - Add `quilt fork' command. - Add `quilt snapshot' command and `quilt diff --snapshot' option. - Bump the version number to 0.26. ------------------------------------------------------------------- Tue Sep 9 08:44:12 CEST 2003 - martin.quinson@tuxfamily.org - fix LC_ALL to C during building the reference so that the documentation comes to english and not to french when build on my box. - Update the french translation - Bump the version number to 0.25 ------------------------------------------------------------------- Tue Sep 2 15:24:51 CEST 2003 - agruen@suse.de - Pipe rpmbuild output to /dev/null in spec2series (seems to be necessary since rpm4). ------------------------------------------------------------------- Mon Jul 28 01:00:24 CEST 2003 - agruen@suse.de - Use %{find_lang} macro in spec file. ------------------------------------------------------------------- Sat Jul 26 13:10:19 CEST 2003 - agruen@suse.de - Pushing is only possible if the topmost file is found in the series file. Fix from Tom Wang . ------------------------------------------------------------------- Sat Jul 26 13:06:07 CEST 2003 - agruen@suse.de - When popping files, go through the list of applied patches instead of looking at the series file: The series file may have changed. ------------------------------------------------------------------- Sat Jul 26 12:49:36 CEST 2003 - agruen@suse.de - Install package documentation into $RPM_DOC_DIR if this environment variable is set. On RedHat 9 $RPM_DOC_DIR points to /usr/share/doc/packages, but documentation lives in /usr/share/doc. This is a bug in RedHat's RPM configuration; working around it would break other distributions. ------------------------------------------------------------------- Wed Jul 23 11:44:24 CEST 2003 - agruen@suse.de - Add Autoconf test for rpmbuild vs. rpm (needed for `make rpm'). - Update spec2series accordingly. ------------------------------------------------------------------- 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 Jun 26 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 Jun 25 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 '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 bug 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 :) quilt-0.61/bash_completion0000644000175000017500000001711211707222073016176 0ustar mquinsonmquinson#-*- mode: shell-script;-*- # Programmed completion for bash to use quilt # Copyright 2003-2004 Martin Quinson (martin quinson#debian org) # This file is part of the distribution of quilt, and is distributed under # the same licence than quilt itself if type quilt &> /dev/null ; then if ! type _expand &> /dev/null ; then # This function expands tildes in pathnames # _expand() { [ "$cur" != "${cur%\\}" ] && cur="$cur"'\' # expand ~username type directory specifications if [[ "$cur" == \~*/* ]]; then eval cur=$cur elif [[ "$cur" == \~* ]]; then cur=${cur#\~} COMPREPLY=( $( compgen -P '~' -u $cur ) ) return ${#COMPREPLY[@]} fi } fi if ! type _filedir &> /dev/null ; then # This function performs file and directory completion. It's better than # simply using 'compgen -f', because it honours spaces in filenames # _filedir() { local IFS=$'\t\n' _expand || return 0 if [ "$1" = -d ]; then COMPREPLY=( ${COMPREPLY[@]} $( compgen -d -- $cur ) ) return 0 fi COMPREPLY=( ${COMPREPLY[@]} $( eval compgen -f -- \"$cur\" ) ) } fi if ! type _longopt &> /dev/null ; then _longopt() { local cur opt cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == "--*=*" ]]; then opt=${cur%%=*} # cut backlash that gets inserted before '=' sign opt=${opt%\\*} cur=${cur#*=} _filedir COMPREPLY=( $( compgen -P "$opt=" -W '${COMPREPLY[@]}' -- $cur)) return 0 fi if [[ "$cur" == "-*" ]]; then COMPREPLY=( $( $1 --help 2>&1 | sed -e '/--/!d' \ -e 's/.*\(--[-A-Za-z0-9]\+=\?\).*/\1/' | \ grep "^$cur" | sort -u ) ) elif [[ "$1" == "@(mk|rm)dir" ]]; then _filedir -d else _filedir fi } fi # Complete on files, not on directories # # Directories are shown in completion, but with their trailing / so that # user can go in them. It ought to be a more standard way to achieve this. # _quilt_comfile() { COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -f -- "$cur" ) ) echo $( compgen -d -- "$cur" ) | while read d ; do COMPREPLY=( ${COMPREPLY[@]:-} "$d/" ) done } _quilt_completion() { local cur prev cmds command_matches COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # quilt sub commands cmds='add annotate applied delete diff edit files fold fork graph \ grep header import mail new next patches pop previous push refresh \ remove rename revert series setup snapshot top unapplied' # if no command were given, complete on commands if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds -h" -- $cur ) ) return 0 fi # 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 # Accept a partial command if it's unique, because quilt will accept it. command_matches=( $(compgen -W "$cmds" -- ${COMP_WORDS[1]}) ) if [ ${#command_matches[@]} -ne 1 ] ; then return 0 fi # Complete depending on options case ${command_matches[0]} in add) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; annotate) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; applied) COMPREPLY=( $( compgen -W "-h $(quilt applied 2>/dev/null)" -- $cur ) ) ;; delete) COMPREPLY=( $( compgen -W "-n -r -h --backup $(quilt series)" -- $cur ) ) ;; diff) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; -P|--combine) COMPREPLY=( $( compgen -W "$(quilt applied 2>/dev/null)" -- $cur ) ) ;; --diff|-U|-C) ;; *) _filedir COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -P -u -U -c -C -R -z -h --snapshot --diff --no-timestamps --no-index --combine --sort" -- $cur ) ) ;; esac ;; edit) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-h" -- $cur ) ) ;; files) case $prev in --combine) COMPREPLY=( $( compgen -W "$(quilt applied 2>/dev/null)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-a -l -v -h --combine $(quilt applied 2>/dev/null)" -- $cur ) ) ;; esac ;; fold) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p" -- $cur ) ) ;; esac ;; graph) case $prev in -T) COMPREPLY=( $( compgen -W "ps" -- $cur ) ) ;; --edge-labels) COMPREPLY=( $( compgen -W "files" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-T -h --all --reduce --lines --edge-labels $(quilt applied 2>/dev/null)" -- $cur ) ) ;; esac ;; grep) _longopt grep COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-h" -- $cur ) ) ;; header) COMPREPLY=( $( compgen -W "-a -e -h -r --backup --strip-diffstat --strip-trailing-whitespace $(quilt series)" -- $cur ) ) ;; import) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9 10" -- $cur ) ) ;; -P) ;; -d) COMPREPLY=( $( compgen -W "o a n" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-p -P -f -d -h" -- $cur ) ) ;; esac ;; mail) COMPREPLY=( $( compgen -W "-m --prefix --mbox --send --sender --from --subject --to --cc --bcc" -- $cur ) ) ;; next|previous) COMPREPLY=( $( compgen -W "$(quilt series)" -- $cur ) ) ;; patches) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-v -h" -- $cur ) ) ;; pop) COMPREPLY=( $( compgen -W "-a -f -R -q -v -h $(quilt applied 2>/dev/null)" -- $cur ) ) ;; push) COMPREPLY=( $( compgen -W "-a -f -q -v -h --leave-rejects --interactive --color $(quilt unapplied 2>/dev/null)" -- $cur ) ) ;; refresh) case $prev in -p) COMPREPLY=( $( compgen -W "0 1" -- $cur ) ) ;; -U|-C) ;; *) COMPREPLY=( $( compgen -W "-p -u -U -c -C -f -h $(quilt applied 2>/dev/null) --no-timestamps --no-index --diffstat --sort --backup --strip-trailing-whitespace" -- $cur ) ) ;; esac ;; remove|revert) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; rename) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt series)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; series) COMPREPLY=( $( compgen -W "-v -h" -- $cur ) ) ;; setup) case $prev in -d) _filedir -d ;; *) _quilt_comfile COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "-d -v -h" -- $cur ) ) ;; esac ;; snapshot) COMPREPLY=( $( compgen -W "-d -h" -- $cur ) ) ;; unapplied) COMPREPLY=( $( compgen -W "-h $(quilt series)" -- $cur ) ) ;; fork|new|top|upgrade) ;; esac return 0 } [ ${BASH_VERSINFO[0]} '>' 2 -o \ ${BASH_VERSINFO[0]} = 2 -a ${BASH_VERSINFO[1]} '>' 04 ] \ && _quilt_complete_opt="-o filenames" complete -F _quilt_completion $_quilt_complete_opt quilt unset -v _quilt_complete_opt fi quilt-0.61/quilt.quiltrc0000644000175000017500000000250311634336352015653 0ustar mquinsonmquinson# Example /etc/quilt.quiltrc # Options passed to GNU diff when generating patches QUILT_DIFF_OPTS="--show-c-function" # Options passed to GNU patch when applying patches. # (For appling patches which are not in unified format, remove the "--unified".) #QUILT_PATCH_OPTS="--ignore-whitespace" QUILT_PATCH_OPTS="--unified" # Options passed to diffstat when generating patch statistics #QUILT_DIFFSTAT_OPTS="-f0" # Options to pass to commands (QUILT_${COMMAND}_ARGS) QUILT_PUSH_ARGS="--color=auto" QUILT_DIFF_ARGS="--no-timestamps --color=auto" QUILT_REFRESH_ARGS="--no-timestamps --backup" QUILT_SERIES_ARGS="--color=auto" QUILT_PATCHES_ARGS="--color=auto" # When non-default less options are used, add the -R option so that less outputs # ANSI color escape codes "raw". [ -n "$LESS" -a -z "${QUILT_PAGER+x}" ] && QUILT_PAGER="less -FRX" # (Add "-p ab" to QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS to get # -p1 style diffs with a/file and b/file filenams in headers # instead of dir.orig/file and dir/file.) # The directory in which patches are found (defaults to "patches"). #QUILT_PATCHES=patches # Prefix all patch names with the relative path to the patch? QUILT_PATCHES_PREFIX=yes # Use a specific editor for quilt (defaults to the value of $EDITOR before # sourcing this configuration file, or vi if $EDITOR wasn't set). #EDITOR=nedit quilt-0.61/aclocal.m40000644000175000017500000000645011634336352014755 0ustar mquinsonmquinsondnl Allow configure to specify a specific binary dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH],[ m4_define([internal_$2_cmd],[esyscmd(ls compat/$2.in 2>/dev/null)]) AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use] m4_if(internal_$2_cmd,[],[],[ (use --without-$2 to use an internal mechanism)])), [ if test x"$withval" = xnone; then AC_MSG_ERROR([Invalid configure argument. use --without-$2]) fi if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) ]) if test -z "$$1"; then m4_if(internal_$2_cmd,[],[ AC_MSG_ERROR([Please specify the location of $2 with the option '--with-$2']) ],[ AC_MSG_WARN([Using internal $2 mechanism. Use option '--with-$2' to override]) COMPAT_PROGRAMS="$COMPAT_PROGRAMS $2" $1=$2 INTERNAL_$1=1 ]) fi AC_SUBST($1) ]) dnl Allow configure to specify a specific binary dnl This variant is for optional binaries. dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH_OPT],[ AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use]), [ if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) if test -z "$$1"; then AC_MSG_WARN([$2 not found, some optional functionalities will be missing]) fi ]) if test -z "$$1"; then $1=$2 fi AC_SUBST($1) ]) quilt-0.61/git-desc0000755000175000017500000000047411634336352014542 0ustar mquinsonmquinson#! /bin/sh if git rev-parse --show-cdup > /dev/null 2> /dev/null; then tag=$(git describe --tags HEAD 2> /dev/null || \ git rev-parse --short HEAD) dirty=$(git update-index --refresh --unmerged > /dev/null if git diff-index --name-only HEAD | read dummy; then echo -dirty fi) echo $tag$dirty fi quilt-0.61/bin/quilt.in0000644000175000017500000000535311726705776015370 0ustar mquinsonmquinson#! @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. # unset posix strict conformance variable since patch cannot be run # non-interactively when it's set. unset POSIXLY_CORRECT export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${QUILT_DIR=@QUILT_DIR@} export QUILT_DIR if [ -z "$QUILTRC" ] then for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do [ -e $QUILTRC ] && break done export QUILTRC fi # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi usage() { echo $"Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." echo $" quilt --version" echo $"Commands are:" quilt_commands \ | sort \ | column | column -t \ | sed -e $'s/^/\t/' echo $" Global options: --trace Runs the command in bash trace mode (-x). For internal debugging. --quiltrc file Use the specified configuration file instead of ~/.quiltrc (or @ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. --version Print the version number and exit immediately." exit 1 } quilt_commands() { local command for command in $QUILT_DIR/* do if [ -f "$command" -a -x "$command" ] then echo ${command##$QUILT_DIR/} fi done } if [ $# -eq 1 -a "$1" == "--version" ] then echo '@VERSION@' exit fi BASH_OPTS= while [ $# -ne 0 ] do case $1 in [^-]*) if [ -z "$command" ] then command=$1 else args[${#args[@]}]=$1 fi ;; # Use a resource file other than ~/.quiltrc --quiltrc=*) QUILTRC=${1#--quiltrc=} [ "$QUILTRC" = - ] && unset QUILTRC ;; --quiltrc) QUILTRC=$2 [ "$QUILTRC" = - ] && unset QUILTRC shift ;; # Trace execution of commands --trace*) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-x" case "${1:7}" in '') ;; =verbose) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-v" ;; *) command= break ;; esac ;; *) args[${#args[@]}]=$1 ;; esac shift done if ! [ -f "$QUILT_DIR/$command" -a -x "$QUILT_DIR/$command" ] then if [ -n "$command" ] then for arg in $(quilt_commands) do case "$arg" in $command*) commands[${#commands[@]}]=$arg ;; esac done unset arg 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 args export QUILT_COMMAND="${command##*/}" bash $BASH_OPTS -c ". $QUILT_DIR/$command" "quilt ${command##*/}" "$@" quilt-0.61/bin/guards.in0000644000175000017500000001433511634564732015510 0ustar mquinsonmquinson#!@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. # # Guards: # # +xxx include if xxx is defined # -xxx exclude if xxx is defined # +!xxx include if xxx is not defined # -!xxx exclude if xxx is not defined # 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 $line = ""; while (<$fh>) { chomp; s/(^|\s+)#.*//; if (s/\\$/ /) { $line .= $_; next; } $line .= $_; my @guards = (); foreach my $token (split /[\s\t\n]+/, $line) { next if $token eq ""; if ($token =~ /^[-+]/) { push @guards, $token; } else { #print "[" . join(",", @guards) . "] $token\n"; &$callback($token, @guards); } } $line = ""; } } # Command line options # my ($dir, $config, $default, $check, $list, $invert_match) = ( '', '-', 1, 0, 0, 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|--list] [--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, 'l|list' => \$list, 'p|path=s' => \@path, 'D|default=i' => \$default, 'v|invert-match' => \$invert_match, '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; if ($ref == 0) { print "Unused: $file\n" if $ref == 0; $problems++; } if ($ref > 1) { print "Warning: multiple uses: $file\n" if $ref > 1; # This is not an error if the entries are mutually exclusive... } } exit $problems ? 1 : 0; } elsif ($list) { parse($fh, sub { my ($patch, @guards) = @_; print "$dir$patch\n"; }); } 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 ^ $invert_match; }); $fh->close(); exit 0; } __END__ =head1 NAME guards - select from a list of files guarded by conditions =head1 SYNOPSIS F [--prefix=F] [--path=F] [--default=I<0>|I<1>] [-v|--invert-match] [--list|--check] [--config=F] I ... =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 configuration file is processed separately. Lines may start with a number of guards. The following guards are defined: =over +I Include the file(s) on this line if the symbol I is defined. -I Exclude the file(s) on this line if the symbol I is defined. +!I Include the file(s) on this line if the symbol I is not defined. -!I Exclude the file(s) on this line if the symbol I 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 separated by a colon (C<:>) character. The I<--prefix> option specifies the location of the files. =head1 AUTHOR Andreas Gruenbacher (SuSE Linux AG) quilt-0.61/bin/patch-wrapper.in0000755000175000017500000001206711634336352016776 0ustar mquinsonmquinson#! @BASH@ # This is a wrapper to GNU patch that recognizes the most common # options and mimics GNU patch's behavior and output, and creates the # quilt metadata as if quilt push was used to apply the patches. When # options are used that this wrapper does not recognize, GNU patch is # used directly, and no quilt metadata will get created. PATCH=@PATCH@ original_options=("$@") # GNU patch recognizes these environment variables if [ -n "$SIMPLE_BACKUP_SUFFIX" ] then set -- --suffix "$SIMPLE_BACKUP_SUFFIX" "$@" fi if [ -n "$PATCH_VERSION_CONTROL" ] then set -- --version-control "$PATCH_VERSION_CONTROL" "$@" elif [ -n "$VERSION_CONTROL" ] then set -- --version-control "$VERSION_CONTROL" "$@" fi if [ -n "$POSIXLY_CORRECT" ] then set -- --posix "$@" fi backup_files() { declare dir=${QUILT_PC:-.pc}/$patch if [ "$backup_mode" = --backup-if-mismatch ] then awk ' /^patching file / \ { file=$0 sub(/^patching file /, "", file) } /^Hunk #[0-9]* / \ { if (!(file in backup)) { backup[file] = 1 #print "ln -f "dir"/"file" "prefix file suffix > "/dev/stderr" system("ln -f "dir"/"file" "prefix file suffix) } } { if (!silent) print } ' dir="${dir//\\/\\\\}" \ prefix="${opt_prefix//\\/\\\\}" \ suffix="${opt_suffix//\\/\\\\}" \ silent="${opt_silent:+1}" elif [ -n "$opt_silent" ]; then cat > /dev/null fi if [ "$backup_mode" = --backup -a -d "$dir" ] then for file in $(find "$dir" -type f -a ! -path "$path/.timestamp") do dest=$opt_prefix${file#$dir/}$opt_suffix mkdir -p $(dirname "$dest") ln -f $file $dest done fi } find_pipe_patch() { declare patch=$1 patch=${patch//\[/\\[} patch=${patch//\]/\\]} set -- $(stat -c $'%a %N\n' /proc/*/fd/* 2>/dev/null \ | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p") set -- $(stat -c $'%a %N\n' $1/* 2>/dev/null \ | sed -nre "s,^500 \`.*' -> \`(.*)',\\1,p") [ $# -eq 1 ] || set -- "$patch" echo "$1" } options=`getopt -q -o bsB:z:i:p:d: \ --long quiet,silent,backup,backup-if-mismatch \ --long no-backup-if-mismatch,prefix: \ --long suffix:,posix,input:,strip:,directory: -- "$@"` if [ $? -ne 0 ] then cannot_handle=1 else case "${LC_ALL:-${LC_MESSAGES:-${LANG}}}" in ''|C|POSIX|en*) ;; *) cannot_handle=1 ;; esac fi if [ -z "$cannot_handle" ]; then eval set -- "$options" backup_mode=--backup-if-mismatch opt_prefix= opt_suffix= opt_silent= opt_input= opt_strip= opt_directory=$PWD while : do case "$1" in -b|--backup) backup_mode=--backup ;; --backup-if-mismatch) backup_mode=--backup-if-mismatch ;; -d|--directory) cd "$2" || exit 1 shift ;; -i|--input) opt_input=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --no-backup-if-mismatch) backup_mode=--no-backup-if-mismatch ;; -B|--prefix) opt_prefix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; -s|--silent|--quiet) opt_silent=--silent ;; -p|--strip) opt_strip=-p$2 new_options[${#new_options[@]}]=-p$2 shift ;; -z|--suffix) opt_suffix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --posix) backup_mode=--no-backup-if-mismatch new_options[${#new_options[@]}]=$1 ;; --) shift break ;; *) new_options[${#new_options[@]}]=$1 ;; esac shift done [ -n "$opt_prefix$opt_suffix" ] || opt_suffix=.orig if [ -z "$opt_strip" -o $# -ne 0 ] then cannot_handle=1 fi fi if [ -z "$cannot_handle" ] then if [ -n "$opt_input" ] then patch=$opt_input elif [ -e /proc/self/fd/0 ] then patch=$(readlink /proc/self/fd/0) case "$patch" in pipe:*) patch=$(find_pipe_patch "$patch") ;; esac fi patch=${patch#$PWD/} if [ ! -e "$patch" ] then cannot_handle=1 fi fi if [ -n "$cannot_handle" ] then $PATCH "${original_options[@]}" exit fi quilt_patches=${QUILT_PATCHES:-patches} dir=$(dirname "$quilt_patches/$patch") mkdir -p "$dir" if [ -e "$patch" ] then if [ "${patch:0:1}" = / ] then ln -s "$patch" "$quilt_patches$patch" patch=${patch#/} else while ! [ "$dir/$updir$patch" -ef "$patch" ] do updir=$updir../ [ ${#updir} -gt 96 ] && break done if [ "$dir/$updir$patch" -ef "$patch" ] then ln -s "$updir$patch" "$quilt_patches/$patch" fi fi fi if [ "$opt_strip" = -p1 ]; then echo "$patch" else echo "$patch $opt_strip" fi >> $quilt_patches/series $PATCH "${new_options[@]}" --backup --prefix "${QUILT_PC:-.pc}/$patch/" \ | backup_files status=${PIPESTATUS[0]} if [ $status -eq 0 ] then dir=${QUILT_PC:-.pc}/$patch if [ ! -e "$dir" ] then mkdir -p "$dir" fi echo -n "" > $dir/.timestamp if [ ! -e ${QUILT_PC:-.pc}/.version ] then echo 2 > ${QUILT_PC:-.pc}/.version fi echo "$patch" >> "${QUILT_PC:-.pc}/applied-patches" fi exit $status quilt-0.61/quilt/add.in0000644000175000017500000000510711726705776015345 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt add [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" 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 already applied on top of the specified patch cannot be added. -P patch Patch to add files to. " exit 0 else exit 1 fi } in_valid_dir() { local p=$1 path path=${p%/*} while [ "$p" != "$path" ] do if [ "$path" -ef "$QUILT_PATCHES" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PATCHES/" return 1 fi if [ "$path" -ef "$QUILT_PC" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PC/" return 1 fi p=$path path=${path%/*} done } 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=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! in_valid_dir "$SUBDIR$file" then status=1 continue fi if file_in_patch "$SUBDIR$file" $patch then printf $"File %s is already in patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" >&2 [ $status -ne 1 ] && status=2 continue fi next_patch=$(next_patch_for_file $patch "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch $next_patch)" >&2 status=1 continue fi if [ -L "$SUBDIR$file" ] then printf $"Cannot add symbolic link %s\n" "$SUBDIR$file" >&2 status=1 continue fi if ! $QUILT_DIR/scripts/backup-files -b -s -L -B $QUILT_PC/$patch/ "$SUBDIR$file" then printf $"Failed to back up file %s\n" "$SUBDIR$file" >&2 status=1 continue fi if [ -e "$SUBDIR$file" ] then # The original tree may be read-only. chmod u+w "$SUBDIR$file" fi printf $"File %s added to patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/annotate.in0000644000175000017500000000667711634336352016427 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt annotate [-P patch] {file}\n" if [ x$1 = x-h ] then printf $" Print an annotated listing of the specified file showing which patches modify which lines. Only applied patches are included. -P patch Stop checking for changes at the specified rather than the topmost patch. " exit 0 else exit 1 fi } empty_file() { local file=$1 [ -s "$file" ] \ && sed -e 's:.*::' "$file" } annotation_for() { local old_file=$1 new_file=$2 annotation=$3 [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null diff -e "$old_file" "$new_file" \ | perl -e ' while (<>) { if (/^\d+(?:,\d+)?[ac]$/) { print; while (<>) { last if /^\.$/; print "'"$annotation"'\n"; } print; next; } print; } ' } merge_files() { local a b saved_IFS="$IFS" local template=$1 file=$2 [ -e "$file" ] || file=/dev/null exec 3< "$template" exec 4< "$file" IFS= while read -r a <&3 do read -r b <&4 echo "$a"$'\t'"$b" done IFS="$saved_IFS" exec 3<&- exec 4<&- } 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 [ $# -ne 1 ] then usage fi opt_file="$SUBDIR$1" opt_patch=$(find_applied_patch "$opt_patch") || exit 1 for patch in $(applied_patches); do old_file="$(backup_file_name "$patch" "$opt_file")" if [ -f "$old_file" ] then patches[${#patches[@]}]="$patch" files[${#files[@]}]="$old_file" fi if [ "$opt_patch" = "$patch" ] then # We also need to know the next patch, if any next_patch="$(next_patch_for_file "$opt_patch" "$opt_file")" break fi done if [ -z "$next_patch" ] then files[${#files[@]}]="$opt_file" else files[${#files[@]}]="$(backup_file_name "$next_patch" "$opt_file")" fi if [ ${#patches[@]} = 0 ] then sed -e 's:^:'$'\t'':' "${files[${#files[@]}-1]}" exit 0 fi template=$(gen_tempfile) add_exit_handler "rm -f $template" # The annotated listing is generated as follows: A file of annotations # is created based on a file that contains the same number of lines as # the source file, but all lines are empty. # # Then, for each patch that modifies the source file, an ed-style diff # (which has no context, and removes lines that are removed without # caring for the line's contents) is generated. In that diff, all line # additions are replaced with the identifier of the patch (1, 2, ...). # These patches are then applied to the empty file. # # Finally, the annotations listing is merged with the source file line # by line. setup_pager empty_file ${files[0]} > $template for ((n = 0; n < ${#patches[@]}; n++)) do annotation_for "${files[n]}" "${files[n+1]}" $((n+1)) done \ | patch $template merge_files $template "${files[${#files[@]}-1]}" echo for ((n = 0; n < ${#patches[@]}; n++)) do echo "$((n+1))"$'\t'"$(print_patch ${patches[n]})" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/applied.in0000644000175000017500000000216211634336352016215 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt applied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of applied patches, or all patches up to and including the specified patch in the file series. " 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 -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi patch=$(find_applied_patch "$1") || exit 1 setup_pager for patch in $(applied_before "$patch") $patch do echo "$(print_patch $patch)" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/delete.in0000644000175000017500000000504311634336352016042 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt delete [-r] [--backup] [patch|-n]\n" if [ x$1 = x-h ] then printf $" 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.) -n Delete the next patch after topmost, rather than the specified or topmost patch. -r Remove the deleted patch file from the patches directory as well. --backup Rename the patch file to patch~ rather than deleting it. Ignored if not used with \`-r'. " exit 0 else exit 1 fi } options=`getopt -o nrh --long backup -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -n) opt_next=1 shift ;; -r) opt_remove=1 shift ;; -h) usage -h ;; --backup) QUILT_BACKUP=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_next" -a $# -gt 0 \) ] then usage fi if [ -n "$1" ]; then patch=$(find_patch "$1") || exit 1 else patch=$(top_patch) fi if [ -n "$opt_next" ] then if ! patch=$(patch_after "$patch") then printf $"No next patch\n" >&2 exit 1 fi fi if [ -z "$patch" ] then # find_top_patch will display the proper error message for us find_top_patch > /dev/null exit 1 fi if is_applied "$patch"; then if [ "$patch" != "$(top_patch)" ] then printf $"Patch %s is currently applied\n" \ "$(print_patch "$patch")" >&2 exit 1 fi if ! quilt_command pop -fq then exit 1 fi fi if remove_from_series "$patch" then printf $"Removed patch %s\n" "$(print_patch "$patch")" else printf $"Failed to remove patch %s\n" "$(print_patch "$patch")" >&2 exit 1 fi patch_file=$(patch_file_name "$patch") if [ "$opt_remove" -a -e "$patch_file" ] then if [ "$QUILT_BACKUP" ] then if ! mv -f "$patch_file" "$patch_file~" then printf $"Failed to backup patch file %s\n" \ "$patch_file" >&2 exit 1 fi else if ! rm -f "$patch_file" then printf $"Failed to remove patch file %s\n" \ "$patch_file" >&2 exit 1 fi fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/diff.in0000644000175000017500000001715112077343056015514 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi setup_colors usage() { printf $"Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] [--sort] [--color] [file ...]\n" if [ x$1 = x-h ] then printf $" 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 ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. -z Write to standard output the changes that have been made relative to the topmost or specified patch. -R Create a reverse diff. -P patch Create a diff for the specified patch. (Defaults to the topmost patch.) --combine 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. --snapshot Diff against snapshot (see \`quilt snapshot -h'). --diff=utility Use the specified utility for generating the diff. The utility is invoked with the original and new file name as arguments. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). --sort Sort files by their name instead of preserving the original order. " exit 0 else exit 1 fi } colorize() { if [ -n "$opt_color" ] then sed -e ' s/^\(Index:\|---\|+++\|\*\*\*\) .*/'$color_diff_hdr'&'$color_clear'/ t ; s/^+.*/'$color_diff_add'&'$color_clear'/ t ; s/^-.*/'$color_diff_rem'&'$color_clear'/ t ; s/^!.*/'$color_diff_mod'&'$color_clear'/ t ; s/^\(@@ \-[0-9]\+\(,[0-9]\+\)\? +[0-9]\+\(,[0-9]\+\)\? @@\)\([ \t]*\)\(.*\)/'$color_diff_hunk'\1'$color_clear'\4'$color_diff_ctx'\5'$color_clear'/ t ; s/^\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*.*/'$color_diff_cctx'&'$color_clear'/ ' else cat 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 [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null if ! diff -q "$old_file" "$new_file" >/dev/null then export LANG=$ORIGINAL_LANG $opt_diff "$old_file" "$new_file" export LANG=POSIX true fi else diff_file "$file" "$old_file" "$new_file" | colorize fi } die() { local status=$1 [ -e "$tmp_files" ] && rm -f $tmp_files [ -n "$workdir" ] && rm -rf $workdir exit $status } options=`getopt -o p:P:RuU:cC:zh --long diff:,snapshot,no-timestamps \ --long no-index,combine:,color:: \ --long sort -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -P) last_patch=$2 shift 2 ;; --combine) opt_combine=1 if [ "$2" = - ] then first_patch=- else first_patch=$(find_applied_patch "$2") || exit 1 fi shift 2 ;; -R) opt_reverse=1 shift ;; -z) opt_relative=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -h) usage -h ;; --snapshot) opt_snapshot=1 snap_subdir=.snap shift ;; --diff) opt_diff=$2 shift 2 ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --sort) opt_sort=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --) shift break ;; esac done QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" opt_files=( $(for file in "$@"; do echo "$SUBDIR$file" ; done) ) if [ $[0$opt_combine + 0$opt_snapshot + 0$opt_relative] -gt 1 ] then printf $"Options \`--combine', \`--snapshot', and \`-z' cannot be combined.\n" >&2 die 1 fi last_patch=$(find_applied_patch "$last_patch") || exit 1 if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$last_patch") fi case "$opt_strip_level" in 0 | 1 | ab) ;; *) printf $"Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\n" \ "$opt_strip_level" >&2 die 1 ;; esac # If diffing against snapshot, ensure that snapshot is actually present if [ -n "$opt_snapshot" ] && [ ! -d "$QUILT_PC/$snap_subdir" ] then printf $"No snapshot to diff against\n" >&2 die 1 fi trap "die 1" SIGTERM tmp_files=$(gen_tempfile) exec 4> $tmp_files # open $tmp_files if [ -n "$opt_snapshot" -a ${#opt_files[@]} -eq 0 ] then # Add all files in the snapshot into the file list (they may all # have changed). files=( $(find $QUILT_PC/$snap_subdir -type f | sort) ) printf "%s\n" "${files[@]#$QUILT_PC/$snap_subdir/}" >&4 unset files # Also look at all patches that are currently applied. opt_combine=1 first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_combine" ] then set -- $(patches_before "$last_patch") "$last_patch" if [ "$first_patch" != "-" ] then while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 die 1 fi fi patches=( "$@" ) else patches=( "$last_patch" ) fi # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' for patch in ${patches[@]} do for file in $(files_in_patch_ordered "$patch") do if [ ${#opt_files[@]} -gt 0 ] && \ ! in_array "$file" "${opt_files[@]#./}" then continue fi echo "$file" >&4 done done exec 4>&- # close $tmp_files if [ -z "$opt_sort" ] then files=( $( awk ' { if ($0 in seen) next seen[$0]=1 print } ' $tmp_files) ) else files=( $(sort -u $tmp_files) ) fi IFS=$saved_IFS if [ -n "$opt_relative" ] then workdir=$(gen_tempfile -d $PWD/quilt) apply_patch_temporarily "$workdir" "$last_patch" "${files[@]}" \ || die 1 fi setup_pager for file in "${files[@]}" do if [ -n "$opt_snapshot" -a -e "$QUILT_PC/$snap_subdir/$file" ] then old_file="$QUILT_PC/$snap_subdir/$file" elif [ -n "$opt_relative" ] then old_file="$workdir/$file" else patch=$(first_modified_by "$file" "${patches[@]}") if [ -z "$patch" ] then [ -z "$opt_snapshot" ] \ && printf $"File %s is not being modified\n" "$file" >&2 continue fi old_file=$(backup_file_name "$patch" "$file") fi 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 do_diff "$file" "$old_file" "$new_file" if [ $? -ne 0 ] then printf $"Diff failed, aborting\n" >&2 die 1 fi done if [ -n "$files_were_shadowed" ] then printf $"Warning: more recent patches modify files in patch %s\n" \ "$(print_patch "$last_patch")" >&2 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/edit.in0000644000175000017500000000236311634336352015527 0ustar mquinsonmquinson#! @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. : ${EDITOR:=vi} # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt edit file ...\n" if [ x$1 = x-h ] then printf $" Edit the specified file(s) in \$EDITOR (%s) after adding it (them) to the topmost patch. " "$EDITOR" 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 [ $# -eq 0 ] then usage fi quilt_command add "$@" status=$? if [ $status -ne 0 -a $status -ne 2 ] then exit $status fi LANG=$ORIGINAL_LANG $EDITOR "${@/#/$SUBDIR}" status=$? for file in "$@" do if ! [ -e "$SUBDIR$file" ] then quilt_command revert "$file" status=1 fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/files.in0000644000175000017500000000560012064151701015670 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\n" if [ x$1 = x-h ] then printf $" Print the list of files that the topmost or specified patch changes. -a List all files in all applied patches. -l Add patch name to output. -v Verbose, more user friendly output. --combine patch Create a listing for all patches between this patch and the topmost or specified patch. A patch name of \`-' is equivalent to specifying the first applied patch. " exit 0 else exit 1 fi } options=`getopt -o vhal --long combine: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -l) opt_labels=1 shift ;; -h) usage -h ;; --combine) opt_all=1 if [ "$2" = - ] then : else first_patch=$(find_patch_in_series "$2") || exit 1 fi shift 2 ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi last_patch=$(find_applied_patch "$1") || exit 1 if [ -n "$opt_all" -a -z "$first_patch" ] then first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_all" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 exit 1 fi patches=( "$@" ) else patches=( "$last_patch" ) fi list_files_in_patch() { local patch=$1 local status local saved_IFS=$IFS if [ -n "$opt_all" ] && [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then echo "$patch" fi if [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then use_status=yes fi # Note: If opt_labels is set, then use_status is not set. IFS= echo $(files_in_patch "$patch") | sort | while read file do if [ -n "$opt_labels" ] then if [ -n "$opt_verbose" ] then echo -n "[$patch] " else echo -n "$patch " fi fi if [ -z "$use_status" ] then echo "$file" else 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" fi done IFS=$saved_IFS } setup_pager for patch in "${patches[@]}" do list_files_in_patch "$patch" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/fold.in0000644000175000017500000000542712211275541015524 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\n" if [ x$1 = x-h ] then printf $" Integrate the patch read from standard input into the topmost patch: After making sure that all files modified are part of the topmost patch, the patch is applied with the specified strip level (which defaults to 1). -R Apply patch in reverse. -q Quiet operation. -f Force apply, even if the patch has rejects. Unless in quiet mode, apply the patch interactively: the patch utility may ask questions. -p strip-level The number of pathname components to strip from file names when applying patchfile. " exit 0 else exit 1 fi } options=`getopt -o Rp:qfh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -R) opt_reverse=1 shift ;; -f) opt_force=1 shift ;; -p) opt_strip_level=$2 shift 2 ;; -q) opt_quiet=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi : ${opt_strip_level:=1} [ -n "$opt_quiet" ] && patch_args="$patch_args -s" [ -z "$opt_force" -o -n "$opt_quiet" ] && patch_args="$patch_args -f" [ -n "$opt_reverse" ] && patch_args="$patch_args -R" top=$(find_top_patch) || exit 1 trap "failed=1" SIGINT workdir=$(gen_tempfile -d $PWD) patch -d ${SUBDIR:-.} $QUILT_PATCH_OPTS -p$opt_strip_level \ --backup --prefix="$workdir/$SUBDIR" -E $patch_args \ || failed=1 [ -n "$opt_force" ] && failed= saved_IFS=$IFS IFS=$'\n' if [ -z "$failed" ] then # Copy additional files from workdir to the backup directory # For this patch for file in $(find $workdir -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" backup_file="$(backup_file_name $top "$file")" if ! [ -e "$backup_file" ] then if ! mkdir -p "$(dirname "$backup_file")" || ! ln "$workdir/$file" "$backup_file" then failed=1 break fi fi done fi if [ -n "$failed" ] then # Restore all files to the state from before applying the patch for file in $(find $workdir -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" if ! mv -f "$workdir/$file" "$file" then printf $"File %s may be corrupted\n" "$file" >&2 fi done rm -rf $workdir exit 1 fi IFS=$saved_IFS rm -rf $workdir exit 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/fork.in0000644000175000017500000000467111634336352015547 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt fork [new_name]\n" if [ x$1 = x-h ] then printf $" Fork the topmost patch. Forking a patch means creating a verbatim copy of it under a new name, and use that new name instead of the original one in the current series. This is useful when a patch has to be modified, but the original version of it should be preserved, e.g. because it is used in another series, or for the history. A typical sequence of commands would be: fork, edit, refresh. If new_name is missing, the name of the forked patch will be the current patch name, followed by \`-2'. If the patch name already ends in a dash-and-number, the number is further incremented (e.g., patch.diff, patch-2.diff, patch-3.diff). " 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 top_patch=$(find_top_patch) || exit 1 if [ $# -eq 1 ] then new_patch="$1" else new_patch="$(next_filename "$top_patch")" fi new_patch=${new_patch#$QUILT_PATCHES/} if patch_in_series $new_patch || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name $new_patch)" ] then printf $"Patch %s exists already, please choose a new name\n" \ "$(print_patch $new_patch)" >&2 exit 1 fi if ! rename_in_db "$top_patch" "$new_patch" || \ ! rename_in_series "$top_patch" "$new_patch" || \ ! mv "$QUILT_PC/$top_patch" "$QUILT_PC/$new_patch" || \ ( [ -e "$(patch_file_name $top_patch)" ] && \ ! cp -p "$(patch_file_name $top_patch)" \ "$(patch_file_name $new_patch)" ) then printf $"Fork of patch %s to patch %s failed\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/graph.in0000644000175000017500000000527611634336352015711 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] [-T ps] [patch]\n" if [ x$1 = x-h ] then printf $" Generate a dot(1) directed graph showing the dependencies between applied patches. A patch depends on another patch if both touch the same file or, with the --lines option, if their modifications overlap. Unless otherwise specified, the graph includes all patches that the topmost patch depends on. When a patch name is specified, instead of the topmost patch, create a graph for the specified patch. The graph will include all other patches that this patch depends on, as well as all patches that depend on this patch. --all Generate a graph including all applied patches and their dependencies. (Unapplied patches are not included.) --reduce Eliminate transitive edges from the graph. --lines[=num] Compute dependencies by looking at the lines the patches modify. Unless a different num is specified, two lines of context are included. --edge-labels=files Label graph edges with the file names that the adjacent patches modify. -T ps Directly produce a PostScript output file. " exit 0 else exit 1 fi } options=`getopt -o T:h --long all,reduce,lines::,edge-labels: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -T) if [ "$2" != ps ]; then usage fi opt_format=ps shift 2 ;; --all) opt_all=1 shift ;; --reduce) opt_reduce=1 shift ;; --lines) opt_lines=${2:-2} shift 2 ;; --edge-labels) if [ "$2" != files ] then usage fi opt_edge_labels=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -o \( $# -ne 0 -a -n "$opt_all" \) ] then usage fi if [ -z "$opt_all" ] then patch=$(find_applied_patch "$1") || exit 1 fi options= [ -n "$patch" ] && options="--select-patch $patch" [ -n "$opt_reduce" ] && options="$options --reduce" [ "$opt_edge_labels" = files ] && options="$options --edge-files" [ -n "$opt_lines" ] && options="$options --lines=$opt_lines" pipe= [ -n "$opt_format" ] && pipe="| dot -T$opt_format" applied_patches \ | eval $QUILT_DIR/scripts/dependency-graph $options - $pipe ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/grep.in0000644000175000017500000000623311726705776015553 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt grep [-h|options] {pattern}\n" if [ x$1 = x-h ] then printf $" Grep through the source files, recursively, skipping patches and quilt meta-information. If no filename argument is given, the whole source tree is searched. Please see the grep(1) manual page for options. -h Print this help. The grep -h option can be passed after a double-dash (--). Search expressions that start with a dash can be passed after a second double-dash (-- --). " exit 0 else exit 1 fi } get_options() { getopt -o EFGPe:f:iwxzsvVm:bHnhqoaId:D:RrlLcB:ZA:C:Uu \ --long extended-regexp,fixed-strings,basic-regexp,perl-regexp \ --long regexp:,file:,ignore-case,word-regexp \ --long line-regexp,null-data,no-messages,invert-match,version \ --long help,mmap,max-count:,byte-offset,line-number \ --long line-buffered,with-filename,no-filename,label: \ --long only-matching,quiet,silent,binary-files:,text, \ --long directories:,devices:,recursive,include:,exclude: \ --long exclude-from:,files-without-match,files-with-matches \ --long count,null,before-context:,after-context:,context: \ --long color::,colour::,binary,unix-byte-offsets \ -- "$@" } shift_myargs() { set -- "${myargs[@]}" shift myargs=( "$@" ) } shift_args() { while true do case "${myargs[0]}" in --) shift_myargs return ;; -h) opt_h=1 ;; -e|-f|--regexp|--file) has_pattern=1 args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; -m|-d|-D|-B|-A|-C|\ --max-count|--label|--binary-files|\ --directories|--devices|--include|--exclude|--exclude-from|\ --before-context|--after-context|--context|--color|--colour) args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; esac args=( "${args[@]}" "${myargs[0]}" ) shift_myargs done } options=$(get_options "$@") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) args=() opt_h= has_pattern= shift_args [ -n "$opt_h" ] && usage -h case "${myargs[0]}" in -*) options=$(get_options "${myargs[@]}") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) shift_args ;; esac if [ -z "$has_pattern" ] then [ ${#myargs[@]} -eq 0 ] && usage args=( "${args[@]}" -- "${myargs[0]}" ) shift_myargs fi # Print the filename for each match, unless -h is given. Otherwise, xargs # may pass a single filename to grep and cause it to omit the file name. [ -z "$opt_h" ] && opt_H=-H find "${myargs[@]:-.}" \( \ -path "./$QUILT_PATCHES/*" -o \ -path "./$QUILT_PC/*" \) -prune -o \ -type f -print0 \ | xargs -0 grep $opt_H "${args[@]}" \ | if [ ${#myargs[@]} -eq 0 ]; then sed -e 's,^./,,' else cat fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/header.in0000644000175000017500000000634711634336352016040 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi : ${EDITOR:=vi} usage() { printf $"Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" Print or change the header of the topmost or specified patch. -a, -r, -e Append to (-a) or replace (-r) the exiting patch header, or edit (-e) the header in \$EDITOR (%s). If none of these options is given, print the patch header. --strip-diffstat Strip diffstat output from the header. --strip-trailing-whitespace Strip trailing whitespace at the end of lines of the header. --backup Create a backup copy of the old version of a patch as patch~. " "$EDITOR" exit 0 else exit 1 fi } maybe_strip_trailing_whitespace() { if [ -n "$opt_strip_trailing_whitespace" ] then sed -e 's:[ '$'\t'']*$::' else cat fi } maybe_strip_diffstat() { if [ -n "$opt_strip_diffstat" ] then strip_diffstat else cat fi } options=`getopt -o areh --long backup,strip-trailing-whitespace,strip-diffstat -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -a) opt_append=1 shift ;; -r) opt_replace=1 shift ;; -e) opt_edit=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --strip-diffstat) opt_strip_diffstat=1 shift ;; --strip-trailing-whitespace) opt_strip_trailing_whitespace=1 shift ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_append$opt_replace$opt_edit" in ''|1) ;; *) usage ;; esac if [ $# -gt 1 ] then usage fi patch=$(find_patch_in_series "$1") || exit 1 patch_file=$(patch_file_name $patch) if [ -z "$opt_replace" -a -z "$opt_append" -a -z "$opt_edit" ] then [ -e "$patch_file" ] || exit 0 setup_pager cat_file "$patch_file" \ | patch_header \ | maybe_strip_diffstat \ | maybe_strip_trailing_whitespace else patch_file_or_null=/dev/null [ -e "$patch_file" ] && patch_file_or_null=$patch_file tmp=$(gen_tempfile) || exit 1 tmp2=$(gen_tempfile) || exit 1 add_exit_handler "rm -f $tmp $tmp2" ( if [ -z "$opt_replace" ] then cat_file $patch_file_or_null | patch_header fi if [ -n "$opt_append" -o -n "$opt_replace" ] then cat fi ) > $tmp if [ -n "$opt_edit" ] then LANG=$ORIGINAL_LANG $EDITOR "$tmp" || exit 1 fi maybe_strip_diffstat < $tmp \ | maybe_strip_trailing_whitespace > $tmp2 cat_file "$patch_file_or_null" | patch_body >> $tmp2 || exit 1 if ( [ -z "$QUILT_BACKUP" -o ! -e $patch_file ] || \ mv $patch_file $patch_file~ ) && \ cat_to_new_file $patch_file < $tmp2 then if [ -z "$opt_append" ] then printf \ $"Replaced header of patch %s\n" "$(print_patch $patch)" else printf \ $"Appended text to header of patch %s\n" "$(print_patch $patch)" fi else exit 1 fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/import.in0000644000175000017500000001146111726705776016127 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ...\n" if [ x$1 = x-h ] then printf $" Import external patches. The patches will be inserted following the current top patch, and must be pushed after import to apply them. -p num Number of directory levels to strip when applying (default=1) -R Apply patch in reverse. -P patch Patch filename to use inside quilt. This option can only be used when importing a single patch. -f Overwrite/update existing patches. -d {o|a|n} When overwriting in existing patch, keep the old (o), all (a), or new (n) patch header. If both patches include headers, this option must be specified. This option is only effective when -f is used. " exit 0 else exit 1 fi } merge_patches() { local old="$1" new="$2" local old_desc=$(gen_tempfile) new_desc=$(gen_tempfile) cat_file "$old" | patch_header | strip_diffstat > $old_desc cat_file "$new" | patch_header | strip_diffstat > $new_desc if [ -z "$opt_desc" ] then [ -s $old_desc ] || opt_desc=n [ -z "$opt_desc" -a ! -s $new_desc ] && opt_desc=o if [ -z "$opt_desc" ] then local diff=$(diff -u $old_desc $new_desc \ | sed -e '1,2d') if [ -n "$diff" ] then printf $"Patch headers differ:\n" >&2 echo "$diff" >&2 printf \ $"Please use -d {o|a|n} to specify which patch header(s) to keep.\n" >&2 rm -f $old_desc $new_desc return 1 fi fi fi [ "$opt_desc" = n ] || cat "$old_desc" [ "$opt_desc" = a ] && echo '---' if [ "$opt_desc" = o ] then cat_file "$new" | patch_body else cat_file "$new" fi rm -f $old_desc $new_desc } die() { local status=$1 [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" exit $status } options=`getopt -o P:d:fp:Rh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=${2#$QUILT_PATCHES/} shift 2 ;; -p) opt_strip=$2 shift 2 ;; -R) opt_reverse=1 shift ;; -d) case "$2" in o|n|a) opt_desc=$2 ;; *) usage ;; esac shift 2 ;; -f) opt_force=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -a -n "$opt_patch" ] then printf $"Option \`-P' can only be used when importing a single patch\n" >&2 exit 1 fi [ -n "$opt_strip" ] && patch_args="-p$opt_strip" if [ -n "$opt_reverse" ] then if [ -n "$patch_args" ] then patch_args="$patch_args -R" else patch_args="-R" fi fi before=$(patch_after "$(top_patch)") for orig_patch_file in "$@" do if [ -n "$opt_patch" ] then patch=$opt_patch else patch=${orig_patch_file##*/} fi patch_file=$(find_patch_file "$orig_patch_file") || exit 1 merged_patch_file="$patch_file" if is_applied $patch then printf $"Patch %s is applied\n" "$(print_patch $patch)" >&2 exit 1 fi dest=$(patch_file_name $patch) if patch_in_series "$patch" then if [ "$patch_file" = "$dest" ] then printf $"Patch %s already exists in series.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ -z "$opt_force" ] then printf $"Patch %s exists. Replace with -f.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ "$opt_desc" != n ] then merged_patch_file=$(gen_tempfile) merge_patches "$dest" "$patch_file" \ > $merged_patch_file \ || die 1 fi printf $"Replacing patch %s with new version\n" \ "$(print_patch $patch)" >&2 elif [ -e "$dest" ] then printf $"Importing patch %s\n" "$(print_patch $patch)" else printf $"Importing patch %s (stored as %s)\n" \ "$orig_patch_file" \ "$(print_patch $patch)" mkdir -p "${dest%/*}" fi if [ "$merged_patch_file" != "$dest" ] && \ (( [ "$merged_patch_file" != "$patch_file" ] && \ ! cat_to_new_file "$dest" < "$merged_patch_file" ) || \ ( [ "$merged_patch_file" = "$patch_file" ] && \ ! cp "$merged_patch_file" "$dest" )) then printf $"Failed to import patch %s\n" "$(print_patch $patch)" >&2 die 1 fi [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" if ! patch_in_series $patch && ! insert_in_series $patch "$patch_args" "$before" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch $patch)" >&2 exit 1 fi rm -rf $QUILT_PC/$patch done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/mail.in0000644000175000017500000003574312251154426015530 0ustar mquinsonmquinson#! @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. : ${EDITOR:=vi} # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] [--reply-to message] [first_patch [last_patch]]\n" if [ x$1 = x-h ] then printf $" Create mail messages from a specified range of patches, or all patches in the series file, and either store them in a mailbox file, or send them immediately. The editor is opened with a template for the introduction. Please see %s for details. When specifying a range of patches, a first patch name of \`-' denotes the first, and a last patch name of \`-' denotes the last patch in the series. -m text Text to use as the text in the introduction. When this option is used, the editor will not be invoked, and the patches will be processed immediately. -M file Like the -m option, but read the introduction from file. --prefix prefix Use an alternate prefix in the bracketed part of the subjects generated. Defaults to \`patch'. --mbox file Store all messages in the specified file in mbox format. The mbox can later be sent using formail, for example. --send Send the messages directly. --sender The envelope sender address to use. The address must be of the form \`user@domain.name'. No display name is allowed. --from, --subject The values for the From and Subject headers to use. If no --from option is given, the value of the --sender option is used. --to, --cc, --bcc Append a recipient to the To, Cc, or Bcc header. --signature file Append the specified signature to messages (defaults to ~/.signature if found; use \`-' for no signature). --reply-to message Add the appropriate headers to reply to the specified message. " "@DOCSUBDIR@/README.MAIL" exit 0 else exit 1 fi } msgid() { local timestamp=$(date --utc "+%Y%m%d%H%M%S.%N") echo "$timestamp@${opt_sender_address#*@}" } # See RFC 2822 Internet Message Format for how the In-Reply-To and # References headers are generated... in_reply_to_header() { local message=$1 message_id message_id=$(formail -x Message-ID: < "$message") message_id=${message_id# } [ -n "$message_id" ] && echo "In-Reply-To: $message_id" } references_header() { local message=$1 message_id references in_reply_to message_id=$(formail -x Message-ID: < "$message") message_id=${message_id# } references=$(formail -x References: < "$message") references=${references# } if [ -z "$references" ] then in_reply_to=$(formail -x In-Reply-To: < "$message") in_reply_to=${in_reply_to# } if [ -n "$in_reply_to" ] then case "$in_reply_to" in *@*@*) ;; *) references=$in_reply_to ;; esac fi fi if [ -z "$references" ] then references=$message_id elif [ -n "$message_id" ] then references="$references"$'\n '"$message_id" fi [ -n "$references" ] && echo "References: $references" } process_mail() { local tmpfile=$(gen_tempfile) cat > $tmpfile set -- $($QUILT_DIR/scripts/edmail --charset $opt_charset \ --extract-recipients To \ --extract-recipients Cc \ --extract-recipients Bcc \ < $tmpfile) if [ -n "$opt_send" ] then echo ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-header Bcc < $tmpfile \ | ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" else local from_date=$(LC_ALL=POSIX date "+%a %b %e %H:%M:%S %Y") echo "From $opt_sender_address $from_date" sed -e 's/^From />From /' $tmpfile echo fi rm -f $tmpfile } join_lines() { awk ' BEGIN { RS="\n\n" } { gsub(/[ \t\n]+/, " ") sub(/ $/, "") sub(/^ /, "") print } ' } options=`getopt -o m:M:h \ --long from:,to:,cc:,bcc:,subject: \ --long send,mbox:,charset:,sender: \ --long prefix:,reply-to:,signature: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_prefix=patch if [ -r $HOME/.signature ] then opt_signature="$(< $HOME/.signature)" fi while true do case "$1" in -m) if [ -n "$opt_message" ] then echo "Introduction message already specified" >&2 exit 1 fi opt_message=$2 shift 2 ;; -M) if [ -n "$opt_message" ] then echo "Introduction message already specified" >&2 exit 1 fi opt_message=$(< "$2") shift 2 ;; --sender) opt_sender=$2 shift 2 ;; --from) opt_from=$2 shift 2 ;; --to) opt_to[${#opt_to[@]}]=$2 shift 2 ;; --cc) opt_cc[${#opt_cc[@]}]=$2 shift 2 ;; --bcc) opt_bcc[${#opt_bcc[@]}]=$2 shift 2 ;; --subject) opt_subject=$2 shift 2 ;; --prefix) opt_prefix=$2 shift 2 ;; --send) opt_send=1 shift ;; --mbox) opt_mbox=$2 shift 2 ;; --charset) opt_charset=$2 shift 2 ;; --reply-to) opt_reply_to=$2 shift 2 ;; --signature) if [ "$2" = - ] then opt_signature= else opt_signature=$(< "$2") fi shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 2 -o \( -z "$opt_send" -a -z "$opt_mbox" \) ] then usage fi # check if formail is installed before doing anything if ! type formail &> /dev/null then echo "You have to install 'formail' to use 'quilt mail'" >&2 exit 1 fi if [ $# -ge 1 ] then if [ "$1" = - ] then first_patch="$(find_first_patch)" || exit 1 else first_patch="$(find_patch "$1")" || exit 1 fi if [ $# -ge 2 ] then if [ "$2" = - ] then last_patch="$(find_last_patch)" || exit 1 else last_patch="$(find_patch "$2")" || exit 1 fi else last_patch=$first_patch fi fi if [ -z "$opt_sender" ] then if [ -e /etc/mailname ] then hostname=$(< /etc/mailname) else hostname=$(hostname -f 2>/dev/null) fi if [ "$hostname" = "${hostname/.}" ] then hostname=$(hostname) fi opt_sender="${LOGNAME:-$(whoami)}@$hostname" case "$opt_sender" in *@*.*) ;; *) echo $"\ Could not determine the envelope sender address. Please use --sender." >&2 exit 1 ;; esac fi opt_sender_address=$(echo "$opt_sender" | sed -re 's:.*<([^<>]+)>.*:\1:') if [ -z "$opt_charset" ] then case "${LC_ALL:-$ORIGINAL_LANG}" in *.UTF-8) opt_charset=UTF-8 ;; *) opt_charset=ISO-8859-15 ;; esac fi if [ "$(type -t quilt_mail_patch_filter 2> /dev/null)" != function ] then quilt_mail_patch_filter() { local tmpdir=$(gen_tempfile -d) cat > $tmpdir/patch patch_header < $tmpdir/patch > $tmpdir/header local subject local -a mh # Does this patch have a Subject: line? subject=$(formail -x Subject: < $tmpdir/header) if [ -n "$subject" ] then awk ' in_body { print } /^$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi # Does this patch have DESC // subject // EDESC? if [ -z "$subject" ] then local desc=$(awk ' /^EDESC/ { desc = 0 } desc { print } /^DESC/ { desc = 1 } ' $tmpdir/header) if [ -n "$desc" ] then subject=$(echo "$desc" | join_lines) awk ' /^DESC/ { desc = 1 } ! desc { print } /^EDESC/ { desc = 0 } ' $tmpdir/patch > $tmpdir/body fi fi # Is the first paragraph short enough to be used as the subject? if [ -z "$subject" ] then local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header) if [ ${#para} -gt 0 -a ${#para} -lt 150 ] then subject=$(echo "$para" | join_lines) awk ' in_body { print } /^[ \t]*$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi fi if [ -z "$subject" ] then rm -rf $tmpdir return 1 fi subject=$(echo "$subject" \ | sed -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i') echo "Replace-Subject: $subject" # Add recipients defined by some recognized keywords # In Signed-off-by: and Acked-by: lines, try to recognize email # addresses that contain commas and add quotes, e.g., # Last, First => "Last, First" set -- Signed-off-by Acked-by Suggested-by Reviewed-by Requested-by Reported-by Tested-by Cc set -- "$*" set -- ${*// /\\|} sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \ -e 's/^\(\(To\|'"$*"'\):[ '$'\t'']*\)\([^"]*\(,[^"]*\)\+[^" '$'\t'']\)\([ '$'\t'']*<.*>\)/\1"\3"\5/I' \ -e 's/^To:\(.*@.*\)/Recipient-To:\1/Ip' \ -e 's/^\('"$*"'\):\(.*@.*\)/Recipient-Cc:\2/Ip' \ $tmpdir/header echo cat $tmpdir/body rm -rf $tmpdir } fi if [ -n "$first_patch" ] then if [ -n "$last_patch" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ne 0 ] do [ "$1" = "$first_patch" ] && break shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch $first_patch)" \ "$(print_patch $last_patch)" >&2 exit 1 fi patches=( "$@" ) else patches=( "$first_patch" $(patches_after "$first_patch") ) fi else patches=( $(cat_series) ) fi total=${#patches[@]} tmpdir=$(gen_tempfile -d) add_exit_handler "rm -rf $tmpdir" for patch in "${patches[@]}" do mkdir -p "$tmpdir/$(dirname "$patch")" cat_file "$(patch_file_name "$patch")" \ | quilt_mail_patch_filter "$patch" > "$tmpdir/$patch" status=${PIPESTATUS[1]} subject=$(formail -x Replace-Subject: < "$tmpdir/$patch" | join_lines) if [ $status -ne 0 -o -z "$subject" ] then printf \ $"Unable to extract a subject header from %s\n" "$(print_patch "$patch")" >&2 rm -rf $tmpdir exit 1 fi subjects[${#subjects[@]}]="$patch"$'\t'"$subject" done dup_subjects=( $( printf "%s\n" "${subjects[@]}" \ | sort -k2 \ | awk '{ patch = $1 ; sub(/^[^\t]+\t/, ""); if ($0 in subjects) { if (subjects[$0] != "") print subjects[$0]; print patch; subjects[$0] = ""; } else subjects[$0] = patch }' \ | while read patch; do echo "$(print_patch "$patch")" done ) ) if [ ${#dup_subjects[@]} -ne 0 ] then printf $"Patches %s have duplicate subject headers.\n" \ "$(set -- "${dup_subjects[*]/%/, }"; echo ${1%, })" exit 1 fi if [ -n "$opt_reply_to" ] then if [ ! -e "$opt_reply_to" ] then printf $"File %s does not exist\n" "$opt_reply_to" exit 1 fi if [ -z "$opt_subject" ] then opt_subject="Re: $(formail -x Subject: < "$opt_reply_to" \ | sed -e 's/^ *\([rR][eE]: *\)*//')" fi fi introduction="$(gen_tempfile)" ( cat <<-EOF Message-Id: <$(msgid)> User-Agent: quilt/@VERSION@-@RELEASE@ Date: $(date --rfc-822) From: ${opt_from:-$opt_sender} To: $(IFS=,; echo "${opt_to[*]}") Cc: $(IFS=,; echo "${opt_cc[*]}") Bcc: $(IFS=,; echo "${opt_bcc[*]}") EOF if [ -n "$opt_reply_to" ] then in_reply_to_header "$opt_reply_to" references_header "$opt_reply_to" fi cat <<-EOF Subject-Prefix: [$opt_prefix @num@/@total@] Subject: $opt_subject EOF if [ -n "$opt_message" ] then echo "$opt_message" echo fi if [ -n "$opt_signature" ] then echo "-- " echo "$opt_signature" fi ) | $QUILT_DIR/scripts/edmail --charset $opt_charset > $introduction if [ -z "$opt_message" ] then if ! LANG=$ORIGINAL_LANG $EDITOR $introduction then rm -f $introduction exit 1 fi fi subject=$(formail -x Subject: < $introduction | join_lines) if [ -z "$subject" ] then if [ -z "$opt_message" ] then printf $"Introduction has no subject header (saved as %s)\n" \ "$introduction" >&2 else printf $"Introduction has no subject header\n" rm -f $introduction fi exit 1 fi if [ -n "$opt_mbox" ] then exec 1> $opt_mbox fi subject_prefix=$(formail -x Subject-Prefix: < $introduction | join_lines) [ -n "$subject_prefix" ] && subject_prefix="$subject_prefix " subject_prefix=${subject_prefix//\'/\'\'} subject_prefix=${subject_prefix//\//\\\/} p=${subject_prefix//@num@/$(printf %0*d ${#total} 0)} p=${p//@total@/$total} sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ $introduction \ | $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-empty-headers To Cc Bcc \ | process_mail if [ -n "$opt_mbox" ] then exec 1>> $opt_mbox fi # Remember the timestamp of the last message sent. For each message, # increment the timestamp by one second and wait with sending until # that time has arrived. This allows MUAs to show the messages in the # correct order. last_ts=$(date '+%s' -d "$(sed -ne $'s/^Date:[ \t]*//p' $introduction)") num=1 for patch in "${patches[@]}"; do body=$tmpdir/$patch #echo -n '.' >&2 # Timestamps that are a few seconds in the future don't hurt usually #while [ $(date '+%s') -le $last_ts ]; do # sleep 1 #done ((last_ts++)) new_date="$(date --rfc-822 -d "1970/01/01 UTC $last_ts seconds")" modify="$(awk ' in_header { if (/^[ \t]/) { headers[n] = headers[n] "\n" $0 next } in_header = 0 } sub(/^Recipient-/, "") { headers[++n] = $0 options[n] = "--add-good-recipient" in_header = 1 next } sub(/^Replace-/, "") { headers[++n] = $0 options[n] = "--replace-header" in_header = 1 next } END { for(n = 1; n in headers; n++) { r = headers[n] sub(/:.*/, "", r) s = headers[n] sub(/^[^:]*:[ \t]*/, "", s) gsub(/'\''/, "'\'\''", s) print options[n] " " r "='\''" s "'\'' \\" } } ' $body)" # echo "$modify" | sed -e 's/^/>> /' >&2 p=${subject_prefix//@num@/$(printf %0*d ${#total} $num)} p=${p//@total@/$total} # Make pipes fail if any of their commands fail (requires bash 3): set -o pipefail ( ( echo "Message-Id: <$(msgid)>" awk ' /^$/ { exit } tolower($0) !~ /^(message-id|references|in-reply-to):/ \ { print } ' $introduction references_header $introduction echo "MIME-Version: 1.0" echo "Content-Type: text/plain; charset=$opt_charset" echo "Content-Disposition: inline; filename=$patch" awk ' kill_header { if (/^[ \t]/) next ; kill_header = 0 } !in_body && tolower($0) ~ /^(recipient|replace)-.*:/ \ { kill_header = 1 ; next } /^$/ { in_body = 1 } { print } ' $body echo #if [ -n "$opt_signature" ] #then # echo '-- ' # echo "$opt_signature" #fi ) | eval $QUILT_DIR/scripts/edmail --charset $opt_charset \ --replace-header Date="\"$new_date\"" \ To Cc Bcc \ "$modify" \ | sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ | $QUILT_DIR/scripts/edmail --remove-empty-headers \ | process_mail ) 2> $tmpdir/err status=$? if [ -s $tmpdir/err ] then sed -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2 fi if [ $status -ne 0 ] then printf $"Introduction saved as %s\n" "$introduction" >&2 exit 1 fi # If the character set is UTF-8, check for invalid byte # sequences. #content_length=${#body} #if [ -n "$(echo "$body" | tr -d '\0-\177')" ] #then # charset=UTF-8 #fi # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-1 # Content-Type: text/plain; charset=UTF-8 ((num++)) done rm -f $introduction ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/new.in0000644000175000017500000000464511726705776015414 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt new [-p n|-p ab] {patchname}\n" if [ x$1 = x-h ] then printf $" Create a new patch with the specified file name, and insert it after the topmost patch. The name can be prefixed with a sub-directory name, allowing for grouping related patches together. -p n Create a -p n style patch (-p0 or -p1 are supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. Quilt can be used in sub-directories of a source tree. It determines the root of a source tree by searching for a %s directory above the current working directory. Create a %s directory in the intended root directory if quilt chooses a top-level directory that is too high up in the directory tree. " "$QUILT_PATCHES" "$QUILT_PATCHES" 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_strip_level=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_strip_level" in '' | 1) opt_strip_level= ;; 0 | ab) ;; *) printf $"Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\n" \ "$opt_strip_level" >&2 exit 1 ;; esac if [ $# -ne 1 ] then usage fi if [ "$QUILT_PATCHES" = "$QUILT_PC" ] then printf $"QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\n" "$QUILT_PATCHES" "$QUILT_PC" exit 1 fi patch=${1#$QUILT_PATCHES/} if patch_in_series $patch then printf $"Patch %s exists already\n" "$(print_patch $patch)" >&2 exit 1 fi create_db rm -rf "$QUILT_PC/$patch" mkdir -p "$QUILT_PC/$patch" if ! insert_in_series $patch ${opt_strip_level:+-p$opt_strip_level} || \ ! add_to_db $patch then printf $"Failed to create patch %s\n" "$(print_patch $patch)" >&2 exit 1 else printf $"Patch %s is now on top\n" "$(print_patch $patch)" fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/next.in0000644000175000017500000000207411634336352015557 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt next [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the next patch after the specified or topmost patch in the 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 [ $# -gt 1 ] then usage fi next=$(find_unapplied_patch "$1") || exit if [ -n "$next" ] then echo "$(print_patch $next)" else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/patches.in0000644000175000017500000000640712206665406016235 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi declare -a opt_files=() usage() { printf $"Usage: quilt patches [-v] {file} [files...]\n" if [ x$1 = x-h ] then printf $" Print the list of patches that modify any of the specified files. (Uses a heuristic to determine which files are modified by unapplied patches. Note that this heuristic is much slower than scanning applied patches.) -v Verbose, more user friendly output. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). " exit 0 else exit 1 fi } # Uses global variable opt_files scan_applied() { local color=$1 prefix=$2 shift 2 local patch file match for patch in "$@" do match= for file in "${opt_files[@]}" do if [ -f "$(backup_file_name $patch "$file")" ] then match=1 break fi done [ -z "$match" ] || echo "$color$prefix$(print_patch $patch)$color_clear" done } # Note that we can only guess which files a patch touches because of the # complicated heuristics that patch uses (see "Multiple Patches in a File" # in the diff info pages). touched_by_patch() { local strip=$1 patch=$2 [ $strip = ab ] && strip=1 cat_file $(patch_file_name $patch) \ | awk ' /^(\+\+\+|---)[ \t]/ { sub(/^(\+\+\+|---)[ \t]/, "") sub(/[ \t][^ \t]*$/, "") sub(/^\/dev\/null/, "") for (i=0; i<'$strip'; i++) sub(/^[^\/]*\//, "") if ($0 != "") print }' } # Uses global variable opt_files scan_unapplied() { local color=$1 prefix=$2 strip shift 2 local patch file file_bre match for patch in "$@" do strip=$(patch_strip_level $patch) [ "$strip" = ab ] && strip=1 match= for file in "${opt_files[@]}" do file_bre="$(quote_bre "$file")" if touched_by_patch $strip $patch \ | grep -q "^$file_bre\$" then match=1 break fi done [ -z "$match" ] || echo "$color$prefix$(print_patch $patch)$color_clear" done } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi while [ $# -ge 1 ] do opt_files[${#opt_files[@]}]="$SUBDIR$1" shift done top=$(top_patch) if [ -n "$opt_verbose" ] then applied="+ " current="= " unapplied=" " else applied="" current="" unapplied="" fi [ -n "$opt_color" ] && setup_colors setup_pager scan_applied "$color_series_app" "$applied" \ $(patches_before $top) [ -n "$top" ] && \ scan_applied "$color_series_top" "$current" \ $top scan_unapplied "$color_series_una" "$unapplied" \ $(patches_after $top) ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/pop.in0000644000175000017500000001267412064151701015375 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt pop [-afRqv] [num|patch]\n" if [ x$1 = x-h ] then printf $" Remove patch(es) from the stack of applied patches. Without options, the topmost patch is removed. When a number is specified, remove the specified number of patches. When a patch name is specified, remove patches until the specified patch end up on top of the stack. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Remove all applied patches. -f Force remove. The state before the patch(es) were applied will be restored from backup files. -R Always verify if the patch removes cleanly; don't rely on timestamp checks. -q Quiet operation. -v Verbose operation. " exit 0 else exit 1 fi } list_patches() { local n patches patches=( $(applied_patches) ) for ((n=${#patches[@]}-1; n>=0; n--)) do if [ -n "$number" ] then (( number-- > 0 )) || break fi [ "${patches[n]}" = "$stop_at_patch" ] && break echo "${patches[n]}" done } files_may_have_changed() { local patch=$1 file local patch_file=$(patch_file_name "$patch") if [ $? -ne 0 -o ! -e "$patch_file" \ -o ! -e "$QUILT_PC/$patch/.timestamp" \ -o ! "$QUILT_PC/$patch/.timestamp" -nt "$patch_file" ] then return 0 fi for file in $(files_in_patch "$patch") do [ ! "$QUILT_PC/$patch/.timestamp" -nt "$file" ] && return 0 done return 1 } # Check if all changes have been folded back into the patch (quilt refresh), # and report any pending changes. check_for_pending_changes() { local patch=$1 local patch_file=$(patch_file_name "$patch") local workdir=$(gen_tempfile -d quilt) status=0 if [ -d "$QUILT_PC/$patch" ] then local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd $workdir && \ $QUILT_DIR/scripts/backup-files -B "$prefix" -r -k -s - ) then printf $"Failed to copy files to temporary directory\n" >&2 rm -rf $workdir return 1 fi fi if [ -s "$patch_file" ] then cat_file "$patch_file" \ | patch -d $workdir $QUILT_PATCH_OPTS \ $(patch_args "$patch") --no-backup-if-mismatch \ -E -f >/dev/null 2>/dev/null fi local file file2 failed for file2 in $(files_in_patch "$patch") do file=$workdir/$file2 [ -e "$file" ] || file=/dev/null [ -e "$file2" ] || file2=/dev/null diff -q "$file" "$file2" > /dev/null || failed=1 done if [ -n "$failed" ] then printf $"Patch %s does not remove cleanly (refresh it or enforce with -f)\n" \ "$(print_patch "$patch")" >&2 status=1 fi rm -rf $workdir return $status } remove_patch() { local patch=$1 status=0 trap "status=1" SIGINT if [ -z "$opt_force" ] && \ ( [ -n "$opt_remove" ] || files_may_have_changed "$patch" ) then check_for_pending_changes "$patch" || status=1 fi if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch/.timestamp" if [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty, removing\n" \ "$(print_patch "$patch")" rmdir "$QUILT_PC/$patch" status=$? else printf $"Removing patch %s\n" "$(print_patch "$patch")" $QUILT_DIR/scripts/backup-files $silent -r -t -B "$QUILT_PC/$patch/" - status=$? fi remove_from_db "$patch" rm -f "$QUILT_PC/$patch~refresh" fi trap - SIGINT return $status } 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 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=$(find_applied_patch "$1") || exit 1 fi else [ -n "$opt_all" ] || number=1 fi [ -n "$opt_quiet" ] && silent=-s [ -z "$opt_verbose" ] && silent_unless_verbose=-s top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" -a -z "$opt_force" ] then printf $"Patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" >&2 exit 1 fi if ! patches=$(list_patches) 2>&1 then exit 1 elif [ -z "$patches" ] then printf $"No patch removed\n" >&2 exit 2 fi for patch in $patches do if ! remove_patch "$patch" then exit 1 fi [ -z "$opt_quiet" ] && echo done patch="$(top_patch)" if [ -z "$patch" ] then printf $"No patches applied\n" else # Ensure that the files in the topmost patch have a link count # of one: This will automatically be the case in the usual # situations, but we don't want to risk file corruption in weird # corner cases such as files added to a patch but not modified. $QUILT_DIR/scripts/backup-files -L -s -B "$QUILT_PC/$patch/" - printf $"Now at patch %s\n" "$(print_patch "$patch")" fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/previous.in0000644000175000017500000000220111634336352016445 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt previous [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the previous patch before the specified or topmost patch in the 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 [ $# -gt 1 ] then usage fi patch=$(find_patch_in_series "$1") || exit 1 previous=$(applied_before "$patch" | tail -n 1) if [ -n "$previous" ] then echo "$(print_patch $previous)" else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/push.in0000644000175000017500000001737612077344461015575 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi setup_colors usage() { printf $"Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [num|patch]\n" if [ x$1 = x-h ] then printf $" Apply patch(es) from the series file. Without options, the next patch in the series file is applied. When a number is specified, apply the specified number of patches. When a patch name is specified, apply all patches up to and including the specified patch. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Apply all patches in the series file. -q Quiet operation. -f Force apply, even if the patch has rejects. Unless in quiet mode, apply the patch interactively: the patch utility may ask questions. -v Verbose operation. --fuzz=N Set the maximum fuzz factor (default: 2). -m, --merge[=merge|diff3] Merge the patch file into the original files (see patch(1)). --leave-rejects Leave around the reject files patch produced, even if the patch is not actually applied. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). " exit 0 else exit 1 fi } interrupt() { local patch=$1 rollback_patch "$patch" printf $"Interrupted by user; patch %s was not applied.\n" \ "$(print_patch "$patch")" >&2 exit 1 } colorize() { if [ -n "$opt_color" ]; then awk ' { if (/FAILED|hunks? ignored|can'\''t find file|file .* already exists|NOT MERGED/) print "'$color_patch_fail'" $0 "'$color_clear'" else if (/already applied$/) print "'$color_patch_fuzz'" $0 "'$color_clear'" else if (/^Hunk/) { sub(/^Hunk .* with fuzz [0-9]*/, "'$color_patch_fuzz'&'$color_clear'") sub(/offset -?[0-9]* lines?/, "'$color_patch_offs'&'$color_clear'") print } else print }' else cat fi } push_patch_args() { local patch=$1 if [ -z "$opt_reverse" ] then patch_args "$patch" else set -- $(patch_args "$patch") if [ "${*#-R}" != "$*" ] then echo "${*#-R}" else echo "$*" -R fi fi } apply_patch() { local patch=$1 patch_file=$2 local output [ -s "$patch_file" ] || return 0 set -- patch $QUILT_PATCH_OPTS $(push_patch_args "$patch") \ --backup --prefix="$QUILT_PC/$patch/" \ $no_reject_files -E $more_patch_args if [ "${patch_file:(-3)}" = ".gz" ] then gzip -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-4)}" = ".bz2" ] then bzip2 -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-3)}" = ".xz" ] then xz -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-5)}" = ".lzma" ] then lzma -cd "$patch_file" | "$@" 2>&1 else "$@" -i "$patch_file" 2>&1 fi } rollback_patch() { local patch=$1 $QUILT_DIR/scripts/backup-files $silent_unless_verbose -r -B "$QUILT_PC/$patch/" - } cleanup_patch_output() { if [ -z "$opt_leave_rejects" ] then if [ -n "$opt_quiet" ]; then # In this case, patch does not allow us to find out # which file contains the rejects; it only tells us # which reject file is used. We use a single temporary # reject file, so this does not help us. awk ' { gsub(/ -- saving rejects to (file )?.*/, "") } { print } ' else awk ' /^patching file / { filename = substr($0, 15) } { gsub(/ -- saving rejects to (file )?.*/, " -- rejects in file " filename) } { print } ' fi else cat fi } add_patch() { local patch=$1 local patch_file=$(patch_file_name "$patch") local file status tmp printf $"Applying patch %s\n" "$(print_patch "$patch")" trap "interrupt $patch" SIGINT no_reject_files= if [ -z "$opt_leave_rejects" ]; then tmp=$(gen_tempfile) no_reject_files="-r $tmp" fi apply_patch "$patch" "$patch_file" status=$? trap "" SIGINT [ -n "$tmp" ] && rm -f $tmp if [ $status -eq 0 -o -n "$opt_force" ] then add_to_db "$patch" if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch~refresh" else touch "$QUILT_PC/$patch~refresh" fi if [ -e "$QUILT_PC/$patch" ] then touch "$QUILT_PC/$patch/.timestamp" else mkdir "$QUILT_PC/$patch" fi if ! [ -e "$patch_file" ] then printf $"Patch %s does not exist; applied empty patch\n" \ "$(print_patch "$patch")" elif [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty; applied\n" \ "$(print_patch "$patch")" elif [ $status -ne 0 ] then printf $"Applied patch %s (forced; needs refresh)\n" \ "$(print_patch "$patch")" fi else rollback_patch "$patch" tmp=$(gen_tempfile) no_reject_files="-r $tmp" opt_reverse=1 if apply_patch "$patch" "$patch_file" > /dev/null 2> /dev/null then printf $"Patch %s can be reverse-applied\n" \ "$(print_patch "$patch")" else printf $"Patch %s does not apply (enforce with -f)\n" \ "$(print_patch "$patch")" fi rollback_patch "$patch" rm -f $tmp status=1 fi trap - SIGINT return $status } 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 [ -z "$number" -a "$patch" = "$stop_at_patch" ] then break fi done fi } options=`getopt -o fqvam::h --long fuzz:,merge::,leave-rejects,color:: -- "$@"` 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 ;; --fuzz) opt_fuzz=$2 shift 2 ;; -m | --merge) case "$2" in "" | merge) opt_merge=1 opt_merge_arg= ;; diff3) opt_merge=1 opt_merge_arg="=diff3" ;; *) usage ;; esac shift 2 ;; --leave-rejects) opt_leave_rejects=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --) 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=$1 fi else [ -z "$opt_all" ] && number=1 fi stop_at_patch=$(find_unapplied_patch "$stop_at_patch") || exit 1 [ -z "$opt_verbose" ] && silent_unless_verbose=-s [ -n "$opt_force" ] && opt_leave_rejects=1 more_patch_args= [ -n "$opt_quiet" ] && more_patch_args="$more_patch_args -s" [ -z "$opt_force" -o -n "$opt_quiet" ] && more_patch_args="$more_patch_args -f" if [ -n "$opt_merge" ] then more_patch_args="$more_patch_args --merge$opt_merge_arg" fi [ -n "$opt_fuzz" ] && more_patch_args="$more_patch_args -F$opt_fuzz" top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" ] then printf $"The topmost patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" exit 1 fi patches=$(list_patches) create_db for patch in $patches do if ! add_patch "$patch" then exit 1 fi [ -n "$opt_quiet" ] || echo done \ | cleanup_patch_output \ | colorize if [ ${PIPESTATUS[0]} -eq 0 ]; then set -- $patches printf $"Now at patch %s\n" "$(print_patch ${!#})" else exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/refresh.in0000644000175000017500000002017212064151701016225 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" 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). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. -z[new_name] Create a new patch containing the changes instead of refreshing the topmost patch. If no new name is specified, \`-2' is added to the original patch name, etc. (See the fork command.) --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. --diffstat Add a diffstat section to the patch header, or replace the existing diffstat section. -f Enforce refreshing of a patch that is not on top. --backup Create a backup copy of the old version of a patch as patch~. --sort Sort files by their name instead of preserving the original order. --strip-trailing-whitespace Strip trailing whitespace at the end of lines. " exit 0 else exit 1 fi } die() { local status=$1 [ -n "$tmp_patch" ] && rm -f $tmp_patch [ -n "$tmp_result" ] && rm -f $tmp_result [ -n "$workdir" ] && rm -rf $workdir exit $status } options=`getopt -o p:uU:cC:fz::h --long no-timestamps,diffstat,backup,sort \ --long no-index \ --long strip-trailing-whitespace -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -f) opt_force=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -z) opt_fork=1 opt_new_name=$2 shift 2 ;; -h) usage -h ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --diffstat) opt_diffstat=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --sort) opt_sort=1 shift ;; --strip-trailing-whitespace) opt_strip_whitespace=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" patch=$(find_applied_patch "$1") || exit 1 # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' if [ -z "$opt_sort" ] then files=( $(files_in_patch_ordered $patch) ) else files=( $(files_in_patch $patch | sort) ) fi IFS=$saved_IFS if [ -n "$opt_fork" -a $# -ne 0 ] then printf $"Can only refresh the topmost patch with -z currently\n" >&2 exit 1 fi if [ -n "$opt_fork" ]; then old_patch=$patch old_patch_args=$(patch_args "$old_patch") if [ -n "$opt_new_name" ] then patch=$opt_new_name else patch=$(next_filename "$patch") fi if [ -e "$(patch_file_name "$patch")" ]; then printf $"Patch %s exists already\n" "$(print_patch "$patch")" >&2 exit 1 fi fi if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$patch") fi case "$opt_strip_level" in 0 | 1) num_strip_level=$opt_strip_level ;; ab) num_strip_level=1 ;; *) printf $"Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\n" "$opt_strip_level" >&2 exit 1 ;; esac trap "die 1" SIGTERM if [ -n "$opt_fork" ]; then workdir=$(gen_tempfile -d $PWD/quilt) apply_patch_temporarily "$workdir" "$old_patch" || exit 1 fi tmp_patch=$(gen_tempfile) for file in "${files[@]}" do if [ -n "$opt_fork" ]; then old_file=$workdir/$file new_file=$file else 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 fi if ! diff_file "$file" "$old_file" "$new_file" then printf $"Diff failed, aborting\n" >&2 die 1 fi if [ -n "$files_were_shadowed" -a -z "$opt_force" ] then printf $"More recent patches modify files in patch %s. Enforce refresh with -f.\n" "$(print_patch "$patch")" >&2 die 1 fi if [ -n "$files_were_shadowed" -a -n "$opt_strip_whitespace" ] then printf $"Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\n" >&2 fi done >> $tmp_patch if [ -n "$opt_fork" -a ! -s $tmp_patch ] then printf $"Nothing in patch %s\n" "$(print_patch "$patch")" >&2 die 1 fi # Check for trailing whitespace if [ -z "$opt_strip_whitespace" ] then $QUILT_DIR/scripts/remove-trailing-ws -n -p$num_strip_level \ < $tmp_patch else tmp_patch2=$(gen_tempfile) if $QUILT_DIR/scripts/remove-trailing-ws -p$num_strip_level \ < $tmp_patch > $tmp_patch2 then rm -f $tmp_patch tmp_patch=$tmp_patch2 fi fi # FIXME: no stripping of non-topmost patch !!! patch_file=$(patch_file_name "$patch") trap "" SIGINT tmp_result=$(gen_tempfile) || die 1 prev_patch_file=$patch_file [ -e "$prev_patch_file" ] || prev_patch_file=/dev/null if [ -n "$opt_diffstat" ] then cat_file "$prev_patch_file" | patch_header \ | awk ' function print_diffstat(arr, i) { if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \ -p$num_strip_level \ $tmp_patch | sed -e s:^:"'" prefix ":")) exit 1 } { prefix="" if (index($0, "#") == 1) prefix="#" } /^#? .* \| *[1-9][0-9]* / { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { print_diffstat() diffstat_printed=1 eat = "" next } { print eat $0 eat = "" } END { printf "%s", eat if (!diffstat_printed) { print "---" print_diffstat() print prefix } } ' > $tmp_result else cat_file "$prev_patch_file" | patch_header \ > $tmp_result fi cat $tmp_patch >> $tmp_result mkdir -p $(dirname "$patch_file") if [ -e "$patch_file" ] && \ diff -q "$patch_file" $tmp_result > /dev/null then printf $"Patch %s is unchanged\n" "$(print_patch "$patch")" elif ( [ -z "$QUILT_BACKUP" -o ! -e "$patch_file" ] || \ mv "$patch_file" "$patch_file~" ) && \ cat_to_new_file "$patch_file" < $tmp_result then if [ -n "$opt_fork" ] then if ! insert_in_series "$patch" "$old_patch_args" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch "$patch")" >&2 rm -f "$patch_file" exit 1 fi if ! rm -rf "$QUILT_PC/$patch" || \ ! mv "$workdir" "$QUILT_PC/$patch" || \ ! echo "$patch" >> $QUILT_PC/applied-patches then printf $"Failed to create patch %s\n" \ "$(print_patch "$patch")" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch "$old_patch")" \ "$(print_patch "$patch")" else if [ -s $tmp_patch ] then printf $"Refreshed patch %s\n" "$(print_patch "$patch")" else printf $"Nothing in patch %s\n" "$(print_patch "$patch")" fi fi touch "$QUILT_PC/$patch/.timestamp" else die 1 fi rm -f "$QUILT_PC/$patch~refresh" if ! change_db_strip_level -p$num_strip_level "$patch" then die 1 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/remove.in0000644000175000017500000000421512064151701016064 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt remove [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" 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 Remove named files from the named patch. " 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=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! file_in_patch "$SUBDIR$file" "$patch" then printf $"File %s is not in patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi next_patch=$(next_patch_for_file "$patch" "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch "$next_patch")" status=1 continue fi # Restore file from backup if ! $QUILT_DIR/scripts/backup-files -r -t -s -B "$QUILT_PC/$patch/" "$SUBDIR$file" then printf $"Failed to remove file %s from patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi if [ -e "$(dirname "$QUILT_PC/$patch~refresh")" -a \ -e "$(patch_file_name "$patch")" ] then # The patch must be refreshed in order to get rid of the # patch permanently. touch "$QUILT_PC/$patch~refresh" fi printf $"File %s removed from patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/rename.in0000644000175000017500000000411212064151701016032 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt rename [-P patch] new_name\n" if [ x$1 = x-h ] then printf $" Rename the topmost or named patch. -P patch Patch to rename. " exit 0 else exit 1 fi } move_file() { local old=$1 new=$2 newdir=$(dirname "$2") [ -d "$newdir" ] || mkdir -p "$newdir" || return 1 mv "$old" "$new" || return 1 rmdir -p "$(dirname "$old")" 2> /dev/null return 0 } 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 [ $# -ne 1 ] then usage fi patch=$(find_patch_in_series "$opt_patch") || exit 1 new_patch=${1#$QUILT_PATCHES/} if patch_in_series "$new_patch" || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name "$new_patch")" ] then printf $"Patch %s exists already, please choose a different name\n" \ "$(print_patch "$new_patch")" >&2 exit 1 fi if ( is_applied "$patch" && \ ( ! rename_in_db "$patch" "$new_patch" || \ ! move_file "$QUILT_PC/$patch" \ "$QUILT_PC/$new_patch" ) ) || \ ! rename_in_series "$patch" "$new_patch" || \ ( [ -e "$(patch_file_name "$patch")" ] && \ ! move_file "$(patch_file_name "$patch")" \ "$(patch_file_name "$new_patch")" ) then printf $"Renaming of patch %s to %s failed\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" >&2 exit 1 fi printf $"Patch %s renamed to %s\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/revert.in0000644000175000017500000000471411634336352016113 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt revert [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Revert uncommitted changes to the topmost or named patch for the specified file(s): after the revert, 'quilt diff -z' will show no differences for those files. Changes to files that are modified by patches on top of the specified patch cannot be reverted. -P patch Revert changes in the named patch. " 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=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "${@/#/$SUBDIR}" do if ! file_in_patch "$file" $patch then printf $"File %s is not in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 continue fi next_patch=$(next_patch_for_file $patch "$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$file" "$(print_patch $next_patch)" status=1 continue fi done [ $status -eq 0 ] || exit $status workdir=$(gen_tempfile -d $PWD) add_exit_handler "rm -rf $workdir" apply_patch_temporarily $workdir $patch "${@/#/$SUBDIR}" || exit 1 for file in ${*/#/$SUBDIR} do if [ -s "$workdir/$file" ] then if [ -e "$file" ] && diff -q "$workdir/$file" "$file" > /dev/null then printf $"File %s is unchanged\n" "$file" continue fi mkdir -p "$(dirname "$file")" cp -p "$workdir/$file" "$file" else if [ ! -e "$file" ] then printf $"File %s is unchanged\n" "$file" continue fi rm -f "$file" fi if [ $? -ne 0 ] then printf $"Failed to revert changes to %s in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 else printf $"Changes to %s in patch %s reverted\n" \ "$file" "$(print_patch $patch)" fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh:w quilt-0.61/quilt/series.in0000644000175000017500000000346612077343122016074 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt series [-v]\n" if [ x$1 = x-h ] then printf $" Print the names of all patches in the series file. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). -v Verbose, more user friendly output. " exit 0 else exit 1 fi } cat_patches() { local color=$1 prefix=$2 shift 2 local patch for patch in "$@" do echo "$color$prefix$(print_patch "$patch")$color_clear" done } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi setup_pager if [ -n "$opt_verbose$opt_color" ] then [ -n "$opt_color" ] && setup_colors top=$(top_patch) cat_patches "$color_series_app" \ "${opt_verbose:++ }" $(patches_before $top) [ -n "$top" ] && cat_patches "$color_series_top" \ "${opt_verbose:+= }" $top cat_patches "$color_series_una" \ "${opt_verbose:+ }" $(patches_after $top) else cat_patches "" "" $(cat_series) fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/setup.in0000644000175000017500000001316612064151701015734 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$SUBDIR" ] then cd $SUBDIR unset SUBDIR fi fi check_for_existing_directories() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$dir" != "." -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir" ] then printf $"Directory %s exists\n" \ "$prefix$dir" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } check_for_existing_files() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$tag" = "patch" -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir/$QUILT_PATCHES" ] then printf $"Directory %s exists\n" \ "$prefix$dir/$QUILT_PATCHES" >&2 status=1 fi if [ -e "$prefix$dir/$QUILT_SERIES" ] then printf $"File %s exists\n" \ "$prefix$dir/$QUILT_SERIES" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } create_symlink() { local target=$1 link=$2 up if [ "${target:0:1}" = / -o "${link:0:1}" = / ] then ln -s "$target" "$link" return fi set -- "$(echo "$PWD/$target" | \ sed -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" \ "$(echo "$PWD/$link" | \ sed -r -e 's://:/:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain')" while [ "${1%%/*}" = "${2%%/*}" ] do set -- "${1#*/}" "${2#*/}" done up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g') set -- "${up:+$up/}$1" set -- "${1%/}" ln -s "${1:-.}" "$link" } usage() { printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] {specfile|seriesfile}\n" if [ x$1 = x-h ] then printf $" Initializes a source tree from an rpm spec file or a quilt series file. -d Optional path prefix for the resulting source tree. --sourcedir Directory that contains the package sources. Defaults to \`.'. -v Verbose debug output. --fuzz=N Set the maximum fuzz factor (needs rpm 4.6 or later). " exit 0 else exit 1 fi } options=`getopt -o d:vh --long sourcedir:,fuzz: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" prefix= sourcedir= while true do case "$1" in -d) prefix=${2%/}/ shift 2 ;; -h) usage -h ;; -v) verbose=-v shift ;; --sourcedir) sourcedir=${2%/}/ shift 2 ;; --fuzz) opt_fuzz="--fuzz $2" shift 2 ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi [ -n "$sourcedir" ] && opt_sourcedir="--sourcedir $sourcedir" tmpfile=$(gen_tempfile) add_exit_handler "rm -f $tmpfile" case "$1" in *.spec) spec_file=$1 if ! $QUILT_DIR/scripts/inspect $verbose $opt_sourcedir $opt_fuzz \ "$spec_file" 2>&1 > $tmpfile then printf $"The %%prep section of %s failed; results may be incomplete\n" "$spec_file" if [ -z "$verbose" ] then printf $"The -v option will show rpm's output\n" fi fi ;; *) series_file=$1 # parse series file while read line; do set -- $line case "$@" in "# Sourcedir: "*) shift 2 tar_dir="$@" tar_dir=${tar_dir// /\\ } ;; "# Source: "*) shift 2 source="$@" filetype="$(file -b "$source")" case "$filetype" in Zip*) echo "unzip ${tar_dir:-.} ${source// /\\ }" ;; *) echo "tar ${tar_dir:-.} ${source// /\\ }" ;; esac ;; "# Patchdir: "*) shift 2 patch_dir="$@" patch_dir=${patch_dir// /\\ } ;; ''|'#'*) ;; *) echo "patch ${patch_dir:-.} $@" ;; esac done < "$series_file" > $tmpfile ;; esac # Make sure that unpacking will not overwrite anything check_for_existing_directories || exit 1 while read tag dir arg1 arg2 do case "$tag" in tar) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" cat_file "$tarball" \ | tar xf - -C "$prefix$dir" ;; unzip) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" unzip -qqo "$tarball" -d "$prefix$dir" ;; esac done < $tmpfile if ! check_for_existing_files then echo "Trying alternative patches and series names..." >&2 QUILT_PATCHES=quilt_patches QUILT_SERIES=quilt_series check_for_existing_files || exit 1 fi while read tag dir arg1 arg2 do case "$tag" in tar|unzip) tar_dir="$dir" [ "$tar_dir" = . ] && tar_dir= tar_file="$arg1" ;; patch) if [ ! -e "$prefix$dir/$QUILT_PATCHES" ] then create_symlink "$sourcedir" "$prefix$dir/$QUILT_PATCHES" (cd "$prefix$dir" && create_db) fi if [ -n "$series_file" ] then [ -e "$prefix$dir/$QUILT_SERIES" ] \ || create_symlink "$series_file" \ "$prefix$dir/$QUILT_SERIES" else if ! [ -e "$prefix$dir/$QUILT_SERIES" ] then ( echo "# Patch series file for quilt," \ "created by ${0##*/}" [ -n "$tar_dir" ] \ && echo "# Sourcedir: $tar_dir" [ -n "$tar_file" ] \ && echo "# Source: $tar_file" echo "# Patchdir: $dir" echo "#" ) > "$prefix$dir/$QUILT_SERIES" fi echo "$arg1" $arg2 >> "$prefix$dir/$QUILT_SERIES" fi ;; esac done < $tmpfile ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/snapshot.in0000644000175000017500000000315111726705776016451 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt snapshot [-d]\n" if [ x$1 = x-h ] then printf $" Take a snapshot of the current working state. After taking the snapshot, the tree can be modified in the usual ways, including pushing and popping patches. A diff against the tree at the moment of the snapshot can be generated with \`quilt diff --snapshot'. -d Only remove current snapshot. " exit 0 else exit 1 fi } options=`getopt -o dh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -d) opt_remove=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi snap_subdir=.snap # Clean up from previous snapshot rm -rf $QUILT_PC/$snap_subdir if [ -n "$opt_remove" ] then exit 0 fi # Save current working state create_db mkdir -p $QUILT_PC/$snap_subdir for patch in $(applied_patches); do files_in_patch $patch done \ | awk ' # filter out duplicates { if (seen[$0]) next seen[$0] = 1 } { print } ' \ | $QUILT_DIR/scripts/backup-files -c -s -f - -B "$QUILT_PC/$snap_subdir/" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/top.in0000644000175000017500000000176512064151701015400 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt top\n" if [ x$1 = x-h ] then printf $" Print the name of the topmost patch on the current stack of applied patches. " 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 0 ] then usage fi top=$(find_top_patch) || exit 2 echo "$(print_patch "$top")" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/unapplied.in0000644000175000017500000000242711634336352016564 0ustar mquinsonmquinson#! @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 $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt unapplied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of patches that are not applied, or all patches that follow the specified patch in the 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 [ $# -gt 1 ] then usage elif [ $# -eq 1 ] then start=$(find_patch_in_series "$1") || exit 1 patch=$(patch_after "$start") [ -n "$start" -a -z "$patch" ] && exit else patch=$(find_unapplied_patch) || exit 1 fi setup_pager ( echo "$patch" patches_after "$patch" ) \ | while read patch do echo "$(print_patch $patch)" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/upgrade.in0000644000175000017500000000471511634336352016234 0ustar mquinsonmquinson#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # Don't abort in version check. skip_version_check=1 # Read in library functions if [ "$(type -t patch_file_name)" != function ] then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns fi usage() { printf $"Usage: quilt upgrade\n" if [ x$1 = x-h ] then printf $" Upgrade the meta-data in a working tree from an old version of quilt to the current version. This command is only needed when the quilt meta-data format has changed, and the working tree still contains old-format meta-data. In that case, quilt will request to run \`quilt upgrade'. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi if version_check then printf $"The quilt meta-data in %s are already in the version %s format; nothing to do\n" "$QUILT_PC/" "$DB_VERSION" exit 0 fi printf $"Converting meta-data to version %s\n" "$DB_VERSION" # Previously we have stripped standard patch extensions (.dif .diff # .patch .gz .bz2) of patch names; we have used the mangled names in # .pc/applied-patches, .pc/$patch/, but not in the series file. for patch in $(applied_patches) do proper_name="$(grep "^$(quote_bre $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" proper_name=${proper_name#$QUILT_PATCHES/} proper_name=${proper_name%% *} if [ -z "$proper_name" ] then failed=1 break fi if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \ && grep -q "^$(quote_bre $patch)\$" \ $QUILT_PC/applied-patches then mv $QUILT_PC/$patch $QUILT_PC/$proper_name \ || failed=1 rename_in_db $patch $proper_name \ || failed=1 [ -z "$failed" ] || break fi done if [ -n "$failed" ] then printf $"Conversion failed\n" >&2 printf $" Please remove all patches using \`quilt pop -a' from the quilt version used to create this working tree, or remove the %s directory and apply the patches from scratch.\n" "$QUILT_PC" >&2 exit 1 fi echo $DB_VERSION > $QUILT_PC/.version ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/scripts/patchfns.in0000644000175000017500000004620412251147360020074 0ustar mquinsonmquinson# 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 export TEXTDOMAINDIR=@LOCALEDIR@ : ${LC_CTYPE:=$LANG} : ${LC_MESSAGES:=$LANG} ORIGINAL_LANG=$LANG export LANG=POSIX export QUILT_PATCHES QUILT_PC SUBDIR SERIES DB DB_VERSION=2 : ${QUILT_PC:=.pc} # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi unset CDPATH shopt -s dotglob if [ -e "$QUILTRC" ] then source "$QUILTRC" fi # Add default arguments for this command if [ -n "$QUILT_COMMAND" ]; then args="QUILT_$(echo $QUILT_COMMAND | tr a-z A-Z)_ARGS" eval set -- ${!args} \"\$@\" unset args fi . $QUILT_DIR/scripts/utilfns # ======================================================== declare -a exit_handlers add_exit_handler() { exit_handlers[${#exit_handlers[@]}]=$1 } remove_exit_handler() { declare -a handlers local h for h in "${exit_handlers[@]}" do [ "$h" = "$1" ] && continue handlers[${#handlers[@]}]=$h done exit_handlers=( "${handlers[@]}" ) } run_exit_handlers() { local h for h in "${exit_handlers[@]}" do eval $h done } trap run_exit_handlers EXIT # ======================================================== # 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' } # Quote a string for use in a globing pattern. quote_glob() { echo "$1" | sed -e 's:\([][*?\\]\):\\\1:g' } patch_file_name() { echo "$QUILT_PATCHES/$1" } # The -pN option and possibly others that should be passed to patch. patch_args() { local patch=$1 if [ -e $SERIES ] then awk ' {sub(/(^|[ \t]+)#.*/, "") } $1 == "'"$patch"'" \ { p_printed=0 for (i=2; i<=NF; i++) { print $i if ($i ~ /^-p/) p_printed=1 } if (!p_printed) print "-p1" ; exit } ' $SERIES fi } patch_strip_level() { local patch=$1 i for i in $(patch_args $patch) do case $i in -p*) echo ${i:2} return ;; esac done echo "1" } # Also remove -R if present. 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 ' function remove_arg(nr, j) { for (j=nr; j=nr; j--) $(j+1)=$j $nr=value } /^'"$(quote_re $patch)"'([ \t]|$)/ \ { p_printed=0 for (i=2; i<=NF && $i !~ /^#/; i++) { if ($i ~ /^-p/) { if ("'"$level"'" == "") remove_arg(i--) else $i="'"$level"'" p_printed=1 continue } if ($i == "-R") { remove_arg(i--) continue } } if (!p_printed && "'"$level"'" != "") insert_arg(2, "'"$level"'") } { print } ' $SERIES > $tmpfile if ! cmp $SERIES $tmpfile >/dev/null 2>/dev/null then cat $tmpfile > $SERIES fi rm -f $tmpfile else return 1 fi } patch_in_series() { local patch=$1 if ! [ -e $SERIES ] then return 1 else grep -q "^$(quote_bre $patch)\([ \t]\|$\)" $SERIES fi } # Insert new patch after topmost patch insert_in_series() { local patch=$1 patch_args=$2 local before tmpfile if [ -e "$SERIES" -a ! -f "$SERIES" ]; then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi before=${3-$(patch_after "$(top_patch)")} if [ -n "$patch_args" ] then patch_args=" $patch_args" fi tmpfile=$(gen_tempfile) || return 1 mkdir -p $(dirname $SERIES) if [ -n "$before" ] then awk ' /^'"$(quote_re $before)"'([ \t]|$)/ \ { print "'"$patch$patch_args"'" } { print } ' "$SERIES" > $tmpfile status=$? if [ $status -ne 0 ] then rm -f $tmpfile return 1 fi else if [ -e "$SERIES" ] then cat "$SERIES" > $tmpfile fi echo "$patch$patch_args" >> $tmpfile fi cat $tmpfile > "$SERIES" rm -f $tmpfile } remove_from_series() { local patch=$1 tmpfile=$(gen_tempfile) || return 1 awk ' ! /^'"$(quote_re $patch)"'([ \t]|$)/ \ { print } ' $SERIES > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > $SERIES rm -f $tmpfile } rename_in_series() { local from=$1 to=$2 tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_re $from)"'([ \t]|$)/ \ { sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' $SERIES > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > $SERIES rm -f $tmpfile } rename_in_db() { local from=$1 to=$2 local tmpfile tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_re $from)"'$/ \ { sub(/'"$(quote_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' $DB > $tmpfile if [ $? -eq 0 ] then cat $tmpfile > $DB rm -f $tmpfile else rm -f $tmpfile return 1 fi } backup_file_name() { local patch=$1 while [ $# -gt 1 ] do echo "$QUILT_PC/$patch/$2" shift done } cat_series() { if [ -e $SERIES ] then sed -e '/^#/d' -e 's/^[ '$'\t'']*//' \ -e 's/[ '$'\t''].*//' -e '/^$/d' $SERIES else return 1 fi } top_patch() { local patch=$(tail -n 1 $DB 2>/dev/null) [ -n "$patch" ] && echo "$patch" } is_numeric() { echo $1 | grep -q '^[0-9]*$' } is_applied() { local patch=$1 [ -e $DB ] || return 1 grep -q "^$(quote_bre $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 == 1 { print } $0 == "'"$patch"'" { seen=1 } ' else cat_series fi } patch_after() { local patch="$1" patch=$(patches_after "$patch" | head -n 1) [ -n "$patch" ] && echo "$patch" } # 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 == 1 { 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 for patch in $patches_on_top do if [ -f $(backup_file_name $patch $file) ] then echo $patch break fi done fi } add_to_db() { echo $1 >> $DB } remove_from_db() { local patch=$1 local tmpfile if tmpfile=$(gen_tempfile) then grep -v "^$(quote_bre $patch)\$" $DB > $tmpfile cat $tmpfile > $DB rm -f $tmpfile [ -s $DB ] || rm -f $DB fi } find_first_patch() { local patch=$(cat_series | head -n 1) if [ -z "$patch" ] then if [ -e "$SERIES" ] then printf $"No patches in series\n" >&2 else printf $"No series file found\n" >&2 fi return 1 fi echo "$patch" } find_last_patch() { local patch=$(cat_series | tail -n 1) if [ -z "$patch" ] then if [ -e "$SERIES" ] then printf $"No patches in series\n" >&2 else printf $"No series file found\n" >&2 fi return 1 fi echo "$patch" } find_top_patch() { if ! top_patch then if find_first_patch > /dev/null then printf $"No patches applied\n" >&2 fi return 1 fi } find_patch() { local name="$1" if [ -e "$SERIES" ] then if ! [ -f "$SERIES" ] then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/} local bre=$(quote_bre "$patch") set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\)\([ "$'\t'"]\|$\)/!d" \ -e 's/[ '$'\t''].*//' $SERIES) if [ $# -eq 1 ] then echo $1 return 0 else # We may have an exact match, which overrides # extension expansion while [ $# -gt 0 ] do if [ $1 = "$patch" ] then echo $1 return 0 fi shift done fi fi # Finding the first patch will error when the series is empty if [ -n "$(find_first_patch)" ] then printf $"Patch %s is not in series\n" "$name" >&2 fi return 1 } find_patch_in_series() { local name="$1" if [ -n "$name" ] then find_patch "$name" else find_top_patch fi } find_applied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if ! is_applied "$patch" then printf $"Patch %s is not applied\n" \ "$(print_patch $patch)" >&2 return 1 fi echo "$patch" else find_top_patch fi } find_unapplied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if is_applied "$patch" then printf $"Patch %s is currently applied\n" \ "$(print_patch $patch)" >&2 return 1 fi echo "$patch" else local start if start=$(top_patch) then patch_after "$start" else find_first_patch || return 1 fi if [ $? -ne 0 ] then printf $"File series fully applied, ends at patch %s\n" \ "$(print_patch $start)" >&2 return 1 fi fi } find_patch_file() { local name="$1" if [ ${name:0:1} = / ] then # Patch has absolute path if [ -r "$name" ] then echo "$name" return fi else # Patch has a relative path if [ -r "$SUBDIR$name" ] then echo "$SUBDIR$name" return fi fi local patch patch=$(find_patch_in_series "$name" 2>/dev/null) if [ -z "$patch" ] then printf $"Patch %s does not exist\n" "$name" >&2 return 1 fi echo $(patch_file_name "$patch") } file_in_patch() { local file=$1 patch=$2 [ -f "$QUILT_PC/$patch/$file" ] } files_in_patch() { local patch="$1" local path="$QUILT_PC/$patch" if [ -d "$path" ] then find "$path" -type f \ -a ! -path "$(quote_glob "$path")/.timestamp" | sed -e "s/$(quote_bre "$path")\///" fi } filenames_in_patch() { local patch=$1 local patch_file=$(patch_file_name $patch) if [ -e "$patch_file" ] then local strip=$(patch_strip_level $patch) [ "$strip" = ab ] && strip=1 awk ' ($1 == "+++" || $1 == "---" || $1 == "***") && \ $3 != "----" && $3 != "****" \ { sub(/\t.*/, "") sub(/^... /, "") for (n=0 ; n<'"$strip"'; n++) sub(/^([^\/]+\/)/, "") print $0 }' $patch_file fi } files_in_patch_ordered() { local patch=$1 ( files_in_patch $patch | sort echo "-" filenames_in_patch $patch ) | awk ' $1 == "-" { out=1 ; next } !out { files[$0]=1 new_files[++n]=$0 } out { if ($0 in files && !($0 in printed)) { print $0 printed[$0]=1 } } END { for (i=1; i<=n; i++) if (!(new_files[i] in printed)) print new_files[i] } ' } diff_file() { local file=$1 old_file=$2 new_file=$3 local index old_hdr old_date new_hdr new_date line : ${opt_strip_level:=1} if [ $opt_strip_level = ab ] then old_hdr=a/$file new_hdr=b/$file elif [ $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 index=$new_hdr if ! [ -s "$old_file" ] then old_file=/dev/null old_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" else [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$old_file") fi if ! [ -s "$new_file" ] then [ $opt_strip_level = 0 ] \ && old_hdr=$new_hdr new_file=/dev/null new_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" else [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$new_file") fi diff $QUILT_DIFF_OPTS \ --label "$old_hdr$old_date" --label "$new_hdr$new_date" \ "$old_file" "$new_file" \ | if read line then if [ -z "$QUILT_NO_DIFF_INDEX" ] then echo "Index: $index" echo "===================================================================" fi echo "$line" cat 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" ;; *.xz) xz -cd "$filename" ;; *.lzma) lzma -cd "$filename" ;; *) cat "$filename" ;; esac fi done } cat_to_new_file() { local filename="$1" [ -e "$filename" ] && rm -f "$filename" case "$filename" in *.gz) gzip -c ;; *.bz2) bzip2 -c ;; *.xz) xz -c ;; *.lzma) lzma -c ;; *) cat ;; esac \ > "$filename" } patch_header() { awk ' /^(---|\*\*\*|Index:)[ \t][^ \t]|^diff -/ \ { exit } { print } ' } patch_body() { awk ' !body && /^(---|\*\*\*|Index:)[ \t][^ \t]|^diff -/ \ { body=1 } body { print } ' } strip_diffstat() { awk ' /#? .* \| / \ { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { eat = "" next } { print eat $0 eat = "" } ' } in_array() { local a=$1 while [ $# -gt 1 ] do shift [ "$a" = "$1" ] && return 0 done return 1 } first_modified_by() { local file=$1 patch local -a patches if [ $# -eq 0 ] then patches=( $(applied_patches) ) else shift patches=( "$@" ) fi for patch in ${patches[@]} do if [ -f "$QUILT_PC/$patch/$file" ] then echo $patch return 0 fi done return 1 } apply_patch_temporarily() { local workdir=$1 patch=$2 patch_file patch_args patch_file=$(patch_file_name "$patch") patch_args=$(patch_args "$patch") shift 2 local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd $workdir && \ $QUILT_DIR/scripts/backup-files -B $prefix -r -k -s ${@:--} ) then printf $"Failed to copy files to temporary directory\n" >&2 return 1 fi if [ -s $patch_file ] then if ! cat_file $patch_file \ | patch -d $workdir $QUILT_PATCH_OPTS $patch_args \ --no-backup-if-mismatch -Ef \ >/dev/null 2>/dev/null then # Generating a relative diff for a subset of files in # the patch will fail. Also, if a patch was force # applied, we know that it won't apply cleanly. In # all other cases, print a warning. if [ ! -e $QUILT_PC/$patch~refresh -a $# -eq 0 ] then printf $"Failed to patch temporary files\n" >&2 return 1 fi fi fi } next_filename() { local patch=$1 base num base=$(echo "$patch" \ | sed -r -e 's:(\.gz|\.bz2|\.xz|\.lzma)$::' -e 's:(\.diff?|\.patch)$::') num=$(echo "$base" | sed -nre 's:.*-([0-9]+)$:\1:'p) [ -n "$num" ] || num=1 echo "${base%-$num}-$((num+1))${patch#$base}" } create_db() { if ! [ -e $QUILT_PC ] then mkdir -p $QUILT_PC echo $DB_VERSION > $QUILT_PC/.version fi if ! [ -e $QUILT_PC/.quilt_patches ] then echo "$QUILT_PATCHES" > $QUILT_PC/.quilt_patches fi if ! [ -e $QUILT_PC/.quilt_series ] then echo "$QUILT_SERIES" > $QUILT_PC/.quilt_series fi } version_check() { [ -e $QUILT_PC ] || return 0 if [ -e $QUILT_PC/.version ] then version="$(< $QUILT_PC/.version)" if [ "$version" -gt $DB_VERSION ] then printf $"The quilt meta-data in this tree has version %s, but this version of quilt can only handle meta-data formats up to and including version %s. Please pop all the patches using the version of quilt used to push them before downgrading.\n" "$version" "$DB_VERSION" >&2 exit 1 elif [ "$version" = $DB_VERSION ] then return 0 fi fi return 1 } print_patch() { echo -n "${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/}$1" } setup_colors() { local C=diff_hdr=32:diff_add=36:diff_mod=35:diff_rem=35:diff_hunk=33:diff_ctx=35:diff_cctx=33:patch_offs=33:patch_fuzz=35:patch_fail=31:series_app=32:series_top=33:series_una=00:clear=00 [ -n "$QUILT_COLORS" ] && C="$C:$QUILT_COLORS" C=${C//=/=\'$'\e'[} C=color_${C//:/m\'; color_}m\' eval $C } quilt_command() { local command=$1 shift QUILT_COMMAND="" bash $BASH_OPTS -c "${SUBDIR:+cd $SUBDIR;} . $QUILT_DIR/$command" "quilt $command" "$@" } declare pager_fifo pager_fifo_dir pager_pid wait_for_pager() { exec >&- wait $pager_pid rm $pager_fifo 2>/dev/null rmdir $pager_fifo_dir 2>/dev/null } wait_for_pager_signal() { remove_exit_handler wait_for_pager wait_for_pager trap - INT HUP TERM QUIT } # Spawn pager process and redirect the rest of our output to it setup_pager() { test -t 1 || return 0 # QUILT_PAGER = QUILT_PAGER | GIT_PAGER | PAGER | less -R # NOTE: QUILT_PAGER='' is significant QUILT_PAGER=${QUILT_PAGER-${GIT_PAGER-${PAGER-less -R}}} [ -z "$QUILT_PAGER" -o "$QUILT_PAGER" = "cat" ] && return 0 export LESS="${LESS:-FRSX}" # NOTE: with "exec > >($pager)" there is no way to get the pid of the # pager so we can't wait for it to complete. Otherwise we wouldn't # need temporary files here. Alternatively, in recent versions of # bash, a coprocess could be used instead. pager_fifo_dir="$(gen_tempfile -d)" pager_fifo="$pager_fifo_dir/0" mkfifo -m 600 "$pager_fifo" $QUILT_PAGER < "$pager_fifo" & pager_pid=$! exec > "$pager_fifo" trap wait_for_pager_signal INT HUP TERM QUIT add_exit_handler wait_for_pager } # # If the working directory does not contain a $QUILT_PATCHES directory, # quilt searches for its base directory up the directory tree. If no # $QUILT_PATCHES directory exists, the quilt operations that create # patches will create $QUILT_PATCHES in the current working directory. # # When quilt is invoked from a directory below the base directory, it # changes into the base directory, and sets $SUBDIR to the relative # path from the base directory to the directory in which it was # invoked. (e.g., if quilt is invoked in /usr/src/linux/drivers/net # and the base direcory is /usr/src/linux, $SUBDIR is set to # drivers/net/. unset SUBDIR SUBDIR_DOWN if ! [ -d "$QUILT_PC" -o -d "${QUILT_PATCHES:-patches}" ] then basedir=$PWD while [ -n "$basedir" ] do basedir=${basedir%/*} down=$down../ if [ -d "$basedir/$QUILT_PC" -o -d "$basedir/${QUILT_PATCHES:-patches}" ] then SUBDIR="${PWD#$basedir/}/" SUBDIR_DOWN=$down if ! cd $basedir/ then echo "Cannot change into parent directory $basedir/" >&2 exit 1 fi break fi done unset basedir down fi if [ -r $QUILT_PC/.quilt_patches ] then : ${QUILT_PATCHES:=$(< $QUILT_PC/.quilt_patches)} else : ${QUILT_PATCHES:=patches} fi if [ -r $QUILT_PC/.quilt_series ] then : ${QUILT_SERIES:=$(< $QUILT_PC/.quilt_series)} else : ${QUILT_SERIES:=series} fi if [ "${QUILT_SERIES:0:1}" = / ] then SERIES=$QUILT_SERIES elif [ -f $QUILT_PC/$QUILT_SERIES ] then SERIES=$QUILT_PC/$QUILT_SERIES elif [ -f $QUILT_SERIES ] then SERIES=$QUILT_SERIES else SERIES=$QUILT_PATCHES/$QUILT_SERIES fi DB="$QUILT_PC/applied-patches" if [ -z "$skip_version_check" ] && ! version_check then printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2 exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/scripts/inspect.in0000644000175000017500000001546512064151701017734 0ustar mquinsonmquinson#! @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. : ${QUILT_DIR=@QUILT_DIR@} if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns cd ${SUBDIR:-.} usage() { echo "Usage: ${0##*/} [--fuzz=N] specfile" exit 1 } options=$(getopt -o v --long sourcedir:,fuzz: -n "${0##*/}" -- "$@") || exit eval set -- "$options" sourcedir= while true do case "$1" in -v) verbose=1 shift ;; --sourcedir) sourcedir=${2%/}/ shift 2 ;; --fuzz) # Only works with rpm 4.6 and later DEFINE_FUZZ="%define _default_patch_fuzz $2" shift 2 ;; --) shift break ;; esac done [ "${sourcedir:0:1}" = / ] || sourcedir=$PWD/$sourcedir specfile=$1 if [ $# -ne 1 -o ! -f "$specfile" ] then usage fi if [ "${specfile:0:1}" = / ] then specdir=$(dirname "$specfile") specfile=${specfile##*/} else specdir=$PWD fi tmpdir="$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/})" mkdir -p $tmpdir || exit 1 add_exit_handler "rm -rf $tmpdir" mkdir -p $tmpdir/build mkdir -p $tmpdir/bin # Redirect file descriptors # 5 is used in verbose mode, 4 in non-verbose mode, and 2 for both (real errors) if [ -n "$verbose" ] then exec 3>&1 5>&2 4>/dev/null else exec 3>&1 4>&2 5>/dev/null fi # create md5 sums, also for uncompressed files echo -n "### md5sum: " >&4 shopt -s nullglob for file in $sourcedir/* do basename=${file##*/} case "$basename" in ready|bigpack|MD5SUMS|MD5SUMS.meta|*.spec|*.changes) continue ;; esac [ -f "$file" ] || continue echo -n "." >&4 echo "md5sum < $file" >&5 set -- $(md5sum < "$file") echo "$1 $basename" case "$file" in *.lzma) # file doesn't reliably recognize lzma-compressed files filetype="lzma" ;; *.xz) # old versions of file don't know about xz-compressed # files filetype="xz" ;; *) filetype="$(file -b "$file")" ;; esac case "$filetype" in compress*|gzip*) echo -n "g" >&4 echo "gzip -cd $file | md5sum" >&5 set -- $(gzip -cd "$file" | md5sum) echo "$1 $basename" ;; bzip2*) echo -n "b" >&4 echo "bzip2 -cd $file | md5sum" >&5 set -- $(bzip2 -cd "$file" | md5sum) echo "$1 $basename" ;; xz*|XZ*) echo -n "x" >&4 echo "xz -cd $file | md5sum" >&5 set -- $(xz -cd "$file" | md5sum) echo "$1 $basename" ;; lzma*) echo -n "l" >&4 echo "lzma -cd $file | md5sum" >&5 set -- $(lzma -cd "$file" | md5sum) echo "$1 $basename" ;; esac done > $tmpdir/md5sums echo >&4 shopt -u nullglob # wrapper script for patch and tar cat <<-'EOF' > $tmpdir/bin/wrapper #! @BASH@ # find original data file by md5sum original_file() { local file=$1 md5sum set -- $(md5sum < $file) md5sum=$1 while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo ${file_#\*} return 0 fi done < $tmpdir/md5sums # Try harder if ! [ -e $tmpdir/more-md5sums ] then ( cd $RPM_BUILD_DIR find . -type f \ | sed -e 's:^.\/::' \ | xargs md5sum \ ) > $tmpdir/more-md5sums fi while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo ${file_#\*} return 0 fi done < $tmpdir/more-md5sums return 1 } # Extract a command line option with or without argument cmdline_option() { local letter=$1 no_arg=$2 shift while [ $# -ne 0 ] do if [ "${1:0:2}" = -$letter ] then if [ -z "$no_arg" ] then [ "$1" = -$letter ] && set -- "$1$2" fi echo $1 break fi shift done } # Extract the -p option from the command line strip_option() { set -- $(cmdline_option p "$@") [ "$1" != -p1 ] && echo $1 } # Extract the -R option from the command line reverse_option() { set -- $(cmdline_option R no_arg "$@") echo $1 } patch_opt_d() { local subdir=$(cmdline_option d "$@") [ -z "$subdir" ] || echo "${subdir:2}" } patch_input_file() { while [ $# -gt 0 ]; do case "$1" in -i|--input) if [ $# -ge 2 ]; then echo "$2" return fi ;; -i*) echo "${1#-i}" return ;; --input=*) echo "${1#--input=}" return ;; esac shift done return 1 } tar_input_file() { case "$1" in *C*f*) echo "$3" ;; *f*) echo "$2" ;; esac } unzip_input_file() { while [ $# -gt 0 ]; do case "$1" in -*) shift ;; *) echo "$1" return ;; esac done return 1 } tar_opt_C() { case "$1" in *C*f*) echo "$2" return ;; esac } pwd_to_dir() { local subdir=$1 dir if [ -n "$subdir" ] then dir=$(cd "$subdir" && echo $PWD) else dir=$PWD fi dir=${dir/$RPM_BUILD_DIR} dir=${dir##/} dir=${dir// /\\ } echo "$dir" } tmpdir=${RPM_BUILD_DIR%/*} rm -f $tmpdir/data case "${0##*/}" in patch) inputfile=$(patch_input_file "$@") ;; tar) inputfile=$(tar_input_file "$@") # For tar, file - means read from stdin [ "$inputfile" = "-" ] && inputfile= ;; unzip) inputfile=$(unzip_input_file "$@") ;; esac if [ -z "$inputfile" ]; then # put data from stdin into tmpfile cat > $tmpdir/data fi unpackfile="$(original_file ${inputfile:-$tmpdir/data})" if [ -n "$unpackfile" ] then case "${0##*/}" in patch) echo -n p >&4 subdir=$(patch_opt_d "$@") dir=$(pwd_to_dir $subdir) echo "${0##*/} ${dir:-.} $unpackfile" \ $(strip_option "$@") $(reverse_option "$@") >&3 ;; tar) echo -n t >&4 subdir=$(tar_opt_C "$@") dir=$(pwd_to_dir $subdir) echo "${0##*/} ${dir:-.} $unpackfile" >&3 ;; unzip) echo -n Z >&4 dir=$(pwd_to_dir) echo "${0##*/} ${dir:-.} $unpackfile" >&3 ;; esac fi PATH=${PATH#*:} if [ -n "$inputfile" ]; then ${0##*/} "$@" else ${0##*/} "$@" < $tmpdir/data fi EOF chmod 755 $tmpdir/bin/wrapper # If $TMPDIR is mounted with noexec, rpmbuild won't be able to execute # our wrapper script if [ ! -x $tmpdir/bin/wrapper ] then printf "Cannot execute %s; filesystem mounted with noexec?\n" \ $tmpdir/bin/wrapper >&2 printf "Setting %s in ~/.quiltrc may help\n" "VARTMPDIR" >&2 exit 1 fi ln -s wrapper $tmpdir/bin/patch ln -s wrapper $tmpdir/bin/tar ln -s wrapper $tmpdir/bin/unzip # let rpm do all the dirty specfile stuff ... echo -n "### rpmbuild: " >&4 export PATH="$tmpdir/bin:$PATH" rpmbuild --eval "%define _sourcedir $sourcedir" \ --eval "%define _specdir $specdir" \ --eval "%define _builddir $tmpdir/build" \ --eval "%define __patch $tmpdir/bin/patch" \ --eval "%define __tar $tmpdir/bin/tar" \ --eval "%define __unzip $tmpdir/bin/unzip" \ --eval "$DEFINE_FUZZ" \ --nodeps \ -bp "$specdir/$specfile" < /dev/null >&5 2>&5 status=$? echo >&4 exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.61/quilt/scripts/dependency-graph.in0000644000175000017500000003146711634336352021515 0ustar mquinsonmquinson#!@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. # Generate a dot-style graph of dependencies between patches. use Getopt::Long; use FileHandle; use strict; # Constants my $short_edge_style = "color=grey"; my $close_node_style = "color=grey"; my $highlighted_node_style = "style=bold"; # Command line arguments my $help = 0; my $use_patcher = 0; # Assume patcher format for metadata my $short_edge_thresh = 0; # threshold for coloring as "short", 0 = disable my $long_edge_thresh = 0; # threshold for coloring as "long",0 = disable my $edge_labels; # label all edges with filenames my $short_edge_labels; # label short edges with filenames my $long_edge_labels; # label long edges with filenames my $edge_length_labels; # distance between patches as edge labels my $node_numbers; # include sequence numbers my $show_isolated_nodes; # also include isolated nodes my $reduce; # remove transitive edges my $filter_patchnames; # filter for compacting filenames my $selected_patch; # only include patches related on this patch my $selected_distance = -1; # infinity my @highlight_patches; # a list of patches to highlight my $lines; # check ranges with this number of context # lines. unless (GetOptions( "h|help" => \$help, "patcher" => \$use_patcher, "short-edge=i" => \$short_edge_thresh, "long-edge=i" => \$long_edge_thresh, "edge-files" => \$edge_labels, "short-edge-files" => \$short_edge_labels, "long-edge-files" => \$long_edge_labels, "edge-length" => \$edge_length_labels, "node-numbers" => \$node_numbers, "isolated" => \$show_isolated_nodes, "reduce" => \$reduce, "filter-patchnames=s" => \$filter_patchnames, "select-patch=s" => \$selected_patch, "select-distance=i" => \$selected_distance, "highlight=s" => \@highlight_patches, "lines=i" => \$lines) && !$help) { my $basename = $0; $basename =~ s:.*/::; my $fd = $help ? *STDOUT : *STDERR; print $fd <) { if (/^\@\@ -(\d+)(?:,(\d+)?) \+(\d+)(?:,(\d+)?) \@\@/) { push @left, ($3, $3 + $4); push @right, ($1, $1 + $2); } } return [ [ @left ], [ @right ] ]; } sub backup_file_name($$) { my ($patch, $file) = @_; if ($use_patcher) { return $file . "~" . $patch; } else { return $ENV{QUILT_PC} . "/" . $patch . "/" . $file; } } # Compute the lists of lines that a patch changes in a file. sub compute_ranges($$) { my ($n, $file) = @_; my $file1 = backup_file_name($nodes[$n]{file}, $file); my $file2; my $n2 = next_patch_for_file($n, $file); if (defined $n2) { $file2 = backup_file_name($nodes[$n2]{file}, $file); } else { $file2 = $file; } #print STDERR "diff -U$lines \"$file1\" \"$file2\"\n"; if (-z $file1) { $file1="/dev/null"; return [[], []] if (-z $file2); } else { $file2="/dev/null" if (-z $file2); } my $fd = new FileHandle("diff -U$lines \"$file1\" \"$file2\" |"); my $ranges = ranges($fd); $fd->close(); return $ranges; } sub is_a_conflict($$$) { my ($from, $to, $filename) = @_; $nodes[$from]{files}{$filename} = compute_ranges($from, $filename) unless @{$nodes[$from]{files}{$filename}}; $nodes[$to]{files}{$filename} = compute_ranges($to, $filename) unless @{$nodes[$to]{files}{$filename}}; my @a = @{$nodes[$from]{files}{$filename}[1]}; my @b = @{$nodes[$to ]{files}{$filename}[0]}; while (@a && @b) { if ($a[0] < $b[0]) { return 1 if @b % 2; shift @a; } elsif ($a[0] > $b[0]) { return 1 if @a % 2; shift @b; } else { return 1 if (@a % 2) == (@b % 2); shift @a; shift @b; } } return 0; } # Fetch the list of patches (all of them must be applied) my @patches; if (@ARGV) { if (@ARGV == 1 && $ARGV[0] eq "-") { @patches = map { chomp ; $_ } ; } else { @patches = @ARGV; } } elsif ($use_patcher) { my $fh = new FileHandle("< .patches/applied") or die ".patches/applied: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } else { my $fh = new FileHandle("< $ENV{QUILT_PC}/applied-patches") or die ".$ENV{QUILT_PC}/applied-patches: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } # Fetch the list of files my $n = 0; foreach my $patch (@patches) { my @files; if ($use_patcher) { my $fh = new FileHandle("< .patches/$patch.files") or die ".patches/$patch.files: $!\n"; @files = map { chomp; $_ } <$fh>; $fh->close(); } else { if (! -d "$ENV{QUILT_PC}/$patch") { print STDERR "$ENV{QUILT_PC}/$patch does not exist; skipping\n"; next; } @files = split(/\n/, `cd $ENV{QUILT_PC}/$patch ; find . -type f ! -name .timestamp`); @files = map { s:\./::; $_ } @files; } push @nodes, {number=>$n++, name=>$patch, file=>$patch, files=>{ map {$_ => []} @files } }; } my %used_nodes; # nodes to which at least one edge is attached # If a patch is selected, limit the graph to nodes that depend on this patch, # and nodes that are dependent on this patch. if ($selected_patch) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $selected_patch; } die "Patch $selected_patch not included\n" if ($n == @nodes); $used_nodes{$n} = 1; my $selected_node = $nodes[$n]; push @{$selected_node->{attrs}}, $highlighted_node_style; my %sel; map { $sel{$_} = 1 } keys %{$selected_node->{files}}; foreach my $node (@nodes) { foreach my $file (keys %{$node->{files}}) { unless (exists $sel{$file}) { delete $node->{files}{$file}; } } } } # Optionally highlight a list of patches foreach my $patch (@highlight_patches) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $patch; } die "Patch $patch not included\n" if ($n == @nodes); my $node = $nodes[$n]; push @{$node->{attrs}}, $highlighted_node_style; $node->{colorized} = 1; } # If a patchname filter is selected, pipe all patchnames through # it. if ($filter_patchnames) { local *PIPE; my $pid = open(PIPE, "- |"); # fork a child to read from die "fork: $!\n" unless defined $pid; unless ($pid) { # child # open a second pipe to the actual filter open(PIPE, "| $filter_patchnames") or die "$filter_patchnames: $!\n"; map { print PIPE "$_\n" } @patches; close(PIPE); exit; } else { # parent $n = 0; foreach my $name () { last unless $n < @nodes; chomp $name; if ($name eq "") { delete $nodes[$n++]{name}; } else { $nodes[$n++]{name} = $name; } } close(PIPE) or die "patchname filter failed.\n"; die "patchname filter returned too few lines\n" if $n != @nodes; } } my %files_seen; # remember the last patch that touched each file my %edges; foreach my $node (@nodes) { my $number = $node->{number}; foreach my $file (keys %{$node->{files}}) { if (exists $files_seen{$file}) { my $patches = $files_seen{$file}; my $patch; # Optionally look at the line ranges the patches touch if (defined $lines) { for (my $n = $#$patches; $n >= 0; $n--) { if (is_a_conflict($number, $patches->[$n], $file)) { $patch = $patches->[$n]; last; } } } else { $patch = $patches->[$#$patches]; } if (defined $patch) { push @{$edges{"$number:$patch"}{names}}, $file; $used_nodes{$number} = 1; $used_nodes{$patch} = 1; } } push @{$files_seen{$file}}, $number; } } # Create adjacency lists foreach my $node (@nodes) { @{$node->{to}} = (); @{$node->{from}} = (); } foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; push @{$nodes[$from]{to}}, $to; push @{$nodes[$to]{from}}, $from; } # Colorize nodes that are close to each other foreach my $node (@nodes) { if (!exists $node->{colorized} && !exists $used_nodes{$node->{number}}) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Colorize short and long edges foreach my $node (@nodes) { my $close = 1; foreach my $node2 (map {$nodes[$_]} @{$node->{to}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } foreach my $node2 (map {$nodes[$_]} @{$node->{from}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } if (!exists $node->{colorized} && $close) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Add node labels foreach my $node (@nodes) { my @label = (); push @label, $node->{number} + 1 if ($node_numbers); push @label, $node->{name} if exists $node->{name}; push @{$node->{attrs}}, "label=\"" . join(": ", @label) . "\""; } # Add edge labels foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; if ($edge_length_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . abs($to - $from) . "\"" if abs($to - $from) > 1; } elsif (abs($to - $from) < $short_edge_thresh) { push @{$edges{$key}->{attrs}}, $short_edge_style; if ($edge_labels || $short_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($long_edge_thresh && abs($to - $from) > $long_edge_thresh) { push @{$edges{$key}->{attrs}}, "style=bold"; if ($edge_labels || $long_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } } # Compute a pseudo edge length so that neato works acceptably. push @{$edges{$key}{attrs}}, "len=\"" . sprintf("%.2f", log(abs($to - $from) + 3)) . "\""; } #foreach my $node (@nodes) { # push @{$node->{attrs}}, "shape=box"; #} # Open output file / pipe my $out; if ($reduce) { $out = new FileHandle("| tred") or die "tred: $!\n"; } else { $out = new FileHandle("> /dev/stdout") or die "$!\n"; } # Write graph print $out "digraph dependencies {\n"; #print "\tsize=\"11,8\"\n"; foreach my $node (@nodes) { next unless $show_isolated_nodes || exists $used_nodes{$node->{number}}; print $out "\tn$node->{number}"; if (exists $node->{attrs}) { print $out " [" . join(",", @{$node->{attrs}}) . "]"; } print $out ";\n"; } sub w($) { my @n = split /:/, shift; return $n[0] * 10000 + $n[1]; } foreach my $key (sort { w($a) <=> w($b) } keys %edges) { my ($from, $to) = split /:/, $key; print $out "\tn$to -> n$from"; if (exists $edges{$key}{attrs}) { print $out " [" . join(",", @{$edges{$key}{attrs}}) . "]"; } print $out ";\n"; } print $out "}\n"; quilt-0.61/quilt/scripts/edmail.in0000644000175000017500000001430011726705776017532 0ustar mquinsonmquinson#! @PERL@ -w # RFCs important for this script: # # RFC 2822 - Internet Message Format # RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: # Message Header Extensions for Non-ASCII Text use Getopt::Long; use strict; # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } my $special = '()<>\[\]:;@\\,"'; # special characters my $special_dot = "$special."; # special characters + dot sub check_recipient($); my (%append_name, %append_value, $remove_empty_headers, %remove_header, %extract_recipients_from, %replace_name, %replace_value, $charset); GetOptions('add-recipient=s%' => sub { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; }, 'add-good-recipient=s%' => sub { eval { check_recipient($_[2]) }; if ($@) { chomp $@; print STDERR "$@; skipping\n"; } else { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; } }, 'remove-header=s' => sub { $remove_header{lc $_[1]}++ }, 'remove-empty-headers' => \$remove_empty_headers, 'replace-header=s%' => sub { $replace_name{lc $_[1]} = $_[1]; $replace_value{lc $_[1]} = $_[2]; }, 'extract-recipients=s' => sub { $extract_recipients_from{lc $_[1]} = 1 }, 'charset=s' => \$charset) or exit 1; my %recipient_headers = map {lc $_ => 1} (@ARGV, keys %append_name); sub encode_header($) { my ($word) = @_; $word =~ s{[^\t\41-\76\100-\176]}{sprintf "=%02X", ord($&)}ge; return "=?$charset?q?$word?="; } # Check for a valid display name sub check_display_name($) { my ($display) = @_; if ($display =~ /^"((?:[^"\\]|\\[^\n\r])*)"/) { my $quoted = $1; if ($quoted =~ /[^\t\40-\176]/) { $display = $quoted; $display =~ s/\\//; return encode_header($display); } } else { local $_ = $display; # The value is not (properly) quoted. Check for invalid characters. while (/\(/ or /\)/) { die sprintf( _("Display name `%s' contains unpaired parentheses\n"), $display) unless s/\(([^()]*)\)/$1/; } if ($display =~ /[^\t\40-\176]/ || $display =~ /[$special_dot]/) { if ($display =~ /[^\1-\10\13\14\16-\37\40\41\43-\133\135-\177]/) { return encode_header($display); } elsif ($display =~ /[$special_dot]/) { return "\"$display\""; } } } return $display; } # Check for a valid delivery address sub check_delivery_address($) { my ($deliver) = @_; die sprintf(_("Delivery address `%s' is invalid\n"), $deliver) if $deliver =~ /[ \t]/ or $deliver =~ /[^ \t\40-\176]/ or $deliver !~ /^[^$special]+@(\[?)[^$special_dot]+(?:\.[^$special_dot]+)*(\]?)$/ or (!$1) != (!$2); return $deliver; } sub check_recipient($) { my ($recipient) = @_; if ($recipient =~ /^(.*?)\s*<(.+)>$/) { my $deliver = check_delivery_address($2); return ( check_display_name($1) . " <" . $deliver . ">", $deliver ); } elsif ($recipient =~ /^(\S*)\s*\((.*)\)$/) { my $deliver = check_delivery_address($1); return ( $deliver . " (" . check_display_name($2) . ")", $deliver ); } else { my $deliver = check_delivery_address($recipient); return ( $deliver, $deliver ); } } sub split_recipients($) { my ($recipients) = @_; my @list = (); while ($recipients !~ /^\s*$/) { my $recipient; if ($recipients =~ s/^\s*,?\s*((?:"(?:[^"]+)"|[^",])*)//) { $recipient = $1; } else { $recipient = $recipients; $recipients = ""; } $recipient =~ s/\s*$//; push @list, $recipient; } return @list; } my %recipients; sub process_header($) { local ($_) = @_; my ($name, $value); return unless defined $_; unless (($name, $value) = /^([\41-\176]+):\s*(.*)/s) { print; return } if (%extract_recipients_from) { if (exists $extract_recipients_from{lc $name}) { $value =~ s/^\s*//; $value =~ s/\s*$//; foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); print "$deliver\n"; } } return; } return if exists $remove_header{lc $name}; if (exists $replace_name{lc $name}) { if (exists $replace_value{lc $name}) { print "$replace_name{lc $name}: $replace_value{lc $name}\n"; delete $replace_value{lc $name}; } return; } if (exists $recipient_headers{lc $1}) { if (exists $append_name{lc $name}) { $value .= $append_value{lc $name}; delete $append_name{lc $name}; } my @recipients; # This is a recipients field. Split out all the recipients and # check the addresses. Suppress duplicate recipients. foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); unless (exists $recipients{$deliver}) { push @recipients, $recipient; $recipients{$deliver} = $deliver; } } print "$name: ", join(",\n ", @recipients), "\n" if @recipients || !$remove_empty_headers; } else { print if $value ne "" || !$remove_empty_headers; } } my $header; while () { last if (/^$/); if (/^\S/) { process_header $header; undef $header; } $header .= $_; } process_header $header; foreach my $name (keys %append_name) { process_header $append_name{$name} . ': ' . $append_value{$name}; } unless (%extract_recipients_from) { # Copy the message body to standard output # FIXME check for 7-bit clean, else assume $charset # FIXME if UTF-8, check for invalid characters! # FIXME must make sure that all messages are written in # either 7-bit or $charset => mbox !!! # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-15 # Content-Type: text/plain; charset=UTF-8 undef $/; print "\n", ; } quilt-0.61/quilt/scripts/remove-trailing-ws.in0000644000175000017500000000660312064151701022014 0ustar mquinsonmquinson#! @PERL@ -w # Remove trailing whitespace from modified lines in working files. # # Input: diff between original and working files (unified or context # format). use strict; use FileHandle; use File::Temp qw( :mktemp ); use Getopt::Std; use vars qw($opt_p $opt_n); # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } $opt_p = 0; getopts('np:') or die sprintf(_("SYNOPSIS: %s [-p num] [-n] [patch]\n"), $0); my %files; my $file; while (<>) { print unless $opt_n; if (/^--- ./) { # unified diff $file = undef; while (<>) { print unless $opt_n; if (/^\+\+\+ (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } elsif ($file && /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/) { my $removed = defined $2 ? $2 : 1; my $added = defined $4 ? $4 : 1; my $line_number = $3; while ($removed || $added) { $_ = <>; defined $_ or die sprintf(_("%s: I'm confused.\n"), $0); if (/^\+/) { push @{$files{$file}}, $line_number if s/(^\+.*?)[ \t]+$/$1/; $added--; $line_number++; } elsif (/^-/) { $removed--; } elsif (/^ / || /^$/) { $removed--; $added--; $line_number++; } print unless $opt_n; } } } } elsif (/^\*\*\* ./) { # context diff $file = undef; while (<>) { print unless $opt_n; if ($file && /^--- (\d+)(?:,(\d+))? ----$/) { my $line_number = $1; my $last_line = defined $2 ? $2 : $1; while ($line_number <= $last_line) { $_ = <>; defined $_ or last; if (s/(^[+!] .*?)[ \t]+$/$1/) { push @{$files{$file}}, $line_number; } $line_number++; print unless $opt_n; last if (/^\*\*\*[* ]/); } } elsif (/^--- (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } } } } foreach my $file (sort keys %files) { my @lines = @{$files{$file}}; if ($opt_n) { print STDERR sprintf( _("Warning: trailing whitespace in line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Warning: trailing whitespace in lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } else { print STDERR sprintf( _("Removing trailing whitespace from line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Removing trailing whitespace from lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } unless ($opt_n) { my $fh = new FileHandle("< $file") or die "$file: $!\n"; my ($tmp, $tmpname) = mkstemp("$file.XXXXXX") or die "$file.*: $!\n"; while (<$fh>) { if (@lines && $lines[0] == $.) { s/[ \t]+$//; shift @lines; } print $tmp $_; } $fh->close; $tmp->close or die "$tmpname: $!\n"; rename $tmpname, $file or die sprintf(_("Renaming %s to %s: %s\n"), $tmpname, $file, $!); } } quilt-0.61/quilt/scripts/backup-files.in0000644000175000017500000001630611726705776020654 0ustar mquinsonmquinson#! @BASH@ set -e # Keep /dev/null opened as we will need it repeatedly exec 4> /dev/null # Copyright (C) 2006 Steve Langasek # Copyright (C) 2011 Jean Delvare # Loosely based on C implementation by Andreas Gruenbacher # 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; version 2 dated June, 1991. # 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., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301, USA. usage () { echo "Usage: $0 -B prefix {-b|-r|-c|-L} [-s] [-k] [-t] [-L] {-f {file|-}|-|file ...} Create or restore backup copies of a list of files. Mandatory parameters: -B Path name prefix for backup files Action parameters: -b Create backup (preserve links) -r Restore the backup -c Create simple copy -L Ensure that source files have a link count of 1 Common options: -s Silent operation; only print error messages Restore options: -k Keep backup files -t Touch original files after restore (update their mtimes) Backup options: -L Ensure that source files have a link count of 1 File list parameters: -f Read the filenames to process from file (- = standard input) - Read the filenames to process from backup " } : ${QUILT_DIR=@QUILT_DIR@} . $QUILT_DIR/scripts/utilfns ensure_nolinks() { local filename=$1 local link_count tmpname link_count=$(stat @STAT_HARDLINK@ "$filename") if [ $link_count -gt 1 ]; then tmpname=$(mktemp "$filename.XXXXXX") cp -p "$filename" "$tmpname" mv "$tmpname" "$filename" fi } notify_action() { [ $ECHO != : ] || return 0 local action=$1 filename=$2 while read -d $'\0' -r do $ECHO "$action ${REPLY#./}" done < "$filename" } backup() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -e "$file" ]; then $ECHO "Copying $file" if [ -n "$OPT_NOLINKS" -a "$(stat @STAT_HARDLINK@ "$file")" = 1 ]; then cp -p "$file" "$backup" else ln "$file" "$backup" 2>&4 || cp -p "$file" "$backup" if [ -n "$OPT_NOLINKS" ]; then ensure_nolinks "$file" fi fi else $ECHO "New file $file" : > "$backup" fi } restore() { local file=$1 local backup=$OPT_PREFIX$file if [ ! -e "$backup" ]; then return 1 fi if [ -s "$backup" ]; then $ECHO "Restoring $file" if [ -e "$file" ]; then rm "$file" else mkdir -p "$(dirname "$file")" fi ln "$backup" "$file" 2>&4 || cp -p "$backup" "$file" if [ -n "$OPT_TOUCH" ]; then touch "$file" fi else $ECHO "Removing $file" if [ -e "$file" ]; then rm "$file" fi fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm "$backup" rmdir -p "${backup%/*}" 2>&4 || true fi } restore_all() { local EMPTY_FILES NONEMPTY_FILES # Store the list of files to process EMPTY_FILES=$(gen_tempfile) NONEMPTY_FILES=$(gen_tempfile) trap "rm -f \"$EMPTY_FILES\" \"$NONEMPTY_FILES\"" EXIT cd "$OPT_PREFIX" find . -type f -size 0 -print0 > "$EMPTY_FILES" find . -type f -size +0 -print0 > "$NONEMPTY_FILES" cd "$OLDPWD" if [ -s "$EMPTY_FILES" ]; then xargs -0 rm -f < "$EMPTY_FILES" notify_action Removing "$EMPTY_FILES" fi if [ -s "$NONEMPTY_FILES" ]; then # Try a mass link (or copy) first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. local target_dir=$PWD if (cd "$OPT_PREFIX" && \ xargs -0 cp -l --parents --remove-destination \ --target-directory="$target_dir" \ < "$NONEMPTY_FILES" 2>&4); then notify_action Restoring "$NONEMPTY_FILES" else (cd "$OPT_PREFIX" && find . -type d -print0) \ | xargs -0 mkdir -p xargs -0 rm -f < "$NONEMPTY_FILES" while read -d $'\0' -r do local file=${REPLY#./} local backup=$OPT_PREFIX$file $ECHO "Restoring $file" ln "$backup" "$file" 2>&4 || cp -p "$backup" "$file" done < "$NONEMPTY_FILES" fi if [ -n "$OPT_TOUCH" ]; then xargs -0 touch -c < "$NONEMPTY_FILES" fi fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm -rf "$OPT_PREFIX" fi } noop_nolinks() { local file=$1 if [ -e "$file" ]; then ensure_nolinks "$file" fi } copy() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -e "$file" ]; then $ECHO "Copying $file" cp -p "$file" "$backup" else $ECHO "New file $file" : > "$backup" fi } copy_many() { local NONEMPTY_FILES # Store the list of non-empty files to process NONEMPTY_FILES=$(gen_tempfile) trap "rm -f \"$NONEMPTY_FILES\"" EXIT # Keep the temporary file opened to speed up the loop exec 3> "$NONEMPTY_FILES" cat "$OPT_FILE" \ | while read do if [ -e "$REPLY" ]; then printf '%s\0' "$REPLY" >&3 else # This is a rare case, not worth optimizing copy "$REPLY" fi done exec 3>&- if [ -s "$NONEMPTY_FILES" ]; then # Try a mass copy first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. if xargs -0 cp -p --parents --target-directory="$OPT_PREFIX" \ < "$NONEMPTY_FILES" 2>&4; then notify_action Copying "$NONEMPTY_FILES" else while read -d $'\0' -r do copy "$REPLY" done < "$NONEMPTY_FILES" fi fi } # Test if some backed up files have a link count greater than 1 some_files_have_links() { (cd "$OPT_PREFIX" && find . -type f -print0) \ | xargs -0 stat @STAT_HARDLINK@ 2>&4 | grep -qv '^1$' } ECHO=echo while [ $# -gt 0 ]; do case $1 in -b) OPT_WHAT=backup ;; -r) OPT_WHAT=restore ;; -c) OPT_WHAT=copy ;; -B) OPT_PREFIX=$2 shift ;; -f) OPT_FILE=$2 shift ;; -s) ECHO=: ;; -k) OPT_KEEP_BACKUP=1 ;; -L) OPT_NOLINKS=1 ;; -t) OPT_TOUCH=1 ;; -?*) usage exit 0 ;; *) break ;; esac shift done if [ -z "$OPT_PREFIX" ]; then usage exit 1 fi if [ "${OPT_PREFIX:(-1)}" != / ]; then echo "Prefix must be a directory" >&2 exit 1 fi if [ -z "$OPT_WHAT" ]; then if [ -n "$OPT_NOLINKS" ]; then OPT_WHAT=noop_nolinks else echo "Please specify an action" >&2 exit 1 fi fi if [ -n "$OPT_FILE" ]; then if [ "$OPT_WHAT" = copy ]; then copy_many exit fi cat "$OPT_FILE" \ | while read nextfile; do $OPT_WHAT "$nextfile" done exit fi if [ "$1" = - ]; then # No backup directory? We're done [ -d "$OPT_PREFIX" ] || exit 0 if [ "$OPT_WHAT" = restore ]; then restore_all exit fi # We typically expect the link count of backed up files to be 1 # already, so check quickly that this is the case, and only if not, # take the slow path and walk the file list in search of files to fix. if [ "$OPT_WHAT" = noop_nolinks ] && ! some_files_have_links; then exit fi find "$OPT_PREFIX" -type f -print \ | while read do $OPT_WHAT "${REPLY#$OPT_PREFIX}" done if [ ${PIPESTATUS[0]} != 0 ]; then exit 1 fi exit fi while [ $# -gt 0 ]; do $OPT_WHAT "$1" shift done quilt-0.61/quilt/scripts/utilfns0000644000175000017500000000167411726705776017370 0ustar mquinsonmquinson# This file contains the common functions used by patchfns and backup-files. # 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. basename() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done echo "${path##*/}" } dirname() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done local basename="${path##*/}" path="${path:0:${#path}-${#basename}}" while [ "${path:(-1)}" = "/" ] do path=${path%/} done if [ -n "$path" ] then echo "$path" else if [ ${1:0:1} = "/" ] then echo "/" else echo "." fi fi } gen_tempfile() { if [ "$1" = -d ] then mktemp -d ${2:-${TMPDIR:-/tmp}/quilt.}XXXXXX else mktemp ${1:-${TMPDIR:-/tmp}/quilt.}XXXXXX fi } quilt-0.61/compat/column.in0000644000175000017500000000001711634336352016216 0ustar mquinsonmquinson#! @BASH@ cat quilt-0.61/compat/date.in0000644000175000017500000000326111634336352015642 0ustar mquinsonmquinson#! @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 strict; use POSIX qw(strftime); use Getopt::Long qw(:config gnu_getopt prefix_pattern=(--|-)); use Date::Parse; my $spec = '%a %b %e %H:%M:%S %Z %Y'; my $now = time(); my $utc = 0; sub usage() { print "Usage: date [OPTION]... [+FORMAT] Display the current time in the given FORMAT. -d, --date=STRING display time described by STRING, not `now' -f, --file=DATEFILE like --date once for each line of DATEFILE -R, --rfc-822 output RFC-822 compliant date string -u, --utc, --universal print or set Coordinated Universal Time --help display this help and exit "; exit 1; } sub parse_utc_secs($) { my ($now) = @_; if ($now =~ / UTC ([0-9]+) seconds$/) { # This is an heuristic specifically for quilts mail.in invocation: # date --rfc-822 -d "1970/01/01 UTC nnnnnnnn seconds" return $1; } else { return str2time($now); } } GetOptions('rfc-822|R' => sub() { $spec = '%a, %d %b %Y %H:%M:%S %z' }, 'utc|universal|u' => \$utc, 'date|d=s' => sub() { $now = parse_utc_secs($_[1]) }, 'reference|r=s' => sub() { my @filestats = stat($_[1]); $now = parse_utc_secs('1970/01/01 UTC ' . $filestats[9] . ' seconds') }, 'help|h' => sub() { usage }) or usage; if (@ARGV == 1 && $ARGV[0] =~ /^\+/) { $spec = substr($ARGV[0], 1); } elsif (@ARGV > 1) { usage; } my @now = $utc ? gmtime($now) : localtime($now); print strftime($spec, @now) . "\n"; quilt-0.61/compat/getopt.in0000644000175000017500000000616511634336352016235 0ustar mquinsonmquinson#! @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 strict; my $opts; my @words; my $found_sep = 0; foreach my $arg (@ARGV) { if ($arg eq '--') { $found_sep = 1; } else { if (!$found_sep) { $opts .= ' ' . $arg; } else { push @words, $arg; } } } # there is no reason to parse # the opts if there are no args. if (!@words) { print " --\n"; exit; } my $short_opts = ''; my @long_opts; # nothing fancy to see here; this script provides minimal compatibility # with the getopt from util-linux until a cross platform binary exists. # We silently ignore option -q. if ($opts =~ /^\s*(?:-q\s+)?-o ([a-zA-Z:]*)?(\s+--long .*)*/) { $short_opts = $1; if ($2) { my $long_opts = $2; $long_opts =~ s/^\s*--long //g; $long_opts =~ s/ --long /,/g; @long_opts = split(/,/,$long_opts); } } my @barewords = ('--'); my @options; # set the previous option name when a param is required my $need_param; sub quote_word { my $word = shift; $word =~ s/'/'\\''/; return "'$word'"; } foreach my $word (@words) { # allow '-' to be an option value if (!$need_param && $word !~ /^-./) { push @barewords, quote_word($word); next; } if ($need_param) { die "expecting param for $need_param" if $word =~ /^-./; push @options, quote_word($word); $need_param = undef; next; } # process short options if ($word =~ s/^-([^-])/$1/) { my @letters = reverse(split(//,$word)); while (@letters) { my $letter = pop @letters; my $found = grep(/$letter/, $short_opts); push @options, '-'.$letter; die "illegal option: $letter" if !$found; # handle options with optional parameters if (grep(/${letter}::/, $short_opts)) { if (scalar(@letters) == 0) { push @options, quote_word(''); } else { # what looked like more short options # are in fact the optional parameters push @options, quote_word(join('', reverse @letters)); } last; } # handle options with mandatory parameters if (grep(/$letter:/, $short_opts)) { if (scalar(@letters) == 0) { $need_param = $letter; } else { # short options can have numerical args # embedded in the short option list: -UO die "unexpected character after option $letter" if ($letters[$#letters] !~ /[0-9]/); my @digits; while (scalar(@letters) && ($letters[$#letters] =~ /[0-9]/)) { push @digits, pop @letters; } push @options, quote_word(join('', reverse @digits)); } } } } # process long options if ($word =~ s/^--//) { my $param = ''; if ($word =~ /(.*)=(.*)/) { $word = $1; $param = $2; } my ($found) = grep(/^$word:{0,2}$/,@long_opts); die "illegal option: $word" if !$found; die "$word: unexpected paramater $param" if $found !~ /:$/ && $param ne ''; $need_param = $word if $found =~ /[^:]:$/ && $param eq ''; push @options, "--$word"; push @options, quote_word($param) if $param || $found =~ /::$/; } } print " @options @barewords\n" quilt-0.61/compat/mktemp.in0000644000175000017500000000061311634336352016220 0ustar mquinsonmquinson#! @BASH@ 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 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 exit 1 fi quilt-0.61/compat/sendmail.in0000644000175000017500000000012111634336352016511 0ustar mquinsonmquinson#! @BASH@ echo "No mail transfer agent configured for \`quilt mail'" >&2 exit 1 quilt-0.61/lib/quilt.el0000644000175000017500000004310211726705776015352 0ustar mquinsonmquinson;;; quilt.el --- a minor mode for working with files in quilt ;; Copyright 2005-2007 Matt Mackall ;; Satoru Takeuchi took over this package ;; from Matt Mackall. ;; Author: Saotru takeuchi ;; ;; This software may be used and distributed according to the terms ;; of the GNU General Public License, incorporated herein by reference. ;;; Commentary: ;; ;; Add (load "~/quilt.el") to your .emacs file ;;; History: ;; ;;; Code: (defun quilt-buffer-file-name-safe () "Return buffer file name. If buffer is not associated with any file, return nil." (let ((fn buffer-file-name)) (if (and fn (file-exists-p fn)) fn))) (defun quilt-bottom-p () "Return t if there is on the bottom of patch stack, return nil if otherwise." (if (> (call-process "quilt" nil nil nil "applied") 0) 1)) (defun quilt-patches-directory () "Return the location of patch files." (or (with-current-buffer (generate-new-buffer " *cmd") (shell-command (concat "test -f ~/.quiltrc && . ~/.quiltrc ;" "echo -n $QUILT_PATCHES") t) (unwind-protect (let ((v (buffer-string))) (if (string= "" (buffer-string)) nil v)) (kill-buffer (current-buffer)))) (or (getenv "QUILT_PATCHES") "patches"))) (defun quilt-find-dir (fn) "Return the top level dir of quilt from FN." (if (or (not fn) (equal fn "/")) nil (let ((d (file-name-directory fn))) (if (file-accessible-directory-p (concat d "/.pc")) d (quilt-find-dir (directory-file-name d)))))) (defun quilt-dir (&optional fn) "Return the top level dir of quilt from FN. FN is just a hint and find from other way if FN is nil." (quilt-find-dir (if fn fn (let ((fn2 (quilt-buffer-file-name-safe))) (if fn2 fn2 (if default-directory (expand-file-name default-directory))))))) (defun quilt-drop-dir (fn) "Return the relative path of FN based on quilt top directory." (let ((d (quilt-find-dir fn))) (substring fn (length d) (length fn)))) (defun quilt-p (&optional fn) "Check if FN is in a quilt tree." (if (quilt-dir fn) 't nil)) (defun quilt-save () "Save all buffers associated with current quilt tree." (save-some-buffers nil 'quilt-p)) (defun quilt-owned-p (fn) "Check if FN is a file which quilt handles." (if (not fn) nil (let ((pd (file-name-nondirectory (directory-file-name (file-name-directory fn))))) (and (not (string-match "\\(~$\\|\\.rej$\\)" fn)) (not (equal pd (quilt-patches-directory))) (not (equal pd ".pc")) (quilt-p fn))))) (defun quilt-cmd (cmd &optional buf) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) (shell-command (concat "quilt " cmd) buf) (cd qd) (unwind-protect ; make sure to cd back even if an erro occurs. (shell-command (concat "quilt " cmd) buf) (cd d))))) (defun quilt-cmd-to-string (cmd) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF and return its output string." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) nil (cd qd) (unwind-protect ; make sure to cd back even if an error occurs. (shell-command-to-string (concat "quilt " cmd)) (cd d))))) (defun quilt-cmd-to-list (cmd) "Execute CMD, a quilt sumcommand at the top of quilt tree associated with BUF.." "Return the lines of the command output as elements of a list." (let ((s (quilt-cmd-to-string cmd))) (if s (split-string s "\n" t)))) (defun quilt-applied-list () "Return the list of the applied patch names." (quilt-cmd-to-list "applied")) (defun quilt-file-list () "Return the list of the file names associated with current patch." (quilt-cmd-to-list "files")) (defun quilt-patch-list () "Return the list of the name of patches." (quilt-cmd-to-list "seriess")) (defun quilt-files-affected (&optional first last) "Return the file names which modified from FIRST to LAST." "Omitted args are considered as current patch." (let ((qd (quilt-dir)) files fp) (when qd (setq files (quilt-cmd-to-list (if last (if (equal first last) (concat "files " first) (concat "files --combine " first last)) (if first (concat "files --combine " first) "files")))) (setq fp files) (while fp (setcar fp (concat qd (car fp))) (setq fp (cdr fp))) files))) (defun quilt-top-patch () "Return the top patch name. return nil if there is the bottom of patch stack." (if (quilt-bottom-p) nil (file-name-nondirectory (substring (quilt-cmd-to-string "top") 0 -1)))) (defun quilt-complete-list (p l) "Call 'completing-read' with prompt P and list L." "Convert L to an alist using indices as keys. Note that this function modifies L." (let ((list l) (n 0)) (while list (setcar list (cons (car list) n)) (setq list (cdr list)) (setq n (1+ n)))) (completing-read p l nil t)) (defun quilt-editable (f) "Return t if F is editable in terms of current patch. Return nil if otherwise." (let ((qd (quilt-dir)) (fn (quilt-drop-dir f)) dirs result) (if qd (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (setq dirs (if quilt-edit-top-only (list (quilt-top-patch)) (cdr (cdr (directory-files (concat qd ".pc/")))))) (while (and (not result) dirs) (if (file-exists-p (concat qd ".pc/" (car dirs) "/" fn)) (setq result t) (setq dirs (cdr dirs)))) result)))) (defun quilt-short-patchname () "Return shortened name of top patch. Return nil if there is on the bottom of patch stack." (let ((p (quilt-top-patch))) (if (not p) "none" (let ((p2 (file-name-sans-extension p))) (if (< (length p2) 10) p2 (concat (substring p2 0 8) "..")))))) (defvar quilt-mode-line nil) (make-variable-buffer-local 'quilt-mode-line) (defun quilt-update-modeline () "Update mode line." (interactive) (setq quilt-mode-line (concat " Q:" (quilt-short-patchname))) (force-mode-line-update)) (defun quilt-revert (filelist) "Refresh contents, editability and modeline of FILESIT. FILELIST won't be touched unless their file is a child of the current quilt directory. Each elements in FILELIST should be the absolute file names of those files affected by the latest quilt operation. Associated buffers get reverted to update their contents. Other buffers will only get their modeline and editability adjusted." (let ((qd (quilt-dir)) fn) (dolist (buf (buffer-list)) (if (not (string-match "^ " (buffer-name buf))) (with-current-buffer buf (setq fn (quilt-buffer-file-name-safe)) (when (string-equal qd (quilt-dir)) (quilt-update-modeline) (when (and (not (buffer-modified-p)) (quilt-owned-p fn)) ;; If the file doesn't exist on disk it can't be reverted, but we ;; need the revert hooks to run anyway so that the buffer's ;; editability will update. Files not affected by the latest change ;; (as listed in filelist) don't need to get reverted either. (if (and (file-exists-p buffer-file-name) (member fn filelist)) (progn (revert-buffer t t t)) (run-hooks 'after-revert-hook))))))))) (defun quilt-push (arg) "Push next patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -q")) (quilt-revert (quilt-files-affected))) (defun quilt-pop (arg) "Pop top patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "pop -f") (quilt-cmd "pop -q")) (quilt-revert (quilt-files-affected))) (defun quilt-push-all (arg) "Push all remaining patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((next (car (quilt-cmd-to-list "next")))) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -qa")) (quilt-revert (quilt-files-affected next)))) (defun quilt-pop-all (arg) "Pop all applied patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((fa (quilt-files-affected "-"))) (if arg (quilt-cmd "pop -af") (quilt-cmd "pop -qa")) (quilt-revert fa))) (defun quilt-goto () "Go to a specified patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((arg (quilt-complete-list "Goto patch: " (quilt-patch-list)))) (if (string-equal arg "") (message "no patch name is supplied") (quilt-save) (let (cmd first last) (if (file-exists-p (concat qd ".pc/" arg)) (progn (setq cmd "pop") (setq first (car (quilt-cmd-to-list (concat "next " arg)))) (setq last (quilt-top-patch))) (setq cmd "push") (setq last arg) (setq first (if (quilt-bottom-p) "-" (car (quilt-cmd-to-list "next"))))) (quilt-cmd (concat cmd " -q " arg) "*quilt*") (quilt-revert (quilt-files-affected first last)))))))) (defun quilt-top () "Display topmost patch." (interactive) (quilt-cmd "top")) (defun quilt-find-file () "Find a file in the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((l (quilt-file-list))) (if (not l) (message "no file is existed in this patch") (let ((f (quilt-complete-list "File: " l))) (if (string-equal f "") (message "file name is not specified") (find-file (concat qd f)))))))))) (defun quilt-files () "Display files in topmost patch." (interactive) (quilt-cmd "files")) (defun quilt-import (fn pn) "Import external patch FN as PN.patch." (interactive "fPatch to import: \nsPatch name: ") (if (not pn) (message "no patch name supplied") (quilt-cmd (concat "import -p " pn ".patch " (if fn fn pn))))) (defun quilt-diff () "Display the diff of current change." (interactive) (quilt-save) (quilt-cmd "diff" "*diff*")) (defun quilt-new (f) "Create a new patch F.patch." (interactive "sPatch name: ") (if (string-equal f "") (message "no patch name is supplied") (quilt-save) (quilt-cmd (concat "new " f ".patch")) (quilt-revert nil))) (defun quilt-applied () "Show applied patches." (interactive) (quilt-cmd "applied" "*quilt*")) (defun quilt-add (arg) "Add ARG to the current patch." (interactive "b") (with-current-buffer arg (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd (concat "push"))) ; to print error message (t (quilt-cmd (concat "add " (quilt-drop-dir fn))) (quilt-revert (list fn))))))) (defun quilt-edit-patch () "Edit the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((patch (quilt-top-patch))) (if (not patch) (quilt-cmd "applied") ; to print error message (quilt-save) (let ((pf (concat qd (format "/%s/" (quilt-patches-directory)) patch))) (if (file-exists-p pf) (progn (find-file pf) (toggle-read-only)) (message (format "%s doesn't exist yet." pf))))))))) (defun quilt-patches () "Show which patches modify the current buffer." (interactive) (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (quilt-cmd (concat "patches " (quilt-drop-dir fn))))))) (defun quilt-unapplied () "Display unapplied patch list." (interactive) (quilt-cmd "unapplied" "*quilt*")) (defun quilt-refresh () "Refresh the current patch." (interactive) (quilt-save) (quilt-cmd "refresh")) (defun quilt-remove () "Remove a file from the current patch and revert it." (interactive) (let ((f (quilt-buffer-file-name-safe))) (cond ((not f) (message "buffer %s is not associated with any patch" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((dropped (quilt-drop-dir f))) (if (y-or-n-p (format "Really drop %s? " dropped)) (progn (quilt-cmd (concat "remove " dropped)) (quilt-revert (list f)))))))))) (defun quilt-edit-series () "Edit the patch series file." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((series (concat qd (format "/%s/series" (quilt-patches-directory))))) (if (file-exists-p series) (find-file series) (message (quilt-top-patch))))))) (defun quilt-header (arg) "Print the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (not arg) (quilt-cmd "header") (let ((p (quilt-complete-list "Patch: " (quilt-patch-list)))) (if (string-equal p "") (message "no patch name is supplied") (quilt-cmd (concat "header " p)))))))) (defun quilt-delete (arg) "Delete ARG from the series file." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Delete patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (if (y-or-n-p (format "Really delete %s? " p)) (let ((fa (quilt-files-affected p p))) (quilt-save) (quilt-cmd (concat "delete " p)) (quilt-revert fa))))))))) (defvar quilt-header-directory nil) (defun quilt-header-commit () "Commit to change patch header." (interactive) (let ((tmp (make-temp-file "quilt-header-"))) (set-visited-file-name tmp) (basic-save-buffer) (cd quilt-header-directory) (shell-command (concat "EDITOR=cat quilt -r header <" tmp)) (kill-buffer (current-buffer)) (delete-file tmp))) (defvar quilt-header-mode-map (make-keymap)) (define-key quilt-header-mode-map "\C-c\C-c" 'quilt-header-commit) (defun quilt-edit-header (arg) "Edit the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Edit patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (let ((qb (get-buffer-create (format " *quilt-header(%s)*" p)))) (switch-to-buffer-other-window qb) (erase-buffer) (kill-all-local-variables) (make-local-variable 'quilt-header-directory) (setq quilt-header-directory default-directory) (use-local-map quilt-header-mode-map) (setq major-mode 'quilt-header-mode) (call-process "quilt" nil qb nil "header" p) (goto-char 0)))))))) (defun quilt-series (arg) "Show patche series. It can be verbose mode if ARG is specified." (interactive "P") (if arg (quilt-cmd "series -v") (quilt-cmd "series"))) (defvar quilt-mode-map (make-sparse-keymap)) (define-key quilt-mode-map "\C-c.t" 'quilt-top) (define-key quilt-mode-map "\C-c.f" 'quilt-find-file) (define-key quilt-mode-map "\C-c.F" 'quilt-files) (define-key quilt-mode-map "\C-c.d" 'quilt-diff) (define-key quilt-mode-map "\C-c.p" 'quilt-push) (define-key quilt-mode-map "\C-c.o" 'quilt-pop) (define-key quilt-mode-map "\C-c.P" 'quilt-push-all) (define-key quilt-mode-map "\C-c.O" 'quilt-pop-all) (define-key quilt-mode-map "\C-c.g" 'quilt-goto) (define-key quilt-mode-map "\C-c.A" 'quilt-applied) (define-key quilt-mode-map "\C-c.n" 'quilt-new) (define-key quilt-mode-map "\C-c.i" 'quilt-import) (define-key quilt-mode-map "\C-c.a" 'quilt-add) (define-key quilt-mode-map "\C-c.e" 'quilt-edit-patch) (define-key quilt-mode-map "\C-c.m" 'quilt-patches) (define-key quilt-mode-map "\C-c.u" 'quilt-unapplied) (define-key quilt-mode-map "\C-c.r" 'quilt-refresh) (define-key quilt-mode-map "\C-c.R" 'quilt-remove) (define-key quilt-mode-map "\C-c.s" 'quilt-series) (define-key quilt-mode-map "\C-c.S" 'quilt-edit-series) (define-key quilt-mode-map "\C-c.h" 'quilt-header) (define-key quilt-mode-map "\C-c.H" 'quilt-edit-header) (define-key quilt-mode-map "\C-c.D" 'quilt-delete) (defvar quilt-mode nil) (make-variable-buffer-local 'quilt-mode) (defvar quilt-edit-top-only 't) (defun quilt-mode (&optional arg) "Toggle 'quilt-mode'. Enable 'quilt-mode' if ARG is positive. \\{quilt-mode-map}" (interactive "P") (setq quilt-mode (if (null arg) (not quilt-mode) (> (prefix-numeric-value arg) 0))) (if quilt-mode (let ((f (quilt-buffer-file-name-safe))) (if (quilt-owned-p f) (if (not (quilt-editable f)) (toggle-read-only 1) (toggle-read-only 0))) (quilt-update-modeline)))) (defun quilt-hook () "Enable quilt mode for quilt-controlled files." (if (quilt-p) (quilt-mode 1))) (add-hook 'find-file-hooks 'quilt-hook) (add-hook 'after-revert-hook 'quilt-hook) (or (assq 'quilt-mode minor-mode-alist) (setq minor-mode-alist (cons '(quilt-mode quilt-mode-line) minor-mode-alist))) (or (assq 'quilt-mode-map minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'quilt-mode quilt-mode-map) minor-mode-map-alist))) (provide 'quilt) ;;; quilt.el ends here quilt-0.61/doc/README.in0000644000175000017500000000617211726705776015164 0ustar mquinsonmquinsonThe scripts in this package simplify working with a series of patches. The usual tasks like applying, refreshing and reversing are supported. Please see the paper "How To Survive With Many Patches /or/ Introduction to Quilt" for an introduction. Command reference ================= @REFERENCE@ Typical Usages: New patches; Importing patches; Patch management ====================================================================== Add new patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. create a new patch: quilt new {patchname, e.g., sysctl_fix.patch} 2. add/edit file(s): quilt edit filepath or: 2a. add file(s) to patch: quilt add {filepath} 2b. manual edit file(s) use your $editor 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff 6. apply current, ready for next: quilt push 7. remove file(s) from patch: quilt remove {filepath} Importing patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. import a patch: quilt import patchfile 2. apply it: quilt push 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff Import/Apply a series file + patches to a tree: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. cp(1) the patches directory ('series' file + all patch files) to the expected patches location (as specified in your .quiltrc file) 2. apply all of series: quilt push -a Other patch management: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. remove files from a patch: quilt remove {filepath} 2. remove unapplied patch: quilt delete {patchname} 3. list all patch names: quilt series 4. list all applied/unapplied: quilt applied | unapplied 5. list top/previous/next patch name: quilt top | previous | next 6. list patches modifying file: quilt patches {filepath} 7. rename a patch: quilt rename {patchname} 8. duplicate a patch: quilt fork {patchname} 9. prepare or send mails: quilt mail ... 10. search in source files: quilt grep ... 11. create snapshot: quilt snapshot 12. init from RPM spec or series file: quilt setup 13. distribution of patches: quilt diff --combine and distribute the combined diff file, or distribute the patches/ directory content Helper files/scripts ==================== backup-files A simple utility that creates / restores / removes backup files. dependency-graph A utility to compute patch dependencies from the QUILT_PC metadata. edmail A utility to manipulate the headers of an Internet mail message. guards Convert a series file with conditional statements into a series file as expected; see the guards(1) manual page. inspect A script to create a series file from an rpm spec file (including a list of tar files). patchfns utilfns Collections of functions. remove-trailing-ws A utility to report trailing whitespace, and remove trailing whitespace from files. quilt-0.61/doc/quilt.1.in0000644000175000017500000002544612251151041015477 0ustar mquinsonmquinson.\\" Created by Martin Quinson from the tex documentation .\\" .TH quilt 1 "Dec 8, 2013" "quilt" .SH NAME quilt \\- tool to manage series of patches .SH SYNOPSIS .B quilt [-h] command [options] .SH DESCRIPTION Quilt is a tool to manage large sets of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The key philosophical concept is that your primary output is patches. With quilt, all work occurs within a single directory tree. Commands can be invoked from anywhere within the source tree. They are of the form .B quilt cmd similar to CVS, svn or git commands. They can be abbreviated as long as the specified part of the command is unique. All commands print some help text with .B quilt cmd -h. Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed on top of the stack .RB ( "quilt push" ), and popped off the stack .RB ( "quilt pop" ). Commands are available for querying the contents of the series file .RB ( "quilt series" , see below), the contents of the stack .RB ( "quilt applied" , " quilt previous" , " quilt top" ), and the patches that are not applied at a particular moment .RB ( "quilt next" , " quilt unapplied" ). By default, most commands apply to the topmost patch on the stack. Patch files are located in the .I patches sub-directory of the source tree (see EXAMPLE OF WORKING TREE below). The .I QUILT_PATCHES environment variable can be used to override this location. When not found in the current directory, that subdirectory is searched recursively in the parent directories (this is similar to the way .I git searches for its configuration files). The .I patches directory may contain sub-directories. It may also be a symbolic link instead of a directory. A file called .I series contains a list of patch file names that defines the order in which patches are applied. Unless there are means by which series files can be generated automatically, it is usually provided along with a set of patches. In this file, each patch file name is on a separate line. Patch files are identified by path names that are relative to the .I patches directory; patches may be in sub-directories below this directory. Lines in the series file that start with a hash character (#) are ignored. You can also add a comment after each patch file name, introduced by a space followed by a hash character. When quilt adds, removes, or renames patches, it automatically updates the series file. Users of quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Different series files can be used to assemble patches in different ways, corresponding for example to different development branches. Before a patch is applied (or ``pushed on the stack''), copies of all files the patch modifies are saved to the .RI .pc/ patch directory. The patch is added to the list of currently applied patches (.pc/applied-patches). Later when a patch is regenerated .RB ( "quilt refresh" ), the backup copies in .RI .pc/ patch are compared with the current versions of the files in the source tree using GNU diff. Documentation related to a patch can be put at the beginning of a patch file. Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. (This is limited to patches in unified format; see .B diff documentation). The series file is looked up in the .pc directory, in the root of the source tree, and in the patches directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, so the patches sub-directory is a convenient location. The .pc directory and its sub-directories cannot be relocated, but it can be a symbolic link. While patches are applied to the source tree, this directory is essential for many operations, including taking patches off the stack .RB ( "quilt pop" ), and refreshing patches .RB ( "quilt refresh" ). Files in the .pc directory are automatically removed when they are no longer needed, so there is no need to clean up manually. .SH QUILT COMMANDS REFERENCE @REFERENCE@ .SH COMMON OPTIONS TO ALL COMMANDS .IP \"\\fB--trace\\fP\" 8 Runs the command in bash trace mode (-x). For internal debugging. .IP \"\\fB--quiltrc\\fP file\" 8 Use the specified configuration file instead of ~/.quiltrc (or /etc/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. .IP \"\\fB--version\\fP\" 8 Print the version number and exit immediately. .SH EXAMPLE OF WORKING TREE .fam C .RS .nf work/ -+- ... |- patches/ -+- series | |- patch2.diff | |- patch1.diff | +- ... +- .pc/ -+- applied-patches |- patch1.diff/ -+- ... |- patch2.diff/ -+- ... +- ... .fi .RE .fam T .SH EXAMPLE Please refer to the pdf documentation for an example. .SH CONFIGURATION FILE Upon startup, quilt evaluates the file .quiltrc in the user's home directory, or the file specified with the --quiltrc option. This file is a regular bash script. Default options can be passed to any COMMAND by defining a QUILT_${COMMAND}_ARGS variable. For example, QUILT_DIFF_ARGS="--color=auto" causes the output of quilt diff to be syntax colored when writing to a terminal. In addition to that, quilt recognizes the following variables: .IP EDITOR 4 The program to run to edit files. If it isn't redefined in the configuration file, $EDITOR as defined in the environment will be used. .IP QUILT_DIFF_OPTS 4 Additional options that quilt shall pass to GNU diff when generating patches. A useful setting for C source code is "-p", which causes GNU diff to show in the resulting patch which function a change is in. .IP QUILT_PATCH_OPTS 4 Additional options that quilt shall pass to GNU patch when applying patches. For example, recent versions of GNU patch support the "--reject-format=unified" option for generating reject files in unified diff style (older patch versions used "--unified-reject-files" for that). .IP QUILT_DIFFSTAT_OPTS 4 Additional options that quilt shall pass to diffstat when generating patch statistics. For example, "-f0" can be used for an alternative output format. Recent versions of diffstat also support alternative rounding methods ("-r1", "-r2"). .IP QUILT_PATCHES 4 The location of patch files, defaulting to "patches". .IP QUILT_SERIES 4 The name of the series file, defaulting to "series". Unless an absolute path is used, the search algorithm described above applies. .IP QUILT_PATCHES_PREFIX 4 If set to anything, quilt will prefix patch names it prints with their directory (QUILT_PATCHES). .IP QUILT_NO_DIFF_INDEX 4 By default, quilt prepends an Index: line to the patches it generates. If this variable is set to anything, no line is prepended. This is a shortcut to adding --no-index to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS. .IP QUILT_NO_DIFF_TIMESTAMPS 4 By default, quilt includes timestamps in headers when generating patches. If this variable is set to anything, no timestamp will be included. This is a shortcut to adding --no-timestamps to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS. .IP QUILT_PAGER 4 The pager quilt shall use for commands which produce paginated output. If unset, the values of GIT_PAGER or PAGER is used. If none of these variables is set, "less -R" is used. An empty value indicates that no pager should be used. .IP QUILT_COLORS 4 By default, quilt uses its predefined color set in order to be more comprehensible when distiguishing various types of patches, eg. applied/unapplied, failed, etc. To override one or more color settings, set the QUILT_COLORS variable in following syntax - colon (:) separated list of elements, each being of the form =[;] Format names with their respective default values are listed below, along with their usage(s). Color codes(values) are standard bash coloring escape codes. See more at http://tldp.org/LDP/abs/html/colorizing.html#AEN20229 .RS 4 .IP \\fBdiff_hdr\\fP 10 Used in 'quilt diff' to color the index line. Defaults to 32 (green). .IP \\fBdiff_add\\fP 10 Used in 'quilt diff' to color added lines. Defaults to 36 (azure). .IP \\fBdiff_mod\\fP 10 Used in 'quilt diff' to color modified lines. Defaults to 35 (purple). .IP \\fBdiff_rem\\fP 10 Used in 'quilt diff' to color removed lines. Defaults to 35 (purple). .IP \\fBdiff_hunk\\fP 10 Used in 'quilt diff' to color hunk header. Defaults to 33 (brown/orange). .IP \\fBdiff_ctx\\fP 10 Used in 'quilt diff' to color the text after end of hunk header (diff --show-c-function generates this). Defaults to 35 (purple). .IP \\fBdiff_cctx\\fP 10 Used in 'quilt diff' to color the 15-asterisk sequence before or after a hunk. Defaults to 33 (brown/orange). .IP \\fBpatch_fuzz\\fP 10 Used in 'quilt push' to color the patch fuzz information. Defaults to 35 (purple). .IP \\fBpatch_fail\\fP 10 Used in 'quilt push' to color the fail message. Defaults to 31 (red). .IP \\fBseries_app\\fP 10 Used in 'quilt series' and 'quilt patches' to color the applied patch names. Defaults to 32 (green). .IP \\fBseries_top\\fP 10 Used in 'quilt series' and 'quilt patches' to color the top patch name. Defaults to 33 (brown/orange). .IP \\fBseries_una\\fP 10 Used in 'quilt series' and 'quilt patches' to color unapplied patch names. Defaults to 0 (no special color). .RE .RS 4 In addition, the \\fBclear\\fP format name is used to turn off special coloring. Its value is 0; it is not advised to modify it. The content of QUILT_COLORS superseeds default values. So the value diff_hdr=35;44 will get you the diff headers in magenta over blue instead of the default green over unchanged background. For that, add the following content to ~/.quiltrc (or /etc/quilt.quiltrc): .nf QUILT_DIFF_ARGS="--color" QUILT_COLORS='diff_hdr=35;44' .fi .RE 4 .SH AUTHORS Quilt started as a series of scripts written by Andrew Morton (patch-scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see AUTHORS file in the distribution). This man page was written by Martin Quinson, based on information found in the pdf documentation, and in the help messages of each commands. .SH SEE ALSO The pdf documentation, which should be under @DOCSUBDIR@/quilt.pdf. Note that some distributors compress this file. .BR zxpdf ( 1 ) can be used to display compressed pdf files. .BR diff ( 1 ), .BR patch ( 1 ). quilt-0.61/doc/main.tex0000644000175000017500000010131711726705776015342 0ustar mquinsonmquinson%\documentclass[a4paper]{article} \documentclass{article} \usepackage{graphicx} \usepackage{subfigure} \usepackage{fancyvrb} %\usepackage{times} \usepackage[latin1]{inputenc} \usepackage{url} %\usepackage{lineno} %\linenumbers %\renewcommand{\baselinestretch}{1.5} % Change url font to textsf (and check what breaks in PDF/HTML/...) \fvset{xleftmargin=3em,commandchars=\\\{\}} \newcommand{\quilt}[1]{\textsf{quilt #1}} \newcommand{\sh}[1]{\textsl{#1}} \newcommand{\prog}[1]{\textit{#1}} \title{How To Survive With Many Patches\\ {\Large or}\\ Introduction to Quilt\footnote{ Quilt is a GPL licensed project hosted on GNU Savannah. Some ideas for this document were taken from \textit{docco.txt} in Andrew Morton's patch management scripts package~\cite{akpm02}. The text in the examples was taken from \textit{A Midsummer Night's Dream} by William Shakespeare. }} \author{Andreas Grünbacher, SuSE Labs \\ %\em{SUSE Labs, SUSE LINUX AG} \\ {\normalsize agruen@suse.de} } %\date{} \begin{document} \maketitle \thispagestyle{empty} \begin{abstract} After looking at different strategies for dealing with software packages that consist of a base software package on top of which a number of patches are applied, this document introduces the script collection \textit{quilt,} which was specifically written to help deal with multiple patches and common patch management tasks. \end{abstract} \section{Introduction} % Prerequisites: UNIX, patches, using GNU diff and GNU patch. % Why patches in the first place? In the old days, vendor specific software packages in the open source world consisted of a file with the official version of the software, plus a patch file with the additional changes needed to adapt the package to specific needs. The official software package was usually contained in a \textsf{package.tar.gz} file, while the patch was found in \textsf{package.diff.} Instead of modifying the official package sources, local changes were kept separate. When building the software package, the tar archive was extracted, and the patch was applied. Over time, the patch file ended up containing several independent changes. Of those changes, some were integrated into later versions of the software, while other add-ons or adaptations remain external. Whenever a new official version was integrated, the patch needed to be revised: changes that were already integrated in the official version needed to be split from changes that were not. A big improvement was to allow multiple patches in a vendor package, and this is also how patches are handled today: a number of patches is applied on top of each other. Each patch usually consists of a logically related set of changes. When some patches get integrated upstream, those patches can simply be removed from the vendor specific package. The remaining patches frequently continue to apply cleanly. Some of the remaining patches may have to be maintained across a range of upstream versions because they are too specific for the upstream software package, etc. These patches often get out of sync, and need to be updated. For the majority of packages, the number of patches remains relatively low, so maintaining those patches without tools is feasible. A number of packages have dozens of patches, however. At the extreme end is the kernel source package (kernel-source-\textit{2.4.x}) with more than 1\,000 patches. The difficulty of managing such a vast number of patches without tools can easily be imagined. This document discusses different strategies of dealing with large sets of patches. Patches are usually generated by the \prog{diff} utility, and applied with the \prog{patch} utility. Different patch file formats are defined as part of the specification of the \prog{diff} utility in POSIX.1~\cite{posix-2001-diff}. The most commonly used format today, \textit{unified diff,} is not covered by POSIX.1, however. A good description of patch file formats is found in the \prog{GNU diff} info pages~\cite{info-diff}. The question we try to answer in this document is how patches are best kept up to date in face of changes both to the upstream software package, and to the patches that precede them. After looking at some existing approaches, a collection of patch management scripts known as \textit{quilt} is described~\cite{quilt}, starting with basic concepts, and progressing towards more advanced tasks. % - quilt % (wet people's mouths about the features) % How exactly does this relate to many patches? \section{Existing Approaches} \label{sec:existing} The minimal solution for updating a patch is to apply all preceding patches. %\footnote{ In the kernel CVS, we have a a script called %\textit{sequence-patch} that simply applies all patches up to a %specified patch. } Then, a copy of the resulting source tree is created.\footnote{ The two copies can also be hard-linked with each other, which significantly speeds up both the copying and the final ``diffing''. If hard links are used, care must be taken that the tools used to update one copy of the source tree will create new files, and will not overwrite shared files. Editors like \prog{emacs} and \prog{vi}, and utilities like \prog{patch}, support this. } The next patch in the sequence of patches (which is the one to be updated) is applied to only one of these source trees. This source tree is then modified until it reflects the desired result. The new version of the patch is distilled by comparing the two source trees with \prog{diff}, and writing the result into a file. This simple approach is rather error prone, and leaves much to be desired. Several people have independently written scripts that automate and improve upon this process. A version control system like \prog{CVS} or \prog{RCS} may be a reasonable alternative in some cases. The version control system is brought in the state of the working tree with a number of patches applied. Then the next patch is applied. After the working tree is updated as required, a diff between the repository copy and the working tree is created (with \prog{cvs diff}, etc). In this scenario the version control system is used to store and compare against the old repository version only. The full version control overhead is paid, while only a small fraction of its functionality is needed. Switching between different patches is not simplified. % TODO: Mention some approaches here; RCS and CVS ... One of the most advanced approaches is Andrew Morton's patch management scripts~\cite{akpm02}. The author of this document found that none of the available solutions would scale up to the specific requirements of the SUSE kernel-source package, and started to improve Andrew Morton's scripts until they became what they are now~\cite{quilt}. % - Re and Rd scripts (Czech scripts using RCS, replaces the % now-obsolete rpmpatch that supports one .dif only). % - Werner's scripts % What couldn't be done: % - Patches in sub-directories % - Many patches % - Retaining documentation (akpm's scripts do part of this) % Actually merging rejects is not handled; use tools like: % - wiggle % - Other merge tools (e.g., graphical ones) \section{Quilt: Basic Concepts and Operation} \label{sec:basic} The remainder of this document discusses the script collection \textit{quilt.} With quilt, all work occurs within a single directory tree. Since version 0.30, commands can be invoked from anywhere within the source tree (the directory tree is scanned upwards until either the \textsf{.pc} or the \textsf{patches} directory is found). Commands are of the form ``\quilt{cmd}'', similar to CVS commands. They can be abbreviated as long as the specified part of the command is unique. All commands print some help text with ``\quilt{cmd -h}''. Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed on top of the stack (\quilt{push}), and popped off the stack (\quilt{pop}). Commands are available for querying the contents of the series file (\quilt{series}, see below), the contents of the stack (\quilt{applied}, \quilt{previous}, \quilt{top}), and the patches that are not applied at a particular moment (\quilt{next}, \quilt{unapplied}). By default, most commands apply to the topmost patch on the stack. When files in the working directory are changed, those changes become part of the working state of the topmost patch, provided that those files are part of the patch. Files that are not part of a patch must be added before modifying them so that quilt is aware of the original versions of the files. The \quilt{refresh} command regenerates a patch. After the refresh, the patch and the working state are the same. Patch files are located in the \textsf{patches} sub-directory of the source tree (see Figure~\ref{fig:dir-layout}). The \textsf{QUILT\_PATCHES} environment variable can be used to override this location and quilt will remember this location by storing its value in the \textsf{.pc/.quilt\_patches} file. The \textsf{patches} directory may contain sub-directories, which is useful for grouping related patches together. \textsf{patches} may also be a symbolic link instead of a directory. A file called \textsf{series} contains a list of patch file names that defines the order in which patches are applied. Unless there are means by which series files can be generated automatically (see Section~\ref{sec:rpm}), they are usually provided along with a set of patches. In \textsf{series}, each patch file name is on a separate line. Patch files are identified by pathnames that are relative to the \textsf{patches} directory; patches may be in sub-directories below the \textsf{patches} directory. Lines in the series file that start with a hash character (\texttt{\#}) are ignored. When quilt adds, removes, or renames patches, it automatically updates the series file. Users of quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Different series files can be used to assemble patches in different ways, corresponding for example to different development branches. \begin{figure} \begin{center} \begin{minipage}{6cm} \begin{small} \begin{Verbatim} work/ -+- ... |- patches/ -+- series | |- patch2.diff | |- patch1.diff | +- ... +- .pc/ -+- applied-patches |- patch1.diff/ -+- ... |- patch2.diff/ -+- ... +- ... \end{Verbatim} \end{small} \end{minipage} \caption{Quilt files in a source tree.} \label{fig:dir-layout} \end{center} \end{figure} Before a patch is applied (or ``pushed on the stack''), copies of all files the patch modifies are saved to the \textsf{.pc/\textit{patch}} directory.\footnote{ The patch name with extensions stripped is used as the name of the sub-directory below the \textsf{.pc} directory. \prog{GNU patch}, which quilt uses internally to apply patches, creates backup files and applies the patch in one step. } The patch is added to the list of currently applied patches (\textsf{.pc/applied-patches}). Later when a patch is regenerated (\quilt{refresh}), the backup copies in \textsf{.pc/\textit{patch}} are compared with the current versions of the files in the source tree using \prog{GNU diff}. Documentation related to a patch can be put at the beginning of a patch file. Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. The series file is looked up in the root of the source tree, in the patches directory, and in the \textsf{.pc} directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, so the \textsf{patches} sub-directory is a convenient location. While patches are applied to the source tree, the \textsf{.pc} directory is essential for many operations, including taking patches off the stack (\quilt{pop}), and refreshing patches (\quilt{refresh}). Files in the \textsf{.pc} directory are automatically removed when they are no longer needed, so usually there is no need to clean up manually. The \textsf{QUILT\_PC} environment variable can be used to override the location of the \textsf{.pc} directory. \section{An Example} This section demonstrates how new patches are created and updated, and how conflicts are resolved. Let's start with a short text file: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. \end{Verbatim} \end{small} New patches are created with \quilt{new}. A new patch automatically becomes the topmost patch on the stack. Files must be added with \quilt{add} before they are modified. Note that this is slightly different from the CVS style of interaction: with CVS, files are in the repository, and adding them before committing (but after modifying them) is enough. Files are usually added and immediately modified. The command \quilt{edit} adds a file and loads it into the default editor. (The environment variable \textsf{EDITOR} specifies which is the default editor. If \textsf{EDITOR} is not set, \prog{vi} is used.) \begin{small} \begin{Verbatim} \sh{$ quilt new flower.diff} Patch flower.diff is now on top \sh{$ quilt edit Oberon.txt} File Oberon.txt added to patch flower.diff \end{Verbatim} \end{small} Let's assume that the following lines were added to \textsf{Oberon.txt} during editing: \begin{small} \begin{Verbatim} The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} The actual patch file is created (and later updated) with \quilt{refresh}. The result is as follows:\footnote{ Timestamps in patches are omitted from the output in the examples. } \begin{small} \begin{Verbatim} \sh{$ quilt refresh} \sh{$ cat patches/flower.diff} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,3 +2,6 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +The juice of it on sleeping eye-lids laid +Will make a man or woman madly dote +Upon the next live creature that it sees. \end{Verbatim} \end{small} Now let's assume that a line in the text has been overlooked, and must be inserted. The file \textsf{Oberon.txt} is already part of the patch \textsf{flower.diff}, so it can immediately be modified in an editor. Alternatively, \quilt{edit} can be used; it simply opens up the default editor if the file is already part of the patch. After the line is added, we use \quilt{diff -z} to see a diff of the changes we made: \begin{small} \begin{Verbatim} \sh{$ quilt diff -z} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,6 +2,7 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} A diff of the topmost patch can be generated with \quilt{diff} without arguments. This does not modify the actual patch file. The changes are only added to the patch file by updating it with \quilt{refresh}. Then we remove the patch from the stack with \quilt{pop}: \begin{small} \begin{Verbatim} \sh{$ quilt refresh} Refreshed patch flower.diff \sh{$ quilt pop} Removing flower.diff Restoring Oberon.txt No patches applied \end{Verbatim} \end{small} Next, let's assume that \textsf{Oberon.txt} was modified ``upstream'': The word \textit{girl} did not fit very well, and so it was replaced with \textit{maiden.} \textsf{Oberon.txt} now contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. \end{Verbatim} \end{small} This causes \textsf{flower.diff} to no longer apply cleanly. When we try to push \textsf{flower.diff} on the stack with \quilt{push}, we get the following result: \begin{small} \begin{Verbatim} \sh{$ quilt push} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- rejects in file Oberon.txt Patch flower.diff does not apply (enforce with -f) \end{Verbatim} \end{small} Quilt does not automatically apply patches that have rejects. Patches that do not apply cleanly can be ``force-applied'' with \quilt{push -f}, which leaves reject files in the source tree for each file that has conflicts. Those conflicts must be resolved manually, after which the patch can be updated (\quilt{refresh}). Quilt remembers when a patch has been force-applied. It refuses to push further patches on top of such patches, and it does not remove them from the stack. A force-applied patch may be ``force-removed'' from the stack with \quilt{pop -f}, however. Here is what happens when force-applying \textsf{flower.diff}: \begin{small} \begin{Verbatim} \sh{$ quilt push -f} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- saving rejects to file Oberon.txt.rej Applied flower.diff (forced; needs refresh) \end{Verbatim} \end{small} After re-adding the lines of verse from \textsf{flower.diff} to \textsf{Oberon.txt}, we update the patch with \quilt{refresh}. \begin{small} \begin{Verbatim} \sh{$ quilt edit Oberon.txt} \sh{$ quilt refresh} Refreshed patch flower.diff \end{Verbatim} \end{small} Our final version of \textsf{Oberon.txt} contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} \section{Further Commands and Concepts} This section introduces a few more basic commands, and then describes additional concepts that may not be immediately obvious. We do not describe all of the features of quilt here since many quilt commands are quite intuitive; furthermore, help text that describes the available options for each command is available via \quilt{\textit{cmd} -h}. The \quilt{top} command shows the name of the topmost patch. The \quilt{files} command shows which files a patch contains. The \quilt{patches} command shows which patches modify a specified file. With our previous example, we get the following results: \begin{small} \begin{Verbatim} \sh{$ quilt top} flower.diff \sh{$ quilt files} Oberon.txt \sh{$ quilt patches Oberon.txt} flower.diff \end{Verbatim} \end{small} The \quilt{push} and \quilt{pop} commands optionally take a number or a patch name as argument. If a number is given, the specified number of patches is added (\quilt{push}) or removed (\quilt{pop}). If a patch name is given, patches are added (\quilt{push}) or removed (\quilt{pop}) until the specified patch is on top of the stack. With the \textsf{-a} option, all patches in the series file are added (\quilt{push}), or all applied patches are removed from the stack (\quilt{pop}). \subsection{Patch Strip Levels} Quilt assumes that patches are applied with a strip level of one (the \textsf{-p1} option of \prog{GNU patch}) by default: the topmost directory level of file names in patches is stripped off. Quilt remembers the strip level of each patch in the \textsf{series} file. When generating a diff (\quilt{diff}) or updating a patch (\quilt{refresh}), a different strip level can be specified, and the series file will be updated accordingly. Quilt can apply patches with an arbitrary strip level, and produces patches with a strip level of zero or one. With a strip level of one, the name of the directory that contains the working tree is used as the additional path component. (So in our example, \textsf{Oberon.txt} is contained in directory \textsf{example1}.) \subsection{Importing Patches} The \quilt{import} command automates the importing of patches into the quilt system. The command copies a patch into the \textsf{patches} directory and adds it to the \textsf{series} file. For patch strip levels other than one, the strip level is added after the patch file name. (An entry for \textsf{a.diff} with strip level zero might read ``{\small \verb|a.diff -p0|}''.) Another common operation is to incorporate a fix or similar that comes as a patch into the topmost patch. This can be done by hand by first adding all the files contained in the additional patch to the topmost patch with \quilt{add},\footnote{ The \prog{lsdiff} utility, which is part of the \textit{patchutils} package, generates a list of files affected by a patch. } and then applying the patch to the working tree. The \quilt{fold} command combines these steps. \subsection{Sharing patches with others} For sharing a set of patches with someone else, the series file which contains the list of patches and how they are applied, and the patches themselves are all that's needed. The \textsl{.pc} directory only contains quilt's working state, and should not be distributed. Make sure that all the patches are up-to-date, and refresh patches when necessary. The \textsf{--combine} option of \quilt{diff} can be used for generating a single patch out of all the patches in the series file. \subsection{Merging with upstream} The concept of merging your patches with upstream is identical to applying your patches on a more recent version of the software. Before merging, make sure to pop all your patches using \quilt{pop -a}. Then, update your codebase. Finally, remove obsoleted patches from the series file and \quilt{push} the remaining ones, resolve conflicts and refresh patches as needed. \subsection{Forking} \label{sec:forking} There are situations in which updating a patch in-place is not ideal: the same patch may be used in more than one series file. It may also serve as convenient documentation to retain old versions of patches, and create new ones under different names. This can be done by hand by creating a copy of a patch (which must not be applied), and updating the patch name in the series file. The \quilt{fork} command simplifies this: it creates a copy of the topmost patch in the series, and updates the series file. Unless a patch name is explicitly specified, \quilt{fork} will generate the following sequence of patch names: \textsf{patch.diff}, \textsf{patch-2.diff}, \textsf{patch-3.diff},\dots \subsection{Dependencies} \label{sec:dependencies} When the number of patches in a project grows large, it becomes increasingly difficult to find the right place for adding a new patch in the patch series. At a certain point, patches will get inserted at the end of the patch series, because finding the right place has become too complicated. In the long run, a mess accumulates. To help avoid this by keeping the big picture, the \quilt{graph} command generates \textit{dot} graphs showing the dependencies between patches.\footnote{ The \quilt{graph} command computes dependencies based on which patches modify which files, and optionally will also check for overlapping changes in the files. While the former approach will often result in false positives, the latter approach may result in false negatives (that is, \quilt{graph} may overlook dependencies). } The output of this command can be visualized using the tools from AT\&T Research's Graph Visualization Project (GraphViz, \url{http://www.graphviz.org/}). The \quilt{graph} command supports different kinds of graphs. \subsection{Advanced Diffing} Quilt allows us to diff and refresh patches that are applied, but are not on top of the stack (\quilt{diff -P \textit{patch}} and \quilt{refresh \textit{patch}}). This is useful in several cases, for example, when %\begin{itemize} % %\item When the topmost patch has been modified but the changes are not %yet completed, refreshing the patch would leave a patch file that is in %an inconsistent state. Without that, the patch cannot be removed from %the stack, or else the changes would be lost. % %\item Popping patches and then pushing them again results in modified %time stamps. This may trigger time consuming recompiles. % %\item It is simply convenient to be able to fix small bugs in patches %further down in the stack without much ado. % %\end{itemize} % patches applied higher on the stack modify some of the files that this patch modifies. We can picture this as a shadow which the patches higher on the stack throw on the files they modify. When refreshing a patch, changes to files that are not shadowed (and thus were last modified by the patch that is being refreshed) are taken into account. The modifications that the patch contains for shadowed files will not be updated. The \quilt{diff} command allows us to merge multiple patches into one by optionally specifying the range of patches to include (see \quilt{diff -h}). The combined patch will only modify each file contained in these patches once. The result of applying the combined patch is the same as applying all the patches in the specified range in sequence. Sometimes it is convenient to use a tool other than \prog{GNU diff} for comparing files (for example, a graphical diff replacement like \prog{tkdiff}). Quilt will not use tools other than \prog{GNU diff} when updating patches (\quilt{refresh}), but \quilt{diff} can be passed the \textsf{-{}-diff=\textit{utility}} argument. With this argument, the specified utility is invoked for each file that is being modified with the original file and new file as arguments. For new files, the first argument will be \textsf{/dev/null}. For removed files, the second argument will be \textsf{/dev/null}. When \quilt{diff} is passed a list of file names, the diff will be limited to those files. With the \textsf{-R} parameter, the original and new files are swapped, which results in a reverse diff. Sometimes it is useful to create a diff between an arbitrary state of the working tree and the current version. This can be used to create a diff between different versions of a patch (see Section~\ref{sec:forking}), etc. To this end, quilt allows us to take a snapshot of the working directory (\quilt{snapshot}). Later, a diff against this state of the working tree can be created with \quilt{diff -{}-snapshot}. Currently, only a single snapshot is supported. It is stored in the \textsf{.pc/.snap} directory. To recover the disk space the snapshot occupies, it can be removed with \quilt{snapshot -d}, or by removing the \textsf{.pc/.snap} directory manually. \subsection{Working with RPM Packages} \label{sec:rpm} Several Linux distributions are based on the RPM Package Manager~\cite{max-rpm}. RPM packages consist of a spec that defines how packages are built, and a number of additional files like tar archives, patches, etc. Most RPM packages contain an official software package plus a number of patches. Before these patches can be manipulated with quilt, a series file must be created that lists the patches along with their strip levels. The \quilt{setup} command automates this for most RPM packages. When given a spec file as its argument, it performs the \textsf{\%prep} section of the spec file, which is supposed to extract the official software package, and apply the patches. In this run, quilt remembers the tar archives and the patches that are applied, and creates a series file. Based on that series file, \quilt{setup} extracts the archives, and copies the patches into the \textsf{patches} sub-directory. Some meta-information like the archive names are stored as comments in the series file. \quilt{setup} also accepts a series file as argument (which must contain some meta-information), and sets up the working tree from the series file in this case. \section{Customizing Quilt} Upon startup, quilt evaluates the file \textsf{.quiltrc} in the user's home directory, or the file specified with the \textsf{--quiltrc} option. This file is a regular bash script. Default options can be passed to any command by defining a \textsf{QUILT\_\textit{COMMAND}\_ARGS} variable (for example, \textsf{QUILT\_DIFF\_ARGS="--color=auto"} causes the output of \quilt{diff} to be syntax colored when writing to a terminal). In addition to that, quilt recognizes the following variables: \begin{description} \item[\textsf{QUILT\_DIFF\_OPTS}] Additional options that quilt shall pass to \prog{GNU diff} when generating patches. A useful setting for C source code is ``\textsf{-p}'', which causes \prog{GNU diff} to show in the resulting patch which function a change is in. \item[\textsf{QUILT\_PATCH\_OPTS}] Additional options that quilt shall pass to \prog{GNU patch} when applying patches. (For example, recent versions of \prog{GNU patch} support the ``\textsf{--reject-format=unified}'' option for generating reject files in unified diff style (older versions used ``\textsf{--unified-reject-files}'' for that). \item[\textsf{QUILT\_PATCHES}] The location of patch files (see Section~\ref{sec:basic}). This setting defaults to ``\textsf{patches}''. \end{description} \section{Pitfalls and Known Problems} As mentioned earlier, files must be added to patches before they can be modified. If this step is overlooked, one of the following problems will occur: If the file is included in a patch further below on the stack, the changes will appear in that patch when it is refreshed, and for that patch the \quilt{pop} command will fail before it is refreshed. If the file is not included in any applied patch, the original file in the working tree is modified. Patch files may modify the same file more than once. \prog{GNU patch} has a bug that corrupts backup files in this case. A fix is available, and will be integrated in a later version of \textit{GNU patch}. The fix has already been integrated into the SUSE version of \textit{GNU patch}. There are some packages that assume that it's a good idea to remove all empty files throughout a working tree, including the \textsf{.pc} directory. The \textit{make clean} target in the linux kernel sources is an example. Quilt uses zero-length files in \textsf{.pc} to mark files added by patches, so such packages may corrupt the \textsf{.pc} directory. A workaround is to create a symbolic link \textsf{.pc} in the working tree that points to a directory outside. It may happen that the files in the \textsf{patches} directory gets out of sync with the working tree (e.g., they may accidentally get updated by CVS or similar). Files in the \textsf{.pc} directory may also become inconsistent, particularly if files are not added before modifying them (\quilt{add} / \quilt{edit}). If this happens, it may be possible to repair the source tree, but often the best solution is to start over with a scratch working directory and the \textsf{patches} sub-directory. There is no need to keep any files from the \textsf{.pc} directory in this case. % - Patches cannot automatically be reverse applied (?) % - Does not auto-detect is a patch has been cleanly integrated % - Speed % - Push a patch that is not in the series file (after changing % applied-patches to include the full patch name)? % - Other back-ends (RCS etc.) % - Pop and push modify file timestamps, which causes recompiles. % Ccache ameliorates this. % - patchutils: Very useful: lsdiff, filterdiff, etc. \section{Summary} We have shown how the script collection \textit{quilt} solves various problems that occur when dealing with patches to software packages. Quilt is an obvious improvement over directly using the underlying tools (\prog{GNU patch}, \prog{GNU diff}, etc.), and offers many features not available with competing solutions. Join the club! The quilt project homepage is \url{http://savannah.nongnu.org/projects/quilt/}. There is a development mailing list at \url{http://mail.nongnu.org/mailman/listinfo/quilt-dev}. Additional features that fit into quilt's mode of operation are always welcome, of course. \begin{thebibliography}{XX} \bibitem{akpm02} Andrew Morton: Patch Management Scripts, \url{http://lwn.net/Articles/13518/} and \url{http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz}. \bibitem{quilt} Andreas Grünbacher et al.: Patchwork Quilt, \url{http://savannah.nongnu.org/projects/quilt}. \bibitem{posix-2001-diff} IEEE Std. 1003.1-2001: Standard for Information Technology, Portable Operating System Interface (POSIX), Shell and Utilities, diff command, pp.~317. Online version available from the The Austin Common Standards Revision Group, \url{http://www.opengroup.org/austin/}. \bibitem{info-diff} \textit{GNU diff} info pages (\textsf{info Diff}), section \textit{Output Formats.} \bibitem{max-rpm} Edward C. Bailey: Maximum RPM: Taking the Red Hat Package Manager to the Limit, \url{http://www.rpm.org/max-rpm/}. \end{thebibliography} % Add a "quick-reference card"? \end{document} quilt-0.61/doc/quilt.pdf0000644000175000017500000053775611726705776015551 0ustar mquinsonmquinson%PDF-1.4 %ÐÔÅØ 3 0 obj << /Length 2251 /Filter /FlateDecode >> stream xÚuXI³Û6¾¿_Á[¨* !dNãÔ8™¤â,õÞ”Žx"$q…¤,¿\ò×§¢_D t7zùº¡ïŸ¾ýA¦‘´BÉÔDO[æÂ&&Êd*t¡¢§2úÿ§[©,>­Ö:QñÓÊqÇãÇcÿ¹úŒ‹ž ªqÏ£÷®Eú+Ï~DZ7øÙûaõéégœEÒm2E’U"2k£µ’¢9Kîú°õBÉu–‰"ÏÂVË["ycªÁ·«yÞº–©©É£µN…Ôï~Û–½wˆÙ?ö ‚ÿY¥2‹ V?;¸º…«÷oxÏãññŽlü‹{öÈ£B™ÊPLš“ƒ1¤… Æp»þèÛ ÇÁ‹ÒßWN •`-ŒIùØ«\Åþ¹?ºþ•E*´P‰TÌG'QÂ3²¯J…-@¸1"×AøÛçaìÝf2_±Ø¾– 6× m#¤ Aóv;úínã}AóRµ;¦¸‘¿eõg"µï=X©ˆ~WùçÛ.ð)½«g§j°¿ÛŽhäòp½gêMžÇ/«ÄíV2æ°#“æJÃ7»ÿ{ÔHé,ÞtíP 4±æ2ÞòÐñò³ð6}u™É¦«kÏyÆA$—A¤%C Ê‘Raî½¹=J‰LÓ¶¥EÌdÜà8•ja¹ôÜp Uý/Ád6®®1ÎeŸúj}Ëøî}}à†SØÈ±£†l_Õ¡öLY›®-y°éš¦k¯v]8$èØ¸b¡9¹Ññ膗A»©%ÂÅE‘@úiȪL2 ¹Â,Kå´dÁwB¹øHs%gl\«Ù‹8èê’¥Cï¿#i’ÇŸqæÛ3—ɺ@Ù°iñù–ƒ ©ç|Ë0ò¦V7’Çvâuì7aé„ç»T›lHÈÆWyéIï”RÁØ S§¨]íyÌÎÄQ »a=í!DÐåHâ›ö‰3ÇùÐE‚çxM4‘”ñ¡>¼3Èf×çñžUî\áŒX$Cƒ½]YVèA DX`F®ÝMØ×zj—ˆ_<`]ÀÑÒÆ+žWŽ`âtàÆ¡AH ±¸6€-Oû»º³Ùz™¹@½‘l²4˜oàÇáÈé‰p)A«Zr+(\àëBbèELò £g@a/ÄzçÅHQÜ‹Ýß·©(Óv:ÅÞWšÂ"ØO‘Zuyi6ia—.ÖEn=ðdÛ  BÏ[µe‚jßÓš‹Ÿ¸Süsƒù¢?µö.ˆÀ(E© ãwYm_¹"mVwá,ÖþÒ-\Á.Ö¦áÂYSÊFŒ™:ÔNuœŠ]ëûÐûѽ<‡£ŠpXÆ)¬tüaïC3ö …  U\MQ+CDÙ9Û˜zà¾iRýͽÐd!û ÑÓ³ª'9¯žÿ…šª8gL‡£3³¥Ë>G1íæºJžCä.¨(-Tú-  B= JÕPî¢,¨i,Â\N' ƒ:€Œ)äã¿‹laëm ¾A¹ ˆœ@¶œ«;±8;P„(¸§›+Ž‘¡"yK•¦wj’ÑÈÈ+ôŽ<éýçjðåw«5$}Ì\B&ã2õ†ØãäìMœÁÅà.$À¡¨×{&¿Ô)a9~9Þ•aK!Ÿ`-EÞ·sF–¢‰Õ,øÎÁ ¤ÞÈômß5<ºD&’é¦FÁ¬íƯgí[îÌž+Ê.(FÍú,5uEÍ"—–€€Í\Ç_¨mƒM©…?7“FŸ=èÃI;ÍQe.ú/Þ?AwÊøGèOkôöW3xÜW_þ‰z蘲ŸÄÉŒ@~Úׇª Æ,k®ÊYH[ 4‡§_1Œ°{áe2Ëõ{™PK•e·b&õÞMâ–Û)z3kçŽÏ»9`F¹¹š[¿sç>Ì^·eçÎÖB39[¦:žÖݮڜ÷ö¾v¡í„žÐw•E©¾ØuŽˆPÝõÐÒ¤ê2°ó#ï¹N#¤ðö®Áž%W*ãÊ¥YQ¼»‹02ÝF.AA"(4‹ø.™ÈY…#Æ\¼ `~û*âU¨ Iíä$kª\¼û¬;¨üðîéᯠš'‘Œ¤†‡^–C’Z‘6Ú4?%Q ‹p9¡‹<:ÑÖ¶Zfq=>üñð=þ¥¥l”ŠÂZYaà /²"½þwG©ÈÂÞDâ^x„IüJäRóFþË€žƒVó+§?þþ êjãÛ@ ÿÀ§YZÄÿƒ‡1¯ƒÃÃ?tø×ÿòöG·ÒX4à„k[·œ ,¸¡*ù%…ÿAð„}H%µõáƒ1€B*ôœëB@–Íe¦ .ƒ{Áí›Ò²ÏÙùÂÐ"&`ÄЇ‚¬¡vúéÄøe¼cD ¶/æSUAÿXúû®»ö›Wpez=Óúõ{iü¿Ã|dƒê¿Ùè¡ÄòX/Òô†Gx7PlÀ*<-åÇ~¹@Áü™BМ"ƒ&h04`8òƒa4âßuɹ @ÿò¾*‡cÓPÓ_«Ý~ÄËãäß=šÒSÒ4wŒ)ß5?žQ‰WÖáCUוkxò¸ÅÜÄ/ ¹˜2ëÿ¾n­@ endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 1 0 obj << /Font << /F15 4 0 R /F16 5 0 R /F21 6 0 R /F8 7 0 R /F30 8 0 R /F29 9 0 R /F31 10 0 R /F32 11 0 R /F33 12 0 R /F27 13 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 19 0 obj << /Length 3247 /Filter /FlateDecode >> stream xÚ…YK“Û¸¾Ï¯PåDUh‚/€GïÆN9‡d73I¥Êö¦ ‰>d‚òxòëÓ/”†“= hMt£_·~y¼{÷ÑlаÈã|óxب$ un6y¦Ã8É6ûÍçà0ØïÛmcŒÍËv—dQPõ<¯éçb™:öð›Ay>O01inwi‘}+Ûûƒ;Y>7ض¬»º;2ý\޲?YÇ„¶Äé o>ÁD?b·_ÿº‰6;¥Â"“kãeR£ƒoÛmI <6¯Ý3­¬†Þ9Þ\òÏPvGËC¼$þ^ÎnlÙò™ÈÄ®î;ÇùLU^œœ±^„ëàI=íê×îëΡþ©´B!óàÐ8Ð^Gùâ8sýaÄ«<£è3H=—Ÿ¶Hw´÷¬=;Vø& A£–ù^ëÎCxkZ;ÚQh—‘) Œµ›¿t~#I‚²Ûã :k÷L"£€ßépraa÷åh÷!ñTiX¤é5ã[¸,i ÎE XÁûÏVÁZMâ¿ð2¨X³üåÏP~‡—CkeyÀFÛâI¼¾$œ,µ¶LÇÇÛ”cÍ–Gvš§Ï÷$ËîJ˜\´„z(®MM½@ázz‘"—oëàòIŽéÏ5l¢‡ÀýbH,Öô«ƒƒ-]ý­±ðÐ9¨ù=S'y…‘¼°á ߺ¶·öÐ'ò?q¹]œDÁ¾ÿ¯Eµà™áïBy ø8SÁ‰•CçÄsУ.ˆšàs£HŒcûŒ¼õ4*ÔÎ'b9t¶á¹ë/Ceý5¼@kò|‰²hf±ãÓ;Üùîc’.âbŽaQÁq:‡iø“w-ƒg‡Jå~ðVh늎G->gO^ ³ñTv<‚*×AE<_hõ”¦è±¼´ÇèW—fô¡0‰ù‘Ù•G´)2B“…FëW½0cvÒ’ñ©È⹫ÆÛø+)‹Ø(ù¬ÍÆ)?'¨XÎ$@ã$‡¹ u‹÷þ¡àñ„Ÿjˆè÷t¸º´¶JµݸêâœõQU‰$uñžs޵ßDáÏÚ²!oD"¿’›r DDgGÇD‰‚»µ{Þ<]R¿Qh^Æ•I¨†ÁeK®hP6¤ mgñ¢{ž~ó c4þ×Gq˜¨Ô[ËþÚFUfQæw]ƺ©Å Òb˜TFb8^Òxí¯ V¬Ò7.°‹cU\½ó6#c9­¸K&EñÆUHwIðçÛ'Œ‹bV1NM€Ù²±¼é²-ñ™pB:Æ{‹{(ßÝy>ÃÈ(r…ã (C˜ªðe(ÃëÐ?Ú_Ç 2\Y[Ô[jJT˜ÌðÖ3*£B­é†XC¡ßßþþðéß¡âÉçä+hÍä9 $µ½yTõmÛ#£@”=ìL*¶žJ:19ñ¾\˜ÇÊ«g`vE~­KG*³øöh=¦A?É Ÿ¸-p–„y‘x)›A@ìú‘U?'ž,2׳SÀX4¬³9ßhÊ7†óM–f”aû±§÷™¶·®êóŽ ïòà7—«Þ$¶AŒe“ bè«'^:ÁCµÃuûPà¡*Ñ^ùÛ?¼™7-%ÍB­gÅuA[gÊát‡Ïé×Ð,<˜ßFV4zkòK³gŸåa</8Ø„²s¼>ð¼–C#EiíYâñÉ'ÿÕŒUp‹%š¬¡ÜÌN¬'ïFžrÚ>oGb„˜©Š¹Pа&SÈ}à÷PV–×ÈgÂïŒàß1¿ÚS:€}Ì+æ@ƒEU $÷èS7 ·Þà‘{Œp1[a½D(?ùCQqHÓÁ,y*. ¶²{ÙZ: Þ’xs#ù‰SìãÃÕ¨CŠýYÃóOëçóЗ —ÆX­€¨ªo[‰ÛL <[†i$6±íÉ‘Æ'¨ú©c{èøxéÖ²œ‚€›NYîû¥nƕ虄Ñu,öìÞ÷÷Lû½gøîFHrŠ“"Lô=yÐ`L%Цï*°Bw]þ€û ýq°Î1À‡ã Ëa/Q¡,HlÏ ¸I5–îÉ…¢ƒ1Tb1ŠúOb°w1‘ŒNÂ>Lï‡!𽼠“u¯uL0_ÇjRÅ%mÙðÄõÍ…gT‹â`.ÞØ\×Íj*ajH÷Hf·Ñ¾/@ÃF¾ÁÖ;1ºÂO+Öíîã7cðÙþìScÌPÙq`¯`™ùÃÔW´g°2¢‹"/ðe_‘¾û¨7yXèİMÅ¡1jÁ_ÉUÔ ¼Raï²[ìzôé ¦áÑRK±„#¹2›_š†àn7Èš0•åtÀ­sÛ"1TÒ<ŸêÉó2~…$ó-<ÜÉ€JóÌ,°x¦¯Js)b&&Ÿ›À  îo5 Fé=¨BÂ%_z’$ŽèI¸æ‰òÓFy4¿ƒ©~8v¼Öú„. ý<@ÂͪFŽLf»fF<€XQ#ÌX¹>›FØ(‘ªÌP±Ï8È=Dq DCã•oò«°h¤p7T»Àýº1u“ÛÀ˜pgß\E¹ÈÁ— Ç)°ô¼"ÚZË&¨Ý¹`[ °if:ÿÃ*" ãlÂ(·­Ÿç¡Æ¾  |è; 2bÝM((ÖSoH Q†QVÙS¬UIž®nÏ„¸ò”râØRmð¡Š:Q cë‘î@M%8 A²£þäKˆ]ô9„ 5‹æâ9—¾V¾,da"–¾ K<"Å ›˜(¶_Ïâ᪱I”ºÛ[Ù£E'ÖPÛܱƒ‰«¼„’W €«åeì[BA4#q‘{ Zõz/UbB?AWkñ$•âëÞ.ÞuÇÅsÁw‘‡¾á{q£my±©Ÿ¦Þî-HŽ‹0Ž'3ýõ_+ óÀ{¯± ÕlÆÿØBýT·Î,žÊ±¹ ·œ_3;Ó ‰¸¾+¿ÑƒÂ¼lˆuSËP‚|”…ê¦EH0=˜=Þò¬*ÇD`Å`ݘk]"áJ—ÄDt‰‹¹±>ô—ãÉ÷ÜŒž¾8z¾„FRU<¯i.¨úáÉã¤ÛÈΑAi¹CxNmËî y‘‹ç>&ãa‹8©dÖ#<ºçÿ0©p€3'>âê#wòð»ø· o¸pö_Ûß;fQ‘3 ã4ÙìŠ0ÍS–îZ wQøàpP+‚©Z=†œ·¤ ;‚J@ý¢’”ÿ鎈\?x eçQ’;>MñD8¡ëÒƒ\É.­ ÖÁÍé¯È=ei,Yܾ’[•ã|?1~”sñ—3 êŸÀñç$èh©–tÁ¤–¸h«‰JxÆyqJwf®„(ùÿ¯ WGu¦rQD†ÕÔ£0©×q12â,x ”ø^À,¯„”Çt i¢©çŒî¬ãàÃCãˆðÔÇæoæ_ÄàG>Cض¬ÜŠÄ9ä‘éïIx7ŒTך`àz… Ô3Y±¬T2¯pc½¶|å\‡zÎjgúcyúWãêƒ T•™›/º ”ÍdÃÈÌ}áëì¹ËŠ0+ 6¤&ÔJù„­ÿ1îºG endstream endobj 18 0 obj << /Type /Page /Contents 19 0 R /Resources 17 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 17 0 obj << /Font << /F8 7 0 R /F34 20 0 R /F32 11 0 R /F7 21 0 R /F23 22 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 25 0 obj << /Length 3067 /Filter /FlateDecode >> stream xÚ¥YIoÜȾëW4&‡P€›f±X\’“mØÈÌ’3ÛªY­&Ì&Û\¬Ñ¿ÏÛŠ›(Û@N¬½^½å{ _ß^½|—î2?‹Ãxw{Ü©(õîb“ø¡6»Ûb÷Ñû½¶×{%^säo’sÓõÜÊ‹o×&öòú` ¹\Ú&?\‡©w²•ò}U­}àöš¶oê¿ËÌ%ïy‹\×ù½Ý_¾ý÷n¯"?‹"ø*?3BÛÙÖ¸©Ð±×ÚòÒãQÚxÕgÿzåݽ0Ÿý©iyšcý‰¨‚Vq­¼æzÇ:7áswl†ºàfÊ岺!¾àQ×{åݼ» éb¦”U~WYzD°$¿kª¡/›)PÚ{À=ÍPÜíye¹9\øÛ7ò¥kTèu¢ØÊOŠ<ÛÚ¯CÙZÇ9^<íÕÞ͇›·Üú‚ël[Ûjß5C{Ø$öÂÒürmŒRyÌ#9PéÔëú¼í­tÎHg^y-`Nà <éÄíIü¸| N L}YÉ‘'ûÈ­;yr~Þ¤óAD¤e‹Ö@eky¨&jxôc*'¼|§CÐ}_Gqˆfê”-æ5ÈW…Æ{?”Uÿë½ ïuÞ•ÈíÄxoÐzV;è?°ñ;‰ ¸š£„ùš¹­Á%¡òÓPñ%¢¤(¼s^Ö…m™FÖS=ê©öŠ…’ŠòG^Qv‡¡ël7¾j'òÔ[–šª²‡‰,Íè ã‡*úˆ®¯øhÿ)ùû0|X»äýŸeBêÞ:fÊË« •(xû…—È;CÛÉ4ì.kžÌùÓ•õ=N Ó‡¾iyªo­E ;½)A<ú íÖ¶>Ž_/žGCs”)ˆkÀ§¼æêXâY¨0` ›JÁǶ9c È%¼x|8YÖ´u v"ÓéM¸\d¢<12„gpëS`‚q ¢¾O7Cïq¡ì¢›²;6 ®ðÔ¨k"¬pƒÔhË[z$2¶¡aa××IÛb†/V =w Iê«Äi„Ïsxª*öC£Ýºæ»g†ÐLS·qÝÄ“#u4_6Ó€éÉã3pOù,çÐd¾Î²¥ ßL‚Ž3T/å!W‘{IÀfãÌ86홇>)m1%L|¥ ;á ‡s±ñ l=t«y·h–gð-_Iàûßü÷†œn‚–"D<ÊD^‹Flj¯“åCÑ÷^Þݵö[™32ã@Çߪ©ï—#ôtl,}ŠÛxÉ[Fì »{h 6.2’ N uùu@;M2ã½ Ø@ì¹ jïÒ–“óüj΂d'[]Àzû—Ì>à`ë91Å)\´–¬G)ÑaûÓSi*Í4ù§W@£YéÕ{92Œ$\鸓óÜ¢¸Mê’žÁw t,J7Š”÷i?‹˜Bç·°q¹T%Y5tí&ïàú(g×üí›ËóxÇŠ‹¢Cã.ï¤å°$ö.ÕÐq‹ ›†ÀòlQ¢ÒPwA¿‰´ÓN˜cÅ£&ÒŽ¡;1,ÅL)ÞÈ!—ò.lÐsâ6ÀnÆË0N /·bX¯$Žë‘‚§¢ŽߤÊ-GyÁî†T9ŒÍ¡¹ˆY|ZÆ¡yñÇ~Ž@~?“- Éë°øVðûiΩ$×§g°†”¾àI.ü4‹ðsh¥*^ªÄ‘D†Ú>²ˆ#A@ƒ|PÃÚ6 )# )§¥ í¶-­L"xTÖµ·9‘¦~¯e…ä §ÒÂ(m NE#ˆû­\# Wq'²ÄÓ[Öï`¶híÊlXJÉÞ`iÊyîM:¡Z?)˜Lx l‚lö¦3ýÔ˜#É»#¾7ïŒÐ'þѹñƹý¦ ? Ò•¡hHÈ;çÔec4“;.¢ûê¦æ+°ÀhÅü ï2¡^¾.Ilûò0°ß„ás3‹„aþ9e‹À†ÂõkaÞd tœ|{h’z㼡~VÔqèCÖ¶2ã¼ÑëG¦½°Ç| À9‚ìŽl ibpôá÷ü&^*éEó$*ɺŽI6Ì㦓„Cz¦êìùŽDÀøÏ“Å›ø†Þq§”AÆDh¸˜Ÿpæa|æ t€§¼¾·Å §5M7M¦<)÷¸$¢ƒP´ânO»ø ²4æ¯iC ÄÝ'f,Ì&¾@p$YnYpj…‚̽9…ã’“fL9µàÒðHbR5ÝJaê½+ù°$dáÑÐá“aÚ˜ìl¥Eï‚o>?2!]€î:Y;ùoÜPðÛ¦qð2wæT®(ä>¶ß€á´>7Ü&AË™âȇrI]Ryʤ„‘º ´å}Yçs‘r¿nsÃ(йJº·R“2à'–­j­Ý "önÏ–}bÕ"€½÷¶Æj€íx GžMÀÌñÕ±Çl WptM{é^DMÃ’¹“6Þ6®™ëùVÊi¼vúÍJùÙ>hF(A¼õ;t6*Iô% Q”PÓÌ3é&zãHÿ87‡dF„ý ZðxÊRT8"¶]êMãð2á&À(‚ñ#Õ~´wåý@ ŠŒ§\ü•>§Bt9ÒÞøõ·ëBd\yõööêëÁNíB ™äÖ:Ð~’f»Ãùêãç`WÀ$È ²Øt÷@KÏ»2aŒªÝÍÕû«×X»]ª-äÊ!ø{<ÊÀJÜûê:¼Û7ÿz{³áæb?JÆp…ýè·²mê™O…'s(Ù–JÒGùИP:CG -òAVG]íĶ-à£ÃèØÏ‚l \!Îf*CubÕ‚ÉÓˆ—”ž@ ó¡3^"…›–×~÷Ä;¤ì‘v 5ì `¢ìe¿º¬ŒËÆmµ]Y–+“¼ô™à'¢W‰öuïÂ$ƒ@"ýD¯Œ 'Ùk*ÚÌ2´YÔf0ýmmÖМ’ŸÇ£K)”e¯:\:°I½ö ·«¤ c„÷0Cá<»Ð4•Ìxjðt²²—²/®åFàmNQˆQ#ÐàðêÒ1a†©):4® £NU6œ· ( þ”}s|;HIH©Ñ¯ÑüÔüiR¿1…‹ÝŸåè‡ÕC7LçP|›€c.ã}\CÄy*ÃmPˆš@Ìg{npN­Ë_:ö~­7Ô-}•¥?Ô70$×”öl>²y~“1–& šÅ-‚XL, Ò‰xˆž9J‚˜ž’§(Y,U¤à[WÅæo Τ;VYqtT•+®¸0Êë\…:—:óx[é~±Ñ¢f*go@™æ¥ëïX~ èÿ„³Óda/ŒT±ñM²‚ª£ •¦‘Ý5W؃™sã©Ý/|&ZŒµ?Õ[¾,†O}!ã>ŽSï·²v—;Ê8ˆ&p”ºÃÎR?Ö«?2$ŸH¥+›«LªÕ%74pÊ;ì·Íþ«EùÐÌlBú9/oùÛFáæç5¾Kâq`ü} ™âX‘çñÑ”ƒÑÚ¢@'Œ9DV³?¸û•f?Š×3t»&-ר™9Y4Í|VÏ3k¼‚¡+ gIÚ¸Ì ¦&¤L¦˜Åv}€'x¯ ¡é~•¬€i–±âc¡U®˜M~—q½!Y¹ àBF¢\íŠÊÈš~¯à(ƒ%ÍËû«iv‚EP²A8ÿvÎLØÊVŠ9SBL½B‚0“Ì×(0¬‚™ÐýÙ–¨ôÌOо endstream endobj 24 0 obj << /Type /Page /Contents 25 0 R /Resources 23 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 23 0 obj << /Font << /F8 7 0 R /F32 11 0 R /F34 20 0 R /F33 12 0 R /F35 26 0 R >> /ProcSet [ /PDF /Text ] >> endobj 29 0 obj << /Length 2425 /Filter /FlateDecode >> stream xÚ­YKÛȾϯ rY 1Ûì_¾­w×#ˆ‘1‚`w’3"†"µ$ey€üøÔ‹)QÈeÔ¬®®îz}UÝóþþîíy‰J£Èy÷žq‰2V{Q¨4ÖÞ}áýº9µÝóÛ­špãÿÙçRjûûý_=kTjÏ×À¦Ìÿoá9dC¾+ûË¥}ÙUeO«Y˜È­Ù X 0ª¨ìé+ìú¿²_ªpÁ6MòË“g‡C]•…/ŠÑjg”ÂW Àºe¿à••æYy1ýöCâ¥àV¡[ý4VQh`E¬’8檧cWn}kíF¿ÛúÎ…›ÏǪ˜ô[ ] JÒGÕà¯ÛdüÙ·Ç.—¥CW–|"?Ž•N¬ç;­âD|ús‚lÙ•ÍÖ$”Ú1h|Þ'4›™’ÞLEÕ•ùÐv/[°‡d_ìE 6AnHϪH‹¶æZd¢yþŒé~'ê^ئÍQ7´÷|Àp%bâˆåÕUqæŒ!?áo~ì(2ãÍP¿0iŠü˜6F ƒgͼ.£]›w//”†S¦“1ªÔÖµÞ|ʆ²ã=O;8"Ÿ QŽÔª?«l/ö©lÊd¡B:¼uþ0QΆã1þ` Dþ®|„¤_ €0P.ZÒÁÙˆ“—>H®øMy‚sK+F "…ó‹ÑXµF&ÊÜ;o÷ø(øT§j؉ù âG‘^Si)L`ëúªm¤DPò#ôkV È4{YBxúØ#°²Æn®Œ³Êž#å/ûÂ€Íøz­¼ ”¸Õ¨a¢ât©àÏŒ3ùqâl¨÷ô ]YKäš2 ‰Îc¨T¶Že+F%¦ã ‹BÁ©nOUÓP!A%%0eüyÞá&f²!c¢(+· büÍÁÏÇ?Q Þ  ËŽÝÇ3„Ö85”ßaÞeÃÄž—E)EX“ÇL–MU—?)_Çe?E;ÕÌŒ-Ùu»Ä:ç¦~Ǭ5޹Â!­f7¶Ï¤VÁDÊ<Ç¡‡ßÃ(­kÉKíÀŸdøùüš¸CS;6"ÇžùæðxÓI‹âð†%d,‰4úFÕJ#eŒ¹„ë`×ÔŽôF5òc¨ lHØ×e`²ªLU.Þj%¸ÿØùÈgöd’XZ[8}é;ªSi´Ùg/ü‘Õ}Ë£s‡‡dþé_öÈËYÔÖUŽä*W½É3ZOCõê˜*kÆ“ã˜àŒ7E9ØÚÔCÅ]¬Øe]ÁÓ ñ¹ÇÌhüÒC(CýKøg¸¢IÛ`q´&…QɃ©…ñ´¿‘Ò ¿Ò°ÂˆÛCdãÊAd!\‚f=+vT6Ø sjÈ®ãÂX«\¸ÄÿµêjŠì?ýñÁ?ÇÆâ¸Ù ƒä¢†æm#ÍVÂÝ!º¢ZÔɾœ°s%›þ¹«Øé²±@·v8˜zÕTÚš4‘¢„©hà¤d¦Ž^±”1*H¿+ƒÂÔ^gmTÉ˾—"Qô±ÅBè×L¼´¹ÜÅ!>±¿ðWË»c;‚EŽê ¯|›@¦!{–±[ÞfHÕ:šc ÷äñæ™é7C7𦗬— Ía%z•Úè¢ÅÁ##z‘öV‡À^ö\ê¬Åuio1»cl/O^ëÁBkWšÇU=6¬U3BÚZx@¼'‰þ>€5áJxPWÚ lfǡ݃ssBŽ™ªÍ¥…àv³¸¿Ä‘t¹8‚£¾ðˆ“ æA 8Øbò=Qv2UBu.è.3rñ(ˆ6Êåð…0¦‘¸^ødq^—Y³†ƒXO-”= k×4FRB5fÅ­ÐáCï*¦ûüåã',K÷Èy÷ËýÝwhþÀÓÐá9hßMÁ½%òòýݯ¿^SphýïDŒ{Ϩ4ÁH®½Ü}¾{OOX‹Xw±2À¢\"oÿiÕ«:š¼Ï©ýµêÚfv)w!¸)DWT?3…)Àç†íc>Ì“%±±Xg×!r"ä|6pyJ.bd©óþÚÞ ePV'ßʲ¯^\¡`x[z8JŒ‚>rÌîÈh£M¸ù‘"6Üü"/W›A ©£-Å'À|T,ÜM?à5M¦w-؉?šRË¢Îä]É:QÙN½¹˜wX s(x€³a•ru‘m°_íÛšýY(n?•Ã=ÏwR¥ 9wºý®ç¸É>ßÞ‰Ù¯°p¿cû¡©•þ6øÀ·Ïºç 䟧8©0àà¡­eþþtuÙAϾ;áK&ñ$€*¸®{~ª\4{Gà0OfZ£v‹W#’¯˜IÉ j¥#j™¹\¸üCóx+phÉmA<½•,€07µÊtM×'¸€€õè¡É{’í×ó 84&W\¤ÑU`/+¤É‹Ôåã1«gNz,Jé±HnT›XRzfšÝöÉ]N€,tÒ/5=å–Aãä<”ûKˆXUÔZELùŸ€öAœŽh/9òmé©C endstream endobj 28 0 obj << /Type /Page /Contents 29 0 R /Resources 27 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 27 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F37 31 0 R /F7 21 0 R /F34 20 0 R /F32 11 0 R /F23 22 0 R /F22 14 0 R /F38 32 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 1969 /Filter /FlateDecode >> stream xÚíXKÜ6¾Ï¯Ðah0#Y$E=,;;»™Ý’ä{š±‰švç×§ŠEª»Õr¼Á"Èeû"ªºX¬*~õÒˇ›g¯Š ŒËŒgÁÃ6`i猙Ìc.dðP?„oÔá6âYî+³¹åE¸S#ªAáB†›AUFÕD=h³»ýéáëg¯„8—ÍË8aeÔ_&ÝÚÝÁ–ÿ\‘ÇYÁµé Eäl‰_ÉC8Î\8e1ç¹gMGâ®è º9G²º±é+ϦpM8ëénµÚV) PÈ¥ÉcY (õƒuhnï‡Le,TOzè»–Ö(ŽñðéV¢Ãuõ\q„(bžÍ–}õ×oÿµÀrŽßqï2¹}$ ;í¾jG6^Ó‘¨n­O†¼Þ®(±< ðù…õ¿£_^p¯ =[ˆ°ëñ8‘†£2÷îŒôüV³8Iç$ö¤¯åâÙyº”;€5 w’YìÈR«wžÄL– v—ÂáôoL.=Ìpië.¶MPC Ñä½IC¼'`~Ir¾…l¿»Þg ¨œ•Ü;ÉX ð õbEÏ…äk m ØÕÛw `›æÓb”_í²ï.¼I#zî×͹º…ˆñ8O8b|*è¤o”ù ‹¼€Ç©U´¦@+GÚöMÓcàl¾BR£;å6´jp¼NK»¿_«{¨‚,<"Þºœz់đDz˜Ã«ž†Yô/¼<_ñiÄ!ò‹T\‚ÈÆ:úêçIoܲ÷—o.ï|l”ÚÛ£ìUUÔèÚ¤©t='Ó³«û^7 q´Õ{'¿ò'·èyègR[Õ˜ÁqYc%^‘üïýŒEoC§<.ýäh¶E›åY+siܨÔÿ—è Ä˜Á…n Ô\³ó^ ÿš³væÒÐæ6‰˜a)Ã?MEè%À9]ÕêG;%a›¹E© ƒÚjÜ­€–¼8k,%/­E¶,VÄ’-z$DÉU¸~²^åÒ•Ã?ô£C[®rQàaY&P’9Yb-­É…´Æ“XJþ±¤qfÒ ‚â‚yãoÕ¿Ÿý¡øº«Õ‡çÕªvß(öì2?-·üýÿ­‰¢èR¸ôã't¹»»ûCºñ±Gü^ÐêŽßg´‚ÿpG Ø/NrÞ*ÐÓ€•:c|¢>¨Ýçáû5e^ºÎѽnÞGPñº_Tý4ìgÉt^ÿ¤>}zõ„+zhFo„O(+Ò]¤ëFA§”D+ޏûÓR¦ÃôÝŸ—3ïþ‚¤ù†²f§8þ]åĹš©»=ô 볚žF›÷öµÆ¹&÷s °ž¬p²Y©Y†Áq92ënTƒ±sAµECšÌ‰ÿ:WÃÜ-Oý§‹{óSqÇ´›&"¬¸’úHGí«Áq‡Oãµ8îk_"²¸3?Š1éîB¯0BÆ4¿®(IšÍ»ïñËDŽ=)  ¿A1€H7xà ³Æùô‰"õ7G/‹á‹ˆ^=çF_–yø¢ÁDSýdÍhÜìºR3tæe¶¬™NÞêxVÌÜö…¶Ø³†³$$ `sžŸ}lp]Ö¨!1©pönÐé|ß¿§ÂJÂi¦™JzK´™sî5Îë³  (öÔí┹m¡L·†ô4ž§ F CÑšb3u#yš¸.Ü"Á„ÿƒ{Ö`ˆs¯Xö.È_ã' >ûýz})’Åy6ƒÐôÄ ùÈiây)Ò…HæC’›ª{TN}§2]_×g›ä3G@fUÏWúžC–}j*;MSÞ ÿ7#kÍH67#ùy3róÕÃÍ/7˜?“€L@O„צ½ùá§$¨áO‹²–µ–> endobj 33 0 obj << /Font << /F8 7 0 R /F33 12 0 R /F34 20 0 R /F39 36 0 R /F36 30 0 R /F7 21 0 R /F23 22 0 R /F22 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 39 0 obj << /Length 1940 /Filter /FlateDecode >> stream xÚÕËŽÜ6잯¤2‹ÆŠ-ù¹=%m‚¤(’4Ø"(šœ±fÇY?¦¶¼Óýû’"å±g¼IÚKÑ“)Š”HŠO?»zðä…ŠW©Èâ8\]mWA‹@ÊU%BªhuU¬~_¿2^$£õVWAþmÊéS•ÆTšàƒîîx[µÝ=¾øãê§•¿ò_dQFÇ>ÓÛ¶cžº¬n¼Ã®4ú1!šö@À~èöãÉ¥Ùñ}í­~Ô3¶šb~CJ7ôŠ>ýN#“µÍF_Ú‹î½r‡}ÊcØÎµpÒWZïËæšVúN{UY°îU^K/ñ¾t6©ó={Ø:çsÛÎY{DÕyQÝX´F/üëè(£Aý—3|y˸M§s3tg&uÊõZÓ³=/ }ô¸‰ðDQ™„ëAMðôVXÒ­ð€¿#ü°'-€17ÖÑ‹ž‚”÷¼ æ5ÉÓ—†No;ÝïΟ&ò…”‰ãíãÀjßðEè3Ú¦™n'82ìL-zË a’ÍͱíÚ¨•b6®{“[¶ÂߣW ©;HNÕz2R»?×K%"ˆY.ùÐlR¼,I†9(†¸Jˆð[ŠD¾Á™åfUä$ ¼#BÍI ²›¦L¹]ãä˜s öN¿Ïß^··cB<¹ñ´b¼ƒÚÕv#õ›ºka c1±„W ˜øu;QHsŽÍ÷ûª$§?MV2»œg«× ¡â)®+m°¢))×yßX_”T” ÚWðFÊ=ãÎViOM*Ât$? gå|Û˜0âl†ä‡@…þ7˜ë‡—ÓЇMËÞv¬¤ g&Eà‰…wÁJfBÉd'/LÓu¡9 a”‰ÁÛ «á®Ž¿ª²ýd˦ |ßui&t¨*.:½¯òæ{&15UA* ¶ œ 5M݈…7•ˆã¯H(É›1””„ô”œØcÓR‚Ï˦¿\ðs™ˆ8ŒçQú›6®6w7®ËàÆã­ˆ>)Æ[K®Ÿøaؗű߻\ªêÿ¿†0;iéQÿYKø¹p–®QÃÆxæÐCJ8wš(‚2¶àÞ;‚õqo£‰TlX>Ã8D'²·U-”áŽp˜€îXˆJçX‹ÓëWªÒõ{[¿p.$Ó1ƒ;w?ôKÕÜ3q&ç~:Õ!±:@üÞ§FÅgìwÐgþEÑK2!}µTô†¥B0ÊŒ¦{ÌG»R ðµ6'rlÛª"•¨Á€=¨`CeËe%UÙ—êåĨŸ)WOñù¾X®˜ØVž#qéââ¼nM¹^Í Ñ}Ð÷ÅÓW??ÿ‘˜Å•b‰—l—:MŒßGOô<×1|ÒÃQW6_)5WÛ·Ëm®üÚf×ÕaN>ø‘¯È-›³´áma3øÊbý {Z˜ÙîsÒe†ºlòö ös¶A…ÅÆ‚•mŠÃÔI†´coH§¤<úàÖ.玒fÀ°õ°Ïüõ[[×–ØmE B‘…áIE‰#I¢"À’ èR-¬À -°¬ÙP‘‘²m5¤Ç}ÎC"ºo ò3Ðâ“PE ò¶ ! íÁ1Â!de ±¸+Ý †| ðÑB=ᬉPx¶‚Œ “ \³ù  ´XœY/„ ŒC};X?±ÈN3v‹ã/¢´5Í8§ÄéqN2~¾#¾ª8&È’^.Š|(m¯Ï6‰­F‡žq#èÂ騭HwìØ’ØNê°¬£¥Ê&:#·+RIpXpM«5ÀÓÙ –4'ñññqá&/žƒƒ‘µôì`ö88›ƒásÓ–gDzh­$à £.ɇc¡‰=1D­kݵ_X€ï@• œ>qiæsÔ3ïÆª%¶ßÁ=ÞVu»°µϵžlY‡ܨ[z®Y ‡¾O¥/ËðWö'|ûá8gÇŸº‡÷ ƒˆ]8&ÞŒ¢:!Çì E¹(˦ƒ){àkÚå©¥ a5㜬oÄ’OiR™™ˆ¦”©ÿE»Ç)rš@H¶„eÃD‚û,°‘LrÞÈ{›™)‘ÉÓTƒü{kkgX-¦›DøAzL7äm¡žBw“fí–Û0k®_Úæ›û[ JíÀVd„fܳÿÔÔ˜wX+ –/è¦|¥K=ãû-è}ŽÓØb÷"¡' ì_´/w/\3ÿ“.f®HL™]"å!F²ϯü Dué¹ endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 37 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F39 36 0 R /F34 20 0 R >> /ProcSet [ /PDF /Text ] >> endobj 42 0 obj << /Length 1948 /Filter /FlateDecode >> stream xÚ•Ù®Û¶ò=_aਠD¬¸hKžÒÞ7EÅ)Š¢íƒŽDÇìÑâ«å8ùûÎpHÙ²é“öE"‡ÃÙ93ä·¯¾y/ÓMΊ4U›‡ý†§œ)žlÒ$cB&›‡zóûös÷´‹‘lÿÃéÿþ݇¿ÿ/ˉþ‚íþ|øao"³")h¯ÛÐÏ«ßÓßÁ éK’QDÿ±|6ÝGú/]M#M¦žþ{Óhýô¨‡¾cÓ§‰æJ’œ$yw<6F×ncÓŸôÀj³wòü'ñ¾*]¿%@§u=zÖûA@áHø›÷ù¦‹‰-qÁ²XÂ?c…”Ž×~ÒÃ.’¹‚ÍQY×V ™ƒäMðÆtz$ÚAÏ;‘oõ0j%~@öÌg*Pϲú#æIO;‘m­N;ŽPy+«JX,3¿Œ .Xš§å§Ç]de"Ó)Š,ñè¯Að"CI`)1-…ºœ´uJ$ ÎR•‚½8øÆEYEÊí±œ*Ôã@Ó“™!SN•{®ÿŸM3¾óT@Θ.š3G³¸ˆü(/€hr¥àÇŒ¿¢pp¨k3]G\(îow®d[º«­?¢U4Éá6jï¢p(œç,¡º²ÁÉ9ÐLßÑj¿X9ÏYÊå?…œ%Å ô©4Ýø& 3H«X§k{ÿ¦±ÚrxúÚàýN=¸ÃnÃ}s•W¾›ÆŸqÝ4oB¾ù0h4Ñ6›Ñ¯1ÓäSËIpš»K¼‘ýVCq{ZÓí¨Vã¬$${Šç¿þÎáv+¼óñ·C^Dû®b—Ÿ’° » 'kø8·šj#6‰Ú~Ø»% òÇãH|tÕ´ÃÔ Ê¥ˆp{\_¤×;¾Ë¥W;WÅÏÕé²®-I €¯oIŸ*®¼…øw@0ž]<$$œ°ÑÎ ä4ä%øÓuñeÖ)$È" ±¾(‹fzÉýÈÖ‚ÚNqég;u.αþÈ?Èâ–.LJÑ‘ÇLåÉU;aÛ&èòœiqxG?|@×%ñ3.еiÛ†°Î´ùÙ´/°NKRbM¦Åô2oÆ”à·"ÌT%MCSêÜ`¨5B^§hr«Gçv“cÁ¬EÌ2%×ö¥‡-ß ç|;NÔñ=§(=¾xq_{®ÓO 9*[ì•·j"?¿NéžB בé«jk;ã…§Œz0´È]q¥q‰]¿»ô;~qÁâü¦ßÄ;]Ââäª Ç ä[‘®œöڽРôtCZ ôÏ™çg3¯"¢ ÚWê%в­G·/‹väÞÔÙ3þ¹(¬"^OÓÀýòõá0LÄÕ)§ˆr%s(l:²ÜÝL3\{õý뿹ÍV endstream endobj 41 0 obj << /Type /Page /Contents 42 0 R /Resources 40 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 40 0 obj << /Font << /F36 30 0 R /F8 7 0 R /F33 12 0 R /F39 36 0 R /F32 11 0 R /F37 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 46 0 obj << /Length 2626 /Filter /FlateDecode >> stream xÚYK㸾÷¯0rYsÅ—Då¶d‚Ù$‹é`;{PÛt[ÙòJrz:ùó©I=Zì¥M)²X¬úê+öÇLJï?iµ‘R”ÖªÍãi#µEî6¹-„ÒvóxÜü²µBîöR*»ýçNËm5ðç¼ÛëÂn?]}ãæßü¿wZm}Óï~}üë÷ŸÜ¦e®r\8Ûì¥Ú•¼äO÷ºà+¥¶Ußß/¾çÎp®‚ø¶ãT±=ÇѪóØ€Û­©ý‘¥/õpãüÓ• Ù€JÊJÜmOü}{õ,ø’Ùl8{ÖWë‰Âª,A]Š“Âû›|{(™‹ÜÚ8¥½ u{ÅY›½†¡Lph²m˜p û˜éR›¶ùóßÿŠåŽoéüç·»šR䙎_À àv´1Û'<é+·þTݛỽÉó-žÄz;´·K Æ”ÛǺó‡¡íÂgd®‚Í£d.ɤi<·¯_4ë+ÿÞèžÝ>—"ƒCÏ_ãGEÆ—·ƒ·rdQ ëk±Û[›'Çqç/þ‚ë>ñì.¬À§)dºgMïFHqûŠãÞ-úwIý°ÞÛû×™ÊÑ̽ïj¿â×ÊB³/ %‚('”4Á 9Ïøùìa[UÚí³¿ú®êë3ö :/Š5ZƒÛè+ªÉÌ —›¸éol²ÉÇo´ÔV䲜» Îo;ÞûÎrLêXVÇLm†Ýw4ÂX)Wôéü©óýº«\Mú—‘©¹|ƽ6¨*3!õ¯‚(—M½»‡ -í$ùˆ¹Óß;àÆ?à†j×#EÞ…ÞcœtC5µzÇXÀöKÝ4ãnÄ£5}X´:Úî¶m^wNoÁ× h¾«7|ºl~,RÞHCP÷ÊÍÛQÀÈG³h6ÜêûT]Õ½²$Ø'¥ 3mùÌ´pײÆðñýO;néÞn‰²¢v I=É€%ðû›‘¤ ¿WÁŸëíÏŒä «ø'-‡HŽj­.  +·4ŒNäTDM`5Ÿ›†Fä[9FHCp±‡–=°ª¯=Kxh¼à@Û}¥¡‘·¡:̽÷„qЪ–_WÇcù¢j¸–>Ç-/7òX0Ìï{@󸂂ïs»¦/A™†SÞѦÚlý·êrkü‡•X-¤)gý#bk{÷a%P°e§Ó¹`²JAV¡‚(ª0³ëà‚°wió äJbÕNäiSAxÅ«ÍÈÊ^å…ÈK B¸H-¬P­üíL¥í֣̌ÿÿDåqH8Ç€1<ê Ç~‹¾Ñ­ØÓ¡U‚J¸êKŠÂê>´ÀŒiä)hut‡p Dw^…„šÝµ­a‚Š„¢æ½Û×~ðp³"³tdÀ§l¢un5míŠ8pw²µz/«*Hô.OçÇVo–3Ê„¥ÐöQ'ˆ¡ QS$“¹yÎE•´-ÞS©NþŽ4ï´]¦ù½•ùö":al11 v#~A3Á!†mº¨Â7¶ âÂòˆSëK Ò5,¢€„_°"™ÀÂýšE’¬NmÄ’ÎË™ª O†6ñt¦$ÌùáÊ⌉,Â'8ôJŒ¥°clTâ=N&U6y ñ°l<0l8M!0R \êç3è|¯2#œ™þ‹Ô&(šoìÔ ‘M”#½G5OS`cËVp°Y‘H÷&Í+„”r¾å×p½ªTFí•Ûm`HüXÆÉÇÐMñ·¾Y0ó¬\Å_ÖXÂÑÍÂHSozËØcŸ‘*ÔKÓ'Hgt¸AÞ#D^°‘˜vŽ\u‘8T*°ä™¢y.ÕtÌŽ7R”* ¿a BÆEªp0/3!»1q50FʘÀ™)JU*ÒÑ;ÍÅ801ÓÅLç'3¬L&G^A—‰1FŠìèp+ð— k\œ²x±ÉEYhGËQ•®ÉùÍÛE ÈbpË“IhêPš˜`ç(I•I¬®_Ùâ*2%g.‚òv1þ²£$õuüøú†ÉÞM£X!-­‚ŸžÚfÅ,&›V¾)=áСRn9¡Ê:örIì<òz$*ý@@Šï T‹5Š‘ná"·Ð[|>W]"· ¡ A@3h¼O3ËH9sY—6xAæîSâWÙ"ñ«,s˜ÒCàS¨¡ò ¦cBób]Hå2Á>-f8cÁK>Nü¼Ê•‰cá¯{bA*°½¬t¬8 ê‰ ½°Vxe1=ðÐD~à¡BEÅÏâ¤ZòŠÍKï›1AöãŠ+JŒU^~×sûê=dQdA°gòX#¥·‘‰.†éÃÊÓzM±J`J€¤&´æå…Ñ…ß…þ¬ÊÀOúrÆê1 ¥ÒB•nÁêÎí½9rù ‰©RÅαÆlûtèØ6—Û«¯»q¼¿w¡*"h1©ÊZ\M‰_Ýoû¡ÝYa¬Ì¢Â‹ëˆï“åÜ¸Ü #žÂ|ßcmËU´µå;Ð"sX‘ÛV0ECúV‹7<Ú,=×éùtçô±È”ë40++Óúœç×ÊÄðÄ!¡¢Qs뜈]dMŸŒ°Ê«’áÃB@µ)HÃŒö>„ÊðÄ¿|{:”³/ÈÜÚ¤J.͈xƒ“®÷°2Õa&`å¾{NX9BãýÎç«ËïªÁÁ Œ–ƒ¿!ÈÇ ÂK\;¯-Xco|¼’#(€<`%´’Ô«Ãx} …w}@J€"*kà7åÆ/7í£BÓ3_[òÒvÁ¾€ ñ‹Fĺ¾Ž_ðåMî¬oO(ühãǯ Yý£?ñ>€žÁRŠì6F:Œ…H—:‘¾À@o3Þ¥§‡\"< î}0Î2ÕÎßÄÍ›möÕúD dâš]âú!>µK!Õ‚ÎNžà ‘«‰Ú*Ç÷ "¦GÿTõDQ ~ªÿñû¾ 9>@SšâWE^§}êÛÆóÃ^¾€>œ: "Ôb¶˜áƒÂôz˜',\jáSÑRèP÷Õ—TÖIæIºCNIH| ÿGà1OâD¨eëÕIM°¬Í'4?iÁ@L› Úß~{Àô˜mdúg’tRdPt.¿üšmŽ0±äÇm^hê¦ÂP9Öl>?üôðÿ5¥ôÆã-Ðá .‡¼j„)éU ¸nYd’Ë:iñE¸Ÿ^<á(7™ ÚÈD±›~Šß³•¦Hÿ>ÔM ±W‚G¹’m ($ë3w¹*G^Ø ,¡ɰ®K{˜·ÌÄ—ܬ_Q ŸÇF•níýuɰzöA¥+|P¥b)s4°FùX0Ñ,zu? 1É2Ê@¡P “|âÃÃ|N@6¸_¬ý¬¾ÝP³í¢¯üÆKT endstream endobj 45 0 obj << /Type /Page /Contents 46 0 R /Resources 44 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 44 0 obj << /Font << /F32 11 0 R /F8 7 0 R /F33 12 0 R /F34 20 0 R /F36 30 0 R /F7 21 0 R /F41 47 0 R /F23 22 0 R /F22 14 0 R /F28 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj << /Length 2951 /Filter /FlateDecode >> stream xÚ•M—£6ò޿§]üÞ˜ABHÛäe'/{Ø—l:™C’chÃ6Ýéùõ[_ÂØ¦;»'¤’T*ÕwßÞß½ÿëRa–$zsÿ°Qq:›nlâB'›ûbó[„Év§”N‚ÛÌ]ÿX·‡í÷ÿ|ÿ1ÝdafµÅ³Ñf§Ò0N3>u_•}¹Ýʼn r?êqÊǺkž×-~Ó๪÷[ƒ§Óv³¶¶[xS΋§|\î­ÛÝ©É÷rA-ˆÛn@QæÍ7ÛÉt0V%còc‰ôÉôx&y‰Z«à˜ãä…'Ÿ‰$D £`Ê‚ÁôÜÛÑa4VyË»ºV@CÙ×åÀãß#eš2ŠLü0®Ü”7C7Ÿ{Úú[aa`¼û®ÝjðR[—-ƵQ½ŸŽ²‰˜w'Y0vøM¤¨Îkà´,uMÁ¾¢Xb´ôÀß™Uåð¹y+‡ö}™%Ûò™o^†©-Êþ‚X+ÄÖÀ›”FÞ”Û Q È-F!/ì‘Ë8˜£ÓÜ–ÌÅqE´áúJt¢&Ó,ç û}á¾v^´Á ®Ï‰[0Øã¾Š÷ý%ë0‚VqÄ{§ÅÑÎ8^(LòÓ©©Ëp©wA²q°4ˆƒX™ÙRiŽ ãRÍóÎø¬†°èÕiU&ÌŒ¹$¬—-<Ž&®²0Ixíù2Õ ŠÉÄÁC‡Oïo½B Gtêì»ã‘…a xƒ#¼)AªÍXÕkµ`fmøD.0” Še l ·¦ît솑¡gásw΄Qâ.ßKÌŠA™¥F”‰0`‹*ÃHÆ3ð9kÎŒŽÌÂÞë¿´M9ÈBΟ¥ø`*âƒQ-XË?Iûzl^9__îwkŠÆì,Þ­O›ÐÅ׋­!ᥫÂ3€Y;ä¹n>q(Û²§ÇãŒßMˆš†p=³šZdÅ—©l÷²Å„ßå£-?ä¾Brœ„‘µU!û‰UMÓÊø½kØÅ&ºUuºӯâ5.L”{ ¯ £ô’È]ü6:;£ÍPÖô±A(Ø/‚òNE*TZmvÚ…©¯Ih%*W‚JÄ bA¬FÍû«Øü©*Qßá^‘8ZòPG4côJÜ>ï`™¹¥Çg™Œ%çHë=”$ þSîG†zVÙßäý¡Dcr Y7Âä*6è#c¶€­~%¥_ kÈZ»ŸH¢P;M¶FVŠ0z úúPá«d¯O`øÐõ|./ VXGþ?¸pm©ªNâ½ÓgôëZL?DNdÁ‡ÛÀ,±oQ&Ø—=^D©’àD¼èj î#2J¥W\‡#b„°ÿPŽ ª[¸u¤ŒfùÈËL!ÊVVH’Ë•%í mÅЃ_«Ù­ K!å‡`ж5ɰˆ™FY¸i‹iÌr ÀŽS‘+LlŒJ|8„ !+#ç//]!øl!£û¡åzh:u?µ˜˜Ä¤Ÿ¸çHDÃÙù~?qˆn0ؼ·iŒäh“€Hš({{Ú’ô a$ãÑœrÀøQ²9 ääS[m¬[°¹>ðàTïÇ©GsÑ–#ËŠwTQh“ì&ƒjôù©Zu=QdWbqÂ# [‡6Ê®X4z¿›% QÅ3Ê¢ooUPJÌ;ˆ2Já ÄVì”}R*æƒ8l(J‰u³c#°¨ÉȇqX¶|ra-âI8çÌÅ)ó+ “ÌlâÐ*_ÚÜ’›B”W»Øtïéé¦ñ42~ðÄÖƒ°ÍšÐ¢—^²mfrì 笱[æ}}ª‡)oê¯dÀ°8 âŒ|duñlÍÀ }w䕨‘÷»gø¿Ë¡Ì{æÁßeï÷¤ ´ù×z·æø~© bç‚É—[ïË‚.!úµþêC`²2Dß(š³‹jOß¼ÿüü’ÄŸê¯a×Þ¯h‡N– "f¿è=}%…5¾Îaœ{Mãw:ƒ ^ fÅÓ‰µ¬ëÇAËJ„¡è-d)¤sx)èm5¬†íHâuê㵓xý¡xÚZˆ:¿£€öFQ-qû'y°Ó>Õx>É—b!|%ý€1Ö@eÁãž=2D?pí7T|ä2Ö ®*÷·Qu‹.R02@býyº^çÒ¤JDÏiÍ㠵ϙa0Œ9]þÈSÔ·é'<¥7ò×ñù¹0Þý('Ýò¤ c}™¤Ýr[Û0‰´ß„*²ZiëVHèˇ¾ªµ»uè¬ú«»ãPŸk+±c–½ßà¿ÓP>LÀ¨Ù %&KÁž7â’â(t€þRûó‹v8E)ª¢ü3‡àZXÏ)FW¨@X/ën%àIq½,œàxŒÅ ÷¼dtdWVÔ¨€/‹mõ#ÊSV4†5%uRQ!+RëU4uqqDeúèësÜ5ßÉÅ&fpÏ't‚”]3Öøx¯qær_ÎÓ¡Ê ¼p¾l`¥ÎÇëWûKD}¢gÞʼnbƒIæ.•º°‚÷ó‰ØW¢ÎÛÏla$/ >³ûŸ‹:•e¾H”×Z9 æ¿oŽv]âmÞè>p`œ›dÙÀˆÝ Ø=À`Á@ÔXñƒhõ-ñ87MxÆû<ž&Ñü¾-³À£’´k%Ú±rê‹Ôm’U¤'(wsnûqF«gvq›†Aô8Œ9çw-OkîcuŒRÌnbÈÀE)§F«KíÜKtÕòñíæu±ÍW·ÒçáÃÜ-Ã㥼`‹”ØDê¤S%©?On8ü{HZ….K¯ü§ªïÕ‚PÚø&kÅ#Ë ˆóI¾Ät ÊQBÉÉ IïǼC.¬ÑPÙ9 fÔIÄÁB“v²CÈr.CÙ %¤¼p«snЀɱÞ`·•„íV´še/õªÆ;·f3NŠ©ìj`4r­d(Wyku¨Œ½fn’ÎñÏïÖJƒ Rc{}Ry!BB ovFßdRHùçºåòS];_Í+6Ä©‰#*Æ:R.òL$•ÊÏi$êÉcézS½,)LÁ+\@GÈãA6_„,¾zÏM87¿èʺÀ¬¹¡jÎNRlÉn±cÀbD€!}ýðTŸ¯ä)}>1pg±Ê†Qšº‹ñ…^¬ø±«þ®t}¡~áaQôøƒ¾7÷ºÿ 1y¬¹/aº6‘ž[“ân–?"8]Ž$(Wa@.MR_É0´9RÒ1x¥ÂÄÄ蜹}ÿ¯_úèuw‘„*Û€ìÿˆÖã)ï¥èæä(…R"±· vˆ™"Cc0YdH礲£Þç Oç,4ÃHA-Žãü;M--€µw¦¡Éæäs||íÚ@ª¯LÕªt®à±9±+‡ pÝýãþîË&£ÑFÍÿû”u!\¶Ùï~û#Ú°úuGºy¦­GØêB“â½Íæç»Ÿî¾Å¿‡:Þ$P_;ÎŒ S ¸à S¶Öû"E U‚ÍÌ0…¯"EºØ§\hcuiƒ…,нKÄ*L]r)Ä^¡t/Åò¨±:´h, øs>xk¦ô ¾œØeÞªÙ$3ñ+ Øy'vqÀÿkp&Ûì²ÐXs¡bôÛLþñP¼Y†ˆ],BŽrƒÄ3¹{¿Úy‘3xXëø„ʾסg>$ÉÐþ)JRL²‰§=>¨ö§ªö!rÞ·Ïíð1¾-t:õ]NUܼõ àEc)=âÙ¹r˜…/à„wIó™¥Ñ õX?!*âNl³s{ºÉÇ‘;Òh{à”ùZ‘ Æ÷¾üO×µå!Ç›WÃòQ³„’H’­ļ[QÎXC©xÝ{Ãío(§Ñó3¹É•èX¡ºGÆv£©lï7N!K»ƒ(…Òoȼµÿb&7· endstream endobj 49 0 obj << /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 48 0 obj << /Font << /F32 11 0 R /F8 7 0 R /F33 12 0 R /F34 20 0 R /F7 21 0 R /F35 26 0 R /F37 31 0 R /F23 22 0 R /F22 14 0 R /F38 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 3114 /Filter /FlateDecode >> stream xÚ­Z[ÜD~Ÿ_ÑBZ­GJ;®‹]å•ò@`ƒ‚2Àƒ§Û3mÅÝn\v†ÀŸßs©ò­Ý±¼L•ë~nß¹ô¼¼»yþÊnò8Ïd¶¹{Ø¥b“ÙM–šXªts·ßüuÍíVÚ¨©ÝíVe"jºCÙr·;§Û_î¾~þJéÉ1FÇR§›„÷õí{XmU´¯~N„âõÓ[u«D„åO‡òħ÷gºx_tÕ釒è\t»[i¢Céós’&þjJHbc›äáÌ_ûªîxC[>´¥;¬¼ºR…p®x†;ltßw+7H¸@g+\£r«àMBêÍVˆ8O=swÀÀ­V*º'ZKþ8Ε{îw·È]yÕq6’¸ÝòÅ/üJ3}«‰Í@YßUuÕÝÂeŸ.)óXäƒ(Šö±?‚4`mßnVÑUwðï:TŽ{ÓeÀ3B{ð”8–a¹ÃÇi  ®h§jΉé»@]d„ÇSK'Ä?Íü‹œÁ‰‡¦åNYìpüÀ_xQ]bŸ´›ŸæùÌ+ެÝûð>ZôDTò%5mõXŠzy‡ŒŠS•Ìé9•O¨f\ ºT8›²ÌkSm¢W·VGD,<Ôaˆf‡8TI“ùWùáÖu—‡ò)OU]ó\P¯5E±Imùó}ùñù©‡}Ê¡@9ì òôê _­ðÕ$W%“8× oKà1Kаì@/&ô.!=JG®Ü5'¿dAŒxr`’cVÉÖÆ™4ƒ¢@ Û,÷d<÷#BÒ:ä鄹 ÊÆy>X,i$¬ÆŽý‚›ºrþ¨æÛA‰ *ŽÌ9™xÎwRßóIŒb÷§«.Ü„¨Ní¡q%ÓnteçÂórBëÏÒ`ýšï½äˆ‘q2°~ûÃ%„Ž…8p.Z ¥+[DÌxÔ€ÓGcÃ/40êIaÇ¿ÊO·´KDî u¥8{ÈÙÓ©8”Š}†§2‹e’/UÔõuçX˪ëXÁŸmIÐS¶Îë(sšõè¹Ð÷w ÐTéyÆF€iÐæ$nüî]ùÐ×ÜG!`»kË¢+¹_ðò OòR$p$Kt‘´8´í}ÕµEû‰?"G7‰JD×Ê€¿—Ϧƒ›ö#£ÐQ×–¤8) €†XÛt´ëÛv4M<ªšSŒÈo£»+xÊ>«¥ÑÞ+½öª¨.`¿àfÔê4ìîP–V€—÷”ãû¤QÓ÷9A¦`[`#ÇÈ‚?1®pH?.yWî:ØÈiœúà@Úž³Cz¥Žîy7ûF\]žö~¥Çœ.êº!*÷~10bJGŸ®`¯‡@.‰1e¸Sqv‡ÆÇ„™ ~A,„ 3ûª"T? ›lç£O¢šá¾ “NoGPCÖ gyôMÁ–M~o1!Eur‡]ÁL6$smб.£õ©£ËPHªIÅÖ[è±â©©â© fûàRºÃ´‹.©:ÞÂêa&±7ß}œÜ½Ú]S – Vtfò$Ôšý%›LBNÉoõQÅ‚¤½>(V“×yu×WÄ”ËX[óW¥¤eœ·O¡n<—ÀxzÐÀ-/1¾Pn˜+’$-!ÍÈ xVh­Íù°4¶ ZBBìp›ëÑNM‚lèýðö wÞÞ*¸e‡?Üf€ÍàE/^‹Ò°± W¼ š‚sð<ßpÆÐÿÆŸû žÎºŽª^A>Ç^')xÀÎ}ÁþH˜œxÈCŒñ·`P²ñá6Mñ}¼âMq‚~Ë«~JA‹KyãŠþœçG›”D¾ÎÇ}ÊÇ} ÷Ð iÏú´&ö%ÆB§pÆý ¬_ÃÃ!÷(RÐÑg>ôd'ï¯Tóðˆ½}´<O[¡©Øï+ä+ Ñð£®F|-|’S´œ·U,@ÎnŒwÅ“|Ÿï€—EùQÊa£7óù &3LªAR³@*LG W ‚´ŒÂ¥ÛÀ[³]E/‹ÍCˆ´LàV>afæÅÑ÷¹îOÜ\aZîå™Oi‹9|}YBë/såta¨tÀ€¢òi*·Øjuîkvo2ÞÆ°Gp„ìLÈ¡à+Û OÇ~È/d.#z~<Æ™ñcðøÁZˆ;0_qaÐ/PÊ‹ŠºÓ¿§Á©Wô\×Vg­½×îzÐ}·î¬D¬.24 `äÊ®?¯Ö€d¦Ãú]sÇš°OŠi[Ôxë8á³#Ò@œ+Ö FÍrïïß¿þ!õ—Þü÷îæ× n’Ø(Hª­T%3v³;ÞüôK²ÙØ*švóD+°‹'Ö›w7ß߼ğYg?ÈAPÛŒJ­×û/¾{óæóo¿¼¼VcTªìß¼Vͼ¢Œ!KŸßûù_½[«Û@Š­ÓÅ!)m«â¾öÕ>þÎHð³Åñ¼îÈs3ñ˜,3|£Þ£Òÿ‡\™A $•Ioi_¾~õjåVkb!òäÖ<‰Ebç·"“_|öÇ®©©zÓ¾Àtâ³K¶ç,dHXvàŒcÞõ­¦ïÎ}ǃœŠ/Á‹ŽEº(3^–0×~Sr¸œ—éÓäy>±×+~ó>j‡Z*ÿrÎã©­º±ë*¼7*Û#þ¶Ã•búCä¿@Ä×Þÿ„º‚ßܯTt¾J6! ˆ§ê÷Ò¥1ö{MÍŒÊfSUvÿafèCš Î)v¢¸Ë®(®mÓàÄ–Áróg*±¥µsÒs/ec„G8êOW&™ôŸ¹•\ˆßúÝÛ»tPpV>·?Ÿ”~@÷&žêñ§ƒ pЊÚ/Fp÷+›•%ädþ¿$økÊÕÿ%ѱLåìIØ÷ M 4À„/4-’ÀÐÿè' endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 51 0 obj << /Font << /F8 7 0 R /F34 20 0 R /F33 12 0 R /F37 31 0 R /F32 11 0 R /F43 54 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 2938 /Filter /FlateDecode >> stream xÚ­YK“ÛÆ¾ï¯`r Yµ„0˜Á+U9È*)‘J¤ÚUr°|À‚CY€ ñÐzã?Ÿ~ $VVª|f0žžî¯¿n|wóê]²J½4 ¢Õý~¥ÂÄ‹âp…±èpu¿[ý¸>Ø“m²®86Û@ëõ9ëòM¬¶õ6[£Ôú5è[»ïK|Ö­íÆûºá—7ühë¾É-¿ç5<ãõNšEËÏÏJ›ÍO÷ß¿z§õDÀÀ„žÖfå³hÛ3™ž!ñL”¸¼…åB½~:,³l𬭬o&“q°—øÁj«”—†¢¿þãÓf«Ãd½+>ûJ_ï Rűv›vp$Ç<Ö8Ú·Š?»£å—$تu¿Që’u'µËƒ&‚ã×}Ê»¢–¥2~ä¸Ë1;daÔ!ï豨fªÂmì{  ­‚®@øñÓû¿oÒ`}ãoÞÞßü|£à4þJ­Tz&P«(½04«¼ºùñ'µƒß¯|O§ÉꉆV+í j¾\ÝÝ|¼ùk¶³Š/öSZJ;Ý~À}_oRµ¾ó·ëíßx~ü{ìø1ìÏwÿç‡û»ëëÔ°V¸ë|½Û¨ó¬D#ð×õ[¨ãPÁmÂõe7~ãAí1+eü9kÝàzÁäT{©Œ‡m-7Û„¸r~¼–oDе̬ôéhÑ.°‹ó¹|¹Ø¨‚+—5jýÙýw›D¯Ñ5u¬í/Yu.í-¶B°Íƒ/ðßmÓÊÁ¡§Þ/œ%0±—DÁü,&ùÚYÂÀ‹‚aFÛŸ·8fµÕ¾ï™ÄÌx÷M@d”ÊÄâJ°þ haŒ§Õ°ö¯ýÍ»í¾ÆÃ4UÖý¥?¡C»»–+»Óñ€#¼!_=ïI †S|ļ ÃÕKôsü@°«RéÄÓ&•CF¼—HD.,€C¾ßv(÷s)^Ž7X—;Ûpó ‚ÀxC Ç²Ê êQˆu#Vþ:hc+šrÒ_)'N<è©rÊ£ Ý1ë@:µˆ>AyIúÿãO&Gú÷À\*ŒÌþ¼½[4PÁõMìr]‚ÕdŽyÆF½àðÔSÇîÁ ð^\ke™;›»Ùz­YkÛ$ a£BÆ»PJ4i:÷ŠÝg}Ùɵsô1/]zh¼p U(çq醵"t7,W©ƒ•Ÿ2àâx—Jù^4ÁK˜o AM„|(º=` J‡ëì´ã—NõF«õÓ‰›šú¡´Õ‚>ØŠò¸zFa"Ѻ\¥¡yKYÛ¬) ÛP¨G]ÓhÛƒçÐÀº/ËŸ²ÝÎ-€*Ã'ßZŒ09›–meäÑ>óô<;-,Z ›G"µáI¦×õ~rèàX‚sÛ3¿q˜Š.^]ò²õ#5w·2âdyJ½wŽ'ûº,iþ“ð 8(™†­tÈO)\‚6Èó¾ù3ˆx"¥{"½2.¬8åe¿cÐ „ïLR‚9¯ €È4°rÃÚÜ–#]ß’é²?0Ê.£Ëy¼½øÀË"ýi¹Ã*À@ÈKgÍ\(„¨¥#L¥Œ ©ðVt•év ÝØ=ð·#ßø±Ø·CÁ˜QßÎDزxʾ@ní™tðMÇ&hºþ¶k”7‚S^W•2Ü-Š”%£G`ªgñfnäq@g 䬨ΊÜ!0dØO7€iÐä–ûNu'ƒUp‹?gäÅÏ܉|¥à /ÖºtbÆê¦8HÄ®n´OǵÍȵŸ6ÄÅà+víØrÅh>w]@»Ô\¸ÖÄNÔs´2ë*“£á—öÒA^où½Í*Ësáq>:(XÑ0 ,éÄŸêSn½%Þ¥ÕG;Þåÿï2#S;f"|Æ[>ôGÃà䱚k@L[Aì«›¦?SèÖCFJyìÏÜž¨EØBÒVHOžµ–訤›ð sƒ24„/›»(³a¨JN%ÎÎq{öõa; •yhÈé}·Œ\è)1%ŒmøuB|¹c‘÷¦>Õ¹öÓ¯²^“’Ê PBGÌ-p§†8–‹AÑÊÆf»gnˆËZ‘Éõ4”àw쫹%€ƒŒh”Òóãß}º{;°H:.jªØ86˧Ž5Eÿ"IþÚ±€™`<6‹‰Y¤/@ tpd d+y;‹¡m Þg„ûØËfISÚ¶wcÇÞ¢û“ŒÌøq`—•A;+_QwøllU³rœ§JAÔ%€°Õ¹sNÈŸNù›º?ë¾ãw?á>¥ŒO`éÆO@Ç/˱CGž æTË™R~}*ò¡~²+ Ñëêæ3A°BÈÉ ¯ï¨3x›WebOÐééËL4(C8]oD^ä)G—5KšˆØáɘ‚² ÷¿pÿ#›æÉ–ü™‹H­L–g&‹`6‹6|&ʃ'#þ(¾Sù‡Þþk›z[ÚÓ¡;ºI.Ä4Ÿ‚˵þ‘§É7©?ÒÉ´R„KVYóˆof¾“PT|}ƒÂ1“lM$@ÏàQm?d4ÎyIä¼ÄŸ„'œ øÍeËÚVE:š+ä+ ÁÅ“— Ì脱~4y’œ‚ñ\â1< ºà™îuv ~&^Ï(X—EÎÝ`0‹´ !ï[îE`¼˜Ëö/s_CˆÍ(/¸DU‰’X1eA’…{»*aæ2}§)\, vŒÃ;¦j½ÀI.ßQTî#Ó_ðŠþ@I•*VpŠ•„Aõ‚!`qØWéo§Ž¡ç›ôÚhipwÙŒ!¤¢ì:ÚçSÎoOÅàŒ>î\*…¢‹auð†I¶õÞ­#㘷ᇊ5 vä¨Ö0Ÿ¯`]†1,ÁKÏÜ{'‘z& ¼Áùÿºã1ÐP•f(\²wÅEI(yAãÀÑR|¨ø‰YÒ8,=š4²¡ß„BäSE¤Ý[ ú”!bvÚ‰fn¹‚yΚ®È{8])+{)ÁM+]²¹\‘Âõ]`e²Ho:rÔs3M¤÷Ït»ØJªx&Þî ªÆ ( ”lµÀF€ûƒ¡¾ZX0õôhð“åì®è ?Ð:\—ÔrâЧ„‰@5X`âš„á²1y IæRg³œb¨8`CRö-J—/Ôülì9+š…´C~¿P?ó 8&p~„î®÷†rÙîˆ £ ®Ë^*¢J*ÃþX°kYrWÚHÖPÄ$d¯§·ŒmÞLÒf1ów蘚zâŠL (N²L“€kªD †©1oû‡íUò}GRqk©ˆÀ힎£9:ŸêO–‹##ø3©áÒ“b®ï:‡ÂÚjSWcJ»dùÊû&öBìPKH1Ëš‡Â”‘$m±úÅà?j^ýK¤úw×W@jž_.ëñð£6©Š©ÎÔ,L’ð´„j…Ø> endobj 55 0 obj << /Font << /F8 7 0 R /F33 12 0 R /F34 20 0 R /F43 54 0 R /F32 11 0 R >> /ProcSet [ /PDF /Text ] >> endobj 60 0 obj << /Length 1199 /Filter /FlateDecode >> stream xÚ…VKsÛ6¾ûWèVp&‚ˆ¾9©ºÓÄn¬ÌtÆñ!‰5_A+î¡ýëÝ([¯L"—‹Å¾ðí½ŸŸÍ®²INó„'“ùrÂdFSÆ'‰J)j2/&÷d¾6ÑT*NþÊÊ¡ÈHgÛhªò§Y¸°¸nkÓé• ëe=Ì]]ï1•©šÄÁïÚ¹î|6ëõ³n½¦MÛ¬š¶v5÷蹟¡—É”)E%ËA`4WcZ>›Y³[ƒ`Td|„FÓœI2¦Œ¬#F 62÷‰Â;&:¼ óñŒ˜ªíjÓ èÂB­ËªlVá£*ûQ­Ý©:sNcÁêD»5†Ò8PšÜ/ MkÝÌ0NÙ,Û™¯u ÕÌDBe–îÄŠ\EéʶÑU4YB–F»Áš¿RâÖ¼—¾ÅLº`RBͰԆ/ö§Ñ¾%ô£0㙌!÷o—`+i;ok¬ÆøA§­AA]m°±/}ÐmB×¢w£‹eXY´ƒí ÛÌDTÈ„cÕñd*8Íe‚1KcM³0ýqƒPÐmF3΂ù={À†Æä¢)¬ÙNN>µÖµÍ9€$9¹õyºöd=è@þ† ÔÝ-lÙ¹þÝ (p@.ÏŪMCã¶9Mód¿“Ö•‹Êô3&ËNÀ<Áøcº)NEϨ‚îìzc7æ‘>Û˜ê Šˆæ…„ýŽüT ØäM«ŸºzÖ»a¹ÜÄÀÙ~ôm Û‡þP§-]ý}½±¢ð{CoisÀ’g|ÏwM÷3F>Zx§äßHÁsðGó¨øZLŒÃ7 lEát%ËðpÓp¸`†ÁÖ>… ¿#öO)ƒ‰UìXl¬!O¡#Ó½GpSOWR&ÓÃŽÄ9M¤;2z»cG®///¡2.È+(Jœ°8”My3¨:áÖ*ÚÁrÙÚ \7(2R#=ŽC‹æQ&ˆ =jÚª]½ FTJÆF?VÐt~@ 7;T€ü)RHð¥w¦FYBd?IÆ.õ„åo±Šooî®ÿ½·¬MU…ˆu¯ûꀓ]iz´É$) €ÈL;  ÑŸ!rÅ:;èO$,¥›Þù±alïû€ OVÏÜx@;^¯^Ú¶FI›ŽªùV¸¼ƒüRÙºÚž@¿—×+‡=—ý+e~´íÐÂ` ðÈ!¸ÙlhÛ™f…»ü\kŸÂ ò`IJEÊðÅáÖe~€/ù0& w„“÷üüVp9„öœЦé+ â• Ä? ã €‡>;;@žïüù‘„Ü¥Å-€`Cã†=®E Êùk-7ƒëʹŠÒ^k ¯ãPЦ¦4;è—çñ²×Î1ù€8Œ¼™G‘ ¸N¾—5š u°úrûé<ØÁèîžüÐàw@š˜"h~Á 5ážòSú)Eüß0\·•ýápº±›Þ7žÂoe]žd=•S‘œBœíjµZlŠSˆ“Ìßûˆ¯I„&€S35^ÌŒãâÙåüì?ß6Âq endstream endobj 59 0 obj << /Type /Page /Contents 60 0 R /Resources 58 0 R /MediaBox [0 0 612 792] /Parent 43 0 R >> endobj 58 0 obj << /Font << /F8 7 0 R /F35 26 0 R /F32 11 0 R /F34 20 0 R /F33 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj [733.3 733.3 702.8 794.5 641.7 611.1 733.3 794.5 330.6 519.4 763.9 580.6 977.8 794.5 794.5 702.8 794.5 702.8 611.1 733.3 763.9] endobj 62 0 obj [277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6] endobj 63 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 64 0 obj [295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 336.8 826.4 501.7 501.7 708.3 708.3 708.3 678.8 767.4 637.2 607.6 708.3 750 295.1 501.7 737.9 578.1 927.1 750 784.7 678.8 784.7 687.5 590.3 725.7 729.2 708.3 1003.5 708.3 708.3 649.3 309 531.3 309 531.3 295.1 295.1 510.4 548.6 472.2 548.6 472.2 324.7 531.3 548.6 253.5 283 519.1 253.5 843.8 548.6 531.3 548.6 548.6 362.9 407.3 383.7 548.6] endobj 65 0 obj [666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1] endobj 66 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 67 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 68 0 obj [611.1 611.1 611.1 611.1 611.1] endobj 69 0 obj [569.5 569.5 569.5 569.5 569.5] endobj 70 0 obj [613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9] endobj 71 0 obj [658.3 603.5 630.9 946.4 960.1 329.2 356.6 548.6 548.6 548.6 548.6 548.6 884.5 493.8 576 768.1 768.1 548.6 946.9 1056.6 822.9 274.3 329.2 550 877.8 816 877.8 822.9 329.2 438.9 438.9 548.6 822.9 329.2 384 329.2 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 548.6 329.2 329.2 329.2 822.9 548.6 548.6 822.9 796.5 754.9 768.1 809.7 727.4 700 830 796.5 412.5 562.8 824 672.6 961.1 796.5 822.9 727.4 822.9 782.3 603.5 768.1 796.5 796.5 1070.8 796.5 796.5 658.3 329.2 550 329.2 548.6 329.2 329.2 548.6 493.8 493.8 548.6 493.8 329.2 493.8 548.6 329.2 329.2 493.8 274.3 877.8 603.5 548.6 548.6 493.8 452.6 438.9 356.6 576 493.8 713.2 494.8] endobj 72 0 obj [619.8 590.3 590.3 885.4 885.4 295.1 324.7 531.3 531.3 531.3 531.3 531.3 795.8 472.2 531.3 767.4 826.4 531.3 958.7 1076.8 826.4 295.1 295.1 531.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 413.2 590.3 560.8 767.4 560.8 560.8] endobj 73 0 obj [638.9] endobj 74 0 obj [583.3 536.1 536.1 813.9 813.9 238.9 266.7 500 500 500 500 500 666.7 444.4 480.6 722.2 777.8 500 861.1 972.2 777.8 238.9 319.4 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.5 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 434.7 500] endobj 75 0 obj [937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] endobj 76 0 obj [314.8 367.3 314.8 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 314.8 314.8 314.8 787 524.7 524.7 787 763 722.5 734.6 775 696.3 670.1 794.1 763 395.7 538.9 789.2 643.8 920.4 763 787 696.3 787 748.8 577.2 734.6 763 763 1025.3 763 763 629.6 314.8 527.8 314.8 524.7 314.8 314.8 524.7 472.2 472.2 524.7 472.2 314.8 472.2 524.7 314.8 314.8 472.2 262.3 839.5 577.2 524.7 524.7 472.2 432.9 419.8 341.1 550.9] endobj 77 0 obj [599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9 513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 542.4 542.4] endobj 78 0 obj [892.9 840.9 854.6 906.6 776.5 743.7 929.9 924.4 446.3 610.8 925.8 710.8 1121.6 924.4 888.9 808 888.9 886.7 657.4 823.1 908.6 892.9 1221.6 892.9 892.9 723.1 328.7 617.6 328.7 591.7 328.7 328.7 575.2 657.4 525.9 657.4 543 361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8 460.2] endobj 79 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 500 500] endobj 80 0 obj [500] endobj 81 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6 489.6] endobj 82 0 obj [693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7 484.7] endobj 83 0 obj << /Length1 1493 /Length2 8824 /Length3 0 /Length 9679 /Filter /FlateDecode >> stream xÚ­—eTœÍÒ®qw.ÜapîîN Øà00Xpw·àwÜ]‚»äÌ»÷Ù;9ß÷÷,þpuWWÝw=Õ½ÖнV×b“°›ƒdÁNnl@v @JERȲs¢ÑÑIA@fn¶`'i37((H¸[¸8@>!n!^4:€ØÙ bkmã`”bú'ˆ á‚ØZ˜9TÌÜl@ŽÐf-°…-ÈÍ‹ áàÐüç„+@ä ‚x€,ÙÑ€@€¥­…Àdmë„Æñ"'+0€ÿßË–îÎÿÙòA\¡¢ŒP‘L¨DK°“ƒÀd…Æ¡ †ÖA•üÿõ?“˺;8¨š9þ“þ_]ú_ûf޶^ÿ7ìèìî‚TÀ– ˆÓÿ Õý[œ$Øá•Qp3s°µp²v8ÿ½dë*kûd©nëfa°2spýkädù?%@Ûö/ª†ŠÒÊ’,ÿ÷{þkSÝÌÖÉMÛËù¿iÿ‰þÿ0´;Û÷#NvNN 4ú÷ŸÿŒÿG1' °¥­t xùfˆ™t2 Ä ðl,Aï ÷PÅìN`7è´%~+0íŸÏÉÇ àøgéßÄàüCü©?$àþC‚™ÿ?'€Cöq8þ´‚Ò‚VPþCÐ *šSí¿$Í©þ‡€?ÄàÐüCÐzZšSï¿9³?õ`þ‡ õ,þK¼Ð= °t¦ÿ³ä„J°ü ¡@â¡Nþ=@ ²¬þ ”¬lÿ€Ê´²õø+Ã?á`wÈ_  !Ö!4ƒÍ_í¤í_µfÿBõ;ü…Ps޵ò—3èEçÿy ±`'Ð_ÛPeζ¡N¡÷üW/þ1÷—p TšëcÿÈô§ /4Ü:Ñ@sþé/TŽ› ôWo zÝ<Á€ºuÿ ¡n=þB¨Ï?}9þ*ÆMïõBÝyÿ ÿ÷½•”¿÷aƒ~*6.¨( [:Àœ~ÿO …;rrûד½ýÿa+[è[½Y -̓-Þ„Ú¥7‡WøËMV"2ÃJZ·$ª6ôÌt¢‡,&Á:”+¹0¯}Ö¨ÊÂÇÚCÜ£ò|$sîðÕ“= rI̘{Þó0ÝËòn#Ó¿ÌRñÚu¦¾ 9Ænožýõ“Vmzm¤"Õ ¸/÷¼ÿ¸@QZ{yå5ÌW#Ư١|üú²Y:aŸé¹_kâd¸TDòD¬zâ¤&#¬N„øÛE ´²ü¸w¸ã=¡ä§<¿ƒ·Ó5½U:ýà…¹mø8z‹Wh\½íž¯’i_óhn´B•4r¸ŒÍže¸bu{›YÛå¼\;›Wlx¯†BÂS)¥Èiý¥³øµL}â'ú€‰–ÕÂSCÕÊÑ¢yr%¹—¦Hï7'3Xñ_º4@zâc¬OŒÙL´/ŠÜJaK óa2O5™”®‰õXv²%Ÿ"­zp¨ÕiçvÃÙÖšޤ-I†ô¡ñ‰Ø'ºHë✠o›¢ÊàFÛ÷4Tʤà¨B_¿þXE¹;ÔåK¾ ›æ«j…x>²û ªO: ×Û£^˜œ¡ÖJ¢ôL`Qx.²·:Æ´úzÑQûl@«¢¾ñ†ªz† I  ã½^„H¾òùº2^·â5v56cÕxt)$í‰R²¢ôž_S=TkôûÂ~å] H=Ãa\_‚‰³ÂÜEÏ^(,‡dvó¬‚pÈÚt·‘¤ ²S?ø“î¸|äDÖ·:Ÿ_6é3!"¥iA>+¢› ã·<̬lj z{Y]óà kqÀfl-|Ý’ð.øc@!}•Þ¹¨Ÿªï6ÖLË1&'oA\ùÒ<ÁSùöJžƒ\žèin¾vÀÊ»b Ò©œC¾ ƒx`:  ¬ÝIgbî Rû•-ëƒ;-¹· О n«À•…'¯Xv„ «}k?8hì< ‹Òì‚Ï@IÃíë¾ÏäL™2×Õc± šáþ‰zO´;ì,ìŸú*Ë5T¬ß,wƒhPNÈ‘Œe—€í¸0¬-¡`ÔÄrº¦-hOŽÉ%4T£Pfõ¦òM0Ýau¼,gÝ ×¼×O†êš°~AÕÒ[šfÓÓH‘kþÃãâ–ò+”P"6Å·ŠóƒhznJEäø«!, ¿ÄÎýb¸á,HÉgª/Fï&3p§ß5KoŸè#wzPKúZßd×™d—w;ÔI{¬ÙBD]1 ¬õBFˆ‚@×E¿SÆÒû£k?ã÷e?¡Yz¾¼aEŸbF2Þ`4Î[®ebáÑæ®à elž±D‡§õ"»8E.ú  ip#nùlf? UÐ V+0V9—‰:Ù³¾ëŽ55uÀýÎIÙØß„1÷ZŒ?€jÙ|ö´³…uvοØèôO¢zmå;ÞÂ3UW_„7¹«Ðð»áT¡9Y˜k/ÈN½Å ȦnÓ¾3¡Y U߉"ïÜIõdry¡ÅàYq­~3QŠŠéžñ>‘]Àü³óÙ̵NEê¾s±UVèðÑu>¹”e§7CA±âªÍË–pî9ÚÔ¿âNVI6ùª)2ºDÈ> âÑ¢îñˆ,°üj™@ _ óàŸ˜ ³ ƒc•Î]"GŸlS³«Î´¤÷ÚI•UýŒ k4âÜò€²…ºÛþ*£‘¶¯Ÿ)Vwo_«ð`AN‚¡ÐTZË@è¾EÎ&GQ®Ô/ªZû7í:âïòYÚØ‹—æ˜1Ù—Œœiœ&RëØ¸õ{¿¿{#w'U\¤çv>€õ Q2C浊fª(ŽÁ£I󇨔5dìaM+äóÙ& â¬Î½eæv²“¢U|#¤ˆeb[±Ì—˜?É(è&1F½¿ZÔ÷TZ,¥õ©ì´ø?oÃ!ñ82ìr–å[ýœÿ•±ËTTÍSñí-¤œP§ë×½”•)S‰2/Œü¦ëû&ͦ*ʤ—Huׄj¢·÷N”4³9 ?8§‡FÁµ¬ýT¸”OFî\+Íÿ°é<¸ç7a²ÐƃÀuJü’¦£Ÿœ…jăÙ41$Á2ï´™J©¥hÑjyßä³®<*~Š1ËÙDƦ†íE(à*hÓ~Kyk*ÔHƒLö¨ìŒÒôcÅ|â™–‚ФÙÝ5fº=bßU´©à½*ézÇ®3»l¦×lÓЧìB©Nj-“dw]ÖáÎÚqÙ¦É9Šn'}w4=­É6†ÁêúNrñ¶’GtRáíö×LúeÄ'k¥hlÛÖJ®vz~^tÚkîãÕkÚëuaýužôAª¯?psádŸrüœÏu-ö {ÖúŠÚߪœœöT¨ à¹ñ=‘dpÆùdR¾ïHw¥eÁÀ*¸ã»ƒw2¨¥i÷LS…a9qéÐÜ÷!è­NK·Øc|Á2ÑšmÄCÈz’{[äè¬0dЙw}ÿñp1y´T4”è×pÊû)¼ì”'9ÊsS€E@IHNDÙÜtG ãˆȸdÝ`ÇTüuª‘¡ª ³ýÔ£åÚåÙøp,/‹Ý¤ÆØoÉd'﫾Æiy8O›†“AnûJöÏ»öËÂržgÉ1å²êÙ8ðÔäK²ª‚ëQ…’d »ªUMÛ“ TŒŒŽæ¢!Ä%g«¡jJªLûéMZÛ(Š}Ë|,øû÷Ösa¹í2hØøè†|Dž=­"0OñÒ,ö».„_æÏÉ-<â¸jŒ‚f¶N¨PN«,:M·zžûC8«ðêB$×mú¤¤Í.¼Ð[“ºü $ß…µ5dþY ’CúhLl ô ½} ÏüÕy¸GÚá~’蚇¶C?{É”×-žI;Cë¼Ò(27EP¸0A‹Îµç˜u8Ò7Æ7BΧç׈’gôí2©!wÑ^¥5ÏíAL«ŸIçC…êpXÏ¿¬uÉdŒ$2*ÊHüôÐÙÒ¾ÙhV$b>¢R^¯î;³ÿ>ž©Üêäv÷ZlyáVYLv§£ÅAͿĔж^ËçÞ€•D÷ΔÌÈɽ騊^¬}qÍ4û |‘'(ބܥÞ,¸ñ®Žæ[Í(ú‘_—Ç¥¯ð°”%–°‚²”Æòhµšf|æ³ê/ª­ ¶: KNÍ—öV_x1j"uó§‡Áî ¦dª n¿fuïÏ„›FdJÅ•Æá ["Cò’NÕA”dÕ¶%G­»tŪ¤Nq# Œ5ÎPVµœ'Ô-ƒßÌ7}¼]ÿžëfÅú‰éOΕ³Ñ=Gíw þ†\R¿í.Ó]àÛPF’¾x8Ö%¥wËŒóÉ@£0¶©ï;s«¥æw*²ë6œ^$ôýLKêI–J›õ¯vºWÏu%èZ’.˨¸I s醒ÎÚo‰Ød‰ú§¼P´EhŽÝŒ†çk~§[9TÅ ”’²ìš;ùài î_® OÇÞgûÁyó\¡B_ÅšC®GœoªíD!^C;õ±)¥íž )›N1c—í,á.¢“Šx7.ô߆:lLBÊy“Dù9•è/yiÉ®´÷p{N:ò¤;ùì_;¶/¸šH ߬CϧYoùÜV£5¯üòûÓ! ¹Ëå†X檵¸?œ¶³îíõwµñ­/)XXŽ1ù¸Ù%«Œð è·ƒ\q_‘/fC*×8að¼19¤MŽÝð'©NÔ.^|2HSA-†Ã·Q¾)rÌÑ^Ò-K$Ac»ÌÏ9KwBó7°Ë-O¬dº=ÓŸ&V´—^›YøpÌuó”ÈÏ•ÑГzõ4lNS´¸C¶å¸lÆN§ÇÆ«u£•Ü:ªÞÊö>>ÆÎ~L·<ÎN^Mœ „  ¢®.W—AWÓkJAÚzƒUQ]³²¤*6¶êÎrO_­Û×&ã2Øz[•R~ùYˆ,ßf*’úÎãÕHð®”Ä›ÜHTŒµ•»°nmeô´™uÍÊ—w ÍN}nêû…Ìrmû%ƒz³iê Øp%Ÿ'SâÁ%^ú ©_0zµ/gNä¹£è¹û¯“Šã{‚HŒFp¨8ï‹ïwP²·N–‚IJqfp8j‚¡~T™²üÏ”\Ƚ¿"’Ü^!—aæùÓ–·ž\-¿cаeû©ë\(öUèíÐɾÆÌ·i¼¦@„ò4³‹[‹ &g—“|¬¨ö#T ¾—£ðà þ+2y£z5 º÷ÿf¥›ÎzPM‘ϱǸ]øˆÇ‡Ô9Jb2…¬ìË h Þe£\)( ¯¸=Ù{Åó¶I¢æŽ¼žðU¥bŸ xõõÞêÕÙL—˜lqÈSá ¨(jÌøÑû1§rØ8fãîhÝ»]ùͯ&”3zÞ8úìÙ´˜ëäó­‚r¸1„7hÁÖxÑþŠ,Ýs›µ<ŒßgÐK-Å7n…2eµD–á`{tn(µ+ƒê¯·¬{0Åï„• {4=¿–ù™-iŒDÌÌ\F·=¾G¦RHXz‰‡÷jv Q«V±··ãmúqƒÌ »ÑÔÂÓ1ˆ}qËô¾s0²J'õ•s~„VºØ/×€H‰Eö½Ö¢L«`Nçy ô _Ü+SÞ‰;e¼Ýl™ãάÏ´°löî-à3S‘sí[8ÒŠ÷p“]q‘o›ø­`˜[òÅå4>/1ï˜ÛŽ®%À·-\ÞóX®ñí|[Ò4€¶&É>Þ}Wo#g#£ƒ4M9í¸y>m¡f>}ù„X)¾»B¨ÊH›…ÿ9»?Ï9àY'Óu™Î¦ !ŽáŠLi}<ƒÉªë5 ¢ÝûßD }çÿíÖÝ`;žžŠ&ÅÈ×"ò«H:VÒ|…ÜU_$•ºö¶ŒPòðPy œTƤèï»ô™Ûá¸J\sQàËœ2GÍ#b„Ú~Ñð†qÚðLÃ`E8~â2= 96Í"æ-P•û]WÌO¸ÖÐË#„?Ü,ðdWÀYâ®Z,h³ã‹ñ™E´wLi$±»³/9¨ÁíJèùzõÛþBQÄ•â%½èfÉ ‡þkdçA„]„ª6a1J@[WñsU„¯<1køýàî­±Åüõ> µ…Û¸^ÌÖ3X¾.\jÓ#B'[Í¥Ïï­.){×2*}(÷ƒ›3ˆÊ“GUs÷ÝÅ÷j.ky¾Ìá ÉQÈÑS–¥RN›žEŽ×ûm!¤£®¯XM_+÷í#+ZUöVx}ŠrO‘UÝÊ¡‹1ò$qêãBlwÙœ|¸ø´_œ33“um@=z°ˆ7}þs¢ñ1OEÉ=I—ž|cT‘Øù‰ â(QCnZ®žIË›eßg·HKö²ËÅ{œÏ­W_aK‘xÎúãjD¥Ib»Ë'ÍcQ+ˆÐ)uiwG¥×ÒÊ©¸„áÓnìW÷›R5º÷‡¸¾P&ÝòÙmóan[n_$"q½Y£,ì|aD²”\Û¥MÖÞQ¨ÎáXL€E 7µR:ZåÙò4› €R.éñ¶zx ¯ˆ$vípeÀ°¿ÊÅ–1õÕ€µsÇ¥xó!€•†Õÿ@vüûµÞXÎÛõ†<¸Î*;¤”nïBÝߌõ:û–©ßZWœ‚Ÿ¢Ì‡Æãèã­LÈx¿Þ q˜½ 1jÀ¯Ëi>,LpüÊY¤ÅäŒgÛŒº"¨ø ó!–óMèŸöƒàCãMc! ‹òí(°ßWø‰¥L¤9[sJo4CS#Úü¨6¶fîøòÝÇÇ‘ŸI€¼½"MÒN¤÷#õ¥j¦7yI¤9UîŠTþûÞ´õ²VÛÏ8ç±>ul‰?c Nb|7_ùŽª58¨^j¾8À. ‚­¸‡zð)ñ¢íüe’'Óm†A¢pò:QîÈT&7S )©ãÛ–ž(®éóÛÐ<±ãÜÉŸµ]‘–n0~vEb©9\ ^àí•â룘5c5¹ìSœ#¹ÛÊéÔÐëzÇïe»F’JCÁ]†ùªKãÊNÌ8ýy¢{U±ÐD>«¯Ø>±âièµÑ¬—ÒÁ_T Ön²¬oèÒEO6¦_¾|ˆ¡.ªÌ^ÁR\¶Ö-ê~(ñÙW;¯žð'ÔxüYaž Óu`7Û ÇžKˆ`ð1Nm¨úM? øêެסªú¦¾›H²hçŠ=®ºSП°*ô¹ÇãØÖÍèýñqº¯í·d,H#Å%>¾VM®; &é0‚³…i=L¹¯ü‚ã³'m¿ÝƒÐ]Óºg/(öVnM€d–ßüUFäm`w‘®þN%å:Ñb£²ú€|š7‹LSD|ƒ3ªó•ÇdKIc¢µêØþô oom»MÈ×ËâTðY¥ßG¿{yÒLUÕšfCÜñ¥{]sûþGÓr'.Íåƒd®‚6”’Ëé# nÙ[Ì$Gnœ°cgÓâë)}šÖÃÖ)Èi¸ÞœÃK]%I‚b¡øcŸäEÚ&5ç}g5ªÜQ[2èŸsDHÕ[#« \lZ¨{{R%-Öã>¶ïú. Õ|P“@â0;õ ~y•F[çÙÓ¿æ;ÑãkVG&¹ìOÙc6S1òºãö©X`eJà 3º¯ò[ùØ`Q.#]‘SD;ôÑWàΙºø5nÂ,þ*Ê\ª õi‰ìÏÒWÒÑÑŽ$…ˆítG¦ãú ñ%V‰•»‚WÆoƒ–éÊ4VìZ˜÷âÒ;r–s†´7• ¤K´fžÁCêû¥®CdIçß´µQï4Ôpà†¶ÌXÝú¶íéÔkä£å„Š|ÚÑ¡|µB0¡3AÒÓÙpÄœ|úš¡Þ­VpB¤vâdUªXøD\•¾Ïߣ“p¶_zéöƒ¿h^-Œë£óB¸ß¤°×æ<3PH9Òw§æ0Ͼ¼[f…Ör†š_)ÍWtEå&/LѱŸ·óX¤ÕM‹ñ… [00”럚·Kgb]|

w„'wžøÈ7’u…„`n>£õD»‡ê Œý–`2–LÉVä‚ùž ~Ï x”záÒKÔÜëÞÛÞ'vê³pÆÎ”;Xäö€% Éçè§Rü-þ7GXŽ×}7¯4¨¼a²AËT`™²^ßNÂÕÌh›L£iX®£‰I\Ð"Cñ¥Æ]ˆâ8WY‰ˆ‡Ùä÷Kp»“ÑÊÍÐ:VzÍ<%¸iOÖ¯˜û¢‘Ýî}tçâ>Èž··® ±4ÿeø½I«Òö‹ •\ZšÕŒZË犘W qÅhÛL©CáuIŽjî’r†.²8±äÙÁÍôEwy€ó›¼%a */’-¡P߃ëÕÆÉùé‡ÃÔS9náì{Ï9<°»±Þ³ˆ„øn,œ9 q@º’Á!*cƒú¾I²\JÁò}¯/ùº¿ gÔú‹ìãñýøuèÓn ÷•¥ÙOR86ØÊnÅ¥³oN:”*ä't«"¸‚áf<„Iø‰äFä^‡`‰Ë£hOšß‡¾þÕ<ÖG}§UW€òM–W…°¾ºMðÓ­uÙOîÁì œ!›Òž‚¥zû=¯åÝKÿjÅ\¼˜÷B=ŒÌ̈Ÿl¥Wu—¾ —÷Ð.ª„‰«ŽO[^Ф¶VÖ¼fu¡ŒKÓS* ½ ;un¯PÑ{ZÀ›£”‰™>ÆŸó½ Íd,;æw¨l]¦ ¥ÝÓÞ1้² •æ*ÁðéÛ{ýàÌã N{ô\-tv }‡VhÌyÖŽôkb­}^qnG¢ÃÃsœØ“‹¦3ŸRbö:&´®ÝhÒöÖc¬órtÜ€K‰Ë.7¶äj,èî„©]–oþ¹Y?ÛQH˜ËKM 9¦ÿ2rM~âø”Œw­»òNPN„…ö¦žX);¿ãÇÖí­I®‹¯ýd-z”tÉ3Ë—r»Ü‡„RgšÉ³Èl l®òuLé-é€q_*Ü1ùzþŠ—V‰KçÚÕ]çª^‹Ë=•¨Xç§·yYeJðþI¥Iëj­õu$È5 WÙ¨CŽ(X"™•×q_æ_÷.¢Á’4_zÙö¸c¸9¼/Ži¥•ß‘{¤ü°vO ¬1BÌ Ö=9 ‘è.÷†øÿ°m»~žT½™h;Ú~‹¸¥Mq <ýÈå™8&Šüì£Iióiï#Í«LuÜÉï{*à+Û)–WÊÊ4•3n‚3Âpê$Ÿ¬oü–Õ·´Ú‹ž6ìC5ƒØÏä<œsKüsãYdQB×OÀÐoQ~ï¿t-aŠ¡¶Â#Npãþ, AÿâÀtç3Ü éýt!¥eèþü…‰jM ‚îôÌá_ƒµE”Ü=½DsP­=ÍÐà*6œ‡z*$‘VPˆºRyù%ÐQé"FãÅ?ÆÞx®ËûňœþPqÎsà $ítôˆR‡ª¡:[>v8Ç:4nÆ‘Z?öUæ¼™Òþ´k âè!Þ5ºüÔ,j¬¢x3Pžf/­'è´9^V¬ïÒb‹Ñ[ý0ó-$õ U›û'÷— ‰•HÞĶwÖ´*.³–¥%á×//}2ˆÒMëÚoÎ÷cÆy1¯øA;'_!d¥áíMì9b@d™±Ê ÐÈx®v2Â9šà)‚[…¬ OÉLEÐÛ)9üGyOKcßÞÀjZóùHR²äyçcù |Ä%6U3WZè9=¤ªiÌ(öÂ/¥x® pÍNù'Õ!U3¢ÒÌólúQµQðqþÉÕ$ö|ýá맯¥tG:²ü–ØsgT•ªcÇ¿«­ˆk„-^¾|/9x”læf(Ü-1K¬EŸuoÃ’­[¦É…t˜t?Œ<*fPW}Ô›¶–,ÆÑªÃtxwÙ¯YÎ Nߨ° $ç€ÕsÒƒ7•¹>HÑUž)ÍEH¯Ù§œ2I‰Þ̳e°|Çü™îZº™¸äùêŒÓ¸¿,Ê`M  ©x\ [À “QŠîN'ßyÂÆŠysXY¦€‘o1cíhº›é15Œcün™µ{‹èå‰AfÿÇu›_öŸnÉžyoðÔÕèÖŽìu«L¢¸óÉ|’?ññö„JÌ\Æyœ3ö xýL~yHVfáŸç¦©'*‹2mÁ^¯5¦=1“å›WÆÍ”dÞ¼,êžT¨äøÄ Çw«Ðb”@¶9*}+»t¨è.\Y€Q:NMö@'3òXEæ1 endstream endobj 84 0 obj << /Type /FontDescriptor /FontName /NZJDLB+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/I/K/L/M/O/P/Q/R/S/W/a/b/c/colon/d/e/eight/f/ffi/five/four/g/h/i/k/l/m/n/o/one/p/period/r/s/seven/six/t/three/two/u/v/w/x/y/z) /FontFile 83 0 R >> endobj 85 0 obj << /Length1 821 /Length2 1985 /Length3 0 /Length 2549 /Filter /FlateDecode >> stream xÚ­Ry8”{j¢lÉ^d‰ÆcÆv”¥dÉ2(dc F³0‹%KöýØ¥¤&ei±&KY:ÊÙ÷DMNÖFÔúÎòuþý®÷Ÿ÷~žûw?÷u?œ´• Xßä†5"©`¨ T047°× *ª 99C2MÅ‘ˆ§ÐT¬6ÕÒ‚ú4O@M€"´am58H0$ù’qž^T@ÑðØIÐ'`É8 š˜£©^XKƒÆ6$ K TôñxÀzç°ÆR°d?¬»  Üq*à†õÄAC&D ñ£ìNóù³å‡%SX¦E–ÉcË¢;‰ˆܱ ˆ‰5 Ëròÿ0õ³¸ ·@väwBúWMÀáÿK |hT,0'¹cÉÄŸ©vØÞ HøM1¡¢ñ8Œ>ÑT”p#\ÖÝ GÅxh<»[ÇݶÀJm×äô9;˳g•ls·g…Æ©¶>©îw1ôoÌʆŒ UUTU¡,"ëûóÏù§Y§‰’;ŽÈ:8@“Éè@ë.XAÑ`X†!*D•õ`%xÈ e"àD§´‹Xû ÿFšÄío¤@0!(T€ÿY:”@¡îÂ'c`@ Ã5°œeª4àª!ÿCÄÐÈd,‘º{s¬|ÿÄ8Ö6°Ø,4<@ÂèDy_­Š) =}§»ˆS‰ÍÀóIªEyCoýþÈ¡46|A›™¯ÒD™ýfñ5Á N†”ÿ–8%¡.Ùi´Ýÿáçʸv驸ýò5óÀ>2둳k«úVçàl–=í…™ôßn,µÌæ[)ž²ýÈ=&½§Ñѯ¢ñzBÃÞèþ\lt™…•ãT§œ‡Ï|Föݤ_`ZîU/:oªÁ‹qÎ(8ÑìR õÎáêÈù\&µçƒ)Zé+°ÔG3~Ö˜vø÷^L| ·ÿ=qA§Ædà]ÆC¼rgüêmšðhÏsF3×Öÿ 3~2Âñbÿjz¹÷għ´jy+±QÑ@:`v¼²yY93ó:à¿"ÜS>"‡ÏY·½yñÅcËwùñuKgc%ïiäÊÕÑèvï@$£,ÑÖCjvïe6©ýß=Àof"œD¸eeúw¢=z\y ÒЮڳ”ì{µ(à°ïT}˜øÄÌrÞ’ȯ…oÌêšKw›’“Ž7@/‚n<¿ûÕŽq>žç¨¯§ §Ç7#>ůœ6* „õÐ5Þ}e€Ní…DG²üû\‹)Ú•ñóò¼¼´J¯×·TùjÄÑ··O Ühã¡ùÀ8›œ³B¾§âƒ|‡¯*¾’í7ùÀfq9§¤ qÿ/éa6~Ý+ËaöÖ¯ïZ:µN0çÏD˜qÃzÕÅÕ3(ÂC³”†•îÓÂç°KÁUM— üòÀ»èRÎE|Fü^§g•*¿,ᤄwÙÆž¬—¼D—)?££Q9¯øç4'…šÚËRÎ:Í*7GŒjõ~Ýc)×–ÜÛë"Ookóïé{3¯4®ÓЬg§ßÖO˜J öšÉ4ñlé8—¤»Ù!¹¹­Ù;?"ö jªkîÙæ«A‘ù_Œš¡nº)Exæ1åq½®[}a)È»uW×(Ÿ\ÍC“;Q ãù±ãbmJ¢ƒlÁÆåŸõôÔ¥¿Ì“Ǹ冓ú2_8×dêGD}´’Ú¯7ÚjRj»õfd_BPw ù²¹óMocÛÝW‡?F÷€0GfâÃ6˜”qÑÖêÝšŽ§À¼˜Ï7‹¸užn[Y]ÊQ(> endobj 87 0 obj << /Length1 2027 /Length2 15071 /Length3 0 /Length 16170 /Filter /FlateDecode >> stream xÚ­¶st¥ß²¶ÛfǶŽm³ÓÁŠmwl'ÛèØ¶m[ÛúòÛûœÝ½Ïûï7’‘±®ªšU÷¼ç|Ö2"e:A#€˜µ#=7¡°¬#!=#£ ™°=@ßÑÌÆZDßÀMÈÄÅÅL(0øüðùËÍÆÊÍÆ CF(lcëfofbêHH)LõO¡ ÀÞÌPßšPVßÑ`õÙÃPß’PÙÆÐ àèFO(hiI¨ôÏ B%€ÀÞ`DÃÄDhdfèHh01³†aøG’¤µ± !Ç¿ÃFN¶ÿ›rØ;|Š"¤ü—L*ÂO‘F6Ö–n„Fc9›Ïi€O-ÿÈú¿ÍÅœ,-åô­þiÿQÿOZßÊÌÒí l¬lö„²6F{ëÿ[ªø·6Y€‘™“ÕÿÍJ:ê[š Z›Xÿ2s3s)˜9šë[:þXý_ŸÎýKƒº°ªœ²*Í¿Ïô_9}3kG7Ûÿtý§ø_Ìô‡?ݱ7s%Ôfü´—é³ðóç?éþŸY¢Ö†6FfÖ&„Ìlì„úööún0Ÿ·ç“Ø=˜ͬ®„×OÁ ôÖ6ŽŸK?=ñ"4¶±‡ùç@ÙÙÿ ý›Ø „þ!ƒðâ$dùC\„ ¢ÿ!FB±?ÄDÈ þ‡˜ $þ !ƒäb%dúCŸÓeþÐçtÙ?ô9]î}N—ÿq~NWøCŸÓÿÐçt¥?ô9]ù}NWùCŸN¨þ¡O-jèS‹úúÔ¢ñú¼Õ úÿ!–Ïœ¾•íçó¡ÿy-þãÖç$}Ç?K>‹ þЧ`{}C €£%Àø¯*–ÿÄÿýý'ñ¹{ÃÿÛg3CËϧñ#¬¬ÿD¬¬þ¨bbü´è&æOÍFf{€ƒ™Ã_EŸBú~:ø¯¹,Ÿ‚>¯’¥¾Õ_k>ý5þƒŸŒÿBÖÐ쯹ŸüÙXþAç?#™þ XþÉÿSnãdÿ×´Ï“¿ð³¿éŸm ©›­)Àú¯ŠÏØ_ó?÷dþ~Ú`ñ~:iù~Úü×N?`†?Ù>—Z›Yÿ¥ýŸ½Ûü󹨿¿ÒŸ›±ý“þlf«o°þ¯geúŸèŸ7ë§êÏefó× þc•ÝŸñÙÜÎÉÆ`d`ù_YXÿ$þ») ×ÿdþ;ÌôÏ™ýå8Ó§®Ûç"€•Ùß7¶jÎùÎöÙÄáó ì?;øtËÁRßÁô¯ÆŸ›ú3–ís玦ö€¿®ß§CŽ.6-øìáô~–ó_ø©Ì寋ö¹Úõ/ülïö~ÚåþGÜg'w€ý¿Gý¿_äBB6®tÌŸ ?ÿ0þó(qr±syýW¥¡“ýç±9þë=ùù>ø_66û|{®C˜åCžó¤† oѼ©Rpj`!“ƹڮÙvXÿ¥X`ËÂi;êç²TT„ð—W\‡°6OÅq± _»˜äù÷çï©î͸ש²nû¶Äþ'ˆ­ s·§lÀò3£% šùý—'9 ”"*‡kD@ÝÚÎuÝiìb©–ªÁ5ä,DJHÉv%!¬Áë.H q`ë“þÞæÁPM4«W6mN(ÏyPÙñï:èÑȆm,J;ÔhJ‡_O‹óƒ‘«?ú†*ÒM”í ÀW ”F$ý3Qƒ*3ÜqDõ¦/1'DCd/h›Û4ˆÞÈØu7 ÷ôXhôLó¥– /ãòl~ERrå¶IÇÿ Ýò¹ðDŒw̉TÓ¡Ò'‚o6'ÁÔêOM›BsgB¸MWÅô†!¶ýšðáá$ª+èUèc¶‹ôl.Dõê-o‹Ø7À«p”‰™YÿEFºO ÓžáK”ÀÕ¶P”}å–Ž–Âl„²ì댬 ˆg'Ê:² ˜á†€RQ¹rƒ`®·ïžo‚kÀ›1®$úלLê 8}Õ ;F¾ƒ ˆb9QLgçƒÖ:êTÒ_müU#î<ïÅòg\c/V*Ú5m}™ß0’Œ Ë2T-ç.¡H/ÔÓLÖ¸+`¿øQÚ³Gñ9®CŒ°WFŠuã Ú‘2ðÑJ/GÚåɤ&œÅ¼Ôo·œÄ+ “Oó€›*L‘“9÷}¯ Ð$7µÀ˜sßòê´8듨˺I ²qR^±2ìšVo*´§_5{vŽ%JFŇã`"5ؼŽH 5WƒÕÑ<Ð`$ (wŸz½°Bjb„Eá¶ÚÐÏö"Æ Cn^y.––û€€µˆ ÊV jäÕ0f‹Ìƒ9þV†:Œ]g¶Tû-ŒÍ¿ÃH{™ÍgnäÅëŹêBÈÊS¦1e¤NE:­JR6Þ˜ Øu ܈ü¯ÍN‡Üið"Ê-]öõ« “:hG˜ë”œî%q4§ïÙÄøíL2•~ȋڸHS?¾ß, ð0„§¼#:´ˆÔN¢¢ŠÉÌwåã¯#šØ'tJ3—1ÞYBx ²(‡Øßc€|õ>™[Š¡ßƒqÆì­ø5ê9Ä”áRjÕ¸E«hæÒ ùÖ~;¥!"çåëyœâÙ.Co‚-í‘7{«òZ›JÈoQO>3_Ïüe;r&»ú›r[Óî’I-ÂÌ:ms•q‡°2øÝÑ@ZœÅ›È&Ò´ÈÉÙ,š4^Ú ƒ›’Áûñ;ÓPQÏœy6’)nI<ôÕ±|ŽšEâQ”h®ÔÊ©á=^Ö´¿ól²ˆdÎSr/Vñ;ûÔ<V~""Oh ¿ñ‡ ƒ9³ð×Çv*ÓÅô= î©­ñEåžÎÇ|sb‘'.)ÉY®û"A^* ¢±*L[­»Ð*WCPäwö2]G9_ŽXˆPˆQí>ä•ð'Ù‘‡”QêˆÇ„ý¿~ÿ~$mÕÏÏæ,óõorˆÕÇu‰ '”ðP8t鲟/]{Ö Æs –4Õ›øèÑ6 {QñW ä ßÙLAºðæé>àòQñ’ÁMݸ+ü\ØO¯\Θ^…÷.•A“½ÿÐ#árs߯³ PEìæ²þ5À®YófMN©íOûn]t”È%öåµ<#'çúZ›NþÍ4³qãÑÜäÏ"¯xŒ"̰½û$vì†QDþDZ¹$Ï „þâ¦×‡?ùê¯Ó¼‹OõE¼Tº©KÇÑl“é±%ŠÈsõy±oÎç¤û„ë;ÕøzEžI¹½¿t‰*×l*ç1\Þäd’ȸI&íÒ¼ð¶†ÍbX‘x²^öÄ•…ìò»€AÜQ|ª}’ciß ôBâÖŽì þßÇ]^È&ÔðÆØ±Ž~8íÐNú¹†]]ׯ/Њ7­×&Š‚7/"êcÔ ùÀ±Ç05…“*°­!Á vßV‘Oš§t¥ÄìïX¹<~R] w„´æÀùnåh2P5pîÀ¥‡qû¹¹”i”=(ioë6Xþ>jBSW%t¨ÜüZ«ÄÔ'Þo/‡æóÌv†«Njƒ¡1…}¡e5ËÒ»·Jÿò&PKžÿ–åÉʹªñ$­àÝÌÈü”²¥›¥QÅÔÚÙVœ£¥ï>±~¿Ü³|N„™Uí¾ŒZשî#–":Ýfnø¡§e²ÒóF½¼ßV®¢|ÞoJ鱨LAÞ1R·1CjÀæ‚ÉªÐ°ï ¥4IIüVõñ²M›Ã=iÄZq[ŸùÁ_ýÛ‹ R_õŠ!“‰–^ŒZ—ËñÁõÃôú#l>'c¨<Œù©# °¥¦,¨æ¦ ¢‡O½\Ë^Ì çO _~žÈ¦6—ð­{¯€øtJ×:þRÑN¤õkZÊžn‰‰>%}‰Ý‘"QŠæk±n ¢Ã㺋†åß’ãXÌ}í™Z»Ü¹P–dÇäm$ ¡A†ñÆÍéÁl)è'Vv¥Æî’*SÕÛ>Ï=b5ï¹jQ$«=ÀG 9èD(©P‘¡»‡””5®:8áä7¦%üe¢Y> Fl$Åʉ‰™Ô}[ {Uá(Çãè@’¡BÝPͦÂè"PB µì w€i†QWP½IfÒHÜ×ÐbpW°$å°š*nIé/ ÓròͰÐ/¬2üzÒÔÙ[ýÎ:Ç®Œ©SÐàÀh$jßÛíØÆß*.„@ª¶«žöà…%W^fËÌ~¿¶KKª9êÀÙeö0O&8–˜ë{!ˆ94£Û¯~;‚+T9Á™'…„螺!º@™/Œ£’Û5¦°”V†O¯>³àÔlÝÁŸô¬*Oa'úFÉoyÊ rúô\«ÑÿŠ¦Ç«¼Î‚âC;'?Ì: ®NöMŠè-ƒ¶#öûÐtJE‘ªÊüñfUÊ=PÌ Àô¶·Íœ3HÕ®b.ð§'úÞãx¼ÁBdôJp=¢w”×5FZ/æŽ=‘<\’ϽŽi|od9àj Ëõ! N}‹mJxͦIDÞJÂmô‹†,á·Ülø&IBŠ'[﵌‰^–…<œzßqGgÅ^?Ë6‹áf¤™°€'ššÃsñî"ìrˆÍ,ê;hÎ7§ÁÑ2eÃLaÒeùG¾ü`ÅÒŠM•OKÿîì–® Û>+'°NHwJœhÇcP°*2ãEð²›mQ óU¢Š÷°¦¸éº{ºy) sÑV(eÓ=‚,yáF9‰ß±l(”xÞ£¡8 £ ä#…Âà§ySÓ5]9 !‚ø¨?LcÕyÕ±Œìh>Å¢j`.¡àb±íïþ„INðõ¡øÍië«o8‘ì®·ŸÐ{Œräüqɪ` ¸$ágh'ÌÒdî s΢áîn!?"%<¶Ïòv6`ìT4´Òµ'CsrÉxCo .’ã@1«x®{° <2Y<¦¾Ó¶úx¹XÈ#@ÛÝßšûwˆà÷SK¡"˜ÓQ2Øcƒ¨¹G¸¬j§úàë(Å3}Vƒ_O4ÅÕA:ìT“yë½t$xc 6¯›çt*¯[Õ‘€ùH(“Ñj¶NÏWŽ2)?Ùb[ûÀò‡”qoéžéŠ·ÄÂÜÔY‚Ù·PŒMöÊÝ{> ó»¢òo@£€òÉ5Ǭ>ùv@%°ñö9^t´É²D³íÌ)í¾Vµ(B•ùïк•Àþ^ëÇg:FI‘+^ƒÁ°z»ù¶tr¤=P•Ô=}ê,T5ÊÎAó コ3’Í0¿Íþbï°íX&òñ%M•<·½ÚÖ‚œKèÁ¿%m—É’Š–¤»{NToÉ9F$/õÌnCäkk¾ZŠç¨ª¡=í7Ý£;x‚R6áý”v}©ŒL@ Ëá ~ã“)ˆW„š°{W\‰u>€ºþ…ëUR=Êl„Sƒœ˜+Ɇ’|†ØmŽuû¨ÑæÓ2ý¼íêéNº7Äß ÃDÓü|ÿÁlóÖrs²«štNŽ?Ê‹sŽÕ³7BQ+z†Š¿ÛxÝØV/ùî•”à«%_U ð1ñAŠHñ n`l¸ |ç­]Íâ½zqÉy0.£.,|µ˜IÑvŒy¥ÌÖ Œ˜m7rH¶£ø)N.‚>FÛQS?ñ£3ô©e|K"mŽM<ÉV,8(sþÈ‘ôë¾9ãÀãšÜ 2Ž5ž™Á§Ó@q—x2üÁäU± %è(pL2åA‚¶nnj„û/}ã€kÂlÌ’+-<½>“úÔ®¡ÍvÚ÷LÚ£Õ@¶sßëñ†‹Q8x’- Ô~ö¡åÜÒÈåè{i‡¶ Æ€†°§1RÖÒƒîüÎÝ@BhØE(ËõàXµ×•“1‘ ͨ@…Ï]YZ›©(˜Ðk%r•*ç ÈÓvzív¤[yRš]‘Ê|¨j1:*Ù…Ý)éúøÒþQc1zk‘ûCsCÎC£ž¥pÜ ÝÁ7”fÑWÔIµ"]h³"Õ:z_¨!_ n½Ïæ;I’×®¾+¯™¦OÙ1 5Gç÷Ü=)/b¨D‚gÐ æRŒ¢S•³Ê7Ý嘡rˆÄj'?n±Ü]^g™mÎ PƒXœÌêA=òÒ‘ÄAƒýp¿:xî• çiê0ußÂÿ¹»®öÔW6“õÑÎÎfãªwè‹h*¼·¤,Ø@…èWÖnù%ÖyÍË+÷é@;«\åc[.Z€Ô¬àÜG¼Ö4ÅŒÁÄv÷¹öDïºl?/y¯SĘÜ\`ˆ¹Mëy‡ôƒ°x?ñÈ™¬CŠ'ÇUfõgXŒàꌕ…NåÎjÙ —>MD’Èê4ësY¯Æ/~­² ¦¸¶§_ “fI³ª &Šœ/XJŠ!!ÁÕÏâx„w*™ “±R=›DÈ•‹òYKe“¿…¿V›å-²j1ÓC|[ŒÀ˜\,LègB¾nêÐ?ì ¹ÔZ:$ùÂ}oñ®‘ÿ5A7Aj=¼j«Ç\I–ˆ®#Œ©ùø^x?ì.ãW¼Ï*§ÚÔ‘‚ÖR C¤û;8Zd).Æ ¡øœ×Æ—Ñ:Adq}t½7ìÌ"U1jПéO&Oó®Ueßän=žQJE§F¾ó›Zèb± Îɰ·#‡WÄÔíF>â Êúÿ²<“ +ítN˜(S÷´¾wsB-eñC³¤)Ç£„ªîHK¯*¡êUaªÁj/r»Á‹&¦5FÓ!Àaê½jûŒMæ{Xê×8\F8Æv¢…u!} r°‚Âso"B¬öw7f¨èþîÌåØŒá>†ø Ý8…"çêÎö.†ŸÁ9ë™lE,A÷R–¥¢_àÂÚ!*êb•Îu÷q¨Dÿ1õËesžÂ`”® ËÖŠrÿ›+Å)eMâð ƒíÉR^ÍÑÌGT/û»‰‰&TeÏÿ<ËK3s­þcñN„s{”l*ò¸\?“•¯ =,/^.ÝÔ‡Â-xs8º²ã?úvÚÙA2Ñ׌×§Só¿¥»=CþòíyK÷‚Z.Ÿ^NÒÇÆ9N5"-t~éåòf\âþþ¢U,Fæ–*ÝhÉ@©¡¥5ú­‡bw˜oäã´…òQÜ£äPà KÙpr¨ ®Ô¹¤cmÈQÖv—/™€vhÙ—rjõ8¾7sNëzö{°Üܵ?£`º°Î¿cZÞ#qXü‹ßNñïçnu =¼½—>›/,¾ 6áó䪡¾@Ž3æ‹Úq§[DØdî²Â…v¡ 0qƒ³z&¶Z-ÇüÃsØå‹@èƒç„]±£Ê:³N¶ƒ+¦“1Œ€ÐxE:Å2%¨Ú Fÿá…ª{&Q¤ôãY¾H…Ö ï1ÍÁrÞe­Ë–nS’ß@: [œÕbA7ÚÒ7ð°:•ñbÛ_5$"~ÌHûWb|6Ènº §ò5<<~Òöæ ¨õ=Ï©>Xo™Ù°Š º«·S>„VTU¥:ÈfOÁ@0³¡'ÐÃKìMÍSññoad´#_v¢Pð~ðÜ^‘çD¸Þh#ç‹—ØÚh꣟¬N‘©–D8ë°5äè‹miÅ›÷€&Pо8öY»JK½÷UÀqvxYÒõvsŽSÑmX:+{vîø˜ƒ¾ä:­Bi›Ö)ù)® Ë®…Ÿ¾¾ÌVA^µ²vÓ§ÇM*PP‡Õä{ ¼¨-h…YKBt¶tæ£X@ݿǼÖÔTikÀŠð'«jÇiŸßU_³34/³(¯ëØdއÎ&^ý²›“m4áK½×$^= µÈÉòÃ/Êë€&â3dÓ™în¼šIÃ[ì´c;gñ6øiÈ`øücæ|®2lqÆèÁÁs‹×:ÍjÍÄ=9,‹-LÖKŒ_'•¨&*þْݯG™K‚–±:FTö´7†_’`x¬Þà äaŠˆ4µl©A4ºÁãß¡Yð³/°BÑl}t«ÍTzuí":›&Ë?½`»s!ˆLäœgɸT;‚ëmSñÉ\éÁzL^øyßè—B^¹ºW`æBÖéèLv}õÕ=üxÑ…ñîÎVqeÓ€1Hìe‰.Š0’š´ðA×Ì‘Eè)-'¨š1ן®Šã$Çæ,¤9P•L*èôP™$2¾~âœÕ{»Ьz£‹¯æ ¤yÖÈ.qíuŽU.²t†M ¼:ñ» æ ŒxEx—½Š¶²ÂØu}ŒnÃGù‚Ô¯°3E(´7d:¸óßÍMgkøÑ&S#´5¦Ñq#˜»st<³†ÄäÃ9t³-Ùw©¦òÑ“½Å-2T‚´ Ò)²—Å‘"Nk=×£:÷{ª@¾^5WY9¦ìÄ;ÌÕØ´¨œQ‡af¡û)QMæåÙþëfH¾~ŠYί áÉM£]\Hà³Uìl×™Ôt©ß=üÀbuO¨äJ\°&¯ôªH/¹:¡#ËLˆ}£c\ ²¡nð;§*£Áíù2âG0>DÏß‘ÍBŒ±CÚ{:OZpY7zfóKƒ¸ÎÜï^Î}Uóm;oOß<·¨«Fp™5¥Þ-gs´æöˆÄöj`6@Ÿ^Ú†;F¹·ÁdQ)kц!òG‚­¸ê‰@qcU1-µŠbq}ŠíÌÀ EîýGÐêStª“hºX|»Ï¦k2–­ôN›0ÍÎs…}²ºŠá¥\ˆ]ÛÀG¢ZÂÛSÁ¨¤r—j>åö8¡ù·~Øð1ܰŠÙ³âæ²7íå ¿²j³7IÆ\ª§';p&¦3¾cRØTˆæAÐ ˆ;P+U§Þéöoì/Q+]³4+†?A½ó\æòÝs NÉe4ï<Ã'—~Ò& ‹MîŸt‰Y>¬út '<Ç-·6 ˜]’Ðèk _J8 0C.DnÒ2|Ä®]qðHÕvÅùo|C¹Ž.öÑÏsiI_Çö ×b¤½aØâÈ}×"$ø¨2#Ö8]@d@ QLž°W¥{`¬Sçj®ï§e¹Ç`¢\Â_DǺæ- }òRò_iÖÅ̺™Ý—ÈÀo^å³d,m…wËŒ+ðÅÑŠæ~õRRLLGˆÿõ†&ˆaåòÛ¸ºì?¨ùwdW=F>?y9\m‘Åw£^^O9{öãd z˜yQûÚTZB™‚°¬}ME8‹åÜF½ªÞ¥ÊÇl¥ÉÐ^C‹}in°âÝ„EuÙžäT,±„:%ÕdžSsQí=ƒ÷¹¿ß†ÅÒ¿&¯¯ÕJ&¢¤9Z„:¢£RõÉOuš÷ŽœðÍ'ù³~~qÉoÍ=sæX+N€µWvƒ{êHõ¬N~ëÓ[‚EÇj¶àKRš5Ê,Æs‡psݯ¦wq¸´é~Ã)] ÔÂ’‰æ 7+6ÂdýQAæÓ^[v蛥Œ½š(ÓO§osFR°aƒ·‡•Eg§€¥š1µAËê=ü~þµÀ‘qSÖzŒïÝb³IÜtq…U„»ƒÁ¬FǪ%¸ExÕòÒv0C =RTXªÝ-F]m#ûoÛ?VŸËH·Á•§h`¯‚HDm¬;q î H ùØ p­_Šdîxr3paºÊJPCÿ`$gXq+es3·O±•qÑz5ÉxŒª7á°¼EMJ4-µçºv….rpžãm…ñõ‚…l‰œ蛵ãKÿнå)j^F‰„ çÆ%é·Xðs$ðxø«þ&?°7cÜY6d²^n_É`Éìoè¹)a ,oì玀±Û@€Ê*—KˆÞΫA©ánRùc£ÀÁÀn¸ZM¬AšÅv÷=yzæüH›™ÁÔ¶â9{Ò5½ÿ œ=2»kká^»ïÓëØ$ã!MŠ1Þ2›/Åóþ›Ô¡•gF–)‰¶2þÆ1ÔtÙcÌÕûäDw¬ß´Â°šA&º°êxÈ®NphËO—õ–õEåòй²ÚcÃx©êÛ_fûõM‹<ü‡¥ _ úùTÊrh»ˆr³ÉAÑFø¦HºV"t¹^!ó+=$À ¿ G þÛ ™¡îºF ˜!yÜl l®@[ì;°PËv¿@!m4[ÃÔÜ.xV´3:ßÌËÇôŒìº“ŽùšŒlQPb­æžî²¤ˆ5ýÐ* ÿ8˜) ´qcƒ2´å*]XñwÈÞ #Ú³:q¥Ž³4÷›‹wþF5œ cÌöË®’I‘t€!{:8IîÉ`q-žÎî4ˆÞsÍ£2÷B1ë]^|9ZP.U4›½Ôiv ­ihr¤•©æÌö ¥ì¥›jî½:W)½ÐÔ!2™Åð¬&Å/¤A›7½I^3KnÜšhò̉:¨t)gàŠ>—Ø&)\uo‡Õò»Ü3f[*¦5lOx¶ aÌÑ7­ž±U«îŽÀW^F?>q\šDéå5i0y~?3#óB{Pù®úë—» ‚ ““Ø»«ÜªOU‹â{/;n°yPê!½”žfè$)—`½ ÞÍdØÀç†^k·ˆ öÉ<(jœË%éIŒ 7‘2Œ2˜qoUBÎ2­9&öZ•P†÷Ú(⸶'"ìÀþ«¶• ,S}¶à¯îø>푺,¨ú³L f?÷ƒæ€P’MB(§íÊ•@Nøv$ªÞayyô”ºþf (Z®oTþvîÙ©¶9Ÿ¾?Î–¥²&í•“ ~¸¾õnópÝ žá3æy+ú2]¤ð`³ŸP£Qxèh!ˆ2®és¿Õ,rU B1ò¡ÝtNäÖæFZÎæ P¿´ E°fîu-àw?ÔЩ/¹w^æ@“xÆÇ×ÖØù€Ü†¿P׃ ͦwå/kaIúƒ&2õÂ69/Gߘpä€hK!öþ–ð—ÙÝPVš¿3_©‚ ¯gµâ ¥²Ó¶²¼ô6¡ãíü:œ ìòèM«§óòÆo¯õÔlnm~ö“ovŽIàqÍhŠá¤œEä=¶üÊ{ d¯­_p{Åê„äâ„_Dñë»(Å.2› í-ÍÂòÕ,økúˆY ”Q§Häž·å|-óÎWœ൚ý0•ÍhÓ!î!¡xwVäŒÅÌ:'U»¬4`”È…E'¢¸^{/L©›ŽƒÔtˆl‰ÓÐÊ׉™ aЏ!=®Æ·nµQ¼yåù\«žž"d(U¢q-Œ[¢ œ±À~Î Ò_ȶU{Y!ÈÒäî;þ:GÑÖê&Ÿê0)-XR †`G¯é2xjçs‘ª5þnÛ´êð8žÓ›ùè>xLn”ÑŽA¤m>ØÂsä]Éø ÕÙƒ¥A+ÏŸ4(û{Ô³òU Ñ·¸Üb}p#i$ð¤“!9õ#×Âtœ09däÙj++A°žñ$Õwm16‚zïîò¯ú?ƒ¿ùh\-14ΦîUˆ´&%{“¹Ñ.Iøê3O޼.œijΫ†Ò‹ŸYPÅ#¾¼qÜ­É3+QÔ÷ù .5Ú y «Ë nÇÕY]•éÅ ¡BÖþXâ8þ‚\1;wBI\”ŠÜ0E3œýõl0GåîÊøìöaeרíÆõR$Ë—±hFË9”@¬¥¨lV˜ƒžªÓ; ÷ð©&l $ƒZÇÙ²ôâý!nĺ¬ ðXnä࿞Æêáä›–aN Wx©À{‚²c\TéÉÎÈͰ&­”j¢¹b± ̶¯žlA”?”Œ6‹˜´¢Tåv£¨±Ç/£sx~8ƒÝ•a™mq¿l\=o\±—-ášÏ\z›*«Š&{ƒ(ꂜ1^¡Ù²S®}Øß¼,«w(>~ÞÀq©ûÂ_"\G %h²µ_ټȘ_Ú ÛÍ’Á=ÉÁ’ wa×=×´`\F¹n«BM’\¡=îÁ›éÄY2mâÚOqÛfúæøÒÒ·"'/wÑ5¢¶(ᱬ•PÓsgfÜŠÐÑßb2ª¡»åM¾ýîcª:Ç©ÂKU—Â7k{¿GûEibM¡³‰¿jˆà¢c\ ý [[¼ÈÔnô$[ø~šÿ؆-—h¨QiV‚Ýl÷-*j+³*‡¸±­+ù 1!\®î†=~Õ¦"\+çn-—§X¼þJàÒæ‰¬ËWޤyÊ*»­AKç«0Ù¶¨q¬¡@6|¹Ç—Zx'ظ¹îvöË­‚þ 0ü\êA²áe'Ë¢ðøLK¯÷Ë” rôXnc ¼òD÷ќ撛 ˆ¦aù¥‰`—sO Sùë¼åÁ½&ƒàšÃàû`ró£åu^©á€“3“lhc^¤oíý¼üdç)œ©É2{?öÑÈj;OÆ×¾]H.¹tdPqÒ‘·–ëâéêÛ²8ý(=á™gÍ…SéHò3Ó¨ºP… 3)Óº/©ô±EPÑ̶Y:êäR O†ÛÂ{ahÇýˆÆ–qôì ÔÏÈÛ4F%8ªY.eÁ}V‰L]Ïe·'W==˜º7ÕXÓðŸOj©O­ìâ¦&fXRó/¡ÞŠU—©_“ÀÚ¹‹tDæ™íí<#“1sVÙ¦Œž1…«‚Gkÿ©˜5sQeÈè-Û”ÁYw¤ýˆW`.ÍŸØ¡ôD.½€»”ùœ±œn×ÊÏÉt ÙP?iˆÚ¾'}[ͽAËSN((š…& 1+ªŒAnÜBÀYÿêa‚Š;•CGáüTþæ7 O¦hèßÃBì2JÀÞ-}Z4ýÙŽß•ëO{šió•i/!÷´r}ëRɨ}ÑâŒç{ʵéÕE ä÷ãu=‡~ (ñtáÒŽW-ðb~¢M†Ò2àZyü0ól’²*õàÔÅõðŹ’]81Á ¡¨ UJómvÛ¬©¤Ÿ¥®»gf¤þßúôùøkeòTßòD»—T|v±Åók‚&µ†c– 8NÚpc Y˜_¨Þ& ÇoÖoÁ ˜d/Ç‘ä_#¢•Ä ”/ƳÆf°£T¥~áÏs°+vëé.óZT¥m쥼&¶z  ~kâÙ`FݬfÙ_Šg˹¨nß<ÕNðH’©%'‚U yz6Ÿ§)¿7®zL#Ü9^`¶KÚ˯›ØJ>"žø$W.ññ|°KÉòy+‡õŠgå¦àœÌü&ZWZ‚éôµ]–èõM´\ !ð­ôìwª‰è pØ$G[p«Õ ²Ûïô¶z,é3;Iõ‹…þ·DnˆÄ'a¼¶Øf`~~ò¢Õµïª1`Ä˪£LäÞto Ñ0mÆé|Å2®6eš=É·6‰¨Ð54†þüGä¢ÄD´E>2&»ž<ݹ[(„ïQ3“œ˜ó@ÁÙƒ‰*rºÓÈjœ!U©;¿<ý(ô†ŸC]™Kñ<Xš¸†ql…º(_2˜èÚ´ž¢½)öSø'= <[»×ÔFCúgeqš$k\á˜)èRÓ3¿ˆº¼CþîléÿØ ¹ÃEY3jÞë cWêN^6ñý®/Q=CjÚ§û™l0Lb‘]û[£=—âÉN‘à¦S>6vm Îny‚+“}v_˜‡(˜¼î ³°È*”ÿNÍdqBô“Ö.+WH¢ïÿFÆÆìÀ$W÷£-Ä.®¶Jüahì…¿z¨ª—( J„ƒä3e( rThG­F¥ª‰¨/çP¹øf ³Oz¡ðP¥!âH}vn-­öÁ¨É`´Ü]y-ž°7t~&ýÎì!f>Ó³9<· -óZÿ4GƒS›óÏ‚š Õu¥ !œ¦ï—S&E Â#¯óÀÞ"™k¿]q˜aûáöTÙs÷Åi=Õ‡IúüÃ4M¼âäÉ–ìQlÁ¾5D FEë]žÜ1öÖ+QméK¶E+à·Yh5¤}OêlÛóXNúÆÐ¥%uO*¦L"1ˆ%,°|ùXGð |÷Ùv ÊO!p{wPµõâ°ð bù¥ãòrx ÁÙ>ˆ5„¬*ÛòÞÑ3M©ûBYÑF$Õý¦jÈ’®“I—’K ¥¤wkRt mØ3ñëÕ¢?·ƒ5ŽÞÖ¿Ý|j^xjé’ƒDè| 9z»©"ï k¾á…ZŒ™Ýó%"ÀÛiópK"ƒ)Ý¥:þ>ÅØØ*LŒ×Ä“‚Çþk"YËqy×ÉBÝH¤´Ë[İÑ~‹e%«gÜ <Ä·h¡bª8®KI‰÷íðQ‰ƒÉÄÌræW ‚š`Sr;RæÎ:MKœŸÈ+”Ì44Ð&çvz$•s`x¥ñ;u1 =‘Ø8F¿Œ «@׎e=êò0³Ç2ËßÒ_Ì‚©ó¿ûm—_/l_nnK‚éÎsA=ʘ>,bË™ùhí¦lJj  ^O•]uÑaö‰6Ã¥‘¸! ®ç*ºÍÚ¦†—ËÁØ.2½vÇÓð*¬¡å ·ò‚A³‘jàEÝ£f]pfÛ¡×ô,cS¡9KÝÚCCëGHsÇú¶‘*1ëé1’:ßY’¨ƒK›Ü€Ïµº‚nx#4eè „mî0ÁÌ„ÈOt0dR´8"Zøٖé½’‰êóýiײµïi»d°XK”éåR7Ó·gkaЄl¤Àü¹%³@©n•òHpÙ÷ÖjÓ^mý•´\Æþ⑲vÊ>ÃÅ x…ÛÆµ¸ÝdCßUý¡ò8eî’Am3 bb1ã4¿Ž~‘ |-ÚˆE¾˜Ììâs,§àÚQÎK¬ú‘[½d–úk7Ö‰_6KPP»|vš—ý¨O€§R ìÏ`á[º*mã°þM˨Á?ÖjiÐV̤ù‰ ?Ÿ%Gæ[L,ÑãW®/MuÑ€†8Ⱦ8iÌ&|àûîo°™.F̵›'|jcïòXØÝJ`ƒ¿Ê)Å6€v(¡Zö1PjʤT‚‘Þ]Å.еlg uGó¼£ÖÜj¢òÓ¸l:ìÐ;–ѳ¬m‰Øô@–‘®&¶û” •uä&À•a.¤¹?Š£%¢…‘õ™r·{ÝÊézo_’¾ò™ö‹†ÆË”ý0>ŒD£kº!YSßt-É• ÝYq>§ójˆ¾ñ“–o³Ôh|ÖJ&¶s©þ.>€¨/3J…˜Ïrhæ~rlÆŠº«NY]#WZ&šGlÅ­Q‰ÀpÍh; x¢õÊ£FÌ‹jd±ø5ÿìyI\¥UËã–VQ½î^Çúâº6xawX™³[Q䥦'íR¢A½ðž =2_BûǪI§-¬à ç{ÝÔ’ä-¥’Ûö¼…ï¸OgÁ³ñN;lÞÁÓDñ~•½3:ú5ø þ, ½DúT|f‹¿Yºd¶y7j9W¥SH¬6YTŒèUob.! ½&œ2Œ¢«Á@‘˜«%ƒß§zD¾ý4Xc¤=©:2ÐŒÒD ¨MàËXé÷øxö‡~–æìÁm_¯¾ÈÐ`žcH4WW6œEßòúȹ‰{ëào!½ “Wn&êåË—¸6'=²`ñn¾YYÏωÜ+ ¡)Ó O*A˜ ¤)Ée\+?ø[ç›ð„æÎ6Aس¹.Õ%æ¸m :¸ô=r¡p¢U0 #æçÚΆž„'åsŽC£ úäËñ]õH¥à}–ƒüR;õ®ÑQ!L/·{: sPž\Ywº±UyLX¹¼@\’qRÝY»ä·é-xØUb <¢ÇmBaÙÜÂ×JRyhqÑsv«¿ˆV Gú±Ù<§+’Pd"¼HD4¦L®:]ÃH)ï^U¼Ñy] òP¨Î®¾ÜY¤ Ò©âZyO@ØñZ^†t6þ&MIh?ñw²­˜Åß12Õr ÷Ö¹z»ŒÀþ!Ê!›áˆ–?nõœ°clššˆ*J,Š ½‹[F Xí,A9kÓ•CìÛ·H mæ-ÂÝu–¤Gâ¸1A3ïg;§“PCÍÔóƒoÿBpÁáönRŠÿ·ƒŸÆ!§‡­} Ohǰö‡sŽ ëSh<¾¨ÄÆ3|ë ÑV ñ` "›@+¯²§q«3W×½Z´Åêmø¼&EÄÜ€©*C+}àÎÄ\Eas. üƒ7ü‚ªNBdÖXèòQˆÌlÖ`ëÍJÿ¹d#¤7ÏG1;{”‹ÿˆcÿíû«Û™z²4P½)µ8ù^ ø½‘iœÃÖlm%ü¯ šhôžQ4OhšXÅ ª*ý½/{ÄÏ P?˜CÖ›$.V2sÔ~*B4ŠÄ&\zwÉÉ‘ç?Ê9šž!¨ù'÷®yŽ k,R©¦¾Ã[qr#ã„-mͶêþ`’"?à.|þgëÆà™wWVíîܵ\=»“N[ÚsBœêýó4ˆ•¦Ò,È'M\ÇØø¥·¦Ÿ{B+ß,ܾ ‘a +b¤kÛÑ‚CǦ‹—¿×ªøSÕw“Ï’É)&|“”ÅHá}ÜÒ¥»˜âšrÕ5,|&²ôМåë¡!¼^0¶â5[…‡1bÌŽ:‰\Y“u·ãe ¬8ƒâŒGnÒcƒŒ0Ð>JãFTºJ˜„Ì·ß{鉄–ñîa|שˆÔ\¯ŽÚpšuê÷³Ð@áN‚õ ÄïC9½—ç“o½ã†tdÃ"ý†›nªÒ÷ÉiÉÞ¥ÀªU³²7”IlÏ,wkÉÅ çóHIXh¨3"°¢ãìÍ%/yG•Öˆ°ûz ßÂZòD>šùµ'ƒˆFæÑs ØòÁ/GX{ò~²œßÐRˆÂ¡]Á5Œ›lõ{ÄæJš€ó”Ô\ W•~Aê_ö×iN9¯X šb24”kçr¶ê‘üµ¹_ùø…MœVä”bñÑ7«$´ƒó¼<ÀmL4BAºœÇ1.ÅLv5é§‹ Ö×Yïgá›”€Ý—¥8> endobj 89 0 obj << /Length1 1071 /Length2 4453 /Length3 0 /Length 5138 /Filter /FlateDecode >> stream xÚ­—W\S[·Å¥* ©Ò܈ E!!tÞk(Ò $ $ôŽ E¤÷^E&½#Ò‘"(R•.‚An<ç~Gïù^ïo¿ä¿ÖXcŽ=×Üáâ€Ü‘‡cl*´ë°XPÔÖ `9—"sEaÐJ0W„$–ònö€‹JBÄ%A"ä\€"ÆÙ ‹²Gº<м¿Db€¼‹²…¡m˜+á„÷°…9[ÂÕKwtôÀú뎀 ƒÁeë Ø ìQhrÁ_ÔÑv@ìïe¸›ó¶ÜX>ÀƒÉ à#Â1hG/ް#ÔÁàk!ðIþ?BýÛ\ÅÍÑQæôËþW“þkæ„rôú_ÆÉÙÍ´1pýo©1âïlÚ8ÊÍéß»ê®0G”­<ÚÞ€þ^BáTPž8åj‹ì`Ž8Ä_ë4üß!ð}û+‚ ¡†Ž¡’ÿß÷ù׆B»z9ÿãúKüƒ3¾;X”'`Àx!þùϯûÿª¥Œ¶ÅÀQhü@ˆˆ0,æEŽŸ <‰>`…†#<„'>° ãŠ?à{âØa°ä¿®ST”ÿµô7I‚ÊÿTùM`@Põ7‰‚Zÿ84ø‡ð÷,ûM†ÍoÂW°ý‡„…ñ„qrú­ƒðEá¿QïG!° ÷‡Ÿñâm¿Œ·@ÿx1æwI| úÃ`üaìˆoÈïJ"x+WÌÛø'á#P°oˆÕ©éxÛF<GàX4 éÂ÷±Úä¤4–r•dõºÇ) îq«¯Þ°ÊNKlêäÏUwëÕtï&“½tm¯ç‡ÁT-õû›"ºãKM _gíöläAy” ×.Îr\xeî^û*#DTÌD%Ýñ^Ø£jn‡>uªKI¸pØœub<ñÜH°¿CØ¥Fþ_1­nWO .å&ü´Øÿ2.gÎ9)zýfr ùÎÉ ‹|¢Æ/|ýIAtFSóéIy¦ ì(¤ž;6=q73&ªÜÈ?9ð‰Ù·6Ë_àáìÄ£Á\-!êÕgY¸Ùk:¦¯€ü÷-‡·÷ŒæÐu:›Í&A¥3:ßϹcxô¦ÔuqdNR³v-GÉuaóÉŠ`?+Øå™K1©êW1œs  Ãj¹4‹HšÌŠÌ4úÇÝŸ Ã§·í¶â7j‡Èøž_|òÉF5böVè} tœ(陸ä»^ÀlᎶµRîî@–û¶—ˆ! záÛ¤Í{NægzžK*Q[šö?dOzêÄf.ŸãÍgâ íêeÑQ¼×"¶wï]µØ›ä=CûCª¼lªGžVû±ÈÄÌ!¯½£ ãÉÃŒ¦×#–[÷S›’ý2’‡Gp“ï¬ÍNZìprLÍ‹pS,З3†óâv×H õ¬Ý äe|óŽúâvþ\ÕµŠð×þ#;š.ËtäÂIl³"Èb­~N—g„ÌÔ’ÌÂÎг¢ÍÃXYûqZ¶Ë¾ª±¡èÌðUK”PsØ3ÑÐõ GÚô©dÝ©ìÞ ­DjšW^´öû‹î] pýzË OEJ²1?,Ÿ‚½),¹ÑÚ³•¨¼^l×M8oz°õÖ$yÒDé)Òñü®.½Ý4{qæÄ˜ö‡$ÙÈ8ŠÓÇDPàÀòè”[®¼<ÏèûHŒ@=ŒÊÿs˜÷àÚ0½ªiË=ül½×ùǺŒú×f‡—| #ݶk\«2†˜“eè’l>?ÞÞ¯vRÔ˜' '4Ü.Ã1¬£é‚”ئlw!ƒD`ûÎk:›9ûVwlbWÌýâ‚|(Ç ü&‡2d—b‘øçø¨.rù±IFy|×èãVñ)yÈã‚§i!jÖðpQuKx°¶ÖÓÀiÝ…5;;lBÓ4Ð9tµïG²ëK·rã ì—#Þöïæ#‘äî_¨B£)ܪ ·<³ž–±ÑE˜Ù7B¾‚´FCb§¶gQ÷Êê¾oª¼WÙS°å:¼#ÁÙuÈ{j)šóMÒ€ì¼ü`žÙmíEOAŒÙª£TžVT‰·µnðV[o9Û[•Þ4U¹’b È]ËJš•Ó伤ÁƒíZÎ`òcËìéz¯$©}d`V}n6‹£ íÌ'\‘i.‡ÈàòóúâKÎe®¨&d‹ˆ ¶´Ã;Ö[õDâ’ÜÅ`·5PŠÅ¬Ä3k=º•Ý®óØáºúÐóNεÌ! 8…Yµœ¶„ÈðˆÔðèf€³pjÆD|…oI®7ö¡»:ƒÒ—¹Ú™QËØ‹<‚ñ£¯"Û ?=OÜéÜ¿­Æt¼Ú]½Û¹ý^ÿɱح„õ‰Ú<ºõhe†boÏ+{J€³^.ÁhÓê†Ú“œ¥¯}ÓoML¶à“Ý0UÖ Ë³ˆSΣ|¶)y%–±Ðؘq×E©ÔG¬3}*ÕFOs÷/íåªÕŸ¿ií÷\x~Gé­D {e•-žx¬Æwî]-£KD³Fg^Þ{h Õ…å·9\²ñðh¡+Òî,4×ê£Á$lvǰø1­àšïØ ‚Êx5W¡\+rê'ý¨î¸Óìֺ͈4}ÈUî«A8ô~”.ÀtPÑIÆ6ü~í´(=³˜$)ןŒ€Y§ûlmow««”]jÌÚy{ûmeÌ|náWkÞÎRS ãCíúH³0(‹R5Ô½€ó•ïçÊœTU%:¨¹CÔ}ã̈Gãã{.³¦ Ò[Šcu:LÁ´ŸòS´°Ü¼[x#iC‡úŒ0=~|%iŤu¢"d_ŸWÅ_{©ËTaqÆ}%Lz‘øf_(HŠœ³RáðTVcÇÓc¡}ðL°<µ†Ï;²Êà³YðÖ¢!Ú"¤4±¥Ñí/{2µß‚c£0¿¯\ 9va$ŠnµŠ¬¶lÅLd»èI«Êøtu-ú’nÑÏÂ~F– ³³½×´O4 ‹(èÜ\BÚùlʯ€†úíÕ§êíB…2ˆ'È%ã^\I_áàm ûªá«!ë~+­>2—ʸ£÷Ùn¸ºÅÎ_°º3•fY„¥R¦á­™¬X§¸»F{­=›¶$jJÂÔYQZ¦V›ø0ôâž”qtÅ:aeîÚD5«®Th‡_7w[ÈuWw¹¡Ï Ú;VuHMNs¶òð ï‹÷ôj¶ 'œÏmühÎhý”ØŠ/€ø¬¿5û¦L$[®†msó8úÝH¢ÇÈ-Ðû®÷SìØªœ)«*$×íÂëÈŽ¹ÒŸR7fÔ”½ÚÙí·÷³5á®+w er~Ó`GQ¤ûÐfÙt2ï!šÁ’K©²’k)ɇçT‚¥¸gþU× ;ÊF`¾¸0cíÑcµÕkÐ-û[¨X0îP^ÝxÍ0“ß š묪tï[• ¥Ù'ðˆ'y¿Ê˜¬÷Ð<ÓbÍí ATª&Üœ˜¦{,ïÍýžóg±îoaïj¤ç.=pÖý‘Emâ04Ù¬C ?òa³)…¤3ÜZÈ!kìÓÊ0ì'¨Ö„NqLEw0ñ²~Wòܪ4CÉsô••g6­E°½Ïnîñ‹&ö»taÅGf‡.ŒBZù$_£â‹q&»œwu(ó6@ËÚˆØÆv ,!ÇZëL×Yèôù{ŸôâC¿iû0ßOÌDEÓú O)°ãÏÕHE'kÜ£æÛ¦70&}Ù»aŠ ‡oFÃUC­‡):Ëœyk濪a§iYvþr&ð¬ûÖ;+WÖ í²ãÞ{ù!$üЏÁˆâR'éàõ5´r@Om5Ÿ¹_ƒúL¢©›Ü"@«´Ï]ÏF[Tl>,ŠF_`¹ºM/ÌÞ_eÑ]Ô;¾7Èn]~›×ÿÖH«…¾¾Á'ÿìï?h@ã1¥26kØWUobžË2Ò±“¾®ŽÐývþJýEe2_²EvÆH8©~ÒÙM³~jDyŒ^¼±¨P DÉ'uæL™}{¶¶ÁAîaœ_Þ1Ý‚Íåy$átÔËú^KµÅM\ï}EŸNÁbÞFbÂø·—ñJMþ²qú‘—0#]èÏö*û/§Ôš-¸ÒÑ- <ñÏ)y@n>,?_m&Fæ‚ãu;¯ñe\ÔY< ætêŸÝ ©Ë¬ÊÉän™­èa„{í÷“»ÙR%°–û ̬dÚñ´úôéºñ5…`ï£ÄKg»Hž‹‘:K &Ö\ƒ5È¥\Ý5±+_á)5wÃ1èr~à!\ŽºÂèÅöRUÔ2›æ0•†UU‘ôù:\Â/ì’Ï4¬•¸#Û8ººÇïIZ²ÒíÄ%EA²<À‹ æ>iæj;;v¹Z¥I›p0Sq½ç ÑëúñeéËî×a¤^~RzyùâÙܼÛÏí*ðPç´%4”Q&Ôëf,x¶8E×O†ìQøAv¬}»˜º=›ñ^t–@ó)á× !Æç=Ò|y1ßW F|[Õß ~'”å5¶êy†S‚ËSm‰ƒ{ÙØN T¬¸?r_ÅzT;ã¤Î?ž/RõX3»Hk>ãÏî ýey'•¢Šd²¦êGûà7±‰>e²9ëGŒ3mVœŽëÛ·KÙaAÒ­¤²ÙB×£¨›-_¿#ènÏ uÎá4’O¡ô¥õãJ{+ª€jëÔe×ÿŠyçÍÆ´±ºOÕ首É(bÅ?eýe˹t}yÛ—ý}ºŒ‚õâ`ÕɑɼY…á¤ãÞ³8rÒ=îéÞß?ß7xßM½åÅ%i—?øRl›çVt–hÀhä*ã·F†éU-ªÛˆ…ŸÕa3 Eð.L$ÿš:i¢>u7~²Ô:ÓöK» óç¼§o<0éÉf´J¹qt#"\Ðúýà~ns¥I¬Ýg’‹ÿ¿ËDj¬ÂÄ©ºâ·÷ŒCY4wPõœöþòµ•#öª§&ó« ÒVP[m¶[Oc©*³n‡Üø·2góŒÂ†›óùvvÛYÞíñhdrݸ/óisë,É«¯Lq<èXçå&jë¼#÷µÝ…‚®Ë?*PÕ[ßEÆÚùž4Ä:R(s÷÷IÎò_åÊ%ãï.^ò8H]ßZ¾°¶hÖjçrî·êyx­|º-àU«^SÔFÏkèóݽ;8Å¡Øñ¨í¸,Æ×ú6éÝÛ5ËæBÚ§Ù\:¹7 ï=4ÒŒ_$‘/õÁ5Õj’í jUÏåÏÙ•›ßpû  ‡bùf=b’|ªñšáíœ\÷òA©1=©Naã³”.“ £ÍÓ4^‚€"¶y5‹RïÔô®;–í›'2ÄÔ_>^,U_Åûâióî?h޾\Vl¶Ü•\X`ô:‚Gbð½¾HÕ½ a‹X?pê1V×ð¡ó^Ða~«×­á3‚n¦Qõêo3HHJò>œ}Âv#”Ÿ˜eAy óƧ÷ã(.ʽݸ—­ÓD&^.6‘9H±TÛ›²³'#©5œ/B+»ô27€×lÅsã‚îv¼!"Ù«sΫ¿n 9ÏTÒø>ñæar!Ö´D°Ú˜SE­gõÚAfÔvš¢sÊÅדæ:¥[ÂÞ÷z%ê•úÜL”TIÉõšüì-ýéÉÑL;S1í2« ïdŠÚ„2Ÿûy¡¼©c«ºž'CUmšæ'±6l„ËСݳÜp¾+çèël T§5é^uþœõ5yà›yÙP’Ùdçoîv¡=†Òýž[ sf½]Ä9¬çö'­+Oä`”S¯áD×åœÃ;—ë×F(äÚÌ?êdæ Ë‚QWí'[6JÃïè;ñ4Õ0w>²+¼1sí*ؾ} ®Fª&€5‹ˆ¨ÓTA)¨Ýö=œ ¨¿Ÿ4ÑP©—ÌÅÆRðâóN¸h§;ij;~AMÊTò±ã£¦ÀØJ…0hê‹Qà»zR¶ÏA¨4¿•0?~Ç|gÿa[EeÈè–ÇÚ€d™—Цј(“å ñnkä-F}ØðÜ»ÜqmfwÁÀ²J÷2ç÷‹wÿï×ý« endstream endobj 90 0 obj << /Type /FontDescriptor /FontName /TJNTDN+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/A/E/F/G/L/S/a/b/c/comma/d/dieresis/e/h/n/o/one/r/s/two/u/y/zero) /FontFile 89 0 R >> endobj 91 0 obj << /Length1 1071 /Length2 4770 /Length3 0 /Length 5440 /Filter /FlateDecode >> stream xÚ­“e\Tkׯ¥DAR•M—0ÌC7H—`3Â30 %Ý¡„t7 ´”„¤(Ò¡ HJH(!ýŽç¼ÏÑ÷<_ßßþ²ÿk­ûZ×^÷ÚÜìúFBŠp´5B  …Á0@YÇ ÀÂ"dÜÜÊ„‰F©Xa0,%Ýlˆ–€‰J bdÜ€2ÚÙ ƒ´µÃ|Êü¿Š €¢ƒ´±B:VX;„^ÃÆÊ0BÛ X/a@ÑÑ0üuÂ0D¸"0î¸0 À‘6XÀa‹D‘~ÒD=DпÃp7çÿ¤ÜW¼)€o’À[„£QŽ^ñ ¤‹Æ÷Bàü˜ú·¸š›££®•Ó/ù_Cú¯´•ÒÑë ÐNÎnXÐAÃÔ¿KM{ÓAÀ‘nNÿÎjb­‘6Š([G òw骆ôDÀõ‘X;à¡•£+â¯8ÿ· üÜþ²2¼uKKIQðïûü+§o…Da½œÿQýUüƒ3~:¤'pODXDŒ/Ä?ÿy3ÿW/U” ŽDáB\°Â`¬¼Èð›'qÀ Qp„'€ðÄ £ÐXü?_à!Cöë:¡¤ñ+ô7‰ Íß@:ÿ¤ÒÿM`dð›ðçŒ~“2þMxÓ¿ «ß$€lþ!°¾üÄ÷@üxY»?P!ÿ@IäøÁx)Ôˆ—Bÿx)̈—rý%öÄ[vûñÜÿ@ü'xüF¾‘×_øß+¡¤„öô„ â"€”˜8“òý?u6n …ýëoÃïÕø!¿…„'†lòÚF:Ä>¥. ç§Z0TJ"@ d[§[Ó6ÚB<ñ”ÀñY¯–‹Àçj³£çéW)—I–ÙãÒiö í÷Ü_¶g„H@ÍÔÒMÂC«yDÙ ©S]pbá3Ô‰ñÄ3ƒÁ~öá—§vÐÍn´G—rÎ,I-róÈè+¿‘Œe²BªPI)Ü…ü5÷ʼ´'ß!º÷P”:¯îfáçÿ“ ¥’2#ã’ÃÔò·Á¹Š7{|zßdlB_éÎØ¢’“ÇMÜ4X/xÊnÊ»LÈ—ÖL~žˆMî¡,¿·4Àñõú¹7ź$ж0çÝñáËŽûàÅZAžy•YÅ«åz¯*8¿íÌùJIšÒ«w–>©'ÑtC½ŠÙU­¸¥éƒãzÑ';®ŠŽ¹é'‘hoGW8)5éàžæUÌíVµ[œa!ã¼ñœȵ/Ï&Êv¿HÖ'bFpdޏlÎÄ> _RÑUDñ0Ð åä}}U)曽h6¤cª°²ÌLwu¶–‰o´áGhˆ•YGfz§¦c#Rh˜é-<6ÆÝ™ä?Ñõ€Â}NµÛеm.ɈQî¤ „Ìë–Þ°b^ÊgÈðáÑÞÎjú¥`Eu“Â4—s”ÊqnBtwœ[-…*xsd”òyÕ¢Ë7šiŠ ´Mò Pzæ"9Ü+ì7îü%c› œ÷b›–Ôr m’ã[n¡ºcºçp#-­þÛ¹œDS%ûWx¿ÆÖU¶<ýRõÓò­3Ä9¼C!à!{p ÐÆæ £!”„ôÛ[G¥x(²ëÄâÚ:.\e“òp9à;Í^ò9ó}ß¾!W¥¯oÇs½ëB¤·/° ïLj³ïKù¯Õ”‰c&KxEIL•¸¬COxƒˆýµ‰¤>f0„ %äÀ 1ºìØÅãˆQfýÀ+íÂé±´?lâ7É×—ïü¹E(ÐñuSßGCó>"ì“ÜÉ¡brû„¬i ÿ{ë±ÎF÷ê;¢ßMºæB·žüè¡ê02…Ð4X´Ä£D!ÙÛ¸OŒÛä‹z‚Œ‘ÃT’7ϱ=9%•ö+!U,Ém3Ÿ_`ÚíH™ªAa–#—Ûüú×£6§¢™P¶'^ð ‚šñí†`E¹^=A=Wß«¹¢K4fØõ­´‡B¥^ÅGsþój]t6grWƦ`]Gµœ¢SâíÚ›Ž[…Q¥2GuÄ-tÝ©”V3÷V>¸@!Ü~¨èUm1{™«ðôÂã%Ú`Aøg¹´%<™¤ÒðùÙDyJ•ü[š_Ké‹Ú K™W²°4ª¢ü§)EL´Á”ŠÄy«‘½_BÍyœ,Àj6T•¼úÙŸý;Ž^\=46¡> ¡¢èËÈ/ªæ[×”¡|U²¡?k®DÑ·ˆ#˜cH¹ˆ£ÄäŸI"‘14fSCÚ ÷U;m}ÎäcºwÇÐ#d±Á”Wî7 I$g©.&Ó=˜[hÖœ~1U)¦±œ;ΰ#ï†fžÀNµ—¹Ûw´ €±ôáôǰ °×L¦£¢‚ƒ2‰‚¬eÉb˜·ð¶ȱÎý‚ª¡ú’Üͳçëä_wÌrˆ4"Æß@„‡v%Bä3nÖMòBªZÞûŠCkïPÚr©Ú½×ÖѪBÀjªúãr±±ao Fûªýelð:îæzûcëÉLc—x-áÁt*‡®9‘:CêHõÖÓ×a©¤«pCZã“q/æp2¹IM7(Ò3Ú3hyŸw©ÕêËS[ïD÷Ïò?Ò/½’ПÁ!ËRëûH¨§iÔr[¨bEæGš{Ý!/EWÞì(X®0¾°|bxcÊù.ËÒu’ÅE’ªV7ÖöG*I”»ú†ö¸ã«5¿—»ÖvvŒŸ–x¾ßP8`y½µ#ûù¤7sHÒî‚rÃÇ?Wë™÷Û錴3ê<Æ>6Ao‰ö_ö"6–Ó\÷P¯žÍ®!˜ÙS8¶Ôo®ÉNÊVø‰j|ù`’ÌNí¶~q¯zWï²øÆ$L×yP†¤ÜL1¯<.¹Â‘–w¯Ëf÷‰5)g4¹ÐƒË«kg<«{\ ÞKÃÕ ÕÛó—3¼ÒGç>Æíb…ŸÍ¾a—YÍqâ·zHVõÉîcI¬|<<^¬CЉüò–þ޾àmÖÌOî ÑS•u¤ÍÑŠ¢=¬+<<÷âBev%é –¸"†#t7€Š–¡Ý’¢'?i•˵ÿÜ«ŽÎ ÞìC¹ê4ˆHŽ¢9µUÎWe‘:áZm>¢µ6ésÒ0ש™øU¡‰:ú7]f¨k 9™ü*Íʺ ±j¦¯çmU/LÒt…–`œä^ш2(¼ë‚r2¸¦¿Êª±ŠxÎ…ýZô1ðxÀ$C $¨ÜZ!«†ÙÓåî$Ð7hôm&—k…_R~)ÐÙFS}%-ƒ•ëXµM8uÛ|P†éúÞëò¢üh½š)d¼µ º[Âoq‘X#&[öp¶¹ízñÛÓù+SÞ'†·jX7·É*ò#f€k÷Ý {zBÔ“ EiÏŒûYuL+1Ì“ý 7ãArR·ÐaæÓâ6^-†×(T+TG4{æöO‚BÏÙÆ9m+QŠLê0©Ö3Ü …"°æë٩Ѫð¼E¹úh‹ŸzkÒÊt Bw„ÃÃË·‰åŠ¥;Ïzngˆ¶B ÔO¤žfº¬iï½»™átYˆR@ÓCÿý·\ï´a:¹Ù"›õêBí‘hgÜîráS†ˆÎ€Ã±šúØ‘÷ æ b·¨Ìœ3,«ï@°Ÿj˜¨„Xü˜;«o?7ì*R3„nS•hZ†¨Î5ÅËtÊV—)–kÝö³kæ«Ë˜{Zž¾“À¼JªÇtʪÌ11û‰ÌgÁÕ,\&·À>‚¡Ü"äƒÏ³‡™@.MF´ÄóH~Á2.ºðšÑiur‘‹•|$­L½RŽÒÿ¡é’ò@fWdEú¶u¥39]˜ þ¼9ÃbZ̸0]âÝ"ǶÆM|õM“´Û¬èb•ÜsP“NU÷5Þ6îÓ‡m‡½l8ݑǃ@Ûºïi·¯Â­K·Ü!oõ_tü(È»U~Ʋ’“ö°‰„„Õjláj­fì¦rŶÕªÚ¾‚ØEÔ8æÏÎÒw_µœ$ÍD´ª¶<¯Ûu>*Ä#÷9Ç•…¿»Ôcë^ÓÐ׋…4n QlòùÁ‹„.¶|ù¼Fóºë”Ó–©ª.~_[ çrÒ1Ðpwäyx>[AÜòˆ¤ÓÞ¦,ÞÕ8¾ØœÁ%y•ƦŠùü\Üó!넯>{,È»â‡ËJŽ—h•™ˆï©ÛSŸQK?g[ùQøuÆ÷гË×ýÄÕžt{ñÔò £œ"„Ýví¯î žÎ.’÷~ìf/ni`ž®Š»¨ÏeÞ»K-æ`ûaW?õeíÒÖÛï$ ²lù7?>¤Q]H«FÛºn°ž‡E\NT¤{ŒëêbUuäxªZ:Fæy·rŠaéÚ¤zwW­¡ë¼0¢8[½rž?7íÙôZhµK¡%u×DUþ¦‰ |-n„IÄ]ÔÂîâ^šÄa%§¡FQÒNÚ¨l†$™.‘ëçmÆ—w¯“^‹å9«£ô™'΄¿9 ×ŸÚ i~êâ‹ýD× öží81ß°{1_„ Ñ­Yë0ÉEe…؃z&¶gfü~Šô<±ŠÄ+¨À™pAòþɆ²¸!Ö ^_³~þ¢²¦03Ûë:Fä¾`¢;¼yŠ™ÆÍ–‘wæ%tâ®ÑšSáDvÍz¹ë‡[•êò£Õ ²Ê©&Ç®íe™5Ð6>lm_Ê¢äˆ7’0vh–'«eŽî …úõHÚPºí*}O^^«ãõ®ñÜí»õrñ=0e(À¢$híWXwth<Ûciø(ê\«sWAçÉqcY SðQPï›ÞÂøSZŽPíÀ ÐùÝ=q¦~®0²†Ä‹‘ªBUÍK±!áȻʎ„:ÃÃÝŒX:?8jºxl%ÀÈ‚u!üœ¼/‡†jqÙɤÖõ ¯Åºæ¦ZúÉ KŠ:e|È'5Ö(Þã²U>á­ý/$+~WBžÐ¶ÎÍG“øµ«‘ãÄ.ë¨ÇKFrs1ôkw<?=¾FïVPe+kÞBU1ä%’E fYgPÇm`5žsvåß·aŽKU¿F¤û¨éƒ}1Mr‘±½ 9‡%&ìɉ¯˜«[µ:«œ™yé-O¡ƒpåêTgí{åЪ}.IT{ê)OÐó, c“ÂØ‹vZ+°>W>ÆFWvÛZqgñ.X ˆ'6‚?K0zÈ€–.˜!¹óŒBð~ع›éù›RšPýö;Æž{ï-½!þr ë°R=ÚsŽØwˆ@ËŽ­êaDþ2ÕkÝÔî³Ú3ÿÇ I‚){Q}…ì®Zí­ó¯.³_„u£ãÚö.†lK#*šç’ý:Æ£Tà·çÂÀè=¿Xô~vR䉽 }ZÏð,gN»»†·Jê_X@Ô/Ö†›äà²Ô.r† ®Nœ‘ˆY)ô{»É¦?G537‡«¨±„‘ßé»tºvÒ=A<£-üD^£F«íR6{…¿rHåó³í¡1×,Á€^®epïÁÑ »gü^¤y¹×£Wöv¥E4di‘ 9hS¨C8qA(é=«z'ž9z¡•·mÆ+&˜5ußHÃM¿ÐÝl-£ØšxQ\ÿÍä¡9¤µ܃w$Èê`.Ç›æ‹åícÕØ!PéOË\Ö33Ö÷òQwH .‹R4¾Ý“$Œgir¹¹W{uxˆÙA¸Ò>:¢3з|ÁÚ4ã›:vfdÆaþK6ƒ¹e¢· ‘ÌI mš_H~Stéíý‡¥¡ÏÝ“T²i£È  †Ìù¬GQãßKÉò\PßšìfcIŸ:Vá¦Ú·:)à½eˆ—ÕDºSßvÌúÉ…ÅE÷0ÍÖP˜±pºÈEyÞ€ö]ƒ ?ýŠ›¦OYeבy«œ^÷}-}Ë/ŒlÝÞ»‘_|ÊÂÆË¼Úhð>¦~Ù{Øv1W”ðRåOƶϮúc9C*ÊuKZPÿ}.¹]xŠLueA') qÉJûõÓ¶¤M¶Žé ÍTú­½2Í"zl«†‹YÏP÷Ã’ø‚µ6Å]媣ò%ƒ âWP†Ð½<‰6l†—à“g7íÖˆçMÖÎ:”N¨Ñ„¢Û值–4†¨‘p8"5þ?jw™% endstream endobj 92 0 obj << /Type /FontDescriptor /FontName /RJJKBA+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/H/I/M/P/Q/S/T/W/a/c/d/e/h/i/l/n/o/r/s/t/u/v/w/y) /FontFile 91 0 R >> endobj 93 0 obj << /Length1 803 /Length2 1751 /Length3 0 /Length 2306 /Filter /FlateDecode >> stream xÚ­R{<“mOÚS)‰„º‘"9 s¨SŠ9&Qf»ÙØî±–*E5•¨‰õ"ä‘WS•Ca ¥,)É! ‰,Í3z{Þçíù÷ýÜÿÜßÃõ»¾ŸïõÓTøéZá)þ =¢ë"ôf€Í~W€Ð3€kjÚPA,Hl±tÐ @ ÑÀŠ”™ÚÌÀ® ØPB˜Tb hÙh/˜L+2H%â°°K'€dñ –¸QpDÎÔ¬H$Àuá pi 5 ÄëÁOÄÑ0Áõòì(€ÉOÏù%…Tš8 %© ˆ#â)‰ àÁ¸¾E|(Nòÿõûp{‰ä„%/ŒwôK&’˜ÿÑ)ä¤û)x ýn=þŒ¶ÄäßÕ=t,‰ˆ³‚I `ð“"Òì‰ C¤ã@–DyÂÿB\Ûb}½®ëÝ:‹¯¹(a°DˆîÎ ùkè‚w#þ‹ÅÝP‰À!=„Ø(þ~ýùþv•„£à‰x(K¥b™pñ^ˆˆDDF`„8¯¾D¡‹âJ¢€ ¾ð˜H#@?€.°? C1AaPÿ"ŒÑ€>ú›èÓ TðoŒ˜ §,âö`mM‰ˆÔ/«®¡Øˆ@ ¤AÔÿq *„è‹+&nó Š»Áïé¦àÌã‚ØÜÓÑvÙ¼BØ6 ëÀŠ‹Nÿ~øüÌÉ—I¤ÍŽ¡ÛÞ”y o¦­]5Ü>§L;[uÌ¥Õ^p<ôbj—h0Ìo0íè=e¯É´ýÌ!ê3'Ge+¹SŸÎoZ RæÔ_oÍÂhÙº\Þ«¶äÑ¡°òGéq(/û4’Gü©²-Fj®«SC Œãùá«S.-ã·ŸŒŠ—º«óz‚RÅfKe&‹|¦†;vRàt¡|¡¶®„n2‰€=ÇrÐ1ÞÄÊ>Ÿ~ïþœ°˜£¿“gÄÝr1ê´ä$cQvw5.u5÷o8V~-ZïDoç©–¬¨ ó³G¬7·G· øÔT4>9¦ž©bŒ‰èHÜÑòmYëcFS¸ö´^ð°î[tËØZ~ßãeS¡ |=#UÚPzUèÇš„ ÿdæNwßäÒ¸áû£¨}!I63…Ûµ<õ[†¦4kxôµ_yïœ1ò.³­Ÿúá3ýÎ>Îr_ær¢zZ-ŽŽ$®s‘ˆÒX«"=¶z pw]JÈZàLï“&öY¾¿?9‚Ô†Þ¿ìÞãÞ¯:ï&Â7æ×ZeäÑw[âÔw ­Znùq,ÙÁÉ}åËÓz9Ó$gM¥øÓ.ÓÊOg.{ÀÒl[JâòÖS¥,^+Ý‹HôºëæBÌÚ“N(ñrÙ¹Ó±Ü?)Åßj’r¥ƒbÉ\§¦TÁIvÇ6z²^…qÇñð°[‹El!ÎqN«0™âø*±îÒå©Hgk\õ¹¯vKG J:Ó™‘O Se0¼ú\)TÄð ÊL¼Ë,¼ˆ–´ÊÌ+s¸2…fÚÙkh \BÀ,L^퇯µ¬sÌÒWY÷•ºM!ÎÄÁ"š¦@ñÞŒ“”Ž€ÑG<‘P‘^­`·¹§ûØi$ò„üà«FED-Ýñž×_óXo¥ÐËnôºn™?;ÈSî›ÒUX£ü0W±!؆ ÄöðÍÓ>~_SŠl õ‘[_ö‚¦š}mô]¸›r×ÄŽ[ß› ®ÕcžœØp®Ê<£ï̵èB™”=æì’‘zÉÑÃ/ònúT ‹¥Š»ñ瑎°qM!5_Èé•>' ³wjî+ý‚”äØ×Ú¬çÀ`Ǥ}ŸI ø7måÇàÈò`靸Ŭ~Þõ´$‘‘ml+²$ßy¥aQ‹çÂO ĸQó¾Í¢¯ôOž.SØgï(#ÅpŒgï˜Ãîúº+Û/”Ɇ&·©Ô¾Ìgêk¥#µ*²îfäæsÒ6?ʬ1Œzì—ÖŒÞ÷8e9´ãò2|L§¦ñ`«Âi«äí´ûŠ‚{²+XLǨ‘妶·¦×¥EÔÇ¿ûµb·oA·7^Ý#ˆPF£ÕŸNmù·Á¼ÞÓOnv? Çé½ÃEAì?¤]›Çº¦JQ·ù„ï%óÒØ×S#;$¿nv”^“ôUiöÄ w²º~ªR±Î4ɶóþ”~à}ŒRÊJÿ÷·ò9„û%MW·Ò^m#%Ljð?ÜÜòãóÙó©ò°í´©ý¥Þ÷–)¨y½/tûfã$DP¼U V²ÕhÃn°*ÏtûÄH)[L]GØäEþxK¢e‚ÎØô«û%åÊUÎø˜qP—sá2[5g*õß–ŸA6xµÈ»áYÚ¬yù[þ«¤£òŸ¿¿Ù’7pý6W„ :$‹f—·•»²;¬Ò‡ÖÖ x¡ªÏ§ÓB‰õ:cXÖ ÇäŠØ½+ŸžÝÛƒ÷ŽÕ®p´ Þ+ZºÎe‚ƒûÁVË ,×ÐmœV ·öÈ÷†ï•î«Ú”+išš¹™~eÏ´È!_¥}XéEFÔÿ*¥—ª:HåúG?B…ï0JðÀÂÒ/)šÅÙD5ìR=1ûè`‘‘a>‚;nXfâÜ«±ÞiC1¯ˆ«•O½ºª¹=Ç­¬£ÖÞÃ"l°¸w×ògGÞ…xéÊÀåÞJš2;<^šØ4µdYÓ8--û&Úe~:kNÎrŽŸdÇþX,QVœ–ŒI­Ôjä©”[yqS7ݵWézy·KúÆÈí3º7ãy–«Ã°lÓ ‹çTYÙsº§éÁ¤3¡?î[M© L‡gj·ó;ä$襫MÈ’e°€äü n_X“‘Ùv2QnÍôœÆuYšèOõ{„Y endstream endobj 94 0 obj << /Type /FontDescriptor /FontName /UJRPBG+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/five/four/one/three/two) /FontFile 93 0 R >> endobj 95 0 obj << /Length1 803 /Length2 1744 /Length3 0 /Length 2299 /Filter /FlateDecode >> stream xÚ­R{8Të¦]rÛ㺓´YÈ=ÌLÌ„ro\ÆýÆÌ2Ö4f1f˜)䊹´%Bä–\³EI„dÕT"•K!v´‡NûìÓþ÷<ëŸõ^¾ß÷>ï÷SQtrÑ6#Á Lch£tP†€P:Ha :H`@0í(`Æ$h$€Âî30D£„U 8„M‡ÈA @ÝBcÄÌ‚A:D$Ðóf TÀ&B ƒ­˜Q©~ãD€Ã@z8HÒF¡Dd ¢ ënä±¥ÂöMb†|—ÂAz/ Î ©ð"’`• À@a]˜wÈKòÿõãp+&•ê@ÞÏëè*!¢²ÿ£ÃÁ!LHp0 ¤Ó~´z€ß¢á@Ä þQµe¨ÑŒF¦‚ò…YA,ä1ˆA@ nò ôc^m›t=9ºÒÚ|ÍMɉѮ쿆nx71ê¿˜× bÞH$Å3ò¾ïG~¸Ê’F„I·ú€@§ØÂ¼½à!}à8 €h$€,^^]Ìàx•D0]xã1õ÷ºP8¸Á~#Ð<fÒÿ"ô ]˜ö7 ÐeÑÁ¿1Hoâö`n³Žk£±€6šgD¡Ðh«Œú#‘I§ƒ4ÆæŠñÚüŽ!^÷ ȉÂca¢Qå·¦ÄòhËâûÛ4ùÍÉ×ÒêÛ‡ÛDâGÏòSK{íC5ŸÕy®VæJ!¦¶M)D|‘ ;ÝéÜoõ>64=gd}*Ü*÷Øïrž‹¹8ö«¥Ïñ3b×›8K³úüŽžõ•gy•ÜΟè¤~Èõõö§Š|Þá 0XO«\ª[ÒÉ:Õ}ŠxñœÐòd½$n„xVÆVî`|4%I°YëÉÜÊ”\-,Ì\÷ùØÜ{½à µsáíô¢ÞŒÿzÔ„mvmÕW¼yZ‘hg-l"Óg†ƒ@T‡´'³”—ÛÕc}å™ÙÙ{ORz~÷CÖ]˜£fg¸–ÖEÎõŸ~½™·ßí":ånÂn!«·¾ÄêØ–’fÿ,Øî„(Ó/è•Ooÿ”Øy]íݪåˆÍç¶í‡§Çøî‚·†.{¤ Y]dÚ™{1\QÛqlÿÝ*Á–‰Œ¸—”c¸Ô_.d/ªµÅÖ”?žù àdS'(Y$1X0#¡s+×´¾Í$6¦ [C/©ÌÒ·¾™ý ¡Í*K«vÏþsªÖJ}^ÒTS°Íëw £V«.WʵFÆ­(J“]÷´—“nG0üOõÕF%9nRè¼íÝ$a:1ïs#ØêŽ›²uZxš¹ûÓ­s[µÇˆþ£žXUÁ KÊŠ?Î\¯. J´²Ä(`æ±Ûû uý7wC§Šñ…ìä$ƒE²by¬¼O®]´ÈG÷SÈêe1n•ÑŽÓBñ¢#J˜A1veI(UO,Çù,0V=ºw$¦øcXÏC+"ö.|æ*í=ºŸ6?x­ îVî—²Ý^‰õû]Ízy§O‘Ý¥¾Oãî¤þëù­š÷[ ½ê—” 1õ8ÓÑ}Ö*-ýÖš¶åÆ7!µ©½?%!bˆ+ŒšUÌÆ-â]#¸ÀÆævÁq„ íÖb4­dð%sÄ?œ8"ÄÁšTÉá–}ò°r½.–ë¡‚äìîó]Ë9—eØr'škì–›GT„7¤£Wï½=`è)Äÿÿ~»~Qþ-cUF‰÷XÞú—ãTɽ]nÙ]ñ“Híú‚»ö‚Y‰³Pô Ç¬Û ?—Áby2»lg¥xF#[)Vâ·½ïœ0%>]ž4VxÌqî¼="ô\¨|šû¤/ÖSàUd7:õÁ–K;†Ýí( g+¥´å}H¸“ØzSºcn­uû£Ô÷ ‘%×ëÛÈ”]MÅúÚ+7%ú8ù(sR,LMŠÛjR°~U{Bˆ];ÿ‚ÙTSèïŸW·8™Ë«ŸM¡G7ßþØ(týµä—°¡—Cq$_÷Û§Ÿ/ öF¬\Nv"-×-hWUÙ(á÷äókÔœ³8Ûè¨ú?ÞÛÌ&Ó‹ùªKÏ“YöÏ‘«Ýé5ufºåÎùIŽ×˜¼ŒW=Ï4¥ÁUéÝÛÌ‹QZ~ƒµœû¬þ"sÆ^ã®ØaÓÑYfX‡˜QMb©”¤«ž¯®D/½wÏùª^Ý„TЯmôÍmŽáàQ™w…Z<º³öf†·J­È¬OŸ͵Xᰠ߆¼u{0çy5Ýnǽuû°]3ë§Í7Þ¼KícNKYÑðob,F[ÚLÐ)÷Ž_ Ì!Î5vÀ=°”‘b_ǼœÊÕ§œŒK3Ñ Xî¸t‘<çÜC ráeÿDùŒÙµ¸Ú}s¯KF;^a›ò°”¼/;\mÇôá…–~™õ°·ó"Ë˜Ô ™H¼È¬äàòVògJ ,cÕÜ2¹ûeg¢³»îÄ4 Hz6{~ÇeÌ ,¶sN­òb¯¼,.^"¯ø IéÂHs…i·²‰Ü¸›Ï‹\­ÆžâŠƒ_9¡µÖä> endobj 97 0 obj << /Length1 1559 /Length2 9073 /Length3 0 /Length 9946 /Filter /FlateDecode >> stream xÚ­–e\›Ûò¶âîÅ¡¸—âîî.ACp ^ÜÝ­¸S(îR\ŠK¡x)”âVÞì}ÎÙí9ÿ¯ï/_rÍÌš¹×½Vž'´Tª,b–Žæ@iG° +Ç€„’:?€ƒ••–VÂhæfë–4s¾ppÄÜ­œìÞ7\o¸¡E G'ˆ‹­µ€A‚ñ¯">€˜ÐÅÖ P2s³:@{X˜Ž¶@7+@ ¨ÿµÂ tºx-YQ98–¶ns µ-•í/=r`+G߿–îNÿIy]\¡¢ P‘Œ¨DKG0°Z¡²);Bg¡JþˆúßæÒî ²™Ã_í¡ýŸ¬™ƒ-òï¼£ƒ“»Ð äh tÿo©ð_Ò”€–¶îÿ›•s3ÙZˆ­A@û¿B¶®Ò¶^@KU[7 €•Èøw¶ü_PÛþ–À&&&­¬.Áü÷iþR5³»iBœþiúWíßÌñ›¡Þ¸Øz ØYÙÙ9 …ÐϾýÏ()°…£¥-zxxf..fTè½€À‡` ¶z€^P½l¬`G7èÔ?€•£ ê_‡ÉËÕøWè_$`“ú‡ø8l2¿‰ À&÷›xlŠ¿‰À¦ô›ølÊÿ?;€Mõ7A{ªý&hOßÄ `ÓüMPeZ¿ :Aç‚Þ#6³ßgþ› Ì]Ì,ìn  •Ûï8×?ñ]ÉÐM[üCÜPŽ¿Ûs°Cw`ùBÿ@N›Õo„&­þ@î¿Ðö7ÿUü²CEYÿÐr›ßR Ø@œl€à?* ±?×CÁî„úbÿBýÐ:ü¡º­?:ÿ¥Üñ÷lh­#ømþ¥ÜéwºÖÉÌþ/‹¹9þýoƒ¹¡" ¿zÇ?Lä€nÜù÷@›;»;º-ÍAÿÕ‘‹ûwâ¿›r ü;óßaŽ¿wù¡~¹þP)Cýrÿ¡~yüОtÏ^ t³¿ñÿþöÅŽ|X¸x,œ<ì ;€‡Ýï¿ -Ü] N¹ýýX…>AþÃV¶Ðç è´@]^t´ ±Ko«ð—*š®D`‚·nIPnèëB þ’ *SpfZ¯×½«ÊÂÃÜEØ¥ô| uêôUû,}òÎ9!cái×Ãt7Ë»T÷R³íœ’­?Õ­1ÿbcî0\t¡Nð:³=MøÖ$j†¼µnN •hçÓ þ—¼f1—d£·€¢Œ‹ãã~µ4;7þ‘cñ×Ê\€…êá&æ£ …»Þ“\€[4´ώ˜¼Eºí¬ËÝ]ìç^vünu]d×Ábf§»DŠáV[„³7OZp®WAÁáÉ­Œö±[«S¸ª:ã˜/ ýWa’ŽR0øò5“Y•QÚBŠ«üX ‚:ÏèÞJÖù÷þL CòFxïôž]"dܤLöA¥&Ë[bþ§8äe—˜ŠÏÞ´_Æ×гû‰?½)†˜ÞŽ˜îÓ‡sw{^WbÏ×Ù2¹Æežr:xrG¢àæÅ+W ª~Nœ•–¨U¸ß$Š÷»¦Ärà˨ø#êõ/·“+'—K»†ãÌVÈÄ/&^†^›w4Ž5_T>-Œ C8~FÅ<<=k„#=ºàÇ-¹hÖñ]‰2‰¼"ÏlË’“¹ƒO ÛD¾'–xì#" rÔÍþÞhÄxQâä{-V¿KÝÝ›Øà瞆eÕ ƒ¸ÿwÅÛŸ(”—6ùA ÙèmI9™G~»ÛÊ ™ërœ}qµ@Ðü"ªçqbÊ×[ȃ˜ä;ý3Ù5iÒç*ÆÂÇj+E‹{*úå&¡ÒWªTß탫@ø[Úý„ÓöBÔê°×åp¹:Ó®So@¶v{MŸ†ÝÇ”ÄÞ=Ô6¿¬ïï$a¤NI)Rî%Ù3:·Ó[Óv8 1Xvu¡ê^ƒ¯÷ÊèLÛÜî¿úï@º«Ò>ꃘmòx;ZyÝ.'[lZì‰2ýŒq¢’ðfS¶CêPbX|Èe$Ø0Ä36õUáKeê3àß“;âU›}Ô%GU®EîÉ¢4·K(¿Çå[ê¼ûyØ@yË€­Õ‰è•2Ó€ìcœXlÀtfƵ|xžXWi6 wð a~öYŠ]N߼᫩ÿ®ó§ bÇ“„UîQl™s2¯ù}Þ‹dE;¤†`çóÝ­Ìa ïø¹d€f„ÿGºЋʾ‰§0–_EXC"T8KH ¹Û¤bj_eĘ¦æ¦ŒwŒ¸¸µ¬ŽòNêíBvÃz’¦?6^‰ÐÊÒ¤OHÇ?½1‡cô ÊYdQžG˜è’)â¸!x­-™Aç¯å`ö­¿òy¼e_¼mLÞé ’³W~¯~žÁwa\˜HaŒ<ýÅR0Ê'â?.Úþ‰¦Úœ–QMeÃNºøš'¬õÖΕé¯G?9„NŘx„?ÉÎ„Ë‰Ø 5{ë†Ý{Vlj/×ùM’ŽGanVLÁèu˜ª³ì5Œ/ÞI•yÙèM øfå×{5¦'9ôð `G#Ð êq²ž­Æ€ek¼)–öÎ:kZÂà¹Ø=áîë>jƨ¨Âgæ(š¯áJÔP›àcÔËwŽð´vì(ž±¾+ˆ”[|Ð%´šŒvN–™FÞ°0ñÔH8KÕŽRO­ƒ)ÙÑ”j¹×ï›ÿ$5R­F·ç®IÕ¥_i»_W¹‘ §©²½ ·fKqœi¹¬JC9g ±ð—å¶DÆ!"9Ù&F_ü©Ø…;‹à:Ûy“ö–¥[‘ñ%3yF®n üc(Ò…î_òYØÇ>Y:U,Ä‹,„4dTá))7¥jk‰pŸ§ä„Ù½>àò‘.A÷Èp;jîž[Á´r‰HëP*éì.®9%Vü±Ðƒo?ÍwÏ´6O¾óuÛ±ðž·&ÇRðl¤ú''?}×9.×¥8ËÂ)”G¾Ø\ó;lÅbà{ï×¶&e^Òìq’;÷tO¤™o [òóÒN<]“ûËn¡d§× ªÀ¾)¬ ~*®Mz·e_ÛCÙ2Õ/¢ÄøC×TâkÁqÚgϾð~71&q$É|³"èK‡J­¹ªãóQí„è*„)jßIĉ$«¦û9žë• €ú×WûK¡î,*MÓ\¤Cg,ΆrZüo'Vµ­—Ç^å„×ɉş®$Ïy/?áõ('·Àä©èA¾×Œw´ ó\`x%ùÇ3Ñ_îP} ¿‚×C¢ø”G1*†ûÒ8pµ[ÍÛj&†ÔIê±Ù ÛpD×Ç"ͳÌ{+÷“üA÷ÊO[ß%®cg#(×6õµÐê5¹ÒìÂ[‹˜½35µð×t¨Šùó‘«ã¿Þáæ­â…ží•}ŒF€ …3èH©‹~,_™ëÈ|‰áÁôXÔàÈœ/_Ï1ÿ|xëGÅÐßy§C^Þ^fÎÜÍäª,f¬h]}š²àBŠf’«±¥{à‡·D P¤Ö;-Ð4ÖmÜû…¡Úà?ì-Bôv÷×û´|J,¢7ËæéåõozŸq™Ÿ¸`iš.¿RŒád®|âsçÁºä²$Jˆ^]_9·tlÚ´w$CCDœ:7$Ûž¦1FA $æYÌÆY,êZ«Žw#³E†Ü—Þ¿Z *•ÅY6Ü ‰ØòR@ÆZ+Ì^ÕE±O"B’i5®Ûö½¯\cÁR6áæ^ÿ”¿_&s`6ÓªýéãWÀ\‚|iJDÙ ¬/R]øF2hæYö¥YŸh‰¬=ëш{A9œÈ’bÝGjïÎaû­Oø¹¹j ‘¨æí”–|Í ,>…Ûç·ê£U·¬m,øï ¡Ëxaç¦j£‡? Ù–òfaÚƒÄføêóJq‰ãêôU A,?·ÆÐ¾éhzS¹í|gù $Øò3r,Áõ£CÔ(©ÀT.wATcm ÿv³ ÓèS’ât¸´Ð´ RøÙzÏ)·Mhèˆ5ãÁ}ì«$vÔ€VÏs'¸bè—ªúkl2oÖà[al\ÿThdM–x.bgßý«™.¹±›I«Åf"š.oc§ê<û»)`ŠÅä¶$O™sì –¼xâ:Y÷ZX¶Kˆg‘ßOŸ‰T'Õ”ã%Fm’/sݘÇM•è/-xà?ä‘8ysä”oóƒ#y YÏ™Fvõ¬¦ÖRØ‘Ѽ¥C\Jkôrá³u7g$åI…Ø{â$£2ù—*\;§æ9x'‹H$H>ÇÄfËeô½¦>¥4Ÿ¢/öžx΂¬l Ç5’k½ Ò¦©"RϤkwõ©!X7ºüÂ¥ ¹:79ž:$#9¸g˜á/þãKW3’-¤ÛÉÎmK‘Îzí•uW‘­É †PÁ~‘púݸ‘{é\7”‚Û·ž¨ŽóÛN_'§Yn¶[ŒâqLüKÐx’KêNÕžà˜¨‘é <²”é°ô»·d¡úÐì@…Ê¢‰R‡ðÃÁ vÒŠ^1»”àå{ކOÕý»ë•.Ÿì´3ÿ—ÜÏlöKïìe¶NÏ4m%»®Ö_ × "¹Ûµ%^?9ºy÷ )I%y<὘W:ÌÔbª¡ÒËÓ8ANâjçC !Í4GˆÆq[ñœ\™{ìÍT†yµó#‡æß3Us^ÈΙ¦Ûî°HMþ”ZÒRaÿ‘7ò´u[±n€•‚¤¼ëÍ…72m<&þ _€ÅC%÷§öÒ þZæ*÷‡ìùøDV1=`CnÆ—ºøÒ®7çãù%èau4TJj·ªâëD²…ÕÒJ6_Î&µµèÓß–,Ž9‰CߢÏR<ˆšyЬ¯ýjÝ ߯&8à°?_Lo ‡Ï¢¬.¼G.~ÈdÊ#ÐðÑí¹\ÉÉQŒóýådì³âù=·8)Îøþâ¡ué‹Û®EÏ"öȯTëΰá4M³¼†Åæ696õw¸1ÄVH]+ýôì¥W"6Ìùe8uj`=‹ßÅÊG_”*òØÚ4? ùɳÞ3ðßÝÀ&–¿›N‰Õ¸Q„}qÕe©&åñ#¼d,ÞxJÞÅ_UAÁʮʪ ·ÍeÇ `\?0 ÎVû5𖮉×L¾ùlyX^qlω€&‹só£™FÅÔÌ‘ÝçÆõÖYoÅÎI“láfq?ðŒ‚leTžPPýÇYSž˜њȂïNx#¬NÏDãâ—ª?•Ýa÷q”žR¢\I‰ê®z)ïmµa€Ð+K6ŒÒa æ]àÈõ¬MÁ%~ÏV? _O!½î´½#‰ŒÏǶÞ`2iñ¾âx+ ë51ñƒÒª”î›Á·›z†¨× ùÛ$ÌwÊuM`‡È+÷6¥È:oêý˜ÆñQ¢ëéjÀ›"Uj¤§ß_…ò¢’LŒX(ûÆïXÛÙoP¥H|Ð;05‡ —‹ÿ`P{„yÝa°õqÆ;qþÂ0ÉuS‘lHÐæ²úꎢ’óëªR¼Ð[¶¥ VFðÑËèæÈŸÖ†ô|Ù96ÚÎË,GM‹#Ís^½«2žëšTƒ«fRuy[…Ù˜ºfw·,Û­A§‘WRl-7ž‡ëL¥›UsÌÓcÍú#•4ÆåG™ÖSßï&o*rb´q@2Íjôc„¾½[kG3)p¹'Wäèͼóâ¶)gSa½Äx “Ù”hLFðømKTòfv èé3滾g˜áJó‹e±Ã¤z³(—à::{`×±á"µ€OÁMÕ=K*¿„>…þDÅEœžµ¼C§b±ûV*¾}ÕwðX°½ØTÝojfÆ¥•_€uÁ¸b—„õ¨ ˆË§H¯Ü¿aýkòH&ÏÆó›ÿ./{Ä¿³íÆK³ÎV¬.¾ß×ì8ˆŸ +¹çdËÒÆž<im¥å`=†[nõRg§ZDzrïi¶ ‰=ÆÃìvé¾¾¾ç9’tnÍäŸÖJaú?kïÿiz»Ç¤Wù¤/£%;žÂã©{·ú¬Kð„˜4dSZ¹òKˆ „G(-~Psºã{5TéM‘ý „¹f©ë—­”p›]K=ã¶@¶WpÞW`Þ6f%û0«ÄÿξÕ|=3Ûõ"¿pë!SP6I÷ݵ2……¼?Îoë„+=â5lEK»ÁT>Ö ß—a#Au¸ÿ|ºñö ˜ÞyÚÃ2ú ¦]šSâBÐ ;vFl£tãŽs²Ôìùgäó²ºN÷ÙΘ«¿|] é\Ì06|+BeîùìÈÛPýÚø+pè’€t]{2þÓBFØf"%ÒO¥v‚nŽ@Uh Ôt³D±±²R—Æ‚qœ”äa_ËxÂ#Ë#w ÍÓ§3×¹qæpé3Åè{;Hª[°ÿ©õçÀ£9ž9zÏt|~¾…D«itï·±ø˜Ø¢iNMƒËøIeTˆD‰[æfê–jü¯¡åHõ€Ô·›—¯MˆL`T[|îxe0óy„U&ò£í÷ñŽxUYó´J„7ŸE¦/ÏØw·tœ|y(S6á=`ãé(^F­óG¿Êg¯ û êÕ7_…ÇZN_­Ö¨>h%-–$t³ô£:«„©iDU<;Õà7ä¨&È,ÏkùôˆêL+º ² §q6…Éô}3^=[èØÁJ_B“'ÇK¬ za,½@8s˜ ˜?myk¦3µ8†É˜R?,Ηâ˜îøDíË`V‰c„‡jÊ ð ×ý\·\kÔCˆMyTߥ¢Š•©l;¡…b=²ùCЇK²KO­ŠZÍùw‡.'Ù½dân ÞŒµ!|'«Þï€ýÕU„"Ïøþ3Òñ’?pZùE5Ísv§!á¾6âê#ß±aØÇ<ÚUõ§»¾#±íst?)Äõ#ºÌi’Szô\k“_U¹%P,#sÔ^‡÷~f ro£åE1QúIh.¶â`©vìÿdl£îŒ¢eu$-‚Ã&9:êI€Üûòîõ²¸sçJ}`¢Ka¨Œ¿Ç@wI+×NâBaO_]~)q}³«õJˆ¯!ÃÔ»ºv¸¯Ž+*cš5T¿$õ`ŒÏΉû‚ÕBóURÊëi™÷CÜݲÉôwÉa‘üI¢îŒEB‘q8JÏk²«Ð“zÈi7îs¶Àðú²ìÄ ˜5{ñÈñWGƒokiáY) _(bù|ÌPúæÞŒâÉ»ü²jo·Yz -†µñk\•!·wå4àû¯†¢h€ÕÐ&qtÐ7/þ7ŒF°Ù©¡ôXKW½œ-p˜<²]!Üd”ÕEw/²&aää‘èÓ‡æ Š^^.ª5.s ûs&n¥÷˜©³FÝŠ:;É,ß×̤Ù>§ïZ)Ê„ÒÂhTêÚp±ì‰6µä¿c‰„1m 1vot›£9|"¯lÞQyS"RWßQÏlb¶žŽ#è:XÁ…щ-gÖY~äã%ˆÙº²_8²Íó~«Ýmé$HÚε­~M®’¢+5\D”ÉòîšpýB@"ÿZm’J÷sVšãì”®¨.× Ë»c$/NÔ%l·å͹Vƒv`É {é—ZæpšÈÈD¼ïXÞȰȩQ\žÍ_L¬Oâ‰1ºÎÿ¤QCF/q†åÙ:gÚý$‹#éB_xу'ÿ..)FŒV¤6!Ô•SJ1 %èq;n•m!‘üÜ O5CfˆüLaM?.àqäâ ùÉ;<•î>ª»êÞ†sã\÷‡/V )ï®qäÅ`1²²ÊÑ9$œþýôÂdÈ—¯ÊcÁƒ÷j§>ÒnÛ´»‘ø€­.Žq0PÞ$Ìc{¶ù«]bºðÀ”*0„ueÐU쓜ñº˜™ºZ‰$'›y“÷Q;äÄS>ª¹óŠEVÖÅBÆïL/rÏ‚Nf]*Wm6Y3} ²#Ï>/åÔ?v;$g+‹é¬6mûQà. 2Z|FòŽb]³”³Ô£±êA7·ÀÊØsM\ÓÃ9ëØÓ¨¦râ¶T…oç ç2”N:åÕ•-×2“`Ô`ecŠ‘¦“ßy{~WÏ€æëÉwÆâ²¬ƒO²(ÍØK}1Ê=ËügZ³¾ŸO Ÿú]"Ím.U‚›hs1yJS@‚/wí¿”AôjÐúÞ$ÓGRäCÄ\Ùf¹ÞNë+|{ÄMzÔ¹»i‰#6uÍýææÍøB•@²ÞŽ¥Œž–B3Gˉ)K›„lá }¦Þ;á£3aÈ“³¤ÖgyÝ÷2ÎÚZ8'' (lÖ½s)ÃeÅ•Vt©Ǻ)ìœ_g±­AÊ(¤y÷Wý1™ µØÞ–BaíVχ\ÊÆG¥ÓÚ÷ê¦@ü³!Ë4}$;w! ÿ†ÈOñaj°¼ƒ–/¯6X©Ãê©ÒêÆ(yeynR½¤ß¡Äc?…5O¬‰y/°Ä»ñ“jøGˆç/ÕCšiÅA—fÔ,»PÐèèHð¶LügSø«,.Ô…œE¶Š²q|]vܨ[èÿñØ»èpxV•¬ñ׬‘®¯Þz—èŠå-vÞ¸O{ñcÒ¹‰®O[ÊQÑ#NœîY”dÐõv}EÝï B®qiFõdžºW#Tï8+Ûú¥Cˆ¨¢jĦRµXÌä¬-óšß²Õǯ{­T’z¼4®Û„—UÆe'<§d<·ÐM„ö(Ógûš²cW†.®·L²Ím‰6¬z¸Â#ø@D’鸷τUéU˜8Ž~´»¼nì C‘0ç6Ug¢ÈËF—Åf:î˜`»3„öí—7î(½{Iº¹ÑŽ{ýþÀ“f¼º'ÌË cÖbɲ˜“8 ÃßÓL*µ:Ñç€üñ>µè O’˃ AÌwRŠ5=íÇ4Û¬åY±g•u_7U鎆Ǩü§hGú:Oó#æza(•÷#¥fh&.ÈaÓ¸ÃÆå5ƒs ßÑHížµqºú·c‘eŒ]èk¢t¯ Òø‘[|ç¦Ú®_Ä\-ZÝ™ #~)‘7Ë¥ú¶äÍ\ô}Ñæà ¤Q,âžÌó#òÕ´R&ã¾7ÑÞÉ; r¤×QßRy¼n‚Û•KçÚ¶/å?–ì6«ßÅÇ‹¯FŽË¢< ‰ã©;:O6]UJœFp0chd“œ1ä(ŸâÅd¾ÇRdO\–õF¾¡*ý">éÿKüÊ[{h Ù±X”‰–®û“m@…3Ieñ¾wj¶œ¼mýžŠè)÷±|ù‘Qcu[2üˆoný±ÏûNð`ˆµvSd©ü¡‰¸Æ6ý[´[ù3ܧ^êÄi/º¤î+ûX%ϯ¾ì»ÙÒ0ןIF¦ÚfÁWûïßeÅÏ,þ°3w½‰›Ð¶RÞrr/ÊQy¸Ïõ…>Fª¶, F6ñ3º¶ó„t•ÕIm!€ð"EBƒV³_&5³”6…ÖŠçj/CÚÜüèþ¦ºÿÓ£@A]Ë$çæ>×içzõò·€ #4 @hm‰ 1R3q½Õ®gÞNIâW©ØÒÑÌ®`Ó/™â_¨lY»ân9{•‚ô;·h!D´ËÅ¡/˜¸U[.ù9Q ¸'Ÿ759KY~ú¡—4eÅÎŪđZ1¤ó9¸SKs1®*:]bèõ–øÓv‹÷‘Pn²Ye€Áñ[s¸·’uðÉa45y®ÜN¸Jg÷ÕR¨ž^êyÉ„ÏNZ_æ¢<¤¿Ò‡•÷Šd#z°µØkƒÌ˜tï³SÝÕ´vÙ,—ô—£]CD•ý)^kU¾‰Ât›aº6Áj=“Ϭ¼åÀ¶æPIB‡7‘ïÊP|ЪîWbŽ=Æ@có™ñס¤‰Âô{lÄ"|;ê°ÝçxcÛbeD<°L\/`ÈÉÄL„߯þ™yÔ›³‘:¸ÕJßÞòB“€{›Ü=^¨eT3K¦éÀÜB HCÙj¬¡üÙÊñÒ26 ËkM¿:ýiõËX‘Ì݉½xF Ù~‚ÒVrJ¾>ØX ÉVBùw×/œæ¬¼\Ê'½`òñpoü¬ •î$—Mÿ•§Àý|¦  ødâtÛ9¾HF0Á¿Üw×CÖˆ:ǘ%îhˆn±ÜìñUôyEx aÙ¤jKéÎU˜}çuÎŽu²-òã¦.N=[aÌ-cîÖHÚvÜpi¥S}ÇÆV•éY£Aoæz_S4‰r{ŽåãÕd ŸyJ™ÂX[TexÓ82 íËËÄå(WÙ[¸M+ŽX[K6~1‰R F£çoÍ”Ñ]F6îáÛÔÕÏsR •Fï,•Nûh7¥’cðÁh|NGù]˜©þ1x„\ózùkêbjÂñMZsu’Çp1@ã}¥îw¼-ZÝ6¬ºÅ0†»ˆ DâK0ysq%2Q°Ö5KÀÎÇÀ»ö CÚ§å/³p\¶æ9–ð/ƒ¹_| ’j«™ý1½0oò²úó?ët0êÝ µ´¶ÍYˆºjKâ§A«ò!?móåfiË ®Ä ñr¯7øÔZmÒRøñ„ràß›Khv–¯¿ñë’I»‰¬ìbñ+Àª’ž¬²ìó9ŒÅ,´È7u^郌It]:Fï™8¡¯ì_e–@@YÙû“µ{ì3¥ãÌ2Ö—¢#QºÆŽ/0Pºjû˜²*1Ið­uþ(¤bŒ õRÈïÙpvw¡Å‰ °Wkxð¶Òæx7S_„)»¡wør³!*½T•0ťľœA­ÖJ6–¬ü.ÍØâ NM8 +ØæÞ*nŸ}±*\A/ïÀï:ç¿ œ¿*o¥÷ÃÃµÊ ‰½£ÛECøhwÑA šÑ¶ã:Ø·ï>LÃdmL0X^ÉTQ T\ RÄ9d͹6ø²£Ú|“ÔíÚ\€#Áò¡xíðD>ÙXŽÕW¢/ì±ÛãÊÍ @©4ÜþÜÔø¡pΰsÚ(2SÅÕo8]*Š–56› ùYšJéÿ˜}E endstream endobj 98 0 obj << /Type /FontDescriptor /FontName /AAFNRC+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/A/E/G/I/L/M/N/P/Q/S/T/U/W/a/b/bracketleft/bracketright/c/comma/d/e/f/ff/ffi/fi/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/quotedblleft/quotedblright/quoteright/r/s/t/u/v/w/x/y) /FontFile 97 0 R >> endobj 99 0 obj << /Length1 1112 /Length2 5145 /Length3 0 /Length 5827 /Filter /FlateDecode >> stream xÚ­“g<Üݶ€%ˆÞ{Í zF%„è½EgF˘‘A´è„¨‰^'Ñ;Ñ ¢DoŒ-ˆÞ‰ļçžóºïùzóåÿìµö^Ï^{ ;‹Ž>¿n Q†ÃÜù@)€¢¦ž$( „Ïήˆ€Ø¸;ÁaJ6î)PRPðp €bR"’R¢’øìE¸«7ÂÉÁÑÀ¥Èý'I àA8ÙÙÀš6îŽôv6P€>ÜÎ âî-P€Bzv¸ô nÄ X€ìܶ'¾àU˜= þ¯e°‡ë¿C/ 7´€ -É @+‚á0¨7 ±ÇÔ‚£kAÐ&ÿRÿ<\Ù Õ²qùs<ºGÿµqq‚zÿoîâêáA4á`öÏTcÈ¿Ô4!`'—FUÝm Nv 0( ô¯%'7e'/XÇÉÝÎ`ouƒüµÿ)nÛ_ ‚ªš&ZÚxÿzÍ¿B:6N0wo×ÿú'÷/þÍèÞ œ¼fBBB@t"ú÷ï/‹”z ³ƒƒ`èqØ 6Þøè¹@“(Àp‚!^ˆÚWPwGo [â°‡#ðÿ<¦˜(@PáÏÒ_„~A›¿I hû7IíþC šà..g…„‚à[Bn¡0@ÐþoDío០ӭd€ Ã-Ds¼…hçÛÉhég·m ½…hm—[uÑ’°[ˆö€ßB´‡ëßwCzZá·nD« n!ZÅí¢w¸ßB´™Ç-D«xÞº3º¶÷_øßÃóèÜË—_DÀ/,*ô§bqQ!¿ÿ“hç@@`îý/Ñ#øo¶wB,â±ÃŸ™„ÛI‡:§Ô¿*öœ;Z‚Ísç‘CíšöñV‚é·w êÏyªM~•¦S¯a¯Ý÷¼bp‹ly©;¬¼ôüM*ê÷Ú ëµtŸ&“£tMﮬg!Û$Íõ';¢w´Ç‹Móº³z¶³u¸” ÖqæX0:Ì^Ôvd„Љ›(§C Ãê9DXôHSŸG€Âç=Iã±æ¿„ø;‡ã6ò~;„·xÿÊÅ}ŸðÛüŒ*ŽÌ®å¾ˆÞ2¥ÞºÜNQ^8)IÕMW_¥|ÀAXÞÅÕP AR¼ªÌò¡lõõ€fäq„æ‹}¾¦–kv1‹…‚U+^+Ç<µé|¡ƒø\xy½÷“×ã?˜®Ç)›è­ ©¦¸÷]ìØ×Z¸¢2Ybf”í˜-.ãz¬‘ÑÔ÷iøÙu‡† XP˜XðÊ‹*ò·ñLÓ|¦à‹ùÅ¥1GGV«>Z`±Âq÷ð,|<Ãw.LÒÄ 4"¦O—¶¬.^‰û$ß#8äÉ®c~W¨ð› ¥&üiذÈqÞŽ,]Ñõ\˜op'"£³mPžêJ­Ãm‹rB‚¯ø QÌ%ä t÷:Ü,§éÆ,À˜Nóš5îDš ßõ³dPò‹»<5 æ™&é›xêxÝreñŽçD ód¾Z¾*¡ MÌBðorS%Uª—Õôe3†ëŒ):‘!iIZªrÊÃÁMÑDž ­gûâo쯀¬¾;-ï–ΦèÐÖøn›#W¹HR$ºãû .Ø[~ªÜ¦* ‡IwܤZjZ‘F R“—|þ3æú|z2à}ãÑûéÐóöô§ º&²oïsM1ÃÝ?û~†ZÖ°ésò3ÃPWdŸ€éþÌ¡| ư—à yDâw;7À “äã;Ó˾Q²2ªaùÄP0çÕŠ+÷§ðÍ7´Ûñ"Éý6XÀmÉ™íÔÒ¼"Ã}’kjµâéy2HTà˜èh¢h­®'Ç+>ÚAÂm)ÊÏ ©x b\ˆ!…OÓÞ×?¾3”Ú2¥„M*…»ôéøq–q,÷ûNHä¸VºáÁ=¦è×ÊL^aWý¸ï?uP,‰#¸üÒÂE`¤´–@eM¾w¢ø.¼ÂZ{T&g§F‹Q·ÏÏêÙ€a¶ó:7ýÀºòâ€b#)™b¹h¨ºX=[áP(Afÿ:r?¨=/ð1­)@?ž‘º4¶QÑ9Œh$¤ð¯R0xh,LIñDv`€Ø í'ÞBJÜÓ—"ª|šSÓú·ºl×B3f¾9ÂÛŠá­¯›çÓ)v­BÇVv^ä¿xÙ¿ÿ$²gA<Ùõþœ{îp+p´P+:ç ¦ÛõòWÁäÂÒ«h S½ªñÝ2’§2ÕM§ýIêsë¢Á#ùʉŠ'ã™R#Rö $ûJYËXo3‹LÀcóë€EŒé˜z5sß.* YHYÔî~ØYËð•éÎÑ‘¯0;B×?êȘ#6ûðeÎMkæ“(çIn[±:¿Þ1ëË­ÃßJcê‡áäµ>Gt»y´v?&-|5A"øs$E“ÂŒ ,fþ‡Op; (³îyDôLMŸáù"gXLØP Ú)…5q^T\#§ÔÜæØJgâøþ´|¿õÏäê!‡òŠì=Öò¤77¹²â?.Òû®AˆÓ<ç~C²²O.±qgx_µöóøhy°F‰HoM-–rÇû©× ¸¹5®QKÉÂ%Å»ÕWF_çB§ÿùç—e)2´qc–B§E½­ï/#^Cžs3ŽZzñ%”zÔOr§ ‚†HýØpÃÁ?EP˜«íÔa­Céì7fº™8< ø D7?? kK^µ­_ÏB¿öÝí7 @ñ@ h&èÝ23öEÅÔU qÚWßD^K_Ÿ¡8å#k):¼•ÃÞ9Êϲáɼ‘¬LµŒ2vóÝ$îþ>p`0 Kòr¾8½à$õ;kÕ _ÇðtÔ”§iq·“µÉ#i¥:æÅÉU¥Iül?P&a3Œxkk7Šu%Soáh×ÙÃCFëî|èã#fÓ ‘¤ê騲_û„õ%õ¤æ·¾JcîVY”i§ ] °-#R9ø›Ëû‡£¿1nÖÂûžæ"És äL 6J¸°) Ðo¦8iFÛ,vO¼é11TL‰ Ýâ’=Å‘•§4ÇÿÉâ!#A´¾æáÒ"×6ÇžX2qlí¾ûBäÉøhõ‚©ÃØÝn×|ÕNö|”¯ ß>ܱSxmýmÍDоlò•\âÊN¹l˜Ï‚Õ;µWÌ’%rþ97ë¨Rq¥gë3‡%(ŸÎ!å¦È ª’å™jÂ^ÏOú×"e€¯S//jGÏs«£çƒ»‚-í?Y÷õ$À¿Ç|ŽÍÎtºæºÃC'm<·_•g‘-Šoæ&¸Ž1 µeú×VþÙêÁÁ aæQéú3€ŠàlÕŒÆ5áæ‹ÈÅŠHL3{eŠýåáQýƒè¯º*@*nà€¹¼41$Át­6ùìgÒ›=Ï0­æ¾“^Ø}"¥D¶ô«;RÌj, ¹êÌè–ת5—UDó8AŸšžX¸ë>bpŸrõxz†…ÈAÒÞ#HYƒoDîá ô©ÆÄñVÖšO¥ä^ âƒ$4{I„Ú)»ð¦¾’ôL=)ù¡c,ïËz¦cʽJ9„µ]ëÃO?f&Ò¥ú„(­ EJæž—Ì”™5 §û@kú0í—@Ý/?¿14«j¢Vڢɥ9’]‚¡±De&hf”XIAýšˆÓ`Õšs •ç›yç¯ʇ±Ñ~fL*×#‘ {™wÏlﻑ™(#éÉ<’šŸÊĆb..£ÇI¸¶†„¼&ë¦æñ/¿{Ö9bC4Ìâæ>«W$_³<¹š!Ђ¾Ð ‡l< ‰Îßéwä£kªc¶AÈãJ”î C\Ê>Ndˆ)ÿFù2‰êµ0ìt Â’– …($c”óckŽ×st KYÀ › ÷p õÙRn1·uüEb³ØžªŽ¯…¬Ì¤»bԦػÄv¿<;D2m%'Òzfêàë8‘'äÚó½ 0  1EPAðͬOCFCÝjc$ƒ,ñFä&Iæ^ÙÓÏ’UA|ß[É¿>Y†·¾Ù..SWéraº"¹Î˜Wß!4½•æO–ιäë¯9êÌ»üÜ>rýú‡ì³Ê§W7ŸsϨu°‘– ÞšùÛò}ùAƒÞ”y?•úæ®J¸U0é0/×Í5° “Áû°yýW¸~Ï∥°c=Ël‡æcÍϰºYÒÁvy¥GGr¢<–õ’8õФ{±$gx&B°³ ¾œ(Òç VÀQÔÐí %qA~ê<›Èì­_×’ÚV½Ùãéù ÝYz&X ê#²ä>A‹jlðnªÉß‘z¯Ç"©\)» ì-áÌŒrGMáP•@kgï_ /'r»Ÿ¦Zž /\)Kz¥ô>ˆ>unÖÙ:¹cꟴÁEè&<º‡›M-M¹UÝf]Âg·ïèÝÌoM©Olû„SøÞ¢Œ®`Ý6÷®ž!›•VyœH€Ü†ì(z³Ê?ÁÐ¥Û@b]4m„ÿµE1Uk å=â­ÈÿÆì.½Á2_qΰòî÷TƒV?9œDÛ_çÖë`¯fX]P™íùöw X8N3ݸ\¼ ªÒ†æ9ŒÃ;ƒœæ)¿ðüÞ—èXp?úFÒpwï‚ï°ÑÕK'NÊâï!G”iÂ{yù} ¤?)}Y˜:Xí³ùà´O8вáH´P ðá`ψ8‚åt¶J[Ϫw,j"ã-GðÕÊ<™ VÀ™9¦D)†òñü°îEˆý|UYãÅbÆjè:x>¦—•QÉ+ØVV)<º:gQ-f®´˜ò1ÚÏH §okÝ] â Óø”G¶9ÀV¤Na5¿«g5-V—Æs0 Z\=­Ý3 ˆ3’3´ Î׿d¤3åÛòâvë-nùÑÊõÿ"qýPÖ°M3›ÃÔã¤ësŸ½O6#\ó¬‚G˜<ý|­õ\•ÙÇõ>É™uˆ§òÄn嘪 …² ûfãƒñ‡ú"æ-ÜÒj ÷‹@ËÁx;¹NMò£‘d6CdÀé‰Þ½zqƒx¶¡¢ª¯kÁýn§X5Wjò“õ]ÃînÊeŠ:\~°}µ`|_ø–¯‚ŒŸ^dË÷³ºâí†øË\ÙúàBZ‹ÆÐ%’ëÊð= ø—ý!!s?[ò5n{íV)'¨¡\'õÉ@h™™]OJ’w7­/wÂÙyÏËãÙì)±â”˜È=ýfï…ü6Œön—Ð>燪´ì ¦øJfÆ®XT@`jJf 7ÖÌVVÕÞfÛDËq¢íúûF¼mü6©c©R»•<³/*ÊIΗd)"—GL˜ÈP1Èh/»eÀ²ž<"SÉ¿»áÙ¾bd4tª ({ùjQo%gN j·|(¦)'«ou]|ðIäB¾ZýôØaŸ½û:„"³êKÓÕ\Ûx×âÊûŒö…{)DðÝ­²éUŠÐ}g„ÀàG³î/ëý8«ï³Ê2±÷æõœ'?RIìkŠ2!ƒ‡C7­¸R¬Eî•δ ù3ÅÞ´7Â9WSº5Ô\+ÎŒLŽ >OỸ’ ®^K‹!ú‹üY¢sæMîÙ íÌ6-.ÐÖüzp¼óX;ËÚÊ ¼#A”×wÚ’æð&Ãó ™Eöùf€‡"ˆÎ€cF]â­÷ üŠ0:äyRÀh!¯DKâÝA>{@×C`Óà9ñ|XÇiöå½þ» È“$™¨ˆ HN }êù·Nlü ¶¥† ¼J°Ó²÷39.o¶úO‚¶D~zyO”½ÕŽ389ÀŽCY£¾CÅÉvÁO¸\7XÊÞÕN¦ÆU”_K~ˆ7ÌwcZÖ(oqÓžSñ>城ÔÇŽ:D¿lÜ·7fiì[ÕÆ0ðÓÙ m ˜þ’)ûEå²^‚¿w.ô—'Ðt.YHIߥJ˜“i€KÞÁ“Ô/«¦Kµ" Ê‘^)øê+`&5ê¥;Û臩õ6V“-_ãኲS?qÂ7=øž#,òkÄŒºµ7ë1x B°«ó ­Yü€Ò_={é‚{LoÌÆØL[…祶’ °É#gOIL1w°½T"?Zä>Õ¼[aü¼Ü´ÅædÔ@…4µ-A4ÊzªŠL3!©º' K¥+¯kΗã;â’e%Þ¢:@Y©üh ª$º¤/)×üðgšº»py#ÞÏž%ÛÙë‚õÁor}Ô RËYú>D•Å}˜ —_Cö—¢Â5¼3EûÏqéçéú’ä³f·–æ9tc22WH‚¸ÜÓ_k¶o’²•ðŠ9{k''˜·EÙ’¬1#Ǽq“ød\’F·F»¢Ôõ®E*K0Å‘‚ ì~øP=g3 {aàû Ù Á[vž»N ý×½‚Œ¹:‰vêq¢|Î ZFýœTȻԠÍ ¹°Š„ç¼s¸E︹#2)MTŒ&pʧ&Í+÷G¸ŠØr®¼ì è!æÁñ¤®Ûmìm®ÂìÛ¤dnßQê½ë¢€1б@s9¾âD½$:Xuòœ~г³·Âþ{É¿6r#æ«K픸þîÓ·Äî87~²%âº(”߸nlâj2¤9׎™±,§^Oóˆãêl*`®ú…³…„Ø{T»í}n<¬Äý8ë,a¬"Û‚Ox³¿ypùÄ´BȱO5à©éé¼Á™/‰t`¸Hëêÿš”Lòã3#Aé<ÁÅ8±9(Ùó•ý"öΪÿ˜ò¶ý ê«Õšùȧ¯IŠqÏàzg˜„Ïó,Û;ˆb5úWºÊyêpé[~Úªæ9'йÖ<˜EPªyóRP_RLû†ÌK6ı°¾AÃ\c')ËM—ÄíË“5w6;kë ¶7m¨‰Ž«ÞE+ô ºÃ&zbµºëïi'ò¬•}(®ˆªš6ýv­rð~ÑH4ÈëY¹ý(¡S{ ×h¯bŸ÷C‘¾âZ ŒóçÅ_î;×iÔ¶þi9ø– áßQöè¥÷ó^7¥Âz> endobj 101 0 obj << /Length1 777 /Length2 1289 /Length3 0 /Length 1836 /Filter /FlateDecode >> stream xÚ­Ry<”kž²}áè«ôYÞ,Ÿ-³Èp˜’­†û‰²œÆÌ; cÞ1†FÖ²•œcw:- ‘mŽÈ–A–,9B–¦ÓO²”ŠÄ÷Òé;¿Ïù÷û=ÿ<×}_÷ý\Ïußšœ\õ-(/xb°õ±(¬)`EtµÇb, ƒÔÔ´b$6 bX“Ø )€51Á¡~€œ725ĘÀ$À b†³h~þl@ÛJg“d X,™Äˆ$¶?÷ “è€+D¦ìp`A§.›!€ ²Â@ ‰Å™ ø‚~4½©È–A…ã/aJ(ók* d…À¢mX¤K¤@ z8@©H´¿ÂJþ¢¶7?J§;‚6Ûo¹ô·<)ˆFÿ“1CÙ BÅØNu¿ˆ#‚ZhÐö¬-›D§‘-~tÐ7A} ÓBŽÓ8 ʼnÆ&ûT=ÜŠƒ Êv!°y[2Ð6ßÙ:ˆzNu+éD¢1ØnáLÀüÅÞÂØ¿0ì‹Æ<1(  áóõæ½í±c 2D¡1àµÀ$‹Ž„÷F8  ЀX1Å€Øp P!rs¨&&š¼ÚBX¬€fþÂ?G3á±A”­Ðßii q"ô }f³ú`ŒÃDý‘Êb öÖÁ^}ÅTì.r@2R0‘ññ9µJ¢]T*¦¢”WßÓ”P‡GÍŽã¿fÕõ»*Kò ò´[rÙsveh ÷\±Ö"’áŠNx"Ï—Ù­S˜ï*1OžõòÙÙYÐÑ*ôKòKê ³No~T}y"¬I¬ÂþÖøšâ\ŠhÉï#ŸßFÆô>HåRÔ_d#½ ì³À“L¤?\}M€®C‚›{½ò—ÖŠ­cƒÏdòLR ˆ"óެIbt8ÔÉ^$öç@UG¦oXRã™X†¦`¸GÄúíJNÉUz³Ÿn¶×ÿôí-ÿ1ºÎO­Þ¿†V:'×øNÙ7\Ûá=¢6'¬ûŸ÷R #1œÃ.E²Mf83Ýi·þijjü0>·æ–×äŠÅ|« »•yßüœŸªÜ ÿÑr÷QǨu¡ÕoøÆTÞôÒ‰{ý1ȉԛ_éó"få–ZÆM„.Þm¨…$à9nßÔëùmp+Ü÷é©aV–‚c»=ŠUj¢MôGÊVUÝL>Ïõ½ fä•ÊÃR¯qùSw^\‰{Z–=ÒÙù[¥±Ã{—iY³—rÖ¬®KCîºúÇŠ¥>ˆï&L©L·ÝWŸ0i¸ëiÙë’ÓÔØåùK‡P¥#ÚÑur] n74S³?¸r0òƋҫʱ±ÂѬ„ü›‘æ %¸Ê,ò8r%y5.§qÃÚ@k}"ª*ªÍ;ù“’•7—”ï•TÁÇ'_›ð ‹ôt äï9”6ht/$ ó£dÎç·AoÑé)NÌ·:q ¶ñ´“DÞ„r(i@,H^ò|U€âµ´¶[ÎryôŒ›[b‡_ [–ï›M+%iÌÆdó:mÇØ'Ï8ÎÅ ý|AæÍ@æCÝ¥ºÛß[š˵°Ï…Ýœ¾Â|\ˆÕÔjˆm®ÖXÛ;¼{ mÏåÔÐ×IEÂ'Dm—pùøÿl†G endstream endobj 102 0 obj << /Type /FontDescriptor /FontName /HUIQGM+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/c/p/period) /FontFile 101 0 R >> endobj 103 0 obj << /Length1 1119 /Length2 4534 /Length3 0 /Length 5232 /Filter /FlateDecode >> stream xÚ­”g8\íÖÇ’˜¨At†}ÆèDD'z$ê†1£Gރè¢×(Ñ¢E¢GHHˆˆáÌ“sÎïs¾¾×þ²kýïµþ׺×Þœlºú p¬5B‹q€€ R@¨–¾¦D 89¡Î+W£dåŠB$%!@7 ./&%‘p¡XGOg”­+Êó—H¨à€pFÁ¬0@-+W[„®Ì ÔÇÂPWOPêýu¨‡pA8»#à „£`®@k„ ÿåI ƒÄÅÿ†»9þ7åŽpvÁ™rãLòqáX ÚG `m,®çäÿÃÔ?‹«¸¡ÑÚV•ÿÏœþGaå€B{þGƒuptsE8µ°p„3æŸRcÄ¿íi!à(7‡fÕ\­Ð(˜Æ H‚DÄþF¹¨ <p]”+Ìèêì†øF`àÿô›Þo`See}-C¾¿/öwZ× …q5ðtDÿè3äãÆäŒò> BpBÜóß7³´SÆÀ°p·¢b@+gg+OnEp$ ô†Q8ˆðÀYƒ0XWÜ n2¾@$Öð×½ŠKÁ:…~îªÀVH¶þC8%ìo‚ Áð¿QX GX4ÚÊù’#.¡Œ¼„"@°íß("Š#OG[æ’C]BœôÄÍ|IŒ[a0öâš9þ©ŽsçˆÛ@,ü’Bvº„8;—¼Cp½]þœÇÅmåb{I€+éz q ·Kˆ›Õã?ˆûhÁ—gÎë7þïæ(*b=¼p„„…b¸ºb’b¾ÿGssvF`\š¸õû/#Q¸}E <0À§I,ìnˆ]jã“R?åüÑDÜDs4»25ÝÓQ¡„c2 —éeR–Qý+TD~©¬ýßÞ†¯0Íd<šd%w§µFav•«éËB7=8¢˜5}&÷8|ÀÜ«Ž,äX>zKo-¦~ä»Õø )÷»(ÀW ?ž§~ËOA£IKÏx2†ÓÒ%Jü30O÷Óª[¿—vü ÚÚOéktµ‡ñõE:¢¬Z“³SÖ™¤)Ë7•CžcÇ˽dk•JE.ˆr¶œS«u-¤y’*ùo͸¸«Ef“Õ#O(X2N̘˜ $¢š{ÓšR®ïÞ*+é¼FØÝ6oè°j±u:µXoȳÛxä# jº–>Üü={§ŸXÎúº]ÅhÓFrþCFª¸S£¹ç¹L&³'öÅ6%ù~÷=¤-¯]µD[jÓ.Íô!åä|â/‰ó‘V•=M;ì¹ÕXÛ …9ê.ÝÆ‹¹nçþü¢ŽkÐÿ£²öJÁ>MÐþƒŒ c1 нõÁñ‹že‹Ö1T6Óöù‡AØ>=»ÞÕu¼–÷x³ÓÍB⎊-CW%5k>€sÚ³Õ~ ܦb(OÑmxÿ†È´Ë5–Œ©­DP¸’ÑWÌ•»:ç¾CZ«íF©äG^IðÓ½UfÑ ·Ç ºˆîõ”»ÇÕ=×À§ÃÀ†ŒmxŽ-f0ëŒÉ Íy+4´˜z¶½s—É@¦ ~Ï-´–´‚Êå#K4bOl~ö©y¿òÇ÷!J«ybv±{æ²òy­ao¿_¡Ïuën©ÌÿµØ‡eoV‚·ý£¾î¹Øw©’±Ú·‰0/ »¸g$îc:)‘è_‹¿žy6þ BIåˆjŒoþ qH?*×Ç ×Ùt¼eȦü y‡Öá¨Ø'’¡Ö }ò³­¹.êõÝå‹q¾ƒž+µ}ÝÝ'Õ4wV‡ÒnûªgÊËC„ØÁE$ôvô¯ò$¥V‘GÙœ13P³q/ÉL‰dËý85ºßiØrÒ,—²¿î®—ùêb=‰êÓs]3E¦L1?=þö‡îQwK㱚 i Özbƒ­‰ÕÛeŒ¶ñ¾_Ýó²3#Ÿø‰\ãäem6¤Ïq1úñqØEmh´‡s×å¹”ÙUñ^P÷1ô湟tÎP/ïqSêÉsÕhRS¤­áߤäÉÉMÝÎâÝÄcNj’OÈR´”úêׯ-Õ@@7è ù Ög•w +ñ/šn¿²¸ûmûBιB9yƒà—ÿ&K~¿¥¥DËrl—8Æ®ß[UôN@–)˜±ÅT°ãǾk¾ª1cSô˜5 çäκSd¿õ¸Ùg( MÞüA†W+ ¥êŠzÙ‰õŨÌã2Ë;J9f˜×¦£²bv~"ýî™ Ð˜*1É$5ki·1ÜVh¨ tB ÁÅ»ÒR5R–ržÛ4Ø¢ßÑ>1е`=?kÄ&)ädßµ…w%ð~”eW7aõ5–Ñlì@Í|ü´ –ë(ÂŽ±µ'µä‰hœŒn¸ÎÞë&|½ãú†÷V8òÊán%¥^¼ÜóŠAÂÁꞟtÏœFÚ¤å]Ý£N·ç?™×Ò^´ÐN8|þÞöKe0Íþ…1­ òuÄoª.+mì÷$´¸)™‰Rԑʱ Š7ûíV,Åì‹É“õ/AþóÛÔÆÏ]„ÈKŠ}jGè;;O¤&wLGÑëïÇÕšâ2I˜SŽ«¦"΀ÎM ½3A7hë£ÂéÉ6J€t#k´iЈøç AN`_¶Õ ˜¦‚1{Æ/¿+Èw1†ã¡}3Áå^ûº’¨ÌŸÓo¼§%zs»‡MëïuU+©Z¬*σ_Ž?=½öÄ– ‹:\ÉX Ìo§4ú-_Eª½÷5v"^™O‹¡ïuà2ÉÛð €Ìi¡"_Ïï‡ì¦ú¨”1MoŠa… D#h¤²^ï•$‹i†î¨tSbÙF C¾’6ÑËgc6¼‘ÍT÷ÔªŸª 4’F£+ƒ’]ÃOòSYÓÅæhþrë“_…Ý×*üM­ÀÏOªzã¡þiˆÚ†ã~ªÜHöµ/Ó⨇*‹¯ÙdƒB®æ|ÓrcäÞ v·¤ù(/~ ßz"("šº+S·GÕE{Ådr¨Yˆ®ò ø¦à[;{Iäx7!jšÑ·ivøâ”4• oï\7&€ «‹y²ÑJ8—¡L$á’?Ÿšµæ#æÌìö Õx¡O_Z"{wmçÃ>+†i_¿€/¸PŸ©„–•|ñ1a²ÎÖ’?S“Ìd@t'æÊóM«²tê.Péå«äŒÞiª]O&i4°Š Xf­º¿}³]–ð×·r‰£^…“•Š’h‡÷Q_µ Ø=1š{fúdg>ÄÓŽÇÇú=Ë|^Àª°Jȯc¿¹Pëp¬Ì|S¶‰fÒŸò@/¥ Šÿá÷¨Šÿ@àÜ¡ØB{>2éh{ -$æ T¼iVúšlyLXbbF±evömOd|Z\´¸8i…N5¸xp0!-âS„ÿBŸÀŽ—T’}¸º ¾=yÐ× />ò^T°l>Ÿ<òs«~ir·—T\¡MþÖÆ›ñã€è»Õ/·GÙ‹–žr–ìÆ±¶r„ûÕÐ=³‘oè^rB'ɺßoGdê¬Å@‘è”U (òYüÒ”¯§Q¦°õOúBŠÈj=»òº4"û^&w[ÎXhNVÍ“&O¬ÆëNw £Mj3ú†F^Ð@Üú™¯>#46 õµÙñ ¶Sá6 lï½[:²ðžzˆ4úžKÂòñ~4o°VtKÏ„°ÙÃÙúx ª^`ï¦2Á‚PfJñ0@ÜG>™”ðµB‡kÜ{CRZÏ®µ‹‰ æJ6›|$.ê¤ óX®öÞ+÷‘à’CŒ©žÆ&ܤ=ÎA{ÛíÎs.Ô@¹Å’FZrŒuy£ ":ņ¯C—5{ÂHõ‰ë#a­w\´­> «˜ð˜ÙSÈK ´÷øm„OèO»] ×HGšU$ûÒΓeWk Åd'’Aш£:þu±â¦,ƒRaw>5Þè<#Ý.°ÇéÍöÇ"w‡IÏ׿¢ñ"LFVn'‚“­[yz‰«Øo½Ž¿* Q¾(iÑ.a;gH¿ãõºÓ›Àù­¢ 9£öׄ°ˆú[Ü?WøŠ?Šã÷›˜wtËi¸ ³Ð>IïN½ùIh?«~Y+§F®ãâqN†ýýdUFVc‚@5‘páÿÐÜ ¹RB ¿†ß鯱xŠX›ì7̽#¾ÕÌ—Õ2naÏÍE¶WU*‰4fÚvÒöi/ ›{IóE… ·Ï;üŠîXtû2šw«J¡uï­ºKP‡¶œWÚfÕY3}BZÓ³èµÌÓììø˜z_9Í£FgÚ7W5Ê\‡«‡‡Åð´¶5‹lKÇ™ð‹$(™`‡×å²U–¬®\!ŠbÞ}[)ŸTšÙ`ìqßÄìg_R„*®fKLË "ÓŸhgl7`ìÛhÑtBáªÄNjJ=&uÐìÆT™©ùÕrŸ#z³€ï®‚£äÝ6Þ%Ï,‰ÜÕºÈ åøW¬2ÏÙöBeMÉÐ{È|I#&j2ob‹#p%熯]\´ê%è'×Îä™ÃTÃfxÿáÝâCÚ!«Ü3‘ïÃ2FÖĘa¥g]wð³÷T:Ìõv9³²£²ú'¤‡¬¾ìÊî¹}’õ¿çX¯È©,¹U!ÃSv^FØùì×ù2ªÇù¦²Œz8H^À^ò±¸[€ÊbzŒ35Më— ž®±±Ù†Ü#Tªß™ÿ*¬ÎvðÍ f÷©îDF¯²CRÕôåN&1‰ñŸÊߤ#ëzßÕð!ºÐצ€XÌvޏê*gMÙ•ë©°Y¿êdX©«v+vÿüa±é  AÀΖ¢ükýŵâ Ïw’‡´sOB”¾z†¿äy+dÚ:sfo4Sãù(´÷=鿀ƒ5ì]Å5c¾Ù/¤ê2MÊZ\k-û¢@#ʳâd}ÖMA–·÷”™*ð#y; [L´œBÙå-ùçŠó­x“‡êüYˆ<+ËøUöÙíÍ4™cwêÀw’ù8HÌdZ²÷¿/‹Ã†ëñªX¯·v߉Ís°¿å¢_Ñ8%½Î_bst`6²MDœ°HæÑ6¾ª*fEO]IÚ*Èßç—qÜÒ_*©šBö„*y6u뛘Y€ü˜Òb$²º¾¹]áìÁ+ÊÊsÒ}±˜nwèø«åþÜ‹ëw ¥š…Žrþ,—4µ¾<´ßÕñë¹4,YÕ‹bnyú¢µþ™Ñ`@j€ãS_)S+r‰/×Z„7¿ÿÐÏ8çÑá§1ç[µ°5“ `“¢Ø“”æ˜:ïêlË{Ǭó@uÞå–¦"#ø]B¥ß ßÒ¹ë Êžñ^*4r‡´Š°•2¥<¥œ/ÀÉ$Õø¨¯aa“¡¶aôÌM¼S’Eê.¼”úû@׃ëÑ\:ïN ½üËŠ•¼ýÓœaâ^gv%h%.¶¶‡x"õ|9à U ™<§ÏT¥iÉ;ô:[4Å4?§Ðö/Œc…:²Â4H°]·WÔ?•6ùñ*œ” $Íf†ãÓÖ£üe¼ï÷‹Î2¹Øa®È[ ›—ßëʹ¡¬ZãÚñUº½(¥™¨Õ î¤\t{H°+É¥+‘ SYñšÜµƒêPÑTùGßïö„.³Býl)àÞüÞ¢²µ÷‡˜&\‘Òþ`}¯:Ó¤¯{§q1«©vj) ~^VÕ^¯÷qpP&ÜײN$ Θ4ÈoÁ=@f,Çù®ðµ}\Bo$åk¥ûäT¤£Åßor“WÇZš>BñT~¥çߢF¦Â ±»Î¾ß”ó€ïigï­ÈWÇ<Ô§Å»#¶¦¥è³óvºÓ>›ÀHˆ{rÏ_'6î)|‘fF&z¯özZ¼4Õ˜/±õ¥zÒÚü¾d>:½ÿ€w´tÄ Ÿ®hú4B»*nNŸÛ¢àF6Bß'8±|j+:À8•”tÜ2[Ô“4ZqRöM){7¼VšÜ-¯?’Œf3U½¶ÂŒvøè˜Ðþñ à+)Yª¨¿`i$ØTWŸ·ÒCg(sneäÓú/²d(Á endstream endobj 104 0 obj << /Type /FontDescriptor /FontName /ZEESMU+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/O/a/b/c/d/dollar/e/f/h/hyphen/i/l/n/o/p/period/q/r/s/slash/t/u/w/x/z) /FontFile 103 0 R >> endobj 105 0 obj << /Length1 1555 /Length2 6640 /Length3 0 /Length 7512 /Filter /FlateDecode >> stream xÚ­•eXZ»†i¤C¡›¡‘îî‰`d¨¡én¤‘DB¤[BJ@RP)i‘î:ãÞß·ñìó÷\ógîµÞxžw­YÃL¯­Ç-q²‚*:9ºqóñð‰ä4ôôøx|<¼¸ÌÌr(Ø æä(vƒŠøDEù2î¶r_XŒŸ_Œ_— çäì€ÙÚ¹ØäØ d ˜5Ø v³ƒ: kXƒá='kÔÍ› ‡tg¸t¡®P„ƒËÇ€À¬ÝVP[˜#.ð·"G'€ðßËwçÿny@®HQ6¤HvR"ÄÉî €@mpšNÈ^P¤’ÿQÿ.®è‡k‚~—ÿkJÿgìƒ{ÿ'ÂÉÁÙÝ Šh8A Ç‡Aÿ§…ÀÜþ½«â†Ã¬emáPïßK0WE˜¢ s³¶Ø€á®Ð¿Ö¡Ž‹@î/ @EM¹'JÆœÿ9Ñ¿6µÁ0G7}oçÊþŽþ‹ùî9Ì `ÊËÃˡ D~þûÍì_Í­ 0Gä•€°7.òn IàË€9B ^¨R1ÇÑÉ ™@Å`ã„Àý} B‚ Ì勵I”»#PþŽD@…H˜éîŽø@¥;€ÊwĪܑ¨~GÈšZÿ²¦ö!kêܲ¦î!kêÝ‘¨GHGÿòÖÁw„tduGÈîÖÿ/²=äDö‡Þ!ÙyÔ`W»»‰üŽpqG^á»$¤L›;DØü¿7awˆ¬hóg.’mÿ@¤«»^HWvÞÎvPÇ?"k”ãEŽöÙˆtnÿ"­ÿÙ éÝá¡HïTþ-Üé®72ÖÉñYü6âüò#9CÖPG·»¡¿Ö`N ô·_—»,¤=w'7(Ä þ÷3qˆÜBüH›®w•‘Ý\á²Ù]º R»›z§WiÎÍÓéd ÷?9?i×óCCf{ýHï>áÿýÑËÊ:yùr#¯7ÙSy¿„EýÿWœµ;Ô_*ò:ý—m`Èw õ‚Zã~v²~ú,½!¼,@¡hì &ª¬mc¢fmçd;^È—$TxÉG5Ž…ã‹ò,R‚uÌu:Ï+j×è6?ÅÝç.‰ŸoÖ=,׳|š©²4¼×œNC¶ [¦Ž~ ¢jM, •¥š÷æîõmh³Éëo`ÏÑ£t™zÔue‡ +fÁ "ÂjXøéu‰2\Ê""æ=‰R“1æGCžEà4qÎî;µ¹“\áä§Ü<=%O ¶nÿ´‡]':;µY78žÑ)âV¿~vy” €–qö¬;`.è¥?z'«@´™,Ïf<³tê¨Q è·.®¹Ñê¿Å&4íXƒÃž?`ä¯*“mú’KÅ¿¶øXÑÉ·©{ xGýÛ­Á•ƒä:îÁ§÷]bŽ6Ég­ÏϸÃ[6µ)*­®ªõmq¸xžL*ËËåpšœ$®ùå/(Sùldò½ÓWç%;Kg©5)N‘Œ;‹žÄfØçn+î«këŽÃªžHR™ÿ©{?¡…Ô>xyÉ›¥†‚ ¸Ï°‹¯ÔˆKÍ®£±è‡!¸ÃKÖ~ìP(GØq*š¾f≽cÝçÐB­¸EYþî[{K-ň6¡dèrõ|¨gý™€¬¿¸Æ}9V"¶”ççï¿RkÑŠEÁ%·€|˜Ý#üá÷í=„-/„4P°ÌUåzì°=ËTœ+),qþuOèR kØjY`ôפj ù‡86D~Äá½ÄsH‹Ýáç®$¶³2^r;Ù;w­è~ðtáMQ«kMõެ`ÊXdÆ#ãwÖ¿– my¶ÇZçˆyߎ5ªI°í©¨[°ÉŒFG²–âœ;}ÉŒ¶¾”¸Ëï‡9¬.ÇuNoª¥ò¹_‰Ü~àȹßJZ†“›ñ~ ]+R™Ô¼PsÍp2„U­Pކv?xåØÅ¡OÌöÒÄoÙ ‘ÝK:eh^Ži¤â­ˆ¸g­®á&ýpqƒKòAÆ`Ï€"R÷-W“«Rov«!#*¦W‘Q³n+‘$bãQÉ‹|"bM#Сd)8áôÅ\cH¹^Ëë“äˆWE¹|ÃOózÞùqÇN0Íä^]yÏÑÑ3ò@åºÞ;MÙVQ}ˉÚ=óKÛµ-ñÙiŒ5t¯ÞRÙÜót\>¶T& ‡-¬÷%ÓúœàÉòÉA°?Õ¾ëllª¹õåÃeÇd ¢_T}M-#ŸoKàdzƒ1£«QRY*9öÁɡ˪‚’mdbF”pû Z8ëŠ4©1ÖäòôˆW6kŽ…r¿CÓË–ä‹ÝòJ{3jûQ½ß¸ÞìÚF”ùò)OÇ3c¦¿É}e ç#r¦±W„V~0æµD'9t­rzÚŒpƒ¯:¼Ý?bgî%XŽTš1sz– ÎÛf;¹¥D’Çdv|¸.$cx ÷¸–¿qÛ[Gd£¤®Q<ÑSŽ÷YcìÔ Ø3$ipŸDG™Uˆ?°:¦‰‰gêÂÎ,~•Àà¨eÐiœ½‘C:µ[-?± ,|b›–·^œØÞ”R¡aF(ã¼¹/ü–&@¶!Ñÿ9vÓ3X‰Ó¤R¤8?E SOn¸¦ÞgežûZ&=$ªˆ“Œ­˜Š,Ì»ij8‚ïP¯kéñò|d‘W3ùý¸¯Ãf*¼×ÓzI¥M¸uàE6gµî##ª‡Ç\î§xè««aöFÙ‚|ò¬4Ñâ^Jr†¤•z”]1\y´až[¿¬ñVŸLÌC a²”ÌFŽé,öç~é&n "&|‹‰ãxœä!0#ž´Õ´ÄÇþ$¼ôy“ŽéjAfVÚ·CKÏgžÅ§Í†‚½3óaœt5?ë›e‡Újè庰Ûù8ÒÁÂÁ\óy a“µãA¬E µ‘UcÜ®‹"ÆŸu©N¬Iz¤H®ÓP8æŒíäŒ8SN%Yé2†,ô–Aˆ[äëŸy§-÷£ñ\d F{ÓXy3”}ç»I¥ŸêSù—Èh7D·»bë¿X©"¶Ù‰ÌÔ‡È`WZ=¤ËDýâ1³ã¯) sp¼9ò0iýåÚ;±MõûbKnhÁ¬±‰Q-Fåm–îŽÜ˜î7摞Ú×’7NÞ'NfBH|ªpò\ ^;ÈÍl®" ”zûø…ºï/ñY%æ´"°_*ŸGCLgÌPR>)§ A5œ?)kmôË}ÝûÔ“½4AïÃúýÕ%Ëàã¡9T9g'¶ßT NÖ ÁAæZ*_IaõFG–.ÀøC+ý[í‰ÍfU/o1âŽpÙ ÆSÞÌ9ÿݵÝ`Bí$é«ÕÒ…42e¬¼šïÖ"û(u bƒ>¿À2P0¦åô®Ñü®Î}w¿Æ[ùê¸EòZ›–Bà½Ö1uA‘ÕÐF@}t£á/[¥)Ò7ÒñœqïwZàˆm±N—̘7Œb~)¦K(- Äï7W¯ÅF ¥½@' çepfÌà¤i=ÅÀ~ñ±€½Ì~µÁsôˆÞÛÞëAÅ=t¡é*/ƒçrË0¼à»ŠKb_> ½ËôˆArþ=µ^á º¬ÎÆž¬©²óBsŠåË/WÄ#Tœ‰Ëüä¾,ýlO¬i~-œ7.Û6ÑAÖ”!GKR$½«7ÈÊG•þÊóWÙ'fË®ÌfÛ ã•ÔN­“d5ÏÒ™Rx½™¶$µÃ$D‹bcß´°¥)>n¥Ð„ŸR«dŽ:jì9{XQØ.Jž³èü¨' ®Aµv­Ç u¦N‰\ź ÷±µ“¯ðÌ®}~Eß\’•;^£lj뜇*EÛµy3؆îë I¥BsîËÌî/qûÕ¾„ªQ‡ƒ(¾þ4Úg ×XÂîv‰ë½9ÁÙUMªy<°éâÁÁDH8µQ0 ¾-DÛ³=ußÀ°Ý1a’SHeÞD`bWï¢äÝ,ÓX¥’£fÿˆHÒû)õ1ÛT³ø<Íë^ì ~ywFP'3oõ ýÒŸïj)CâׯòÃÚý'L!iŸµÏ£±kºò__¼¯ªÞN‹stɵár²â°i•œf¯Ùà5̽ØÎÆ×O¹âiQH à.!eïW0àܽ<ï&כԥ÷Ò¡<:¦´FßÐÆ¦â¢M¨mU`k9Žd¦@Ä3AðÈ©zY)E¸Õh¿û!ÔH[Fª¤èRÔm m¥û™nX¯âz`+‰OˆÓàܘx*G7â+]iR, ѽ¹¶àδ~‡~|•ÄX’£){üª´­òOõgTý *~£G쓤—TÕ[êš~´»W4§7v 4^%ÿkÙs±JP*ãæAŸíÛKÆaƧÁ]–Òìc:E¨kü"3´ù^Âu¥†G‚ðËC‚u‹êýï\GDåš’ÇrP…Ú+Ú•c” ob·‹Þ2ÊŒ°«Õma“]ñžR‘1ãôØM• ¬µjü–Ï…:ºúáùiÆ´”¤÷ða_ÓCj¹ô÷M=•¨jÛüº¦aÉhžý6M:®µ:8±Ê•¿¸ÛoK·íÊI3Ê{†SKßà ŽNz=a¼èïžÁŸˆ!• ¤xJqcÔªmBrÿæÿQ9ãfÝâgû‹ Áêp‹&ýÝ*üŒ8ÚdÕÍ4œÑIü‹üº°‘ˆ|–LeS}¹Í‘Ðȑҫ`¹„Oz¨óéÏ8+ߊ¶š ÊçKF\Yó$“¾âîC}¥Ô8«”uXJÖ)Åm•'ºMzþ݆u²+D(§|6ûŒÒ&B¬û~Jî¸ýÁ¤n¿îM}ÀtÔûxV4õ«ëA%“·˜×uó4 ½,ŠÁnï_œ «ÓûÞì ¢Že1Ž©ŽPÄ’–Þ“Jµ*$!ø;DºÌÝ=‚Iq¸È7?Š  ¼{Z­†£MßVµ8ùIx-t($œ |`%J’ü¡Ÿ’(0Ëçùm5ûž]’¨ßc²W챜#3Ü+ ´ïËc‹Oœ-Ö#ÝJHmÝöÚ&ûðÑŒšÛQÌ~ßv—<ÒPoów³ýîvpO»ñ×aˆSs£Â+.`|ò]î3NâÖ—Š" xp)eµÎƒ×º&moe-¡üfñ ©Q5â„3?Õ…× å3ó_…Hù[°v‰]vmfK1Õ¤ÅÙi‰'}v-,ù=!2Q~o‹t(œ[ö”6aõ¶óI­Öt(u/ªI¬£ÓæLnµia¥`ðœjùrÏÝìêË£pt—*wz,­±û#¸í9Ǫf'ÅM:ë‹|!VÛ–×_¿äöƒ<öA‹T#$âS›Sr<ÈUµ“[IB$!R©„Áäv-§«ÎðËÎÜœ3‹dþ¹…×}ù²•ozý™­Þ‡Cøsµ®\„! ô.<ãqäÉ Zº<. §‡û‹DœhXEáIëTDî"þ;»Ê´•ä(ƒÑ·Ryl+º¤%2Û(”ô5’³\_7½Ã|Á—u‹i8ì=o8À!z‚&¼-aÁd?n TŠÊÈõ1ú¶?z{#¹ —Yûµ“ÑzR8–Ÿ8(ˆ“‰¸å ö52•S‡…Râô".{.£éê/YpöIוå^q­º<èo©x^±ß/(SÐCn *!©mT1Zˆ–í®TÒÆy‘©‚WÉc’'œMyé<öì6áeß0ZÎbäè)c7«ç8bBYöûÓ´O,(ÖK»_=AÂh ÖE–O_¿$6“Œ«ÿR¼˜6W·gðvV¡g‚þÕ.ÁKªžÒa ŒN›©É©(\–ãKF'/—jÂGÁj”Âý[öÊ|¸=Öyn+ãBlypÆÀ‹%çð•èùÕD¼^,ÅØõC<ÌÖ1/ùÖ#HUš’ÞYHµK4dWªòÒÙ7Úé-plKä+ú1^ӆЎè¶DZ˜WÝ>Æ×§, }Õ'û+‹1¤ß¶óJÁž»í¦gê»tu;ë33^jp8Z¨?!«×[çj¥µù·y—ôocƒ{˜³aúÅbgÅ!”4ÁZv/q$›üO¡ùt»>`\T$—Ì Y\O¿A¬p-‡˜È÷lÉÕ –1abD›4Õ/Xß/Ü M,EFób­ˆ>òoº1•"ÊH6ÍÀrO•V×lÐ% À«Ó<¾>v–Ö$4@ b£“J"’öÔ§Ýèô@eÓôò¥¹¿Äá¢ýEŽ·gÊ„¹ý­¹’S7ôJ×uÙ£á’üÛá\þaÈyä¶¡v.3úû=|óx 1_”:ÿêjžD}œ0 ²‡äQ^å=^Fýd{NÏàí¹ßÆÕšü²0“RâL.‹—ŸxíÝ›ây…rß‹"ºá_Óô±ÇôËGBíÕL“ÇØ§N|0¤f`! a<":¥òùÎwúR)n3p9xz¦ Í8‰«1þã[ƒ×õ¦®®þèªÝ5^,?Öž‰áøˆËRGæ&‚¥”ÓÁцí=ü ª’œ,w­5&„ÿŒ‘zek{­Ÿsà礛E2Öû‚xÆÂ¡±§j¥!ë¢xWõdx¹ñ êì0( ¿?öÑŒžˆÒ›ûߘd?•÷3n<|mvNÉ33já±ThLB*Pwv!róò0TÄ@×_Ž]¼›”ñò‘)@í2ø™ÊYm"“Š;S¯Û·÷¤Œäëzl“Ó´–¸ªNÈä'ôé’à×Þ%Y®® È2~B™÷O2!±d&Zl´@òHi‡­Æ%ðÙuŠû>Öç2WÅ”’_•rðŽÍÏ÷õ{¨k2Ÿ-7 ¶:F’\X¶Fÿà°[eT> Ø‹Å÷îÌuÿ ÂåúÜ&ٽ檂H¥'N\Á]éÞY+M4¯ö[GO¶,ÇÜ ý…Á/°o’5•D-(ì<®'úÎÿºo" çg2n!曃Ðê ãÕϟLJ^ ¾€=%-Ý6Æ«@6qç†tôÏ—CÓ!¯ˆ˜q¢¸Ë¿[?Mˆ¤—΢‚hÉ{ ¾”H8’½ég-ÍÕ[Î;•‘«ë£Ë s¤vê­ÞÚ*D,$8@i:F¢ÊçưÈßï²u§0š¼HáˆÑPŸf-óa=½:÷{¼¢<ésâ^{)NúÚ ÕÖZÀyÒØÆŒ}=¾ÕÄvÍöz`•¸6c•ÆçÑÅ 2Ѻ¯ˆÇ o)†p0YbÜ9bßÄ:;êz”ÊŠCv“ø·br÷l¼&‰û,Yyœ§zÓ²[!VßE~ÎW¨ŸGž9Ô"¨LíÞ‡")±CY–¨à½I¾eÆIãQ5×4Ôˆy—Mø¨ê‚e µ!;tOí3žÚôÁ¶wÁ¿ê ¿á}u‹-[QÌJ“PÞ„H˜»EÕSð†»²‘ø«‚åi*ŸžuTš*¡]ËM–Á¼€sO~+»›Ãà îyßL Â..ö©9¨rØ' xÇÎ^Lð40$‹¼õI¯à·MÓéšpÛ³'¢ŸoWêú »Êœ=²ž×¼¨Ï¤¥è5! {Žº?U­B·à .»5Ïôÿ€ñËtõLÅÓ‘ò¹º9ÞW„>6'6ª9O…¿ZWafG+,ŒsßÔÎN×ë­Aê¦æÆiÑÂÉNû*qãhM ¦ÚIRbõéìVªØmHa'áñ‘47³d²èá¯_Y´]±N¬8œùÛ×ýLçªß.gmîbµ†Qñ½«Š>Î8|r³¯ˆ{”ö3\båò3ºFeïLmyE Cù¯cσLÑNªƒ[ øÊ½:B/Âý†¢j×=*%‚îµÅ®Ùdܳ’É$8ô„šÙ"ÿ‰*ýžwäº?òOX²ž/òïmEßôr|ìbdî‹\O{svtÕÅ€çàÃX…)”öC‰v#­f¬4¥Éd:³·ÿ©vÛ9ˆïAÁ'ߟ Þ:Ì iö¡+DÿeÿM=‹Ìntpæ“=ùÃIóÜ´¥±!=<ÿŒN}~¥Àˆ«ÜAÄüce*,­Jí|ÖJàqý}áðpïIÃx³·¡h3Á_®„«£(ûÃåN ÙŠ_n÷o6^.m•Bç2z˜IG+¼Þ/Ή—ê-L}*|éÍ“3ä¾ …~‹ú…ý~ÄPÚ5,— lÛ´P…ÿ8•Òë±\ä`´ª|'rèËíÖC<t˲}Ác×ûÚJ©n-Ù)Ð.eå?&ÿªŠÃhAXYN½×ÀÇžùú“G›ÉJçÞÖ‰ùæ'õ}Ž™/Lö9tØ´­7¡J ñ.ßf­¤Ø‰fÚÓv2öíµÏÛ¬ÚЕ·f¿rÏ]Øž›ƒü:‰L¯jÇÆV>&»zÏE V8$M•`SÂÁFÅxœ”LEh¬dƒA —ïFã¹)”ZP¡ê|ÈM(i”üBÛd(Ξø’ÓÉ,.Ÿ÷\Û”`ßÁÑÇp.G"‚F*f÷Ü6ù,´Ï–ó– }Ø0XkÔ~çÛC¹û¥%÷XQ 뽘fT±¾ë÷B…ɳI nbic¥µ·¢‹Ñµ¬ý‚ðéª „_ÄÒ™ØÓƯìÒTI–%H¾ª@+ÔFp9 Ñ»^=¥T4Ô0²Óð®Æ³Ýàt/§¿ï;SÇìim¯Còz–÷8sçt;»ÿió«; endstream endobj 106 0 obj << /Type /FontDescriptor /FontName /FNCZGX+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/A/C/D/E/F/G/H/I/L/O/P/Q/R/S/T/U/a/b/c/d/e/endash/equal/f/ff/fi/fl/g/h/hyphen/i/j/k/l/m/n/o/one/p/percent/period/q/quotedblright/r/s/slash/t/three/two/u/v/w/x/z) /FontFile 105 0 R >> endobj 107 0 obj << /Length1 904 /Length2 2170 /Length3 0 /Length 2762 /Filter /FlateDecode >> stream xÚ­’y<Ô{ÇG%,¡H~ÉV2 “ìK#»¬³üŒß˜E³ÙEW)¤D·(t³æQ¶¤lÙ—âf+•[‘…Ñ3ê¹÷ötÿ}^¿~ïs>ßóý|Ï9ª»œ\´ÌÈL"hÍdp´0HÌ~ÀÂÁÅÅÀ ÑpUU Hà@L†%î080ãRm4€Ñ߯£»£ W,˜!á,ˆÄ4,ö¬‰ô3:È‚Hà@àtA ¸0IÈ Gf4à¼v‚ 8ƒlÅÉH8! ‚ˆG­²e2ýïa27äÏd±¦ É=€À"™É …d0Žrd îNþ¦~.n괄 ôµòkMúGš@‡háÿ0é!\ȘdÅøYê~÷æ’!.ýç¬-‡@ƒHf ÐßCÛ ÉN‡hlð[d6!èÛ7 (/+sû#šßçù-çD€×𿪮‰¿1æot‡…Þh$ߟ¾?ÝeÅ 1ÉC°X=€ÀbÂá‚͈ă †`˜À0 É`rGAO¢@& ¾6NÁLP„µÐwÂ(Ò_„Aë(ʨ  ‚~@,€‚~@Eû1Ú*ä/ÔÕ`ôLò Aõ£?  :ëœàü€ŸÜoøÏV››3Ã"µô°€–6Vðv´ž6 ¯‡‰þ!‰Ëb η5 ìO„ãÁ0d’ OP3«NÆXå=,Þ+dN©Nu¼Õ0P/?œ&D»ÞyèèÞgžKÅÙÒâ““J¡+ ìä»Q‡{¬?ÄM½øxu’0™Q«àù1Û!üuˆòbüÔ–ºªßç§±Bøþg]…^ù.ÿ»uꪓ†¥ë"OwÁ½y·/ÐÓ÷´Î¦¹%&T¨éìr–¸x´0I7q,T"#}ÃX_| 5Q´FóÉ,ó.Wj)O4÷ܪÏüÛ~So9Ûã¼/爜³ŒLíè¨Q®Ša»,%ÝH?^|Z?WVjÜÎ<ðätŠ])®5[ÍFz)¼É/¡ä|›|-¸Ðhg'ßç]¦^° ñ/ÖÁ>ª,ÁÓ"‰³ý×Ý\¡jÍÕUrÕÆ‡33†³2¦ó¢úzDZ×fÐÎþé2:²e÷Îy޳³ß¦NXRŸ·U „54™¨IÃe§ÅKßuFE^0Iin-ÿl,fF  å¯»¥¹pcqZs³¥jòí¾ì‘Y=„V1·í­°­r𘖘f á®oÉ{SfxIŠ"GÞ„ébla¯sÝ9î«2@½¹rw2Ц:ôÔã_‹^V{Po"TwËVÛÆ›×/äWŒ‡ÈÊTñ“œgvÆ5”mhßÜ3 l›Óq']l÷—*z´ÏmTÒé}ÉÕîõüýa'fÒS̳bõÇü|}‚ s±¡2ŽùƆªÕfË·p¤cÍ"ÖÅž[•ÏÒ<åSÿ[©Ò0­9vÓ>ÿZ•Ø;¸…áÕK‹gnÔ=’Û“q€hsA©%¾1@Ö-×ç€";a›0Àö9Ô7QšúiôœÝuöQsQî)§FVÒ×BÐ9Q0&ŽÂ›NºÕqˆª±ÑÝà°\t’ÛÞðEßf_×r®±ºróÔpôΨ­î’“Š—)D"ëfši¡Ê‚e©ã~dÂ;‡rܦŠÈëćå5ÇÚŒ÷öF̳JÏ4ÎÉKzQ™BZÿj$ß¶Ê»ãý[‘nÌv zÄoW_wÓÓiµ\vÛ\]õŽ?ä 2äMÅüjBVFÓ<*,dXÖzrÜ©|þ’y&¶žøðºXæ¦2Tf“•®XÌùz"ë˜YQÌ™ÎÉÑ8YI±0ð#e|b>hÙ¸gb¤ÌŒb1²}!žW½ °ÞÜ}öͤ[-uºõ`vQS¯ß­ 6^’£É¢n%ý¯˜™¬]`˜wkUmÛÍS!»ï„Ÿ$9ÌYw>E LϘHœú­ÆÒ]g󜑧!ÇV *ŠYi®0Þa ¿L*¾úI¸0LþVˆ¥ ¿s¬‡>Ÿ£âA‹ y 2ýÖ¾i‹ìQã&X^)Çæ±êyÞ™‹ƒoÊdT;¤ý¡7[·ïÚÐÆÙ‚ã§(çÏyÓ÷>l¦Ž+Ö¦DöÕ,‰ÙR3AâKé ä1áAýcýuWJ„óÜM§—–äÐŽ@-ïÚz[aÊŽÁÄO:¥T¨A&Ëüùoñûj¯¥¤·=ßwS1àÖ—)®—KöÌœf®^¬²) ×µ/¢’5ì¼Ñþyl ‘•¿õ¬O—woÝ(´'s, ÜÐàëŠ=Vyv®æ¬qg£WÆ}Öaêeq2ÂÉTÄþ}î}›ÉØD¥ Éþ~LµWt³q𠹓'fÚ÷ê ^‘ΩÚn–¦÷¾m?’¬œxñ½óc’RÙ¸ù6m…¨/†Ñ‘O“%:æq{¦ ˆ`DÜ=­?®Áo‘¼û$E¦§.4ÁzÇ뺪Ž;EMe'*„?Qì$ˆ,(=áΪÏçBâéç&ó—Vqå¢]%S+c ­åÃÌëçÅ›3òa¢F)Q¢åýL†˜hi7{]ËsÞêÇûÝ-ù7Ê”³¸qcØ¡NÛõ>iLfÏæ2Ó³°Í—gNË|àJvÒ»ëG£¯Šy-Ò76­ž^^8½+æÜ¥»Ý:8œÞr rdÌoüÀèa*Ú?ÐÓ»;)ÞËß'ëÍQK\ endstream endobj 108 0 obj << /Type /FontDescriptor /FontName /YSEBLZ+CMSS8 /Flags 4 /FontBBox [-65 -250 1062 761] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 87 /XHeight 444 /CharSet (/a/c/g/h/i/l/p/period/q/r/t/u) /FontFile 107 0 R >> endobj 109 0 obj << /Length1 925 /Length2 2724 /Length3 0 /Length 3326 /Filter /FlateDecode >> stream xÚ­’y8”mƳk,ƒd‹<²„2‹}­ìû¾f«af3Œ±%”}©Èš²K²„$4Šˆ„¯5kê-kdkù¦úÞ×ñ½ï¿ßñüóü®û¼Ïë<®ë±°–ÑDÜ@=ž$ƒ„!UmSkk-$@Âqqm"ˆ"a x T**H@3À¥ž+ªÊË©"!â€6Á7„ˆõÄIm©Ÿ"%@Ó$bÝQxÀE€>Tw°&¸cAR ÐÄ᫟7ü+Ð$‚h‰ÐXwàzbñøÏL†x ô»Œðýë($úSC’ÔR5"š€Ç…hÐ7#P{Ô$ÿPÿ4× ÀáÌP>?íÿ;§)P>X\È5ßHL hˆÿ§ÔüO‹€ûW#C ‡u×Ä{â@ñ»„õ×Ãh ,Éx pþà¯:ˆGÿ3up¿À-´í ´ìOý½Ó_Ç(,ždâû·ñOý/F0uBDl0à„€!Hªúýõçòvºxw‹§> EE$¢B Ô×A%  `ñh0ƒ©™á0¹ ŸÆ…?ø6œZ}+º5ØÌPm²€T*â_I¤/ù¶îÑ;;Îr -úg&Ä%¿É$´›ŸIéÙ[Ö'ÆK^ñ:ßÞ:ò}œ¿mjÐ{’-[%)ß”n8[ãëaä$¦Œ+ÔÅŒ…ý¹Xèû]»º<³j|Y>7pÎ2}slD‡’ün-eže«s8#¦µJ¯_üÞåá’¼žiéê¸mñ²h…¹ä˜—¼øŸ @–DvžÌ–Éò€N¨¸ ÅÎaÄ-ª9§{z"‹5ƒRœ`›—ï•tÇßË»ò¨ðÄÅ'kâÌ™«bÈMk¦“=M=î.¬/õ²<Ïÿ «É8YK ñõ®ÐÜgt2ÏRîešòy'µÑ1~B|{ÔèÚó,,ò¾Óå'}ÛqGT{Àûµ <}ðËýä8ç~Žû{{ ãNZ·üm^Ú¯âUYÑáOU5U§ù˜íé¸yiD¬RµB%erDFÁû/#9.m“È«E¦=2µbÝê6¬Ð\Ž(·®®Wƒç[ŠÏJæ¿ÌT ®ÃõÅé|Í^g,IãDãq&x+Hy™_.&E¶ãŒºògdñBö…šH&òÎYhßUkP2*]òÁñD ŦÞyÙkbâ±Ø{Z¼’‘3©Ý‡òMÑYÏŸ±"Û²Áhi¦cüy£™÷‹ö`Ó×Úôˆ²¸n™CõH†š;ùb±ï÷6Í•vÎÙ0?PKº¨,ÐÿHêm›ûߦ³„.óÎb[¬ÿçH.ÌÝãøãÇãÁªOšEA¹/_¥;ö0dœ$±z7 n2ìbŒ·bNÛ•ê]åÕyšmn&_p†« ÉåE’Aé}¥›Þ¶°“1§?Ífê+e±©Ú{…çêúÛ•i”€"g4¢iXúP+¬»ìÄm‘“üô&Ó³þBl«(£KBß±²ËʤÒÒ%z·MÑZ^¡[ÉB[‡Öê]赤߿Ϋú'nK1[.;ϲ{¦=¨o´%~6¢sIýAß®°x¢ŠUc.ýعr?²šŸÙž¥c.€7Ͷ>­W³ŽR²šC#¹Å;”Ún0ÜÙw9ÂmP1:I®f™X¥aíßx,QŠö‘|ür„h ÆÞêxmªHêíoFé`Ï #Üô„e§~¤mèëP¹d'lÉ6a¸@ž«&”;!MÞj$û8B2ªq¼ûg2>°m±7l‘m½*_WíŸޤ§tÐ ÷Þ~ûªÛÈœ§sÑŠ‚½/ú"àãèù·QáEñþïøñûAl³ÇÊÓO—ônz,ï=ô»á©Ì‚>á̵˜{)ÅÞßÂ6_ä.”"îj¹@ùÀc.ÍÇü>Ô>_íT´‰§¿HåÌÊ;Õ³9#ƒ:Ñ7?C/ø­Ó{m ‡i­¥ì¹“t;ºiDO]ŽÓ&¬úz~Ú=ƒyZ¶#ÿˆ˜b®Û¨öZ ÁÔtØRxh5f ù1‡ƒ¢}ìj^ïð†^c`Ž:óÔnJ|”\*Ï€àÂ8b䘦ä&¯l“¬®Û_l‚¡"$5QÊô¬îÝ[߈ú„S™Rú»Ù\/®‰eÒ!óND6|ˆz]8Ã+q䬭ˆDé˜[Ów#y툘Pü—:9Á^·ÞèœU‹ÏýCì'j.°³Ó+éÉk nZ^GÉÇ»f¤1^yÞ;Jãsb¼bâÉq¾AåQK8.9íhŒ~_q|Ò•SÀ—5oóÇÍGbJËéŸZ§ÒKõ·J…( Áš»éS2¶äJøPj힤v„çN®-Œ!?¿Ó»°tWp¢eA¿qVßX¬Š«]ñe›á*t°*æéëÊôûºôÆÕs¸~?tüÁSa'ºð¹ÁdÏTÆÞqc‹C±ÒZîH;¡4O'|D½i“Ø nuª.†­V­ŠÕûÍ‹cÙ|–ý ßôôL´ÓãÕc¢¯ÑÆ¿¬W»P±>ìÌÏ#§N÷e£’t2†{ú£a’Á“.$>̦š„®sðjãSNì(PÛ¬ J=d=§K{%›mÒWÐU€¶çš¶á®®Ã5Ü(uy®‡|Tn-ÕP 7qHßÙ÷vÞë”Øú”»¨Ë×0¼Xêð»$ïm Lç}™"§ÐÓ1»ø¯£ÜÉÉy’n]R–3OžÝ5£××m1é8’PÌ~“qà‡¼üª+žô9Íq/m¹s±ï/B-rÉQ=¤ÊïêÚ¼f7*Å/ûO⟂åf aP«…ë-¼·às£½„MkÆ×pJâV©n°NÎ¥TUe õªÐÁL5CÛéâ!ø ¦å³W¹4CK`éA’Â$VµLàiô|ðàd¡¥PŠºÇFö8$WÛâ–ú6Œ]«›ý½á¢ýš|È1úÑYccŽ#÷RŠåûN ©ú0I¯YŒ@½Úç,ë·ß^iWï!°j.¤iäV›ªÓ’ –E[%Tn·NÎùÜ¥Ø&êOSO7Ö³dßý²úú>íüT[FàÍíÔ¨õø(“Z·¯>ó¦'ŽWþÌÊù´‡oÖärH‘!ßFɼ±ß´ŽTŽ~T}‹¥YŒ9ÉØap1àÁ¹Ùȵ¦SqPçl»3šák¢cºxÑh;{¿EVevæÒnqËÛ臟.)8!gº*r——rŬ{1'ü]ìFÒæì§+­Žïì0×®²™Æ-Aíù l=o4r îÔÄÙ®p2 Uy“oþÀ­“Ûœ|õ[Ìãy2$_@ËDžou¶¹<)/,i»VNëñ=;ëÎbcëº=y8¨=2d‡~¸¯óþÓëyª¨í8+åKØô5)6k\Qxždò(ÄˉÌÞë6Æ•1¶m•߬Vúá!ûÚöÕPÖ6†Œ¤™2“o}ÝÅ6æŸòÍ„R¤½ c+̧þ§?ª]ñèǰTçyõý¡ïêÒ&Ï^ánP4ʱµuÄ/̉Õ{6, Æœ’™c×åìõc}Ç¿%s¦Meæ ɯÜ;"î¥tùyÝ´— & ¶h*y:Öm|Á-\¥lÓùóÊîMòž|R’_ê06S#‘›Ø-ájp}oh¬šGˆ&vÎ:pÃW—r#±š.ûòFN·ÄbÜŒ¹Dañ°Dª)¥¶Oœ­X5îPM€‹×¼3 s†Ð<rýáÛg™ endstream endobj 110 0 obj << /Type /FontDescriptor /FontName /PCVHBW+CMSSBX10 /Flags 4 /FontBBox [-71 -250 1099 780] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 136 /XHeight 458 /CharSet (/A/C/D/E/F/H/I/L/O/P/Q/S/T/U) /FontFile 109 0 R >> endobj 111 0 obj << /Length1 977 /Length2 2795 /Length3 0 /Length 3418 /Filter /FlateDecode >> stream xÚ­“yÊRCcæb˜…Yk(JŠD–ٕʾSÈÒ"k„ ¥„*[‘ßT¿ç©_Ï¿¿×ýç¾Ïç|ÏùÜs¾*c…é¨. •€¡à(ÀÀƒ1E! B h ŽA¤R q P@ik£}¦ ÂÑ5uTÕtT5!PÀ€êåG#º¹3€} ß“4}2H#âqÀÇpÉœx ÀPñDáôI$Àæû :`ÒAšH€CP(€@Ä3ÐH ¾[2¥¸RÍŸaÓëoɤÑ9¦€}“ Ç"J!ùЂ° rz'ÿS7b’H8ò÷ò?Çô¯™Hòûo •ìÅd€4ÀœJi”?SíÀŸîÌA‘IþS5eàHD¼>Å0”ÊÏ ‘nDd+"ï¸âHtðG¤þ´Á™Ý; 4F_éï­þP­pD ÃÖÏ ¿Ò0êsfD#²€H8‰â$rž¿ß°tCSðT‘¹êŽFÃùA8÷ƒCê@ R YË8…Êà8s \©4È÷¥j¨ý¤ ~‘€0ü‡49šù/âh¿H@XþCœm#p¿ˆ£áÿ! ¿¡€pÿ 9vˆ¿!§ é7ä”"ÿBÎf^¿¡€`ü†Ì_¨‚~?ðßÛ:|˜Ê €qlÃTÔ9ÃCr>US];èñL ¤0~ü œÿÍ®DÎAˆ‡ öSñºg=+" ‚ÑY]7yè’ÉygŸ4„—%ë§_énë£UvÚ‚R…Ã…=ˆ·¶&̽ ¸ªŠUè¶`áÏ…Ûv(ܸ†ù‹Ÿ>éÄÕžÞÚ$D¾91(=îU©Ä’]ñià¹k6‰ÒÌ›¹À]0пö)ØótÇè Aöm›^kv<þ~äòã/Œ©YÔÁœö]'¯-lÿ6(Öô²Çó…@²vTºù¦gÉz«›Q/Ü ¶`- ˜‡!óÐr£ ÔËæ# »±u—™º³3±è¾–ÒÔ•ˆ¬¾®ÆGÍVa7W}_]`T«É0k(-£÷ŒÅ2+|é%9•2Ëž¸ ðJ64<£=äê[RßÑì‘jóDoòd߉!7·xÑ àÒжüÓqÍšP‰ÓÌÍš’>™‡SÙ š{Њ—4ð$wljŦ`–¶ÑÑÒóò89w¦Û‚ñؘ§Eуֺv^ÜC…Í¡\47ÅΆÌ)¼umØlù ÉR¯õ¿c:NaÜ(hÁóH©¹{9±‚ (Î+,züvqö]þ+‚à»»µ!jÜ<@.·½æõ1q º¶ï`óg€|Ò£G¥å8¿×L¶ƒÿ€ç> %Þuäqeë^lG¥^V€¨†NÑÆ°Å±]ÑñÛÚtÖ½¾ˆÍS×= uN6ö\c<Ús4*ã•î×eiåtÞšR‰@‚ÓÕ©G‚¯†¢Óz“‹g}ƒD,[&å—ÉFV©§?0/]qG«d–æÄµÚLϺ†‡\ 韒˓؛{´8"0Šïª™ý%? µ‚×ðý»§èí½¼øS“s¸DIŸm§œ1v(óÛÕÓÃç¶bG†l£½T”üD¨þ÷ “Ù¡áu!ºÕˆ´¢úÔuöíê¯pÓ&ÎÄ̵¤M„rN˜ñ ümy|{Á›‡¯çËÉïñcíù¦³©åÙ¼±Ck\{î ìcH [¥‡v Nr…à .¾©XÍÍß¿ásõÁ#]ù«¾!»3‚Ô&'Ì›œÈÐJòâ\ßÛk Õ•NJÝ{s`ÐÍF»Oƪ]ÚXÊn¹-ÍzÉŸ$Ó%Ï>À[P}*ŽàqÊÉ}ìÆœ)ÛªvÌŠ +‡è S_¬F‚7¼×;ÉnÏïSQžxÓ™Eöäpª(-E<ìEÖSI*iUJœ[[ƒZÚô@Ð×ø¹Ò‚ë9yY²:Õ×íUØzå›!ÖZg:ß8ˈÖɪlizþ„Û®–ë<ÓCAó°G™,.•ªÅzö¹Iäü5…‰Ó.ÇŒå·Òxzt]0Ë—«krÓv3á«Íã¼Ïw(FÌÇòä vj4{.—¤ÔóÕ=P–vÎK§+¤xv² ”(/oU7ïý2†µwë>£Ýß¾Û+a5Viç'­i6Ôw-^_Û9dK !Qùˆ1l:pËý@Le£°‚®OÝÊÁ†E§^Õ¹Z<¶*_,'ÔÌEuI„Œ®µÅÄÑÁœóIŽá탣†·¯‹?’7Máš‘}{Ì\oå™XÿîÏÓÍ—„Z£Ï |¨2ä}½›eëš”%ØWs zcvDŠïe/…Á']©–še§Û(;W–çÁº+öĶ ‘zéÃóñÉçU¬®æo‡OT rO¿ êœP2Ë3ó–~Z³¹êö1»o]{„W¸¦3~·d:3ÿfÎ1»hãk|ëÑxµaîmeé‹ú…V¦”žˆFcí„ß¡_0`'ϽWzÖkùê®á닱gM_pÛíûG>Êp³lòç4wtOÇL¹’$°ûcLù ]lKú¹—C£Šw…!ëè;}e·’k»d_?Çǃúë(ÞÍ»lž5ÐvWx{"&ejtD¶ïÖ·ŒŽþ/Ýû'öïÔùR—¸¸ßâh€ƒYUûá›åû!¶Ë+ÐÏ¡îÙÜŸ:‚«}$ Ðp¦\ZtÏHŒ:«6¬mnË5E<ÙÔa8°Yrÿ.:Ãæ[¿‡²hN}.ÿ–ŠŒ2)p°žÐ½¨·!¦Å>”T“¨†íJô¾|"W>&ÿ¾@z·£q¯¥kÌ»;ø ñ¸¨–¤ñÖ”gQ¬T¥$/:¾NjÞ)yäS–j«Jîý,Kì!y=Oç6éñõJM;G¡ÛùZt¢ïJÝõÞ_°¯b¹4.7\B¹ÿÙü7Ô¸‘µúÃóYÞcä5sÅäªÏ„Ìo/²ÚiÛX^Í–I±í¹NHæfFŽ…œìÄy„CpvqËC š·»½E·ö¨Z>R½¢ÛŠ-;iï<‹Æáœ#$³›‚^æµÉ ½¡¹¾ë!Fu!ÖÈ•íÁ­—•ʺô7éà**ÉÐ~+–¬äØ…Ò™EvÄë°=tt¹Ðç7Â9(£n²;Óp&hå¶m(£¬ŽIíØ>Ü7.`¾¡ðÁÍÊ[Ô‡Š¦žÞ®%[6î}%Vbõ)íÁfA˜™ü‰Õk“ ‡º®«ÌŒ‡‹Ñ -:[`*{cç\5Ëqn‰y×rXÄò8§ð6TUºP=v]5;¤%ä_«QÈͳT0Qã8Òl-"±jû—Þ½rÿ‰d2†áoÈà¿WfÑýÐB’-_jqð™­Ð r£Öš±^^]jÆ iìð׉ÀDËü­öÍÐŽÚ)5sëËÂôhWW€7¶)É…|ìq =ewõSMÇ“ægáÙIçVV\¼rÜú>ž~:³jÉuÚ#4–§­Ý‘ÑåG;'G’–afIKÔÃË•³vªÜ‘¢^‰Ÿ¯ú»ªdÔÜLäs1±º| §£ÆeLn-•‡Œi+øz­–ìÄ,RùÆ¥46s_:®[U𣠵’xð[ýÚq™‚Y™6uÂh)3ž]Ñ~M0à–I-tF÷+ÅÑ×þ.;ù­=ÅñõrèÒ@ì\¤з^uèºâš‹òñ;pŒ ÓÒ–ðQr34rÄ6.ÞbÖÈ….ŒlDíÙî“1ðHšŽ3§^ʧ—=Xh;š®àûª>äeæ}¾â×Jb'Ù&»ÔÛm.V(LîHƒ¼R)K²Í•YÌQÌÿôlĉᛦþñftÀ¥Sû;æ6(MÕ¯ôÞPy×^|ÌæB÷Ò˘–âôë‚YØ€ø’…·dÏ{›²ZM$âêšöñc7lŒ”b»žeˆgïPÜð(GE=÷}QÖ›#qªIrW ôÎ%QÝï9ìÓìñVBÌ¿%Nçíá(ƒD¿A¸ý”˜ù,‰™:¨ÎŠL¨“µm;oñ¸)Ø*€1¾Ï6ɹÝE¼K»ÐƒæÓ•»K¹?yyA•'’›|B³ÕÚ[ZÈî]ðm-V]¶¨óþ™6û[Syðfà[ÉpDµõâhlËÁ Èôyc^·‡F‘æŸÈ^ï$8zo™§$¦Ç}¿z=Ãî¯Z›¦=Y%”S‰ÿúçÅ ¯gèÐj ¢¢¯2…{m¸KÐÁÏ—@Ê«þ4d®Ú endstream endobj 112 0 obj << /Type /FontDescriptor /FontName /HWNESA+CMSSI10 /Flags 4 /FontBBox [-97 -250 1077 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle -12 /StemV 80 /XHeight 444 /CharSet (/A/C/D/M/N/O/a/c/d/h/i/l/m/p/t/u/y) /FontFile 111 0 R >> endobj 113 0 obj << /Length1 755 /Length2 716 /Length3 0 /Length 1241 /Filter /FlateDecode >> stream xÚ­’kPW†½T(‹Z/ÅÈm<ˆHvÁo„ "á­"b»fO’…ÍnÜlh"‚X±jĶ^* ¥"¢[;"mEж´•R£C´xCj[Ð:(vA§ø·³ö;ï{¾óœ÷;BŸxU œ`ÖÂH†æ1 ±ª$ ˜E„B qŽdèÅ8C&“a@nÒLPih*‘"B ` –Ôê80K1{Ð$r=dI5NƒXœÓA=ßCS@ŨIÈYD@NQ qp‡$B#dÓ!!B0 ¤šk¡–¤ñ Q4­a€ôù2a2¼”Ò!kä¡À,r6à †¦,€€D¬dø³ Oò@ oi¢(%®l?”Òk:®')Ë £7˜8È‚X†€,=ܺ>‡‹…iÒW£9œ"ÕrZKAˆÍ¡Á’çiŒ$͈'9µhpʇÖ!M Gáã/ˆ^•´ÂÿÅ\‡Äxœ¤¹eè+÷P½ªù”XÒ ’QŠb¼‘ÿ^þ¥ ;,‚V3IkA$à,‹[þñ•d`€¤ hÐÌ‹E4Ãñ[M&Ð0,28Ö` Æ|T¤1ŸŠnPD^¿Mx8cÎ ’@YßÃB€T*ÉüQmbYHsC†Ïäe­!ù!4C5boeÔórR÷þèXVÄá¦ãcÄ.*îÙϯ´eD¦JR˜à£åJ:‹Û+ójiÍS—¨çí™ÌžrÏUî\ÓûÅäòJëç¥+ó³%Õ¢+*e³u︿ÎèÚuïî?¸¥Ý3´š½y`»o€½×wcÃØB¢#|Õás­®“æ$~> endobj 115 0 obj << /Length1 751 /Length2 733 /Length3 0 /Length 1257 /Filter /FlateDecode >> stream xÚSU ÖuLÉOJuËÏ+Ñ5Ô3´Rpö Ž4S0Ô3àRUu.JM,ÉÌÏsI,IµR0´´4Tp,MW04U00·22´26áRUpÎ/¨,ÊLÏ(QÐpÖ)2WpÌM-ÊLNÌSðM,ÉHÍš‘œ˜£œŸœ™ZR©§à˜“£ÒQ¬”ZœZT–š¢Çeh¨’™\¢”šž™Ç¥rg^Z¾‚9D8¥´&U–ZT t”‚Бš @'¦äçåT*¤¤¦qéûåíJº„ŽB7Ü­4'Ç/1d<(0¤s3s*¡ òs JKR‹|óSR‹òЕ†§BÜæ›š’Yš‹.ëY’˜“™ì˜—ž“ª kh¢g`l ‘È,vˬHM È,IÎPHKÌ)N‹§æ¥ ;z`‡è»‡ú‡‡xkCb,˜™WRYª`€P æ"øÀ0*ʬPˆ6Ð300*B+Í.×¼äü”̼t#S3…Ä¢¢ÄJ. QF¦¦ Õ† ™y)© ©@ëëåå—µ(C¦V!-¿ˆ ©Æ ú‰ÅÀÊ,ÎÆIH’ Ó3NNùÕº& º–& †ÆF– æfµ(ê’K‹ŠRóJÀ©"0~Z&0SS+R“¹n^ËO¶nÉš¾­meëâ «Xõ9žXûò&ûˆu³3SjƒMç*¦—,yµðÑÖ¾ÃâÙ%¼’­§ m‘ìõë‰û²HxÍÖ®Ë"&4˜î×»,^ÙÜ5÷Ÿ¶ú+ÏÃ…a3æ´>’¶Ú_ôxV§²ÎÍ/Êõ'x楼pŠZ¼ïû½kÜBZA“´”¤Ìo®`¿Ë(&^y÷ùÕ?ÒŠœÍó¢ƒîoOˆ­^~Æôšç·×©ÒÍå&»x,o÷:e©„Ø} š§;y¢êVÑ’¦Œ¾ ®‡Tô½~ùxÌÃ4±ülÊôWg%ä?.‰’òqp>$oWö>ÚhâJÇ;õûǺ' D¨G2O^ý»kÉÅ$[ñĬ÷e C6¨W¿P,Ô~¾Ù¸õù¸~ゟ;þͳùü€¡ºg¾îd•«xÔÞŸóæMPÄ‘:o£àþ)]ØŠ^õ¤U‹j”n:uÄ{2wG×Ù¹Þ¡iªN…Ê“Ún艜Zý\=kãÌGNs|¬« d |ý˜Óິ¡íâó ë‚_l{Ý·®^Ñx¥BY÷Zìž‹¯gqxœT÷ÝþDþ³”5oî\kÈù;YûÞC¦s”¾(ÏTòü£TüyNäºïÑ AU+‹Ke ûª½—Úµ=\qºŸ_PòÜ•z2ÖZù[ƒN5û§8?Hê½y.ó¥î‚;Ö¬7süÅU/¨Öû£Á.ÃêÌ™{'¿lî>W×¶`OO<3à ‘Ê¥õwlKUßQ_Y~X*äA@N®ñë“L-RÛw\>±ö©e%ëû=;³žl­5è=Ï_²Ò°üÓÝÏiNK,LnG ÙürÐó^˜·åPÕ'™i“õX·Ïùhêÿ--ãX€Í²¿ +¥z3±Zß endstream endobj 116 0 obj << /Type /FontDescriptor /FontName /GUOWTK+CMSY6 /Flags 4 /FontBBox [-4 -948 1329 786] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 93 /XHeight 431 /CharSet (/asteriskmath) /FontFile 115 0 R >> endobj 117 0 obj << /Length1 1259 /Length2 8406 /Length3 0 /Length 9162 /Filter /FlateDecode >> stream xÚ­—eXÍ–pq·àÎÁÝÝÝ5¸ûî.ÁàÁ-¸Kpw ,¸»Ûpß™¹Éwçï÷tÿèUµkתÝU}žCIª¢Æ(jî` ”r°wedebåˆ+ªË²²X™XXÄ()Å&® { W €•—— 4}x¿ù8¹øX¹(âŽ^Î K+W8í¿‚¸¢v@g™‰=@ÑÄÕ h÷žÃÌÄ æ`ºz1DmmªÿáPºÝæL¬¬s™+Àh ²G`þ—“¬½…€û¿›ÍÝÿ·Ëèìò. ùG“ð.iî`oë0Z 0+9¼Ï|wùÿ¡õŸÉ¥Ülm•Lìþ•þŸJýŸ~;­×ÿD8Ø9º¹Šæ@gûÿ Õþ·œ"Ðäf÷Ÿ½²®&¶ 3Q{K[ €‘•ƒ‰…ã¿ÛA.R O ¹ ÈÕÌ `abëü§hoþŸ&ïõûǃYC壂Ž(ýÿ¼Ú:UL@ö®ê^Ž@ËŸè˜õ¿Éä Ðcy¯2ë{àûõ¿Oÿ1™¤½™ƒ9ÈÞÀÆÉ0qv6ñBxßDïÄ ða€ìÍž ç»13“½ƒëûÀ{eüÎÿz¯\Üfñ5ýCÜ,f©?Ä `–þC<f¥?Ä `Vþ7ñ°˜Uÿ;€Yíq¾×áq˜5ÿMïƒÙä½ç4û7qp¼“ƒÝŸ~V–w=ó¿ðÝøßÉÂâ¾+Y€þœÿB7ç¿F¿[Zþ…ïÓYý…ïÖ ¿ð]Ôæ/|¯…í_ø.n÷—È»¦ý_ø.æð¾›8þYå{=߆Ã_ëb}7sú ßÍþòf}7sù ߸þYæûÔ®Ïö.îö¾‹»ÿU£÷pÏðÿî`11OFV.v#Û{Úw ./¯ßÿiææì ´wýç3ñ~þ—-@ïgôš!,-8˜ñ‡X§4†•úKæO•AÓº¦‡Œu†Ö§ñ3­ñ£Ï97Mª‰/?„~°•£%ŸÈW2›[pnà5Šúú¨1‡þü0ˆŒI›—®{fv¤o1”3Ѓj—¹·D²íØD¶L~³îÞ ]¥pÀÊý ï$ ªtqáåÊß&`|c 1Õœ|'Á §M! ¨¹¿?úx,íï°T8„£Ÿ~ƒñº„׳:có 97:Gr>Mðž…ÖÓbs5ÆdI;›Wæ­º~•”iØ}A%í§2wq±S/‘õŒ54÷gÒc.qØìãárõz&ƒ‘ ©¹ŠÁkæú„2¨ür 0Ç›a¬™/£øû³û,Ôã|Ÿç,JöGPœÌ'5êØç8‚\cçòF…EFI -ñ胰s¾²<œëcß4Œa ÈÃ&ŸÂ¨'‰1·jtüXÊ‚’RLõî›áî{ CüÀ¤1áÔ/ßÃ$¸…£±Tu‘-‹'Þlˆs¼PÒ‚ŒM1£ÌÝ›ñÂèº{,âìÝ…˜)Ç7»LHÖ2ñGX¾Q'»¤1TW|xž/´hz² ‚f‘TD^èGðæq½?ö]Ñ‘tw9·® {$Π€qÒÐá@ApÚëf.•ÿDèã S ÞÖ.¦úªz­NØf®Z—=¯Èn‡ˆ÷5.sºœª2øÍ4¨òá›94¿A„¼¯ iÃå0¥ú&â–ãñÔOéqÃÏ_Pײ‘Ã$}+ª5P)» Ûæ46 ìY?±©NªTÿðC0¿Ê "F8igòùÞ ûJô.‹;m`#²a~ÁP‰‘^iä‘|¬Ö I_|(‘‚sª, Úèî²w(<¿Ô¶ôÂAç·MéC¦Â«lie$£"«»2ÂVŒÄw^‹êâx+yÌi’‚”Ðc àLíNÈèK(º‘p;Ï'žø¯ƒ*èçˤô´X±ÑcÕ¯U³søÐâ3^ëeiÜôÄÕ‡ÅçÍùKxþ¼ìªgd‰,±Å`À%´D>Ž»ùKxÔú2±ÇÑPé­|RÑSA{äÊ07pë»496ãÕÃBÇžß|8ÂÚP<²™T’OHïDDÉC£Tós!òµ8?bÔ‰µYÝ2½Ýƒ’©H–|Ù€ =E&H¯ë‘û[XÚR×ÕibÛVÿçØ€Oü”àŠâùj‹x5òÞá‘QÉÈ·1HˆUŽC¼8ö9>|cæ+߯^Æù>u•Çûo‰íˆ/ÀjØvêÆG6ÛíY]ú¹a\[º€ÇWk úÜ@66AR`»ù¯õjš@(¸E”•Q%^*ç®òbŽÂçh§æZÎ8<§Pj›Ze|ä΀Ïf²|¦oÕ~dT¿b£ÍÏëod+ÌÇÔ]%ä—BÊ/ÑY˜­Òu=Ö9…½„~e®AU[¾ äa$è*‚:An£ÿrµs¸c£P»%øIë+ótxáôsÑÌYÙÞŽ ÔÇ.šo,‰C»‰ø±MÕö(A%x/ ÑÓ×ÞV#XK1 Ÿ+Q¡ß“;´\áš!H$VeœËD¯<åÄJ˜óQ=H<•Á˜œ¿ãÿ!\ʃTõa@Û¤Ø55ÇC|ì§ãÑÖÞXajH³~*HÈm¸ q›…ØR;Iõ%CÕìNª)$ŒÖA‘.0Ä’ƒŽE¿ïº³RͳÇh*@òjØåòë¦8Ü8Ïxi\å¼rº¯ÿ7A̵c©‘ö#hÜÒêü_ütžû•01î«Þ$½Ê$vâ›ÇB_P3yÍ_ú?Í ‡`ÓÒY`“øw £|@4¸%ßazdøÛ¯ÊZv–bú;lМCS¦¼jPç9y|‰Ú¶‚R?@š…ÈýÀì\Àø Ëásb±Þ±`û)>=\ÁD“–·•šŸ=£sC¹¹:ïg¶B*ºÍ×NAYïŒe¼G7­ª›Ù.¤áǧänhv…Ëa“6÷B[ÄH\ñ ‹Uþ‚È]eÛá«%èž™'i²ûÁ•šÄÝæ}ÛyðïååWð×µýÁ·aòjb}Xô=r7K¶IG¬ °‚f¤i²HÂé³åÉ(^¿­ø3ŽCy™{ºŸ^úq—b@*Wž^jspp¨øk¥Ðþâµ21ˆ¡”Öôdƒ3 UoA°æéðíý®˜jTV«CúGYq(™Ì›—å>OÝl}ÊÙËr¡Ü7ư*Þóuy¹†@À@1ü´9ƒBüä}Û/õ[•'÷‡ä Èš`åŠ(à­yDät©NCš'&>M q!SWžP}íÎ _š¿8ÚŽ lˆkÁj]»¸u›€˜Hüù¤+Yð—@ý 6aê§É°9ÆRZe¾U²%Óø§íÄ 3Ž ›ú½ ç²›ê¢ÊܽF—@M¨oÎ]óÊ `³<5œÃö&ž,=›Ë'à'¿YÕ¤ÅyT˜¬rûbtynxýÆ®-¸?¯5Íîཌ~í€/q™Tà3¢±Í Ü„³•×q®ý螢n ð.¿‘¯5Øã0%ÈÞ£½EýD5²›Ð¡¦fmOCí?˜½ÉW ½ƒ¢öâðv»Ã¢Ÿ¤R !ºJ08çë¨'áãL¤A¶JÙãÌ'46ë>.œ´~õ/UöVƒÛÔ}äú‚¥8ŽR(’`"‘ª)mìΓ["€øµ e-U~_T™ÎWÙQIã¤,â| )]MŽ}âoùyv(²¸תW(éP'ú…;¡WS„L å§ìÓiyâNºKÆÄA¡ %5O9Uí²B·KÏg˳ςÍÄ…c³‡ŠÑ„ _&µ^ÎSUŠÌ»ŠÙ‘Í\õß~ú=öÖ{¤ÀF®>:4­îþ FÅ×!Þ°Í×uµ‚v0jz’“¨]ÝÀ?;4µ•¢´öExÔõå ;Þ8ï]ò]‚Ó¤ M§\¹<ЋKáõßür×g€|‹ÌT¿±&jdò N†De»ú«œ[‡d¦I<hC ¸ê·‹%ׄ{χ²Êí¿O´XÅ©¹¸fó½ùoÔ $ÒhåÍ„}‰b;äz6¬ÿ¦ö‚vD¿Ø¹+oáÔb4»dç¡ÔÔ7XU.\ªë²(Þ6}þK¬ ϤÇú1 Ö¶í"EWÙ}[4†²^¸Õ©‡£Å¼SnàTˆ˜Õ3H¨ÕzБ34Ñ¿…þĤ17öUD¸þ°a±Æ”„|……ÏEƒíSž'r’ó1—‡^įüǩĿó:ìnDÍ,›;Uù¼iOÝY¸ êÀKâöw>íÖL±%Ùš5öèMèÙM³:ì!¡¢¶6Jz³6CHÈúŠSZÃO<°ß¿Ë“øF“§Eñ›.ë¶Ì»v˜*ÏD,S˜ÐÕçóU+|m”Zí¬‚1µRÞ^u¹·*è[ÎÐ\‹¦èz”Ãþ]× æ./9뙀h:ßöŒ)×—Ó8¶6–xb©xÇ âGâŸÃT*ÔãD›Â®Â’>½¸Êƒá»T(á ¯Q$ ˆúÑmŸÜÈ1Bݾd@ÿLÁ>?™þÒQ{—Æ {—›-€íò˜óè—Õ Vàœ¼×çÑwgO1Ä» ñì"1aýðð%ÍÆÂ½þ&*VE·ô7új+ÄëSeöæ%2åâ/ãÀ§xMZ AØÏ3òƒé¯ÑÚ§–âElGk~j‚h©`¯µòsò-r2*:A·\<.À_`5ŸÉ……«z9b–1äȬ‰”›M¹0Ø·ŸXNž hç>Ž{F˜ê!Ÿ& —ƒøh­£Q–Ù ä ªí–0Ë´£llXkF‡°3JïÝ~VÀÜù´Øñ/½‡bCÒç"w=GÉõ˜S3zd ²—8-Д¯ƒ/nêîJÆG'aé%‡šL%ˆ.¶œ¿v ^:ô9|n§+/Ê¿üØÔ¼"0_âTÌÈG=0½$W­7ØC¥OžÌªm7ßý8w¤*m™ËqMÿÜÈ籫°üMS½“©£tU)‚½6-‰§:½£h°ï¼¢ývÄÆ5k¼“û%ÃçÒÐÖqLÁ¦‘½(¢0Av…íÒ0ëŽéµosÝݧÖü2–>bp½‡$¥ì—hºF#º¡ü0ò7–™Ñ¡ÊQ”Cb-XIpgÓ—†™oPXÎ8ÉŸSª]â™§5 ™Q}Ã,àý_n{»9¬•µ—Û#ŒøX¹Y-_‰Ðó8%%tÚŸcÁ}>$?nÒzpÓ —þÊó;¤»‘Õ¿€D†SªH7ʧqcxú}©|ÄôºÒƯK8½µý2,'&Š“QùúV?È~Hý 7 71¡ª>ìKz1$û>*ÃG ÷®/ô$ãŽJ>·`…P<·v‹s\ÒñüY›ô¶¤-NÓ“ÄA4ÀìeF'u+Á,w°7ÀÎí¶ÀÇpÀû÷„“=»¦áhc³?hm¶–ДۊdéI–™Œ¬î8ÀSIJ¯<9^§gˆ…âFtÑKгhºTMû„µO°8À±lŒM\íýd¥j!ªÏ$IÕ÷"@^.AÉCkaÅìðbGÙA‡žOmºÉw¾èeNNº<&$0w¡CËÖÜcËEľøØO$Isœ}æS=šÇµî­­^Ìú¹Åž.SªK¥O˹R«i'Ž Ú]VmkýB2N6ÝÛ}Ö7Öº¾½$ëmH#\ß-xä˜'«Îõ!ZTkÙ  „r0fj9”…ÇÉ@{ÄC!c¨7– ¢ˆb¥Ú¡µ C1çM1ÑXâ:Í, …Ðî–Ès˜É·Ðý ñµ]bûÅÇI) b>7Åq!>bºöníg±çŸCȦ64&RâOûÞ°Í7ñûF¬Ãê1ÚGx¦ v¹?újoK÷¢ Ê‘Ë+wØâªÖïB’WóÛŠ¾ÖwkûúJ“±ÝÞš7ëšî3¢p5øf õw‰ø³’ôàoÇ`SŒƒF`ÌÀÉ6~á3 `Eï¨)êÇ2•xá|ø(™cªÌ^8†TYz2}úáºyûé÷^‰5K2Ißß^ä§Q 0k£»fÇÛèÑ,¥£ƒº½d;B*ñRäi¯v¿š< ࣫ÿµALr~ÍÂDý´â”á,‘‰ÿ€GÃ>Z}*Ý5Ô2¾ õPP#$/à’ÑgWÔùm§%¬hðºl(bÒ1bº?¹ŸÐRÍÏÙ1¿J]€¼²€yŸî.O(F$ÈIŠ3|·ìÛñ'¢aÐ1T8I† …†—[¼ýÉ>îÈ›B/¥@‰Ué\ú«—Ñ^¯ú.-ÝîŽ'ÂAðjè3·9¬zvTš’ jø{‰rÃ%ø–’S}†nÜf‡”Þ£ QïÜM3ƒ}Ï- ¾·~xÕ/üâXhâ.ÜÉΜHZª È3X«ž…ZìÁ¸¾H†TäŽr Á›aÄO:Øæõ‡!*X€9¨)‘¬*aǵÞÈY„9·âTaÖ¤œ'(*47b÷"¡MyÇ!OýÞXÙá;·Î‡ 5B&M²`¬uW¿†E¿žsí_ŽŸ´÷jDkãzïw"áâ&‡cölFÃTcGóŽI/´$ÕàKÞ,3»Ì:bžî¡ÇPêB¨r~‹Ô?I˜½ŒmëÃsAÒöÛavH_œdÊÕADàÂñÍÃ?ôÁ[:ö´:øÌÚØ™0-\xŒ‰Y èºn­ui?xžQš*cá¦eDswÓ”#@êfÔøQ§ŠcÁÛÏ«ðÀø§ÁÖd B»¥ŠÛK¬îD_Ð+=”ëèßî, Ì[œs˜¬×}´«n8ä2ðej¼™ß3( %‰­þ@÷ *l% %æ+Àl9É-/¬µ5]ðwQÂÌ¡MÝ×WŠtÓcp½ÜäLe ÎΉžõ-®så †œ òŒgB»x¶t®É¦³o‹ÓÅuvaw UBpï§"±D,Vub£ì‡ xY¦¨õ:DÙðµ÷šZbc̶ ®ëÜ‘‹—[«7ákŸ÷ò\Ö°ö§hù`৉0­#øÃ‹'Lé@:˜#aÀ†ì’Q²ßÁ›\ô¤…ÌíV,,¾U‡fs¸?*H‰14#ÈpOZ+kï¥kîg¾8AÈ…VÄËwtÌ𸠳ÞRÅC~¾ïDÏ2Œ><%WP[‚³Tƒ[ÉFá ‹áGÈGØ­Ê\‡+×!-W¸aòUÚ65Y(,p·ñûwï8<*sÎÀ¿1Θ³¦ÈKLêr?j1ÖM^»mlàÓ¼âƒãÏÙ6ùý Åv¶±âauí`¨€!om{4%àøIrw—´e|å1µËðÁÆZÏ]FU¢ƒ8œ(*‡_íDØU¯ÀÌLÅ2Šó«sd àÓSÞ‚ùüdê¿É.8¦¨›_€³„™_{@|À åýtSÒe°kЪ¾£ð¡œ™i䉅·ªi£ë3ïóï0TU5¦RÐU™òã×­D`—° Ö³ÐwÃS—•*ÏñkG˜—õ-lÝL_6 EYÞçd÷a0(éCº gª‹·n½ˆ‘"Š<ˆbìûq,(ÉgGÏÂ_P,Zm2j¬øÁ!çK¹ã)ýV¯*³CêÂoûKÄKUùŠ'iáÏ™š¬­p…º®Ó—6eîÒ9›C½& ɘˆÏÉgZŒYr»‡&90gígcþNæÝgyK3gòeaœ—2O~þ,~Žª»¹£øZмrÇ—ÌZâ†xûjýM]e‹EŽ$ÝvÓ[^­¥nŠÎKàð…´.”)}m±G•_¾s„C±@jumÃæ#P¨oߤ² ²[ªÓòaV¨>g3' 5`'«ŸMÉ:ìzÿþzú°•ÝW†*ÈGB/ÃÔ‘,iÁæö£§—aÞÝR×—ªÝñ–îuœ+¦¦mdj–`GÚèÞÈ p”ßH¯îÝ(z`êÏ‘:v¬R<Š®…ÀßÈ4zT›/‹ã¯?ÄñB˜æjßco´Ì } ˜ãêòÓ ¼«ÖïÀ^ÀBH'ŸÛWq m~uç½¼c¤ #[ÈE–¸<@Bü,=;ˆú4M©"(™Ñ?(ÍhIʱ`ˆøšXRŒ/^Ø}þdG"mþvRÓC• À–’ÍU±qœ.ÆØì3°ÝùXË×9#º‚ßèN¥–£o¤r³©<ñŽ™{¤+_ñb—5oE];m­ç|ç³XŒ€º?¬ÜÙu{c|ÿ­Ñ)íÄf0ŒÆ¦¯–*-C:Õ­QvñÃhú´;mÈý¦§ˆZœÊ#ºeb=ÆË×$¬‹µ°ÇÒÉñL.›RºXä›X-oEræäÎÞøãóI?ðÍ’.Ž•NoŒÏ¤NAŠïÇÎ|ªó¯÷84¦h]ÛÊ`t:PÌk†o×[ÿ(±{iÒ\ßvBgÞÌ"ßmŽú©eŒC+pùª;ðZP|0•¼ƾ2¸¾Æ§r‹RzûªL°ÕÕ“?=®µ,PKT/YY5"(%<&Åcµ”£Á‹7€êùð¦ÖÓp‚ÁÁTˆsÃÉ ù¸õ}†HØïžjfäèŽÃĨyÛ1¶;‘¬ÚøTÓ_±öYÄù;ZÚï»¶Ö×@Yis9ÔÖ8ÇhšäoŽ0ž“ÎLºváçâ¨ýš(¹pàª)aÙÅÒÕTD×oÇ { l&K´ãI“Õ€e§ømA“Ì`³p5Išå¶Ö\žI²t¤g%ßDhÑÿ´äv=øCèpÖå#Ùty“ßš˜/ôÚä@‹iþ¸$[‰–ˆF W 9Yƒß’ÆC(œ´§Æ‡‚„‚‰ß¶ÂGFÔ¦¤]úïû}³]¦l•—´S[¤“›‘Ûsë–î´,³¡{Îפ´î®‚=X©ƒ(»–w{!íž–äBÌ”¹‡Æqrø‘ø¬à”‘ЉÅ5bÀÍœQõ¢* sßœ+øa:b2°Im=ˆTZ¾¸>•6%BOÈ5BÂÁýMal,i†; ¦rìgS~ηîx ´±ûH`›!0üƒBË ç¤îô‡%Ä>Çqvð0ûamÃÔAI‰e;>‰O:l¯Õ¦M=Ñ;?ø»†åÚWï[«;‡Eð5†ÍCòNùâ›p̱óH ,[õŒ£½†§édŸ†ŒØ"§¡rý€<„ä-¥ÍÅy5ëS`qgnæUëÍÅ'T)Å^íû·ž.\^5m]xš_‹yÛs^jóõè䂸HJº]®:äJmW‹yV ÎH¹¾[c1ž¶‡rMTºOQö þÐ?#Û½°%" tZœôÁ9k~F“wuB®Â§L/éeÖÅØÝ´žiÀË õdl‹ Ü2,¯Ù›Ž½Àmb忦©¤ ó9ÉÉ?’+g–ÛI gÊ »‡‹&«kyƳa¸,E_ÇX<«ÐîmŸª=ÈÌá%œÑ*;%•Ï÷ªáuŸ<²ÿ(Æá‚·£[¦Æ¿øØüZ)H¬ü†¼Ö€˜°Æ¤„߬ûÜÐ9…O÷m¶Ï‡Í,ß¶‰NüIåÙmA]<³~}'(ñaúøÂéú ùAÙ€öѤt÷¶‰Â­¦ XæG{ƒÐÚN€â±±7ˆ6‡ÁEE„¸Êœê9ˆÙÈʆR•)æÒ-¹§Ì×îà«xR§ˆ\ïêb±\«x<õ˜Æ´ØÁÞè Ö gç©¿U¥Ø"“^ž ^±#b9‡Ñ<ÜLG ó»û5mdÔÁio#Ýb™sáïm–¸l­ŒæÈ–]—î*Zœ<¥(`‰¡½É 9ÿà‰D%ÍóêµÇÚ­<¦ ©kˆÜG»ì¥ŸÈеª5¡çF¹£Lf“T[NÍZL$ê‘å1TÕ ÈÛ¼º¤í£ñ2F‚ ô³Í}éä'½Rö«¼ÓéyU-’Óšž Ä@Tßå< ÿÝ„ó™­HõtœArÏ#–¯ÒOàÑÝÉsæ\Cz˜k›ÙžMMý)`ÁW©!¤ P÷{IÓy\{(šïw{ó¯I߃ÁÔ:;ŒVèA°#«ö¹°û‰ËpÇá©ᶉ@œOݶ³ÆN Óµ4Àä6ì"=G¬‘Ïöi%0˜°7ÐNóK~±Øókÿ•Ïó¾@¨î$´Gt6¸î|]äÝË:¶ÁüÁ‘mùPr¾ÿ [®ù[ G-XwuBbÉú¯åîÛ7¸h8­ ¸<~„gݘ¬‰¬/‘x«þ’z³Ðû%BoP! 2–A”½6=ù*_ùu–s»W„69)2_á$p¨ïáЪ¢‰n°¼Ä=šîF.º&{|‹öŠr7<ßËÕ»\§«È™ÕÖÕHé/;ª®Ëv™„¼Xåú>Ä …–l4.zJÒà×¥ΟB›™é/ªhÇÅÔ:ï]øƒBKH8y æÑ+¾îŠVu*RVLx~;$(³ “lec¤ Þ7á'º÷¼NžµòÑz_ɪÎÚ7ÇyÅ{ëc߯^½žåb0Þ–iãžàbt"—t˜Ú(Û[qêôKyéèìx°)QôM u>fo²É—|7úFÔB IX,š ÿѽë~ endstream endobj 118 0 obj << /Type /FontDescriptor /FontName /UPQLYA+CMTI10 /Flags 4 /FontBBox [-163 -250 1146 969] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/C/F/G/N/O/R/S/U/V/a/c/comma/d/e/ff/fi/four/g/h/i/k/l/m/n/o/p/period/q/r/s/t/two/u/v/x) /FontFile 117 0 R >> endobj 119 0 obj << /Length1 1121 /Length2 5936 /Length3 0 /Length 6635 /Filter /FlateDecode >> stream xÚ­“g8Ük·Æ½÷^†0Á½‹ÞEïÝÌ0Ú£÷$j¢‹NˆÞÙˆ JôÞ-z¢ÇÞû¼;9ûýz®ùòÿ­µž{Ý×Zkؘ5u¸¤!k¨ÂÉæ‹dÕu•…`n\66YW¨Žp–³BBE`0@ÚÝð‚Ey„DùyqÙ²oW¸­À.Ëñg‘@Ú ê ·±r¨[!í N÷6VŽ„ ŠôæH;:´ÿ|áІºA]= n\0Û ÖP[¸3.èOCÊÎ0@èï0ÄÝå?)¨«Û½)û½IÀ½EÂÙÑÂpAˆû^Ð{'ÿ¦þ-®àîè¨aåô§üŸCú¯´•ÜÑû N.îH¨+@º:ÿ»Ôú·7u(îîôï¬2ÒÊn#ílëpù¹yøÿŽÃÝà^Pˆ&ic€Y9ºAÿŠC!ÿvr?¼¿|€ÔŒUeõžü½Ô¿ršVpg¤®· Àó«ø/ÿâû¹Â½&<Ü<<àûÂûß¾ÌþÕKÞÙ;ÛxV®®VÞ¸<÷R¼_0î z ^÷†AÜÎäýÀý`ü0„+îŸ;€¤ÿ ýMÂÜ?$€‘¤þ‹î+5þ!á{½è~Ù «_$ÙüC`òÞ÷€þÂ{‚Á~Ëò@¶¿!?d÷Þw…ÿ†÷–Ãû¾N¿)ßK#~C^Èåä¼§ûóDürÆwÿü¹;âþ†þ:•_ï=¸þ†÷Ü~Ã{¡ß‹ï'áþÞ;ôø…¼÷£ðú ÿû|dd^¾\|.^û}‚ExB<þÿ§ÐÆÝÕêŒüëÿy„ÿaüþn¡P/¨ îÜ4ÂF,Ì>¥!¼8@>´ƒÃ>­(lð㋺41îÝE1ÒIׯ](ã1É {x)qò¾j9X¦iöûì«z1Kò™€œ#7]ëÐf×Ô­7»ç‘SæËÍ9¦5—Æ'‡óO—<>bTªmƒ…òhö_¡ÏLßœ8-Ïá¥B®'ãše·¨%Aõ·–â®öùˆ¹w½T¦é§d·s4ŸÆ¾¤‰De«?˜~d¢X™tÈ^Ümõåkj—ß©¶æƒ“ù™ÉúÿjîÌx„SœÉùS€#c÷‰3JÉÝÉ!B”íéú¥¾:=³IÇæF†?ú¼Yõ>YßÀæ|Ë°Š“BÖˆÀ‚ån }n­_˜”q®ÎðbÙõ™>™X³É˜Ül}¦ŸÔô ¹ ’Lç!KI1Î3Zd¤{ÖŽÙÂðiÒ$ՇŮÈoë+šiÕXmJdËùëI˜šTô‰ûÄ6¸ñ­Â–&s‚fôÀ5 þBSžÍ-q«R ÍöäÑcÃÖLßuI<“ü,™z|¬WQ¢HçýÚàÁUÇ„ŸªcïǦËF'ô¶•FVSÕY%ë)RƵF›7"Õ]¶nWh¸iDнøÉ—ŒÞÝQp|†ÝáÊ%˜j¥š•¬Ü©*v¤<Õµå/Àùæ(ï‡é‚¯÷Ò1¾…oY®HHÁˆ ;O&ømÒã£à˜HŽÉ]®GùjíÆœí6®ï ±Ï’]PU?ÉRÊ×3|Á(g´´ÊZÆé(8âl|L(r»d+¹8{B%®hÊßV{f-nžôL¹]=dÐÝfˆŸÁrÄMŽXå÷c9Þìy cí@hlݨ+1Pï>“î°¢Û÷Ú‡uíº $ÆÁ!6ðŒð» ×Ü–w-|òi[¤@%k•‚ünvùeMDïÙ7Ô1†Ñcœ«Ù¯+O`¢×dWD¾ >Ò®ó‰^t:ºª“­ :9—wj˜ISúøÚÄ3_«ÝT°»K‰o½IW"/xw® 芷M7LM$ æi³šúÑÂ71}YLdVÝÇLž‘ß ã4‘lºeœbl3(ö%àÜçM[©t#ÈÕdËg#×ßÕµÉ ¸²‚+Ží•N³KÅ m½Ž_¶ÜjÐÿ‰eŒàW?tè=&N;¥«Q!‚;hûj^÷±£ŠÂO–ß™¼È¹Lè15ó(t"ljÐfôI±´òØO-" *sîÚ·ÎjlATL^™'¤§o‡ÀfúÄQÑK%*(ŠXkâ ù•²yRŽá<(<];ìaí˜äXµ´Cºýgç¤N&_Æ‚ÁØ[9±#ø cÁú§?Èíà›Ô¢#5€šØÉ–Pj“$’ð¥â—¯‹ÏAÕ Kóî@1:'ÝoêOª·¬GÙÄQ¶÷º¶W‰¥!zµìsAþòÝÖ^,ŒùÑo¹”}~tßà[ &±Îc§³€ùä† Æ€Â÷H§àÚ}Ÿ0å²Fµx6ïŠ5ÍŠ¶ô5ßÊ5ìÂãà 3†ú7fuYã®Q]B¹"ŒN„ÚE0Ãç©8ËŽŠˆ£±Œ~Ó·¦U <„Zùî†;iëdåäVÆááºqj=qŠx—%a%*ÇXv㊷u35Ø}8Ü<¤S¯Lçk|OÐaä+ºÞDµZ6쇫 jéÇp“á]~žÄÞÐ[D)£"{ïÿ¨2”{hý¬xlëiôNÅŸ]˜j´’´‹ÓžEÊÞœÎæq7*-j¿ŽAS|ncî"ºnZðm»ø±éÃ=¢˜ºI£lAb"4eçDG<Ú‘µdÜÈvŸMŒ¶7>× ¬Ï‰4½ _Èc€f’ˆ{f áí¼ ‡`‡ª¯î±œ·ŒB;ývõ"c#ô7]ƒ‡14«§F\ _¿õˆmkÒ¶v¹ì›r^§:”²sûÔèx™ŸKq¿˜¨Jo¥æß#hýùéå0ÉÚ7œ6{ y·A Þ|¼ÆÐuKŸŽù¬Æ…ëös™€È‡Ã}ê×!Ýv*(œlJÆ‘Ÿ:0Ööª¥±÷,û‡ü„ŽV>í{pUcVü”GÖQEš³,¬–œ„ÝùŸ2-Ä)ü,İR‘ N´¢©-::?‹~-ì¼y*à2ÝG~¬Fð×Ê*÷Kfª;N (SI54ÌóË:T1oçâ%î˜)dÑ ÎO˜~ÉšRlÒÓ¤%Ldžðg,2OY?'¢Êʪ³µn ÖõÆÒ¹ùÅÛëߪ±`>ÚÝê D;*a6‚{.…ˆªß©É± Ó…Õ],(‹¿Ž7Unn&ø„.ÝÇzeÿÉQíéôDr\¡d¢ñÌ]DPÛòëÊfª:9~²p¿Á#˜qšBVJ£Ge—![çqãðŒQÆfEŒ_Øq¯}Ý ³ãH¨Åɧ—9#(Z…Ïöaиó%Iýl?þ¬NZ˦ïÉN"u1R${ÚФ!·)¯Ò"›¸bI”4l?¢†Ýbeƒ=ÐÚ fGæoo ÆÄ¶™ðv6ðÏpâ«KdͼO­q¤(°ÎÞàÛJ›\Écgâ3vb8¿ûÑmM|d[q)ÊÝåî&žMÄ®\Nu=oÎ{¹x"WÎ)Xìj¢É’üѾv]Ô}ÞûŒ™\v{FEÕÅ+,8b85kid™&dÜ£i¦×ÛO†½h‚¼·øà©š¬˜»ÔmÉuŒű«Ñ…·‡b¨a¢ ¿{¿tIHÁ «R¡9tl™ÛxÄ9}_ÒX°*¾!ð¤Ig;óm¾©¯Èð¯AxŒû§ê0¬»$c§]±¿|ÔöV¥xbpjç –+ ¡~@FŒ5ży§Pq•ÕÝ-f$.C݉RA“‚hOh koïÌœ¤Wb¼û.8nF@Tõl³OWŒ ÆÔæÄ´SXš«ã¹L:7ÄþìJ†Á&ûÁ.…T¦Õá±­À`j‚2•»Y1ÛÃ{VMý“0«O_õÜG«Ë÷ö#( lh*Ƽu#ѶA/ëÕŠný&3€C"|ÔˆûSûÞ¯ÂöÉð˜1Ù„ã’û>Šmf£™ŠL¸NÙuî%¡ÐÚƒþ‰ñõµÊ G½¶ ó„ ¾¨7/´¼ \-;™ç³HV¦±’d `õê?¾é›ö{û;+NfÓ|áãÖzÏ!e•~3Ÿ#ç<ŸÕ·{‘–ì´Y™¯DG}lþ:ÂD¼•ui ß}ÃÕ ibGç[ì‰]¬NXÇbštº,Øá xÕL>ŒöÐ(˜õ›+¢éðì”O×±}ÈVİf&Æ\mê7,’‚R%Ãô¿ÐÅuEÔÁÎÔ¤ Iæ?™p°5wÈüÁBÀf·K\Áq5ö¸·HïG¸\PÓ»ƒjRðŸ‡F±µû¼:Ç¡¼`fçØö¤à"¡j®sôµ—å´L¾Ó Rv@UiÒ÷|¨ã™ î¿1nÚ³ÜÑ#="~ÀN•d }²½6þɃ“¬º|y°y š÷x KÑ;è¤ûXþÓ|2ıh.3ÎÛѽ›Õ”$’îèÌÅÛJè\hD^Ç&ÛŸ}åb;h|ÀÎêLGÙZ÷®=Ô¼mZÉ—×ß³2¦±#Ê ¬ŸÝr» oad‹Q°CÌÙ¶Òè–¿2l@eaºþQT¿LúsMX·ÏæäèêœéYOþËÑ:<+&S’eŸHÈÏ)\†äz5ÄÉ')Af¥F(jäè‚gš·Dâƒú4»,µ‰ôl¦å˜‡/ ÿ³ê"oœ6« fª}aS†Ž†î&£.÷çLÕÄiç]V³8/tŽ œ9ñ-?ÆÜŠÖëšæ­AJ|I½Pf²†P»­p\(L^Ò4•ÜgüªIÖ}+ü#n;_·pÉSlð&]íº¹Ü-²L ±ƒ|W,p"®Äün¤ñ€ïáþÍJaÔXÅx5VhúúY@'ГÂã™ÅÃož¦Z•xø!Z,æ«I¯«Xe.¤2 âõ­FËu?ºìDG‘ìÙ8Þ¥QWÎÎVò{øS_øÃ ¿Up¼ôöe6[Z›Š„Á*ñ¾ hÿ1!zij®I÷0zͺ°¨ÏýD`ssáB÷ÁàDð”3šÑÛâáÙ³z‚\ÜåÒ«'¢q]I¬Ÿj_š™—‰>:ÇÇmLÅöò]7¥Óu¹Vœðü¡}ý;É^á°îàK¢þ's޲ŸwËi¨·By£\}uü¹lNÈ.ý¾Ÿ¦¡v%gæ¢hŽ¢é2h^ø¡ŠŸ®g½.§êëÅDÎPnà%e×Xkf€>éÃw÷»õ°„ý9·¬ðy(Ÿûá;¶ñž¶%T1ãâë,•…}}ÆtÌ+ÇhU ÿ]Ëø¤Ç9bÙ!C›=¯¯8ûF¡E½žPtîhG7¥äw~ ¢( \ ¹Ë²fxÊdWÑ”Þa•Ç|ÚvÁE¿‹ûÙX8NkŽï³àqjóÜôq£† Ë ®&ÌTI&šÃÊ‚k¥ƒ-‡ë•PêLÊz—5>¤ÊE‡ó|À0­ÓF R_u¼—X9%îÃR¢>’óØv‘ÒöuçÖÎVeƒ^Pê—rœ¤É«å)ùìfÔ¨>•& ÊP+om¦ƒe‰oX"ÜÑ4Q™'—Ò܃š úÄBÖÃÀUp¯\gQ—c®u辚m¡:ÆF€QNêP¶Ýúu{¾äµügq®ˆZ¾ò²i‰W8^€©öfe ijölcK™¼R Je~`èVеÌ*â/^_  ÷ø<0pÂÎÁ':šp(ì–Rç{Úuf3Ùö”™9T,¿5t²T&äM a "åÒ}þÐGö)€^Ãé*w½:©áÒ¬tÙ‹‚Ë(zôk{Q²aÕDpÂ-z¨;(3úÝéᇴ°CÅJF¹vOœ- m¸±1a¾ÏRŠv¯ªžê³<ŽÔ ."jû}Ö¤CÐGÏÀïT1TÂ<êݪAùÈgOIæÜAIŸù…pi,MnPÈ3õ¾²2æÓE@Ü#…˜Q²a@ j’BuÍó$¹Ö±—"ßCá„…§ì¼ò/ƒ–$G%Ùz¿ ŽïàM?q {-߀Ÿ‡:[Ã6~ê~Í ’Xa›t”‹½yÎö"Ž {ASwße)zÄPËÿŠVeíý—ŠÓŽ6K^è-¬ VÁÏ¡~V¡0# ÏM7·ÙWÖ‹“ï¸H²¤áãŠ?c#Eú×=ú;¾tzúÝþr‘‘ŸUX×%°Rý+ÈôýñX\ ×9kòNDMlyYà9§s p >=1ÀùqLÚ½¹>¯Ü¢îÖ Æ± )¹ŠOÆ;‡T£ös.'rzÜï„>K†aq\[þP†M|릱èzÄé TöP”ž¦zQEÞÓ¸;5cBiÄ6¶F2C¾÷ôG}ßíq»·Ñ{ÝPùää) Ý‘iHÒÃïá$Òù^nÜùméÃÎA¾o¶ïË6ÖQk°’àߢ¯~dxDt®»«ÂÜâÙt„VƒL‚x£-&@¯‡³H²18ɬ‡h4{Òƒ›9·úÄM»+¨ ©ìžávz\ÂqDƒÊLëY¢G.Ó ¥k§:FT½ýf”r2+ÝäŽü;Ä ØéwÁiœÞ£•ˆ×zÃâŸ3Å2{wúH§¨ßOP­l#M³ïµãߣLªÍpÑòaLNÁ.«“F6³Q$”$]Ý}ãÕââÛìރܖÔ†%¶1®a:ð¹nþ塌ùÕ·Ó±(Å4|Ó¨ï;›Im¥«§ªf²db°¡è Ÿ~~S¾­öZÆ ªº‹b™Záóâv׉ ‚ÂzfÇR–ÍJÌ…>!¡§×TÂF‘2"(],G³2Â'{…«UƒÄòyŸÊÌ vxÒ2lcbrú×™·š]î?¡Ì;•·YÎ;ôloNyûŠÁˆ=Våçd•Ýywå¢{V:úÖ‡›?'©ÙPÇ'—¸^Û5ï{÷Û3PÇPQï=ªÍÉC©šÍ9òµ»~V'cÁ· aO×äᢓ—ú¤ÒÝäJ’?-ršc"*½UÊòú<‘òAX]Ç:€l;Wlx–”ÆŽšÈ:oÂ0¨T¥‚¹¤l÷,[Û”nÔ%cÍ%ˆÈhBY`N mÉ]ð=eÇ* endstream endobj 120 0 obj << /Type /FontDescriptor /FontName /LZKCUF+CMTI8 /Flags 4 /FontBBox [-35 -250 1190 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 73 /XHeight 431 /CharSet (/A/D/G/M/N/U/a/c/d/e/ff/g/h/i/l/m/o/p/period/quoteright/r/s/t/u/v/x) /FontFile 119 0 R >> endobj 121 0 obj << /Length1 820 /Length2 1950 /Length3 0 /Length 2513 /Filter /FlateDecode >> stream xÚ­’y<”kDz5*is†Ò#{af0ÃP„Érì[Y3ÏŒG³hÌh&"ëI :Çr,r²†,I4Ö#9%‘m¤P!ÙJ–ˆ¼CoŸsÞοïçùçþ]×ï¾îïçw=JòöNÆDºhF§15Pš(}ÀÔÆÙ  4‘0%%SˆgBtÏõ‹ŒYd¥h¡ô‘zúH]˜`J÷ç0 ²/P5U[7éÆTð4ÀÏô©‚<p¢ ÉÑŒ)ÀqýFà€Œ@¨ C¡"D`> ¢Áë@–4ÐýZ&²ü¿µAF€ P@ªD"FáDCØÒo’ÿÔ÷ÃÍXŠ-žº>~=¤µñTˆÂù¯Nõg1A`C'‚ Ú÷VWð+› H„XÔï»–L<"ÓÈÐ@éh"u¾Ö¡3ˆ í!&Á á)àF¤¿'„·Áps0±°t:üu©={®ªH1Мxi°³‹q·Ý”›•Š’òƒ w$MY!ˆ$ô¼Ò8¸%È Õ'Õ²m·ZVª“Ø aÂÃkÓCîƒFIêõ˜1þ7þwÏô+ÌÖŠ”X£toÀ§. ç÷ö¬~ 9Ú6Ä—ø¨0’óäÖX'‚'ÞÆ?Zž4§gÓù7J{¤Îïú‡7¾è<=°-{™k³¹;åèʤ›4ÜC¥>ÀwËÀZ¬•­íhåý13²péJ©#ß>7Ú¹ØØ9™dk^žAÞ9#ž­ìå]xìDH4EÑb7Ž+—¢_h¢n´0¯E**rvÚU—Wœ‘x„ÒEV—œ—3nʇ3ÓeÞ“ì­½¤-剼ûƒO¥2ërRNåXq¸+‡.0Ý¢8Š1oxõóc‹ãËðšÊ¤£àt”–ó¯Ìê‰ÁY»œÍ ž²¯ƒEK»ôêgÕ齸ÿKÖΫ`ïpŒ{m¢è=y¸ ËÇŸ™ù!àZ'ÉOØçl6Ìò‚ÝÊ”Ñ;¯²¦Í៸,E¹¬­×’­û}0‘’]6Ô—6iZ¤¦{iÏ.÷¡ïç= KÓ¹ð9Y½^µóÇ…¬g¸'²„¹Ï³•çvÓ$Dnà•¢Ýw¯ù#+Ø5—ÜÇ:¡›ª¶ïÓ 'Ï-Á–‚j_99À}Ž•öDC‹OÝU£déöÞ”$ç/²ó'Ï;5ñ p›UŒ1tRºxNX¾ÅXú¤¸Dw×îV®|›—…Í´«p„ñ%õÇ•· UOÎj0Ú§ôw‰vß–Žo’o(›oÿ² þf¶±S?4íàÙ­¾Û’-ní1îWåÈü’YaÕäέIåÞØé#Íœ”¸ôj9$ÿ¶ú9*O˜”yd.k‹íÈãì´:×—O8-)Ó]¹wU¢šßTxÝÆ¿‰ ˆ*ÅÏX£ʦB­d„µŽP¿c6ºžp­LÔ¬r±]L‘X+f^á³Ý+\=¾åy߯±ÆSC9wG0©£Eü„tîžÆÅÂÜ5ÊsuXw_OÀþÄHëM+TE{æ¥y¬ZD„•%id¼ N¡l[2,ŸW    vYÂ&¹ƒÏÎ]ˆŸÂŠÿYš.»_³³PÈŒùW[öõJ“ºoöﯗ`áãOߢ‚½f$y§sJaO—,Í)m[½Û݃¹.úúwûÞu÷†¼ /²¼‚`ƒŸ<‡ 5®\k³©u®wU¼¸g F;&çI{º||Ÿ³wSæÇèU9üÉÄÜ– Ãr8Ûâ ·=E‘ &ÚszÚ±­(…g%t³–Ë䟛EÜŸ\gøÝÒ½£Hº'C¾ëÅ)ŠI¾À½­Îêúàã;Õ‰á4bÊÊâ0 ›Ô¾ös”VXNZÑÅ8.MÌ>©¯F†·Èœ"hg—LÍ…j_€ÉÝ{~¨ã¥èì1¦†°dUÒ|L ¥£v˜GŽ[j‡E`:¸2¸o–µ|S"rãGë›zíá ^Œ;!ÁŽV>u.ìƒ{`¼¾¯È²ë¾Œ ûKàÓ¥Íð;Ív_]ÌÔþ›q½±Ùœ÷°pf¹oÇHxåà$³jÊï‰Áö-¡‰ÇÈ+V÷lÅÂí9ÏÇ·OU~hö®Ü’ä]=$zPôhÝ{v®ðOðp6l«LÉ\oÉilPÍÎJí×ö•zªªp_ß 1â—ôëÄ%_-Š­»&”­õ|ÎëÀšë½Ž]Ò½¶"ðŸ2Ÿ ´þ¸T=~Ô9ø„Ùšvõcö«kv°6Ъö„}–Ë \t¥ÊUÜ-\¯RųÞa¶aÖƒ¹qt ì½Òî#ò6Ïb3i®J©¼q9ÅàÞL·äÍŠX\‰Z,XíÀ->Æp­].½ª²bvïµê†úÉâ¸×Ê™vKa™·Nnât±¯h¿Ñ¿¨š*Ää+·dŽ]]“úùK¹T»]Í£~wGuòàžz^‚ê«}¸±+M²áKmžc#9’Ÿúk-ömÚo5Ï-›3tWØèúÞ?Í;]¶Îš ¹™°ïhÍÕ’37M{q›> 1UñÁÒ1¶tõÞŒ:;ÇÐÓIwâB÷7_>cºµµøÏ] §"‹ãbq1fÅý|ë©®¼ø|Q¥á&Û½òÃhm•b5ÿ¥YÚì endstream endobj 122 0 obj << /Type /FontDescriptor /FontName /XQBHIS+CMTI9 /Flags 4 /FontBBox [-35 -250 1148 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 70 /XHeight 431 /CharSet (/comma/i/l/q/t/u) /FontFile 121 0 R >> endobj 123 0 obj << /Length1 1302 /Length2 6868 /Length3 0 /Length 7659 /Filter /FlateDecode >> stream xÚ­—eX”k×÷IA¤Q$†.‰¡éé†b€¡»Aº•–îînQº;¥»$žÙû~î­ï~¾¾Ç5®ßZë\ç­ó\×q -¥Š‹˜Ä$ ±ƒ²Y %uu ;ÈÊÎ.ŽAK+á2†‚!v’ÆPÈÏϳwpð€ì\ð-@bïæ¶°„$ÿ âˆÙ‚Á¦Æv%c¨%ÈžÃÔØ 1ƒ n¬1À»¿V8Þœ@Ž. 3V `6…L@`; ¶¿4ÉÙ™C¼ÿ1›9Ûÿ×årt‚‹0ü-“i±³q˜Ì1ØÞBà»àZþÈúwrig›·Æ¶¥ÿ»SÿÇol ¶qû߈­½3äP‚˜íþªú8%ØÙöß^9¨± ØTÌÎÂ`ÿ ì$ †ÌTÀPSKÔÑô·dgöo ðÎý­€MYBEYI“ùõo§Š1تîfÿOÖ¿¢ÿfào†·Ç è±Ãû „Ÿÿ¾½ÿ×fRv¦3°€ƒ›`ìèh솿>pâx`;3 ‚Á³±ÚA ð%xO¼æGŒ¿N”‡À&ö—éo‚›ñ?„_36c'S0 ¶1ýŽâ°™ü&~›é?Ä ÷™Blà—ãŸ,ìì6³?`û .ší?çð;€Àfþ;€N`Ð~¸Åâä°Yþƒ\ðz,Ýì-A €ÛÀ |K«?^³õ/Àæ„Wgûá§Èö;3'<±³­É_ã`ñdžðIbƒü–O±û£ ¼@ûßn¸{øX@þè^¢Ã/Ññ„oëô{=\¿“±“åð”¿Ê Wµtý©¾Æù„×ìò»þq à5Ãþ@¸z÷¿ñÿÞzqq̃… ÀÂo /'ÀÇÎîõÿ„™:;:‚ì Qà“ó_6ÃÇ ‚L1æg ¦‚VÉõÁEÞR¹cŨLˆâ 1ok:'ÛžÌÅ"Úä+80­Tkß–¤áco£nS¸Þ½r oõTý*}äç“2ý°íb´æÞôJû4MÉí»=ÕUÀÞó–ú©ó}nD剕/E :y}ŸŽû÷²U$ÕwЖ(ºô\j»Òyxµ¥Ól4B‚ªé8)ßá¤8…r…,»â$Ä¡,x[… 72/ž@Zñnsѳâ nLŸDøsˆgÌ5ŒZ ‡¤±¼ä[Ö—´¸YŽ|O@¨Éï`£5I/ïJ-˜j¶›o¹Zè[Wk®êrC˜ºÛxjÂôõå΀"Ú¿“ÖZ‰4Ö;”=©†R%k'ä²Ù vŽ©sâÑtås€n^2}a-®û#™Â·ò:œú ⤱v°ƒ9à‹ÐZ÷ëÒe©øSÉ®·ûغžò½Ôqפˆ­âZxœç»±è¸£ÉJ3ûö9½][g Ù{´[Ü´¿È‰:½F¸?]Rˆ[{‰íZa.›Ò«%~F.þ‰¾>È—9ÎDùœê–áCS” Ú]îúÔâi;nñ„<û¼ág2GŒ_‚8k¥Q]Ù…Ž³›ETXëK^{®yatL‰Øïn=Ê7wÔn_p3ÉõÚ‹H6žs ™ÚÉ™ÇL­QîFžbuOÛšÛVÓðI1P}Ù=ù¹[ÈMo×9ÏäÓë‚¡.²É{ýú ™©¶ßãQF\‰þUò²ìÉâÅjñ|+)ŽøÜYJË~/×FQrôœ†±yTþ…Š*ƒÐ„3uHxgžÛI~aÁÀ¤ wJ~Z$WOëûXÝÝ3Ù€-ªÅwÓ“Ø„7ÍìÊ…nü¬k­ëùäКì;ab¤³4R¾ÅXýï_B)>?@";Œh1Fè¥:Г‡b>|6wL yw `à¶lä¢Lh|œq›étzä=¨ëú.¤^y«¤…·3Æ)K¢–cÏ\ þÚá ¥r û(Ã\S¿ FRQ-3çÎâ=¾¡k7”#©«Mw u›úè2¤' “Ý_bH¹ôÊè¹!AéuYåbPd[•œ*‡ÞI¬Yêãùîr_.óÅ ½á˜ì9ð=+jëÓí] {Sp¾Ç#s¶ÎERÕqk‚f§àUÏQtÐ4„_½€a]˜ïê§.ù¨€ž¬•rƒBä7ÃϼLSéäžo$A½Ò©ð–°ØÞô°4c¹‘¨I¯6 ›„3xäH*Užô¨ê‚Á9¦a?+š :M´Ì3¼•±T¾&j°°Q*=N߆0©\þ) ª‚7Á>/ ù«Bv:¤T÷;˾ q…'œ.&M²Ú»¨gYâK Þ‡UW\¼AÓ¨»u˜ UªZOX)f®øV?ô‰i&N:–WÕ:l­íûþ ÃEÊg6&ÒD4JÃþÏ—÷ĵ(!€˜$^Ç >Œ_M<×”Áöo•{iͦդt:Ž_\-M›åT•_l®=å'W‘“‡ŽË‹]"ÙiÈ~zðèì·×lO4ú¸ûC:Dƒmý<ð´(6N˜q%V¥µ¬çÄy SM©Ü‚¢¯pÞêò{Š“Šs£›úø½ª…žœr’Qä-t«BÖ¡ »{³IV²¢ÜI^a¸ö8íXNû^=½4<b«zu0êÓØ\Šn?eÞ¥êvÒÐÒnè!è]ôæ=•‰ãjUxŸæ×†¥o¦EÕO")¬Ý#è~ÙÇñ¸%á'AýiÒÆ7K Æ£ u¼É÷}Ú¾W¾–”åã™æ!?£óe"Ë]¯lÀG`¢C ¼OqËÛUs'<šy¯ RRQ‰"póØX ŸbX¦X”É–ßÔ-8%jÇÍ•óOnn !Eòd:ßáé1æ¢oÍ8ÛVznÅÖ+$ñ¼¿©aÔqM5âG=5¯Ûá4Õ~&\õ²o¼¡a•þóô\yÓ•Vî¡ö8Ë”þj{šß—2z§£GS¿€÷~sÏñ”\ѤÏÙôÛ°PÐ+‹È2RTòL]pH$‹ü’WæQG*@†%K 7’?2°üjtfÐ~ySpâGDbÄLj e¶•íUŸolì¤ÛdiúÇš±t$puñ!ˆ½‹_w¡×¸}RO³‚.“@ZGK 47X®É•R¢ã0[‘5]=a‹rÆåÛ,ZF¶!H$ŠÉa¾~m[㳌*¤bsAÏÙp×Ê<Û>`¬˜UXN…¸˜áÞ) @Π'×r¸s…„Á4-™!@@„¹š 6€Î>"“„G¢ëwÕ$qÐ †wM®œCK?¾q‰8õçFQÉç°ÄÚsD¼[ì¨.5÷b¹»ÞiIì¢^$/¼AÄ1¿Öy&Ø ]@è£÷õ£I΢е`²iü~iZ¾ïfvP4Už„XŸ¾ÈWãâ¹ùÇý Æ‘vmæÍ“É÷k _=?5 ö›¼IŸvèTûîÕ¬}.tÙl òÚñâDeb¾U0ëÝËÎn¾]¼ °S¦lg±xëÀõñ.:.)nJ{±é˜oû8Tôq§$8l̕ӦYÇñiÉ±Ì CRN÷QS€•™U?sŽGñúß+KôO 46$ Î?œÇ Э“iÍ|v¦DIi›¼-bˆðsª*wˆ{)ŒB ÑëðH;‘ãJªFQØ_IçbSªÈ/áu:í3qÞ9{3˜ZëSûª¨Ñ«ä›MzoÑ+Ñ œÁúM-š¢HÊw߆¤W£ØrÙØï~©Mñ>^øÎ-„e³K²Ç²?Å -H,ÆléÖ.ìbPNb3êZ2<Õ&†SºÕ);· !weO–öúõt˜Iž~'ãÅdÆbB,ÎA"DNyú4Ó£%M‹g\͘ql`’ið’ù¬9<¹ÿE0ûç½w™ªÚZûqšÿ¥¨{ºEκa'ŸÄO’˥ĔMs){p‡HÞAŸ¾z ¨©UîÆ~R]m‹ Œ˜ø5íë1$»ezJZ !hý¶<”KäMÿ¶µ"äŠ>øª‹O”^¶~uQÃÈr”°VÚM¦“ÁÜgP5;-Dm[S£ÉÌáÌ]¿Ç=tÉwÙöµ¯ùöbäø£Çú’= «‰9>¸ºþMiõ@!¹h%*°˜ÀF¿Wõ.b.Ò| @Te~ЖSç¡{]‚Û Ç ¾ÀÈIVBt±Ó&?—rv œçÉc Pœ{-gÓÑtlùLPÔĈuk.ˆ{«+XfzÛ-¢‰¢D–6”x&mAB¿«km±ÔóÊE¯Y#ÕŸøš •·D®Ó³M=wÖ¢’1êû¥Aé %÷廡ŽB"t¼.yËkI<íMÆçd(ôÌþãà=CÖäÍL$èóGwKFSR·4„%Žžšý´×n1†<¾ kJL½¬¢]€ÖI LÀ")˜®Ê†p'³¥Ÿåø“B'ƒÆ<ê“e‡»µ—x~Hˆäãâ^ä©”À¼ó:¬W‘|qð=µêæ=ˆ­¶¿?My·šû@{ 7ïËh~c\yŸHë+kaå!Âud®ÎŒ~„ÈQ ©ï-°À,f»0¾ço=cûZ=Ü®ïŽ$Ï'¥˜ÚrÝœÓC1¤äC9™o‰ÞÏÆd½À0Õ5T|õmÐòîÆZö)Qp.²Æv¯¦úÊ£@Àñ»‰1[\Ÿûœ6`CöbúT¤ä@ëÐ…êàße(1t» õõå#õØÅË6¯zð5í€ùsþ¾Æš¬-§ý‰m¥Žµ©ªJãG,*É]Wq{zMµž 53(ƒ.%Õ¯pÄúª@“ZE³51KsǬõMȇŠÖ[CºÏ,µõ]UBÈ>c‡HåLÜÑìP[‡QZECˆgI’˜8}ô¡ƒÂ¡#Û¤à“•ÓlÒåyª¬ÓömÏ‹–Î1‘+'8džû!µNvªK|,ó5â8 Êå—Ü"pâ^‚r‰„ÒÒr(ô°‡Q^öôÚSf9cÌÍvä<åO)‹z7¡Èd¯¢y§à]kdÙyÍÊQœSÕ ýø Œ#¦'[”Þ2Ú[=g9䉥tÏÈà€Ád¹D+5QaàËM¤Å÷s=M~﫯ýP(U×’ÄöêµYýtkƒüé\¨åšÁ/_˜ˆ“"2©Œ0ûz‚¥e}ã….7î)ÄA¿ [-ò¡ü4é+2†•îËãTq¯õ»ôl©ÇÁÍz@!œ<ýò™ðª"JÚ(k‡l¢k§/.î·ÎßÖÔ8… ºÎÒÓœ1< štŽ9à%{M×h`šuÀâ) Õ`PÀZN®Î{y¸ê¬ ºÌÏ{íî¿®—=±×"8ò Fª#÷Äk÷À_k‰÷s&šWÀù€ôz(Ì7¨ßãrµGöã„[ÁkŽFåù_ ŠëZG_̰T.ÊŠ’¹ëxÔ«§Õ"®­ƒžægý½n3„BõêL¸¢#/ÑJ4ÚXwü4g¨Ÿ·Ù„2:oN—*–áÖ¥Tß= Æ=Êi´W+J*üjÙÔw·›ä\ì²(Y3ùUú0âRöŸÜ$°ÖR³øÅŽñå¹ò/©T wûܽh ŽŠOÖ7\sÅö4¹ìà2$VHÊ,:{Ϲ>/)‹]õkŸLù •.Ø‹UñúOû»/³7´xÓew{pÍßM|N%jM þ†³Âò9FÏú  ¥„H‡&6¿n…-Ï;q¡ýñ§¿Ö£ê©®‹õ ð)µ¿‘A¼€{ …¶áÜ%¿*MÇýâÜ\aÕ2‘…´.’ç)ÙÞœ)nW·„lîÙÙmPcmh×¼Lö{o²ÁÓ36ý»ì~ßJr\ÕTÀú‘LƒÎ×ËæÚrŒÌ‡>)n`öhv‡T©îhäÝæ‘ËÇÖÔFyšXŒ¬–.£!D­¦Õ])¢&žˆ˜ã¢1x•“A~Ϊ`¿&SWEŽö:4¡>ð+[v|h³{‹æCÕ{9”ml‰½RÎàÐÁ‚JËío¨ ~‘Œqû6\ƒ%™/î~T´Ås ¬X˜_°ÃtžBY™ÂMÈ2kÚ‡ObBöJvQA:&_¬S,Ãj²qv$ë/KuÇ6¢2¹)HÙÌÝÊ ³lÆ,R΂òn{V>F>Úq%+V6†hçQˆ€Õ3¸Þ¢—Wš›…~Ó[Üxù‰!êêÌhU6½›ñíÍ{É+ŸQÜ¢0-šÜ¢æ˜Ï5ë€lÖçá0-±&dF¾ÒÓ;¾Á™Gè»1ê‡XÖcY˜¸½öö¾g‰ðÔñrfûñ[Ÿ±vçÕøç¶Xý»ßLì&¤]mdŠ?|8ÇFôµZZ;ÊëÜW2.A˜Ž*á Së§¹&%³b˜™}©à¾FòiÌM¦¤Ñ$$¹1“Ì—RM´7/s ½&Ï !Yõ°cµç•upÚÖiÌýFYÌêöL+h±NÀc‹&°@¼ÕøY7ŠÐ‰Z…¿/c/'¢²ílÁÉsˤ8ÐãÚ;“që³eÆì÷0/¯ArëÈÞ©¦ž­í©÷ èjÔXA[n-U|@¸ ˆvˆöñ.‡ƒ˜ þé¸1s¡Þì“0L­y±@ M?O¸V¤t¤E~6ô‡Ý/++óñÇÁö­ hµ‹$žLï»}¢«&þHÛo™Êö°ÇbáY:ŸÎ&~0 ‹´JE®Í€=ÆžJØ'âÅ5Ž=ÞËn'ïoIUgY’$>¶mˆ¹Õ²’å òš¥ãÑ·¼sÎl\´Ë½¢@çË¥|tï›Å:p¸Ìþ÷ê ’ògúYÀïåǾúƒ248̳ï¤Åí~šÎ?¯µ%¤¼Ûó¯Ôûx¤ˆ|FQ÷áUz‰Û£­µÞ#þQq«°ª0кŽÚ‘Y´Â9PdýÇlåÁ4‡…ÞjG'·Ù8-«~?r¢~¬Hy'‰s›´t¹“¢»—Rò®úGûȸä gÅ#£‹üK3Éc¼Ÿ»ñ]G‚8ážû ÷øgܯÌ} èÃ[çAT4œ¢Ž–])ó°è3â™ë“䵈Ëè(3Ä“,N4ñçÏR󎼦ֻÙ©7Ü#°1ª}3æ}ip#e$Î0­LÂð¾[ݼŠã”Uõ_æërñÉdø6œP—C˜?+2Hééfp +ýàYOMTuweŠ Q 8ÌH³Ö‰â ®Î¦|ý4 ˜„»ˆÙ P '»V8/3l¸…`7,ô¯n•¦îvòµì/‘u±L_3¸I›zÃØ5œ3öDÎfóÇ2çWF_,Mzf~rg’0zŸ`Qh¸"*q¸Í)–ã9°Ñ0VYKhd>7eú±ÄP‹R…mÊ $‰»'ïLSåÄ׬²E&1àŸ×O”G.•‚¥˜‹/ºÃÙõÊžºð¢\‘ËGF̹Mà¹@"ë*7¸nšºQßUZ.ëwùŽ5-…+W¯ö(Ê›~ª–èJ»wº¤–`r§Gã,WÄöD')ÃF1F…Ý^ 9pn¡½u7 Ãâ °ZùÎ'‰íydQÓ0P¶¹!Ñæµü¢®Shkü3Öó ûØs 0z椉_nÙk|Bv>¦;/Å[0=Y1h¥EŸî+Â¥™¾®™ð5²ICn†©ÃþúW˜ ÏšáéÏ@JÍ`”]qLÉb©³ÿ®oN1”ø¤‘Ëö¤úPÝmá¬×·™ä³—&‰·Æ&ë3wd¹×‰eœ«žêþ Ã"!¸=ñÕž¡e¾=8o}/òu‘õúV4¢]¢ÜÊŽš½xŠ‘Sõ ïI|Ô[êE“8™ÔT'ûžøU‰[>næÓâî¯-©ˆÌü>'=WëGí3²€Åª.ì¨\?éü:wýàüN÷èMãlËnÛ†«G*óOoZ´ƒFâ\ûPYHµù6µÙ謂ÏF®_mÎZ>´Ô‰©Šö× ä'0Ö莟ìOo>w!e‰N ©Jp!'û(Ølá‰Ü¼Ï êUµ¨‘@ÐB"Ä0L3|rOxçèŠÐ¡ø@*Œ©ª˜´Ý»Š4Ú’ëùCúÅe×w®íÑæ:z°9ü%è^’V¾Ñ·Ÿ£tŽVO¦;¦”·$™ÓûóQÞ¤;½Ék™Ü¤.|C›Vo‡Í€"±¨¢@;s?1Õ}Èä’­v¼ë’Xæ³6³$“‹”Ö+2ê«`÷aò “¨“8vnÂz;[ $¬`z+°ñÕ\ÑøÁöº endstream endobj 124 0 obj << /Type /FontDescriptor /FontName /OCPOMV+CMTT10 /Flags 4 /FontBBox [-4 -235 731 800] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/a/asciitilde/b/c/colon/d/e/eight/f/five/g/h/hyphen/i/j/k/l/m/n/numbersign/o/one/p/period/q/r/s/slash/t/three/u/v/w/x/z) /FontFile 123 0 R >> endobj 125 0 obj << /Length1 1687 /Length2 9355 /Length3 0 /Length 10312 /Filter /FlateDecode >> stream xÚ­˜eTœK³¶!¸‚;ƒ»[pwwwœÁ-x°à®Á5@ð@ ’ ÁÝ‚»ùfï}ÞMÎ{þ~‹?\ÕÕwÝUOw³´”êZ¬Ö.–@YgVN6NA€”ж¶€“•–V ´ð¹8K[xœœ ˆ-€‹ÀÉ'ÈÃ'ÈŃJ rqõƒlí< RŒ%ñ$œ€`•…3@ÅÂÃèÕ°²ph¹X€>l GG€æ_;Üš@w Øh͆ÊÉ °Yy,¶ gTö¿ )8Û¸øÿ [C\ÿ³ä »CM &P‹Ö.ÎŽ>k  *»ª ´êäÿ‡©ÿ—…8:ªZ8ý%ÿ×þϲ…ÈÑç\œ\!@0@ÅÅvþïT=à?ÞT€Ö ˆÓ¯*xX8‚¬$œmŽB wY7ÐZäaeðC€‡ÎÖÿí:¶¿°Ë©Këh0ÿó9ÿ^S·9{hû¸þ+úWòßÌùÌÐá€AÞ#6Nh"ôç?¿™üW-g+k3ô<ðò,À` TèÁ€/Àr¶z€ÞP¿ìlÎ.Ð-èH6.`Ô¿¾&/€]â¯Ð?Ä`—|&~»Ô3½°K?“€]æ_âç°Ë>€]þ™¸ì Ï­ üLPMÕg‚jªýK¯¡šêÏÕÔ|&»ö3A{Ðy&¨k½g‚jüKÐÈnñÜTÅÂãyjÆò_âä‚®ZZ€Ÿ—¡JVÿ/4ÙÊÅzþááù+âäô¬ÏÉmÁúä°Ÿ«ÿEnèéN€6ióB'gûB Ø=—ƒ6mçãjtþ#ýÐYÛÿÐæþ@hÖ†¶çôŒœPëÏÊÜPagˆ“å_wÞö‚Ðç‚ÝåÙTÂÅøÇ2´×çe¨¤«èì´yž:çÿDÿy(þ C½»BŸ —çùñ@Çáêqv­çq^ðÿµ•“:(ð5ÿ¼‰ºÉèúß÷¯ çÃä…Š¸Cïà¿Õ¡Ósw´p·ûCêñ¹,/´;0ð¹^hÃ^.l€j@þ@èðü¡Î¼þ8ÐÝÞ TÞçÙ t«/üöÿ}|$%]¼ýXù¬\ÜÜÐN¸ ×õuÀÿJ³‚€¡3÷øûU‡>`ÿaôµ½V¨sÓ.VBaöéÍ2Ec•L°’¶- ª»';ÑBgaK‡•ܘ–ô者p^n#lSxÝ“¸Gwøk|—=~ã–ñóqÛÓ|;Ë·Dÿ,KÅgË•ê:tóSóÔÅ/¬ÚÄòHEŠAqîÉÀ~¡:ƒ´ö/¤EJ˜#ÏÆžì0>~}Ù,GÈð:nJM¬ ·Š(žÈ%/¬”$ø¥ÑÐ@ûHäVæ…S—ö]rAò£Ì­bL—dÞl˨½Hd+9#ç3Â}s€Á‰ß¶³ó}’ÀL{kñÈ>¤õà̈θ%„[ýR€ÉF^¾'L‰ôà«ñoðX¢ƒ­qV9ï)]Z郜°¹b*¿µÝª3£áôµã~rnÊ+^.´\É â¼ß)4sÔ8­y9ÑnœÜâ òWáBä 'ÌAyrT˜kœ3?•G2µï¹oÛG(ðe4¿¡6 MÕ+fíT»PI.ìÌË6+9Ü¿òdG ;ÿILG»JÅà^n-`ʲ¶ÄØpgR©uBþ9È3hRK´×ÙŽ”†oüJ££«~%ޱT0fa!›z$dŒ’Ñ*¦Æ\áIä¤Bz@¾ðÖfK¾{®'eˆ‹3 ë·ÔIû¶D•¼æ©Ð¤Œ.—:JW„Xž¨?¼)#I6òóŠÇÂçøMñv¦.†½fwì ììtÆ%ë7©²” BaŸ†o²úk’iÀ+Œ5ï;;ÇÌ€gïÌ”5Óp¦ õW‘‘™Âé±J™pýÓ\˜Ã›HÐvÌ^M øÛÅóhù¨5nL™Ùi!±ü½H¥`ƒÌõrxý¾ðSæyÃk±Ê ¢Ò)±‘M´P®èŸ—0ÆÑqVÞ]óåøÓ¯ÂÜ]aΑëv§¦5À· $óªÝ¢1 ~*F§[æ]Òù Ž^ßî_º¤ ©§ —YqA(<I¢:¯‘jÛM­+žRc&oÃîŽ+ò±5q«W\ãlîÄjRÔ^ݪ•+ó§my÷Õ@¢û)ó~@¤ˆOâ™»IäSÀU2E¶+¯•5mh>ÝoTª÷ß+üÞŒzµÞr\ÁïnE1f¿—¿ËÿͰc«kù¥Ò“šx³·ûÁûÞ!ºITX )â.7Œ>u­ÇâËk»÷)Ÿ[H²ý©›4‚èðsÌy•hçdz ¦Á9ãµzÊ2$Ý.ãî_xšÉ}8žõœ%j"O "Мˆ‚|…`úŠ0f"•ul iZÅTŸÏÅò[|_üÒúxKHÿ+˜óó'ƒ£5ô >|2ÝÈ+¼»¶M¾xÄ`/â@qGªä‡lžÏy¡ûÔËm*”#a7‡‘¾âš99CèÃ'W=Ñç²ÂÔ…6yû2—TùŒe+£vç¿âSoÜs£¸XâÔƒ Yœd_þؤ&Ufä^Þâ†ãºôOh`ÉDŒ78 ßþJ;€)4<)@úy*Ù‚.õhK;E¬GX’áë“9Iõ$j§T‹¸Ô¤ðØ0Þ ÈEúvF˜M±^ÊõØò ­Ø_©&˜GvTš¶Qç“EZl—)±¥‚€dáÕܱ¬Ì¡JöÓKg’N#w÷ÝØÛ S38Üü¨_Z~#Q âï™dך =ÛÅU¼ú(D‡É–TÊÿA%=hn&6¸(Õ4‚`»»¡ýÑu ,äüñfj¥¦N˜™ò•cœZ÷ÆÛZõ]ÊŸo¬Bà%(+·Pçù9²–·O"ëÚ¬ßriâàøµØú_ ön¯Þ Š6¥e1¤mdokN©wúÔTß=‘™Û®à8Ù^—Á£ÃeˆèuSÕ.õq'i÷v^ݸ¹V.jòZP®!KÈ›àÖ&IŸÓۢا0EÔ²_­ŽÒùʇ|\|!À°ˆ¬kW]ì'‰P~2ãiZægÄ™BÔt T«sÚ›‡-ž­U²ÃÅî¼¶îB†½Ïù]¤Þ¬lK2EH¶Ž1Ô½ÆËù(¡ *©R¶ã—sWNqîº~çodiç;pˆ[èçÃpi4I0"Äà0Ý# Eÿ§~ì;YŒSÿãQ~ v 3˜ '+’r—¡âÈÆ^¤Ëø4ÏôÓ®ÞA}o×üøqs֚ݪ6-q2’œCV›ÅSlKš{¸G ÄÙzr¬7q%&>î·¸wŽ {Ø<ù¾ÓBïÕcgS\.&ñº0«&¢«ÞHy¿uoà}b¿“ 8ªæú«PÙ˜>¾1ШÈh~abѾJRigÓãûJ¯ Ô«ƒÉŠ€WH5œx`€½r¨ò)Ú`2°—> ‰¦¤œ¦‰qó’‰ÈÞÃä§®ü©1¿–JÓ-° áe`)ƒ r!ì<A?ò¡.‰†¿¥·Hkó¦:éýK˜¹ù>³Ò£a¾7g‡p)µèòy|^jœvýÈq›ú„T©`ëÙ#j‡ÂÇ=PJª¥[ú¯eÛ,¦¦ \XOª(ªîï½å‰„ŸDú?eÄ‹'—o¤¯üY^&rXßvaŠÐ¾æ˜x[Ež¡P÷K/Pí,‹Ÿ·yÞo$…ovÇh·ïƒ°(FQ• ÖˆŸz£s›4âNk•}›àoeé‡AŒ›kRó€´†dzu6Ž,Yù éBz:¾TÊ-®„w@Š ïÞx%WS™‹¼hŸá'ø¸¦¥õY?û2x?Ñ|âË~´+¡²–Ï©½­N`J%bE2^ð’0M&Fb”&Ú‘™¸ ¡Ùð·swóVÍ@M¹À#ˆì-wHø†%Ðêá¶Oﳃ ä úLr#¦ÖvÄá5?Ž^ÃKµHÌ´ÒÜ^­¶ÊÑ^3?IX.W="äq²c^mÜû¬RlúP¸XwC­oN>  ¢¦·Nh…_ªÈ(WÅŠ^zhäšQ›äú$·$¤jç Ù}UÏ4|L­ ò4­hþ–ñ~Ÿ7ä}3±°ðâ0ˆÇéé<þ…üTøâz뎢ÎÙi؃©¶,Eü·ÞZÓUØ"‡_¤9¢íìî'¾Õ997'Œh O?5gèº3¾m¯¯Î£ÂݬÌÿ®÷ÃÒN×`ÂÓ¸Ñ5,[ñ·«ãã£cƒ›r~à4UÏ.ÃzuÄêÐn…ÒúÑxDª«Š4€ù¦¬·'™ä£߯|ÔŊЦ_ß,p‘_‘—TaÙw[­7\K$L0"™~hßl£< )ä¬wƧ8 æä[J-ó#þ.¯ìýÖ=¼ÑçyºG<¢ýTz›Úàe8~.{zÁ}h PlrË‘¼KGªH95è¾"Æ&O€¨ÑtZ¥ñ,¯1êæ£>9„VÚ0ìv[y³t=ái¶‡êc.䱩닫š2­_~‡]Ó2‡æà‚:’Î÷z °³Ž8G-^Wã½0_ÁaV„‘ÛÚcð‘B :›ûra- Tô#Œ.¨S¸‘!%¬5 Yl}ìâ6ÇkgŒRðe¿ë65Ó5pvßxâKòt?¢ŽXÐSlDF+-ùø9¼á¹ÍòšdUßXt¬>ŸÚK±\ûÔ¨º”UÓ‚aç÷¼¯`ei)MÐÒ•}`(J¤Ê•ìMwÃ4FE÷-üšú´uG´pb‚w4¸eà »›O´P±puÜÙG—ϪÞõÓëißï0Kp˜>â…󱆴OâÑ€ÛÞÏ"”ÆæÓ̶7ÌkÓ]~ý¢/† £¦OĘߡáäÙû¾û}wh1E/U³*¦8º)pÑÀÇ}}F—YÎÓþÛDɆ¾„D$¿Îsc«ó2gQ+ Ì,ã½u"Þ8tukYà³Æö•íéÌÛ‹îî¤(”¿÷´Zšý;®ñ‚woIË›NÈqü©#ù0¢¯ZÔ/ikÓ€ô?i0 ®­å¹¿k$ ÚÍãÝ+Åÿ î€ÿ2;ŸŸòe¶ûŠMïû7Ü pOÎ; õÉŽ<Ææ¢¶èZd@ØpÅá;㪱î`M'çe\i*Þ¢‡¦Ð’¿¤G¨ê^TÔΊÂ`7œÎ—EjIáA\[ËÜ$l¤œ5†°á<ñ±îÏCþ` kÖ“¦¾òtç’@žB²Mݧ=zš²v©ÜƒéœƒÊi§QUË=Äkë½W˜æýXçuÒÈ%op·ŒE:ûHLæ±(ÅÃadâ­¨þ‹# ¿!¤0½À8d5.jQ]/ŒåžÙGù8ÃŽˆqÍ,u$›í‹;òù]bXœuU/bt+YN¯áw¶ˆ£¸Šële/†uk]™Á­‰òIDÜ4óü÷ÒÁˤiªQ 9;ƒän–ê¿„W|4ué‡]®äðarsTÌiÛ0ÚqÚÝæOR¹rî'ø¸ðDŒ1ÝBrSáÍÏûâÜl(‘+-íYž`ÔâKù ð¿{—5‡)d° —þJk!‹¾†Ãc©øÌÅBMLÖÔr?¬rHÛ‚ýqçiL¡{Ì«]b†ê•€ÀšêšìÇÔ'‰;YŽ™fDŸ©êE‡u! yœz06l9÷éٖˆý‘%½7O&Ï‹N¬]͉÷ ¼š‰¦åª,s=›A­¨5þ‡rÆ+8ãVŒÜÕD¨w·©žkƒß9 590a)_Ì |óÞÌ"-zË“© 1¿ŸŽÈôN"2¡bùñˆ %úšœ·†äš}|ªâ’AáßQŽà,´ôbèÂ㥢q™Ÿ f±û3½R½ch4ü©b…r®ŽxZ*!@?b“Õ ‘Ž˜ø“×£ùi€j†6…“.''–(ZƇšÎwEHνÕhó]b—Únn½4Ÿ±(êf-}•Ç´ ²>ܳK ™Úõ^!ÇRçŠ()N;ÒÏ-Tjð“ë«Ä8LÀ›iÚº¿³WÕÍÎååËꤾ%ßrújÉXá’5vØÒ7Å_{6ÈöIüh*~pM¹fJ×̧évZµcÛýNÈñSæÁ<-ðh×(­ w:•Ûúš,æé¹SÊ8 Rã•ùí°lZâàÉ7¥?& ÍñWüRb&ŒÈçÇÄt“×òUè”où Qµ6ôcgDz€§¸&¯«3Û-ëÃOÇìtL(ìV]ØyûÌ$½ßçD3‹›>CÝœê“Ô`TTgR¢1¸"Í=¸ËLò6øþ³p§¢U8¸výwö½š€MnÞô¼Ì‚é›ZÙ\t0†'«6¦qÏhD9ö†vXm-îQÁ6êTøŽuw® óá›ñíThU<}ϼ“i…Õ»Á§RÚæ~·Ïß=š¾ÇtÉsYyt¥M†ÌNE˜ÜÖóñz1®Æ©,W‘ÒË;кü¬ &ødJ_Cü_~µ×·›ç5ï@âÕu.©Qß 塲›m¤£v+­ü© q§ðA‰¤@‹>‹gxù MñÕÂßÌ«)Âï¤g$_…uQ’<…ª”i•Œ[βpXS~”‘3š#sï_eÖ<ÖbFð@P“&obئk“´Cm°&œaMíÒ[!HÞñ£€r;£).Dv*•W…D ®ÂÚüþA(ôM(òsŒ{/ñ‰Þû¼¹6ÎðþÛ«5ƒ+HRCvLë·W¬kåƒâÕ.~Oº·:0þt2p¡øNÌYœ…÷~Ö—•Pd`g;|’çËþìiµY®2 È‹¤nQ±0=€œöãÇnÆRÙ]h%ïY@úI÷;í“‹j»Ÿ£Ë=orƒÓ¿/1ÔHŽTÆ1Ä¡®iC–ĘÕnšÞcΘ$¾«_DT7s”m:o\¢Á w³4H¿ ¬µtöÚ"Õ@õª¿Rsëf¹4ÎOï®î*! ª©9W„±¹Êk A·öèCw FŠZuA3]/Ô4°};8˜âÆö²\ØÑ~Aa `×ø±H'U£çy·(?GæFcÑDÕøº3DÛô~"u_çrãS=À5éÃ=S4ÏÅɉÁeª‹gZ ð*.E.¾¤±R¾ª$wÁVm¡6’®§â&Ÿëò…ÿtáS+žI¶2º û¤?[¯û„‹ø(wy«€bT&Üü”; ‚öÐíi²àwFd¬ì²1¡ÜKœÝÑÎ7AÛ^k¢qï°=˜„Z@Nš¶§e­,£#š †üp–·7²äÖ-Ì~Ñû²6S5g¦gÌ ¬¢q]ÖšÝ7Sò˜nÌVÙ%OGÝÔSC£?¢•˜íÚ*h&Sľ®‘KÒúÖ˜À1í¤&p¹Ûƒ‹%|Õ'X46„ÍuÚ[°ªƒIq×"ñX0‡YÅ* ŠYi¢”acn üè Ãwæ½:‚W¯ßððçÊ)Ðû=Ÿ¼ß?½[YìO³Ý:·Óª°Œç.«œ÷R›Rã2Î# +º¦¸ÒrÒê²ÞH6;€Ÿê,~#r±–7C;’H×ù6],î༞Nl˜èFG0q.F{èG¡"b½j¾¨)w]x‹¡«cè+ ™‚ļqGG뱑fßǸ³0¹†¤™lü®l>.~+×#W`à¨;$#ýÎ#2¯-3Q„‘ü2¨òã+¬@q¾8Ú"µÙ-enuÙW÷)Fy©Ù0Ø ”Be{s1N›E3ÑhA{Bi¤³äžÎ?9Ò[ùñÓ‰ooþþõ®YÔtùPüØû Âc¹/SØ¡”.‘­.ã•5S„ƒ:¤x´A&.•{íM!ÕÔ‰‚„‰‰{Ós ™áæœ5Çé„“@{éÑ®ÎÙ%}Ô&rûî,b\D,ˆ> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NZJDLB+CMBX12 /FontDescriptor 84 0 R /FirstChar 14 /LastChar 122 /Widths 75 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EUWOLL+CMBX9 /FontDescriptor 86 0 R /FirstChar 65 /LastChar 116 /Widths 78 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WCUNSU+CMR10 /FontDescriptor 88 0 R /FirstChar 11 /LastChar 127 /Widths 79 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TJNTDN+CMR12 /FontDescriptor 90 0 R /FirstChar 44 /LastChar 127 /Widths 81 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RJJKBA+CMR17 /FontDescriptor 92 0 R /FirstChar 72 /LastChar 121 /Widths 82 0 R >> endobj 22 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UJRPBG+CMR6 /FontDescriptor 94 0 R /FirstChar 49 /LastChar 53 /Widths 68 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XNDOVD+CMR7 /FontDescriptor 96 0 R /FirstChar 49 /LastChar 53 /Widths 69 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AAFNRC+CMR8 /FontDescriptor 98 0 R /FirstChar 11 /LastChar 121 /Widths 72 0 R >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IMXNOB+CMR9 /FontDescriptor 100 0 R /FirstChar 11 /LastChar 121 /Widths 77 0 R >> endobj 47 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HUIQGM+CMSL10 /FontDescriptor 102 0 R /FirstChar 46 /LastChar 112 /Widths 62 0 R >> endobj 36 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZEESMU+CMSLTT10 /FontDescriptor 104 0 R /FirstChar 36 /LastChar 122 /Widths 63 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FNCZGX+CMSS10 /FontDescriptor 106 0 R /FirstChar 11 /LastChar 123 /Widths 74 0 R >> endobj 32 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YSEBLZ+CMSS8 /FontDescriptor 108 0 R /FirstChar 46 /LastChar 117 /Widths 64 0 R >> endobj 54 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PCVHBW+CMSSBX10 /FontDescriptor 110 0 R /FirstChar 65 /LastChar 85 /Widths 61 0 R >> endobj 31 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HWNESA+CMSSI10 /FontDescriptor 112 0 R /FirstChar 65 /LastChar 121 /Widths 65 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UEIZYW+CMSY10 /FontDescriptor 114 0 R /FirstChar 3 /LastChar 3 /Widths 80 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GUOWTK+CMSY6 /FontDescriptor 116 0 R /FirstChar 3 /LastChar 3 /Widths 73 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /UPQLYA+CMTI10 /FontDescriptor 118 0 R /FirstChar 11 /LastChar 120 /Widths 70 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LZKCUF+CMTI8 /FontDescriptor 120 0 R /FirstChar 11 /LastChar 120 /Widths 71 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XQBHIS+CMTI9 /FontDescriptor 122 0 R /FirstChar 44 /LastChar 117 /Widths 76 0 R >> endobj 26 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OCPOMV+CMTT10 /FontDescriptor 124 0 R /FirstChar 35 /LastChar 126 /Widths 67 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GPDUTY+CMTT9 /FontDescriptor 126 0 R /FirstChar 35 /LastChar 124 /Widths 66 0 R >> endobj 16 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [2 0 R 18 0 R 24 0 R 28 0 R 34 0 R 38 0 R] >> endobj 43 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [41 0 R 45 0 R 49 0 R 52 0 R 56 0 R 59 0 R] >> endobj 127 0 obj << /Type /Pages /Count 12 /Kids [16 0 R 43 0 R] >> endobj 128 0 obj << /Type /Catalog /Pages 127 0 R >> endobj 129 0 obj << /Producer (pdfTeX-1.40.3) /Creator (TeX) /CreationDate (D:20120222144602+01'00') /ModDate (D:20120222144602+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref 0 130 0000000000 65535 f 0000002450 00000 n 0000002345 00000 n 0000000015 00000 n 0000174301 00000 n 0000174162 00000 n 0000175849 00000 n 0000174023 00000 n 0000173884 00000 n 0000174855 00000 n 0000176408 00000 n 0000173743 00000 n 0000175280 00000 n 0000175987 00000 n 0000174716 00000 n 0000176267 00000 n 0000176832 00000 n 0000006079 00000 n 0000005971 00000 n 0000002644 00000 n 0000176125 00000 n 0000174578 00000 n 0000174440 00000 n 0000009473 00000 n 0000009365 00000 n 0000006218 00000 n 0000176549 00000 n 0000012202 00000 n 0000012094 00000 n 0000009589 00000 n 0000176691 00000 n 0000175706 00000 n 0000175422 00000 n 0000014546 00000 n 0000014438 00000 n 0000012389 00000 n 0000175136 00000 n 0000016825 00000 n 0000016717 00000 n 0000014697 00000 n 0000019077 00000 n 0000018969 00000 n 0000016941 00000 n 0000176941 00000 n 0000022019 00000 n 0000021911 00000 n 0000019205 00000 n 0000174994 00000 n 0000025333 00000 n 0000025225 00000 n 0000022194 00000 n 0000028810 00000 n 0000028702 00000 n 0000025508 00000 n 0000175563 00000 n 0000032064 00000 n 0000031956 00000 n 0000028938 00000 n 0000033567 00000 n 0000033459 00000 n 0000032180 00000 n 0000033683 00000 n 0000033827 00000 n 0000034200 00000 n 0000034566 00000 n 0000035007 00000 n 0000035357 00000 n 0000035735 00000 n 0000036121 00000 n 0000036169 00000 n 0000036217 00000 n 0000036873 00000 n 0000037535 00000 n 0000038219 00000 n 0000038243 00000 n 0000038887 00000 n 0000039519 00000 n 0000039958 00000 n 0000040610 00000 n 0000040938 00000 n 0000041581 00000 n 0000041603 00000 n 0000042068 00000 n 0000042382 00000 n 0000052180 00000 n 0000052534 00000 n 0000055201 00000 n 0000055431 00000 n 0000071721 00000 n 0000072253 00000 n 0000077510 00000 n 0000077788 00000 n 0000083347 00000 n 0000083609 00000 n 0000086033 00000 n 0000086271 00000 n 0000088688 00000 n 0000088926 00000 n 0000098991 00000 n 0000099399 00000 n 0000105345 00000 n 0000105623 00000 n 0000107578 00000 n 0000107808 00000 n 0000113160 00000 n 0000113449 00000 n 0000121081 00000 n 0000121458 00000 n 0000124339 00000 n 0000124585 00000 n 0000128030 00000 n 0000128279 00000 n 0000131816 00000 n 0000132071 00000 n 0000133430 00000 n 0000133663 00000 n 0000135038 00000 n 0000135269 00000 n 0000144551 00000 n 0000144858 00000 n 0000151613 00000 n 0000151899 00000 n 0000154531 00000 n 0000154766 00000 n 0000162545 00000 n 0000162882 00000 n 0000173314 00000 n 0000177051 00000 n 0000177119 00000 n 0000177172 00000 n trailer << /Size 130 /Root 128 0 R /Info 129 0 R /ID [ ] >> startxref 177444 %%EOF quilt-0.61/doc/Makefile0000644000175000017500000000101411634336352015311 0ustar mquinsonmquinsonall : quilt.pdf quilt-rus.pdf quilt.ps : quilt.dvi dvips -t letter -o $@ $< quilt.pdf: main.tex pdflatex --jobname=quilt -t letter $< quilt.dvi : main.tex latex $< && \ mv main.dvi $@ quilt-rus.ps : quilt-rus.dvi dvips -t letter -o $@ $< quilt-rus.pdf: main-rus.tex pdflatex --jobname=quilt-rus -t letter $< quilt-rus.dvi : main-rus.tex latex $< && \ mv main-rus.dvi $@ clean: rm -f {main,quilt}.{dvi,log,aux} {main,quilt}-rus.{dvi,log,aux} distclean: clean rm -f quilt.{ps,pdf,dvi} quilt-rus.{ps,pdf,dvi} quilt-0.61/doc/README.MAIL0000644000175000017500000001003511634336352015255 0ustar mquinsonmquinsonQUILT MAIL COMMAND ================== The mail command starts up the system editor ($EDITOR, or vi if $EDITOR is undefined) with an template in Internet Message Format (RFC 2822). This template is used to generate an introduction, as well as one message for each patch in the selected range of the series file. The template is used as follows: The headers are used in each message generated, and modified as required. The template body is used only for the introduction. In the template, the headers can be modified, additional headers added, and unneeeded headers can be removed. The template header also contains a special Subject-Prefix header which defines a prefix for each subject header. The @num@ and @total@ macros in the Subject-Prefix header are replaced with the patch number and the total number of patches, respectively. The patch number @num@ is zero-padded to the same width that @total@ has. Each message is assigned a unique Message-Id header, and all messages other than the introduction are made to refer to the introduction (using a References header) for proper message threading in mail clients. Patch filenames are stored in Content-Disposition headers so that mail clients will know the original filename. The message timestamps in Date headers in each message is incremented by one second per message, starting with the timestamp of the introduction. If a ~/.signature file exists, this file is appended to each message generated. Recipients and headers can be added, and existing headers can be replaced, individually in each message based on the headers in the introduction. Quilt does not enforce a specific patch file format. The mail command has a built-in heuristic for extracting subjects from patches, though: * if the patch starts with something that looks like a mail header, and there is a Subject header, use this as the subject, or else * if the patch has DESC a line followed by an EDESC line, use the text in between as the subject, or else * if the first paragraph is short enough to serve as a subject (150 characters or less), use the first paragraph as the subject. All bracketed fields and Fwd:, Fw:, Re:, Aw: are stripped from subject headers as well. If no subject can be extracted from a patch, or there are duplicate subjects, the mail command will print an error message and abort. In case a patch header contains a line starting with `Cc:', `Acked-by:', or `Signed-off-by:', the email address specified is added to the CC header for this patch. If a patch header contains a line starting with `To:', the email address specified is added to To header for this patch. If the user specified in `To:', `Cc:', `Acked-by:', or `Signed-off-by:' equals the current user's name ($LOGNAME or $(whoami) if LOGNAME is undefined), this does not add a recipient. Each recipient will occur in the resulting message only once. Duplicates are filtered out. This happens as the headers are read, so the relative order of the To, Cc, and Bcc headers should not be changed. Recipients are checked for RFC 2822 conformance (at least that is the intention; actually the checks are not perfect). This means that special characters must be quoted, and 8-bit characters must be encoded. In practice it probably makes little sense to use anything fancy right now; this area still needs some work. Character set recognition and proper qualifying is also still missing. The heuristic can be overridden by defining a quilt_mail_patch_filter function in ~/.quiltrc or /etc/quilt.quiltrc. This function is passed the patch name as argument (without the $QUILT_PATCHES prefix). It shall read the patch from standard input, and write a RFC 2822 message header and the patch to standard output. Headers of the form ``Recipient-$X: ...'' denote recipients to be added to the $X header (for example, ``Recipient-Cc: agruen@suse.de''). Headers of the form ``Replace-$X: ...'' specify that header $X is to be replaced by this header (for eaxmple, ``Replace-Subject: Patch description''). All other headers are appended to the existing headers. quilt-0.61/doc/README.EMACS0000644000175000017500000000134711634336352015371 0ustar mquinsonmquinsonIntroduction ============ quilt-el minor mode (lib/quilt.el) is toggled by `M-x quilt-mode'. It provides the following features: - You can issue many quilt sub-commands by shortcut keys. By using these keys, quilt-el can also detect moving the patch stack and can refresh corresponding buffers automatically. - If a buffer is associated with the file which is not included in the topmost patch, the buffer becomes read-only. So you can avoid editing wrong files accidentally. - After quilt-el is once enabled, all files which you open are checked whether it is in a quilt hierarchy or not. If so, corresponding buffer becomes quilt-mode automatically. -- Satoru Takeuchi , Sun, 14 Jan 2007 23:57:29 +0900 quilt-0.61/po/quilt.pot0000644000175000017500000007476212251154460015422 0ustar mquinsonmquinson#: bin/quilt.in:36 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "" #: bin/quilt.in:37 msgid " quilt --version" msgstr "" #: bin/quilt.in:39 msgid "Commands are:" msgstr "" #: bin/quilt.in:44 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "" #: quilt/add.in:25 msgid "" "\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 already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "" #: quilt/delete.in:25 msgid "" "\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.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "" #: quilt/delete.in:102 quilt/scripts/patchfns.in:589 msgid "Patch %s is currently applied\\n" msgstr "" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [file ...]\\n" msgstr "" #: quilt/diff.in:28 msgid "" "\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 ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine 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" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" #: quilt/diff.in:218 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" #: quilt/diff.in:232 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" #: quilt/diff.in:241 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:273 quilt/files.in:105 quilt/mail.in:418 msgid "Patch %s not applied before patch %s\\n" msgstr "" #: quilt/diff.in:341 msgid "File %s is not being modified\\n" msgstr "" #: quilt/diff.in:360 quilt/refresh.in:234 msgid "Diff failed, aborting\\n" msgstr "" #: quilt/diff.in:367 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "" #: quilt/fork.in:102 quilt/refresh.in:346 msgid "Fork of patch %s created as %s\\n" msgstr "" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" #: quilt/import.in:71 msgid "Patch headers differ:\\n" msgstr "" #: quilt/import.in:74 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" #: quilt/import.in:139 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" #: quilt/import.in:169 msgid "Patch %s is applied\\n" msgstr "" #: quilt/import.in:178 msgid "Patch %s already exists in series.\\n" msgstr "" #: quilt/import.in:184 msgid "Patch %s exists. Replace with -f.\\n" msgstr "" #: quilt/import.in:195 msgid "Replacing patch %s with new version\\n" msgstr "" #: quilt/import.in:199 msgid "Importing patch %s\\n" msgstr "" #: quilt/import.in:201 msgid "Importing patch %s (stored as %s)\\n" msgstr "" #: quilt/import.in:214 msgid "Failed to import patch %s\\n" msgstr "" #: quilt/import.in:223 quilt/refresh.in:333 msgid "Failed to insert patch %s into file series\\n" msgstr "" #: quilt/mail.in:24 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" #: quilt/mail.in:302 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" #: quilt/mail.in:446 msgid "Unable to extract a subject header from %s\\n" msgstr "" #: quilt/mail.in:470 msgid "Patches %s have duplicate subject headers.\\n" msgstr "" #: quilt/mail.in:479 msgid "File %s does not exist\\n" msgstr "" #: quilt/mail.in:539 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" #: quilt/mail.in:542 msgid "Introduction has no subject header\\n" msgstr "" #: quilt/mail.in:656 msgid "Introduction saved as %s\\n" msgstr "" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "" #: quilt/new.in:108 quilt/refresh.in:342 msgid "Failed to create patch %s\\n" msgstr "" #: quilt/new.in:111 msgid "Patch %s is now on top\\n" msgstr "" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" #: quilt/patches.in:24 msgid "Usage: quilt patches [-v] {file} [files...]\\n" msgstr "" #: quilt/patches.in:27 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\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\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" #: quilt/pop.in:100 quilt/scripts/patchfns.in:892 msgid "Failed to copy files to temporary directory\\n" msgstr "" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "" #: quilt/pop.in:252 quilt/scripts/patchfns.in:498 msgid "No patches applied\\n" msgstr "" #: quilt/pop.in:259 quilt/push.in:397 msgid "Now at patch %s\\n" msgstr "" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" #: quilt/push.in:27 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "" #: quilt/push.in:180 msgid "Applying patch %s\\n" msgstr "" #: quilt/push.in:214 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "" #: quilt/push.in:218 msgid "Patch %s appears to be empty; applied\\n" msgstr "" #: quilt/push.in:222 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" #: quilt/push.in:232 msgid "Patch %s can be reverse-applied\\n" msgstr "" #: quilt/push.in:235 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" #: quilt/push.in:377 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/refresh.in:26 msgid "" "\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" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "" #: quilt/refresh.in:202 msgid "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" msgstr "" #: quilt/refresh.in:240 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" #: quilt/refresh.in:246 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" #: quilt/refresh.in:252 quilt/refresh.in:354 msgid "Nothing in patch %s\\n" msgstr "" #: quilt/refresh.in:324 msgid "Patch %s is unchanged\\n" msgstr "" #: quilt/refresh.in:352 msgid "Refreshed patch %s\\n" msgstr "" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "" #: quilt/remove.in:25 msgid "" "\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" "\tRemove named files from the named patch.\n" msgstr "" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "" #: quilt/scripts/patchfns.in:217 quilt/scripts/patchfns.in:511 msgid "%s is not a regular file\\n" msgstr "" #: quilt/scripts/patchfns.in:465 quilt/scripts/patchfns.in:482 msgid "No patches in series\\n" msgstr "" #: quilt/scripts/patchfns.in:467 quilt/scripts/patchfns.in:484 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:540 msgid "Patch %s is not in series\\n" msgstr "" #: quilt/scripts/patchfns.in:568 msgid "Patch %s is not applied\\n" msgstr "" #: quilt/scripts/patchfns.in:605 msgid "File series fully applied, ends at patch %s\\n" msgstr "" #: quilt/scripts/patchfns.in:638 msgid "Patch %s does not exist\\n" msgstr "" #: quilt/scripts/patchfns.in:910 msgid "Failed to patch temporary files\\n" msgstr "" #: quilt/scripts/patchfns.in:951 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" #: quilt/scripts/patchfns.in:1095 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "" #: quilt/series.in:22 msgid "Usage: quilt series [-v]\\n" msgstr "" #: quilt/series.in:25 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\t\n" "-v\tVerbose, more user friendly output.\n" msgstr "" #: quilt/setup.in:34 quilt/setup.in:53 msgid "Directory %s exists\\n" msgstr "" #: quilt/setup.in:59 msgid "File %s exists\\n" msgstr "" #: quilt/setup.in:99 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" #: quilt/setup.in:102 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" #: quilt/setup.in:173 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" #: quilt/setup.in:176 msgid "The -v option will show rpm's output\\n" msgstr "" #: quilt/setup.in:228 quilt/setup.in:240 msgid "File %s not found\\n" msgstr "" #: quilt/setup.in:231 quilt/setup.in:243 msgid "Unpacking archive %s\\n" msgstr "" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" quilt-0.61/po/fr.po0000644000175000017500000016216112251155377014506 0ustar mquinsonmquinson# quilt french translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Martin Quinson , 2003, 2013. # Jean Delvare , 2005, 2011. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: quilt 0.43\n" "PO-Revision-Date: 2013-12-08 21:47+0100\n" "Last-Translator: Jean Delvare \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:36 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Usage : quilt [--trace[=verbose]] [--quiltrc=XX] commande [-h] ..." #: bin/quilt.in:37 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:39 msgid "Commands are:" msgstr "Les commandes sont :" #: bin/quilt.in:44 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Options globales :\n" "\n" "--trace\n" "\tLance la commande en mode trace de bash (-x). Pour le debug interne.\n" "\n" "--quiltrc fichier\n" "\tUtilise le fichier de configuration spécifié au lieu de ~/.quiltrc\n" "\t(ou @ETCDIR@/quilt.quiltrc si ~/.quiltrc n'existe pas). Voir la\n" "\tdocumentation pdf pour plus de détails sur son contenu potentiel.\n" "La valeur spéciale \\\"-\\\" spécifie à quilt de ne lire aucun fichier\n" "de configuration.\n" "\n" "--version\n" "\tAffiche le numéro de version et sort immédiatement." #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Usage : quilt add [-P patch] {fichier} ...\\n" #: quilt/add.in:25 msgid "" "\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 already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\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 à la fois plus haut dans la pile\n" "et déjà appliqués ne peuvent pas être ajoutés.\n" "\n" "-P patch\n" "\tPatch auquel les fichiers doivent être ajoutés.\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "Le fichier %s est situé en dessous de %s\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Le fichier %s est déjà dans le patch %s\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Le fichier %s est modifié par le patch %s\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Impossible d'ajouter le lien symbolique %s\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Impossible de faire une copie de sécurité de %s\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Le fichier %s a été ajouté au patch %s\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Usage : quilt annotate [-P patch] {fichier}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Affiche une version annotée du fichier spécifié, montrant quel\n" "patch modifie chaque ligne. Seuls les patches appliqués sont\n" "pris en compte.\n" "\n" "-P patch\n" "\tAnnote le fichier tel qu'il se trouve après application du patch\n" "\tspécifié plutôt que d'aller jusqu'au patch au sommet.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "Usage : quilt applied [patch]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Affiche la liste des patches appliqués, ou la liste de tous les patches\n" "jusqu'à celui passé en paramètre (inclus).\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Usage : quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:25 msgid "" "\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.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\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).\n" "\n" "-n\tEfface le patch qui suit celui qui est au sommet, au lieu du\n" "\tpatch spécifié ou de celui qui est au sommet.\n" "\n" "-r\tSupprime également le patch enlevé du répertoire patches.\n" "\n" "--backup\n" "\tRenomme le fichier en patch~ au lieu de le supprimer.\n" "\tIgnoré si \\`-r' n'est pas également utilisé.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "Pas de patch suivant\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:589 msgid "Patch %s is currently applied\\n" msgstr "Le patch %s est actuellement appliqué\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Patch %s retiré\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "Impossible de faire une copie de sécurité du fichier %s\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [file ...]\\n" msgstr "" "Usage : quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utilitaire] [--no-timestamps] [--no-" "index] [--sort] [--color] [fichier ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\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 ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine 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" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\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 ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte. \n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte. \n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "-z\tAffiche sur la sortie standard les changements effectués par rapport\n" "\tau patch spécifié (ou celui au sommet à défaut).\n" "\n" "-R\tCrée un diff inverse.\n" "\n" "-P patch\n" "\tCrée un diff pour ce patch (par défaut, le patch au sommet)\n" "\n" "--combine patch\n" "\tCrée un patch combiné pour tous les patches entre celui spécifié\n" "\tici et celui spécifié avec l'argument -P. Utiliser «-» comme nom\n" "\tde patch est équivalent à spécifier le premier patch appliqué.\n" "\n" "--snapshot\n" "\tCrée un diff à partir de l'instantané (voir «quilt snapshot -h»).\n" "\n" "--diff=utilitaire\n" "\tUtilise le programme spécifié pour générer le diff. Ce programme\n" "\test invoqué avec le nom du fichier originel et celui du nouveau \n" "\tfichier comme arguments.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), de manière automatique\n" "\t(«auto») ou jamais («never»).\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de préserver leur ordre\n" "\td'origine.\n" #: quilt/diff.in:218 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Les options «--combine», «--snapshot» et «-z» ne peuvent pas être combinées." "\\n" #: quilt/diff.in:232 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Impossible de créer des patches avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place\\n" #: quilt/diff.in:241 msgid "No snapshot to diff against\\n" msgstr "Pas d'instantané avec lequel comparer\\n" #: quilt/diff.in:273 quilt/files.in:105 quilt/mail.in:418 msgid "Patch %s not applied before patch %s\\n" msgstr "Le patch %s n'est pas appliqué avant %s\\n." #: quilt/diff.in:341 msgid "File %s is not being modified\\n" msgstr "Le fichier %s n'est pas modifié.\\n" #: quilt/diff.in:360 quilt/refresh.in:234 msgid "Diff failed, aborting\\n" msgstr "Le diff a échoué. Abandon.\\n" #: quilt/diff.in:367 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Attention: un patch plus recent modifie des fichiers communs à %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "Usage : quilt edit {fichier} ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Édite le(s) fichier(s) spécifiés au sein de \\$EDITOR (%s) après addition \n" "au patch du sommet.\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Usage : quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Affiche la liste des fichiers que le patch au sommet (ou celui spécifé)\n" "modifie.\n" "\n" "-a\tListe tous les fichiers de tous les patches actuellement appliqués.\n" "\n" "-l\tAffiche également le nom du patch.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" "\n" "--combine patch\n" "\tAffiche la liste pour tous les patches entre ce patch et le patch au\n" "\tsommet (ou le patch spécifié). Le nom de fichier « - » correspond au\n" "\tpremier patch appliqué.\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Usage : quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Intégrer le patch lu depuis l'entrée standard dans le patch au sommet :\n" "Après s'être assuré que tous les fichiers modifiés par le patch en entrée \n" "font déjà partie du patch au sommet, le patch d'entrée est appliqué avec \n" "le strip-level spécifié (1 par défaut).\n" "\n" "-R\tApplique le patch à l'envers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-f\tForce l'application, même si cela doit produire des rejets. Excepté en\n" "\tmode silencieux, applique le patch interactivement : l'utilitaire patch\n" "\tpeut poser des questions.\n" "\n" "-p strip-level\n" "\tNombre de niveaux de répertoires à retirer lors de l'application du \n" "\tpatch.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Le fichier %s est peut-être corrompu\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "Usage : quilt fork [nouveau_nom]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Crée un embranchement («fork») au niveau du patch au sommet. Créer un\n" "embranchement signifie créer une copie à l'identique d'un patch sous un\n" "nouveau nom, et utiliser ce nouveau nom au lieu du nom d'origine dans la\n" "série courante. C'est utile lorsqu'un patch doit être modifié mais que\n" "la version originale doit également être préservée, par exemple parce\n" "qu'elle est utilisée dans une autre série, ou pour conserver\n" "l'historique d'un patch. Une séquence de commandes classique serait :\n" "fork (créer un embranchement), edit (éditer le patch), refresh\n" "(rafraîchir le patch).\n" "\n" "Si nouveau_nom n'est pas précisé, le nouveau nom du patch sera le nom\n" "actuel suivi de \\`-2'. Si le nom du patch se termine déjà par un\n" "tiret suivi d'un nombre, ce nombre est augmenté à la place (par\n" "exemple : patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nouveau nom\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Le fork de %s en %s a échoué\\n" #: quilt/fork.in:102 quilt/refresh.in:346 msgid "Fork of patch %s created as %s\\n" msgstr "Le fork de %s a été créé en tant que %s\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Usage : quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Génère un graphe orienté compatible dot(1), qui représente les\n" "dépendances entre les patches appliqués. Un patch dépend d'un autre patch\n" "si les deux modifient un même fichier, ou, avec l'option --lines, si\n" "leurs modifications se recouvrent. Par défaut, le graphe inclut tous les\n" "patches dont le patch au sommet dépend.\n" "Si le nom d'un patch est spécifié, le graphe est créé pour celui-ci au\n" "lieu du patch au sommet. Le graphe inclura alors tous les patches qui\n" "en dépendent, ainsi que tous les patches dont lui-même dépend.\n" "\n" "--all\tGénère un graphe incluant tous les patches appliqués et\n" "\tleurs dépendances. (Les patches non-appliqués ne sont pas\n" "\tinclus.)\n" "\n" "--reduce\n" "\tElimine les arcs transitifs du graphe.\n" "\n" "--lines[=num]\n" "\tGénère les dépendances en regardant les lignes modifiées par\n" "\tles patches. A moins qu'une valeur différente ne soit spécifiée,\n" "\tdeux lignes de contexte sont incluses.\n" "--edge-labels=files\n" "\tEtiquette les arcs avec le nom des fichiers modifiés par les\n" "\tpatches adjacents.\n" "\n" "-T ps\tProduit directement un fichier PostScript.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Usage : quilt grep [-h|options] {motif}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Recherche récursivement un motif dans les fichiers source, en omettant\n" "les patches et les meta-informations de quilt. Si aucun fichier n'est\n" "précisé, recherche dans tout l'arbre des sources. Voir la page de manuel\n" "de grep(1) pour les options.\n" "\n" "-h\tAffiche cette aide. L'option -h de grep peut être passée\n" "\taprès un double tiret (--). Les motifs qui commencent par un\n" "\ttiret peuvent être passées après un second double tiret\n" "\t(-- --).\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Affiche ou modifie l'en-tête du patch au sommet ou spécifié.\n" "\n" "-a, -r, -e\n" "\tAjoute à la fin de (-a) ou remplace (-r) l'en-tête existant, ou\n" "\tédite (-e) l'en-tête en utilisant \\$EDITOR (%s). Si aucune de\n" "\tces options n'est utilisée, affiche l'en-tête actuel du patch.\n" "\n" "--strip-diffstat\n" "\tOmet la partie diffstat de l'en-tête.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces de fin de ligne de l'en-tête.\n" "\n" "--backup\n" "\tCrée une sauvegarde de la version originale du patch en tant\n" "\tque patch~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "En-tête du patch %s remplacé\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Texte ajouté à la fin de l'en-tête du patch %s\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Usage : quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "fichier_de_patch ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importe des patchs externes. Ces patches sont insérés juste après\n" "le patch au sommet, et doivent ensuite être appliqués (utiliser\n" "« quilt push »).\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" "-R\n" "\tApplique le patch à l'envers.\n" "\n" "-P patch\n" "\tNom de fichier à utiliser au sein de quilt. Cette option ne peut être\n" "\tutilisée que lors de l'import d'un patch unique.\n" "\n" "-f\tÉcrase/met à jour les patchs existants.\n" "\n" "-d {o|a|n}\n" "\tLors du remplacement d'un patch existant, garde l'ancien (o), tous\n" "\t(a), ou le nouvel (n) en-tête. Si les deux patches incluent des\n" "\ten-têtes, cette option doit être spécifiée. Cette option n'est\n" "\teffective que lorsque -f est utilisé.\n" #: quilt/import.in:71 msgid "Patch headers differ:\\n" msgstr "Les en-têtes des patches diffèrent :\\n" #: quilt/import.in:74 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Veuillez utiliser -d {o|a|n} pour spécifier quel(s) en-tête(s) conserver.\\n" #: quilt/import.in:139 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "L'option « -P » ne peut être utilisé que lors de l'import d'un seul patch.\\n" #: quilt/import.in:169 msgid "Patch %s is applied\\n" msgstr "Le patch %s est appliqué\\n" #: quilt/import.in:178 msgid "Patch %s already exists in series.\\n" msgstr "Le patch %s existe déjà dans la série.\\n" #: quilt/import.in:184 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Le patch %s existe. Utilisez -f pour le remplacer.\\n" #: quilt/import.in:195 msgid "Replacing patch %s with new version\\n" msgstr "Remplacement du patch %s avec la nouvelle version\\n" #: quilt/import.in:199 msgid "Importing patch %s\\n" msgstr "Import du patch %s\\n" #: quilt/import.in:201 msgid "Importing patch %s (stored as %s)\\n" msgstr "Import du patch %s (enregistré dans %s)\\n" #: quilt/import.in:214 msgid "Failed to import patch %s\\n" msgstr "Impossible d'importer le patch %s\\n" #: quilt/import.in:223 quilt/refresh.in:333 msgid "Failed to insert patch %s into file series\\n" msgstr "Impossible d'inserer %s dans le fichier de série.\\n" #: quilt/mail.in:24 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "Usage : quilt mail {--mbox fichier|--send} [-m texte] [-M fichier] [--prefix " "préfixe] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [premier_patch [dernier_patch]]\\n" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Crée des messages de courrier à partir de tous les patches de la série.\n" "Ces fichiers sont ensuite stockés dans un fichier mbox ou expédiés\n" "immédiatement. Un éditeur est ouvert avec un patron pour saisir une\n" "introduction. Voir %s pour plus de détails.\n" "Lorsqu'un intervalle de patches est spécifié, \\`-' utilisé comme nom du\n" "premier patch désigne le premier patch de la série, tandis que \\`-'\n" "utilisé comme nom du dernier patch désigne le dernier patch de la série.\n" "\n" "-m texte\n" "\n" "\tTexte à utiliser pour l'introduction. Lorsque cette option est\n" "\tutilisée, l'éditeur n'est pas invoqué, et les patches sont traités\n" "\timmédiatement.\n" "\n" "-M fichier\n" "\tComme l'option -m, mais lit l'introduction depuis un fichier.\n" "\n" "--prefix préfixe\n" "\tUtiliser un préfixe alternatif pour générer la partie du sujet qui se\n" "\ttrouve entre crochets. Le préfixe par défaut est \\`patch'.\n" "\n" "--mbox fichier\n" "\tStocke les messages dans le fichier spécifié au format mbox. Le\n" "\tfichier peut être expédié plus tard en utilisant par exemple\n" "\tformail.\n" "\n" "--send\n" "\tExpédie les messages directement en utilisant %s.\n" "\n" "--sender\n" "\tL'adresse d'expéditeur à utiliser pour l'enveloppe. L'adresse doit\n" "\têtre de la forme \\`utilisateur@nom.de.domaine' (sans nom\n" "\td'affichage).\n" "\n" "--from, --subject\n" "\tLes valeurs pour les champs d'en-tête De (From) et Objet (Subject),\n" "\trespectivement.\n" "\n" "--to, --cc, --bcc\n" "\tAjoute un destinataire dans le champ d'en-tête A, Copie ou Copie\n" "\tcachée, respectivement.\n" "\n" "--reply-to message\n" "\tAjoute les en-têtes appropriés pour répondre au message spécifié.\n" #: quilt/mail.in:302 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "Impossible de déterminer l'adresse d'expéditeur. Utilisez --sender." #: quilt/mail.in:446 msgid "Unable to extract a subject header from %s\\n" msgstr "Impossible d'extraire une ligne de sujet de %s\\n" #: quilt/mail.in:470 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Les patches %s ont des sujets dupliqués.\\n" #: quilt/mail.in:479 msgid "File %s does not exist\\n" msgstr "Le fichier %s n'existe pas\\n" #: quilt/mail.in:539 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" "L'introduction n'a pas de ligne de sujet (sauvegardé en tant que %s)\\n" #: quilt/mail.in:542 msgid "Introduction has no subject header\\n" msgstr "L'introduction ne contient pas de ligne de sujet\\n" #: quilt/mail.in:656 msgid "Introduction saved as %s\\n" msgstr "Introduction sauvegardée en tant que %s\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Usage : quilt new [-p n|-p ab] {nom_de_patch}\\n" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Crée un nouveau patch au nom spécifié, et l'insère après le patch\n" "au sommet dans le fichier de série. Le nom peut être préfixé avec\n" "le nom d'un répertoire, ce qui permet de grouper les patches apparentés.\n" "\n" "-p n\tCrée un patch de type -p n (-p0 et -p1 sont supportés).\n" "\n" "-p ab\tCrée un patch de type -p1, mais utilise a/fichier et b/fichier\n" "\tcomme nom original et nouveau nom, respectivement, au lieu des valeurs\n" "\tpar défaut rép.orig/fichier and rép/fichier.\n" "\n" "Quilt peut être utilisé dans les sous-répertoires d'une arborescence\n" "source. La racine de l'arbre est déterminée en cherchant un répertoire\n" "nommé %s en amont du répertoire courant. Créez un repertoire %s dans le\n" "répertoire devant être la racine si quilt choisi un répertoire trop haut\n" "dans l'arborescence.\n" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Impossible de créer des patchs avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place.\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) et QUILT_PC(%s) doivent être différents\\n" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Le patch %s existe déjà\\n" #: quilt/new.in:108 quilt/refresh.in:342 msgid "Failed to create patch %s\\n" msgstr "Impossible de créer le patch %s\\n" #: quilt/new.in:111 msgid "Patch %s is now on top\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "Usage : quilt next [patch]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\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" #: quilt/patches.in:24 msgid "Usage: quilt patches [-v] {file} [files...]\\n" msgstr "Usage : quilt patches [-v] {fichier} [fichiers...]\\n" #: quilt/patches.in:27 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Affiche la liste des patches modifiant l'un des fichiers spécifiés. \n" "\n" "Une heuristique est utilisée pour déterminer quels fichiers sont \n" "modifiés par les patches n'étant pas appliqués. Veuillez noter que \n" "cette heuristique est bien plus lente que l'étude des patches \n" "appliqués.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "Usage : quilt pop [-afRqv] [num|patch]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\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\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Retire un ou plusieurs patches de la pile. Si aucun argument n'est \n" "spécifié, le patch au sommet est retiré. Si un nombre est passé en\n" "argument, cela indique la quantité de patchs à retirer. Si un nom \n" "de patch est spécifié, il est retiré ainsi que tous ceux placés avant\n" "lui dans la série. Le nom des patchs peut contenir le préfix patches/\n" "de façon à pouvoir profiter de la complétion sur le nom de fichier.\n" "\n" "-a\tRetire tous les patches de la série.\n" "\n" "-f\tForce l'action. L'état avant que les patches ne soient retirés\n" "\tsera restauré depuis les fichiers de sauvegarde.\n" "\n" "-R\tVérifie que le patch s'enlève proprement ; ne se base pas sur\n" "\tles horaires de dernière modification des fichiers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-v\tOpère verbeusement.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:892 msgid "Failed to copy files to temporary directory\\n" msgstr "Impossible de copier les fichiers dans le répertoire temporaire\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Le patch %s ne se retire pas proprement (rafraichissez le, ou forcez avec -" "f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Le patch %s semble vide, enlevé\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Retrait de %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Le patch %s doit être rafraichi au préalable.\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Aucun patch retiré\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:498 msgid "No patches applied\\n" msgstr "Aucun patch n'est appliqué\\n" #: quilt/pop.in:259 quilt/push.in:397 msgid "Now at patch %s\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "Usage : quilt previous [-n] [patch]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\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" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "Usage : quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Applique un ou plusieurs patches de la série. Si aucun argument n'est\n" "spécifié, le prochain patch est appliqué. Si un nombre est passé en " "argument,\n" "cela indique la quantité de patchs à appliquer. Si un nom de patch est\n" "spécifié, il est appliqué ainsi que tous ceux placés avant lui dans la\n" "série. Le nom des patchs peut contenir le préfix patches/ de façon à " "pouvoir\n" "profiter de la complétion sur le nom de fichier.\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" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (valeur par défaut : 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tFusionne le patch avec les fichiers originaux (voir patch(1)).\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" "--color[=always|auto|never]\n" "\tApplique une coloration syntaxique, toujours («always»), de manière\n" "\tautomatique («auto») ou jamais («never»).\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Interrompu par l'utilisateur ; le patch %s n'a pas été appliqué.\\n" #: quilt/push.in:180 msgid "Applying patch %s\\n" msgstr "Application de %s\\n" #: quilt/push.in:214 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Le patch %s n'existe pas ; patch vide appliqué\\n" #: quilt/push.in:218 msgid "Patch %s appears to be empty; applied\\n" msgstr "Le patch %s semble vide. Il a été appliqué.\\n" #: quilt/push.in:222 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "%s a été appliqué (forcé ; vous devriez le rafraîchir)\\n" #: quilt/push.in:232 msgid "Patch %s can be reverse-applied\\n" msgstr "Le patch %s peut être appliqué à l'envers\\n" #: quilt/push.in:235 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" "Le patch %s ne s'applique pas proprement (forcez l'application avec -f)\\n" #: quilt/push.in:377 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Le patch au sommet %s doit être rafraichi au préalable.\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/refresh.in:26 msgid "" "\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" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "Rafraîchit un patch appliqué, ou celui au sommet à défaut. La " "documentation \n" "placée avant le début du patch dans le fichier 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, le \n" "script abandonne par défaut. Il est encore possible de forcer le \n" "rafraichissement avec -f. Dans ce cas, un avertissement sera affiché pour\n" "chaque fichier masqué, les changements apportés à ces fichiers seront \n" "ignorés et seuls les nouveaux changements apportés à des fichiers n'étant \n" "pas masqués par d'autres patches seront placés dans le patch généré.\n" "\n" "-p n\tCrée un patch du style -p n (-p0 ou -p1)\n" "\n" "-p ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte.\n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte.\n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "-z[nouveau_nom]\n" "\tCrée un nouveau patch contenant les modifications au lieu de\n" "\trafraîchir le patch au sommet. Si le nouveau nom n'est pas spécifié,\n" "\t\\`-2' est ajouté au nom du patch d'origine, etc. (voir la commande\n" "\tfork.)\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "--diffstat\n" "\tAjoute une section diffstat aux entêtes du patch, ou remet celle\n" "\texistante à jour.\n" "\n" "-f\tForce le rafraîchissement, même si des patches plus haut changent \n" "\tles mêmes fichiers.\n" "\n" "--backup\n" "\tCrée une copie de sauvegarde du patch en ajoutant ~ à la fin de \n" "\tson nom.\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de conserver leur ordre\n" "\td'origine.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces à la fin des lignes.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Seul le patch au sommet peut actuellement être rafraîchi avec -z\\n" #: quilt/refresh.in:202 msgid "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" msgstr "" "Impossible de rafraîchir des patchs avec -p%s. Veuillez spécifier -p0 ou -p1 " "à la place.\\n" #: quilt/refresh.in:240 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Des fichiers plus récents modifient les mêmes fichiers que %s.\n" "Forcez le rafraîchissement avec -f.\\n" #: quilt/refresh.in:246 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "Impossible d'utiliser --strip-trailing-whitespace sur un patch dont\n" "certains fichiers sont masqués.\\n" #: quilt/refresh.in:252 quilt/refresh.in:354 msgid "Nothing in patch %s\\n" msgstr "Le patch %s ne contient rien\\n" #: quilt/refresh.in:324 msgid "Patch %s is unchanged\\n" msgstr "Patch %s inchangé\\n" #: quilt/refresh.in:352 msgid "Refreshed patch %s\\n" msgstr "Patch %s rafraîchi\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Usage : quilt remove [-P patch] {fichier} ...\\n" #: quilt/remove.in:25 msgid "" "\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" "\tRemove named files from the named patch.\n" msgstr "" "\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 dont les fichiers doivent être retirés.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Le fichier %s n'est pas dans le patch %s.\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Impossible d'enlever le fichier %s du patch %s\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Le fichier %s a été enlevé du patch %s.\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Usage : quilt rename [-P patch] nouveau_nom\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Renomme le patch au sommet ou spécifié.\n" "\n" "-P patch\n" "\tPatch à renommer.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nom différent\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Le renommage de %s en %s a échoué\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s renommé en %s\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Usage : quilt revert [-P patch] {fichier} ...\\n" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Restaure un ou plusieurs fichiers du patch au sommet ou du patch spécifié :\n" "après l'opération, 'quilt diff -z' ne montrera plus aucune différence pour\n" "ces fichiers. Des fichiers modifiés par des patches plus haut dans la série\n" "ne peuvent pas être restaurés.\n" "\n" "-P patch\n" "\tPatch dont les fichiers doivent être restaurés.\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "Le fichier %s est inchangé\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Impossible de restaurer le fichier %s du patch %s.\\n" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "Modifications de %s dans le patch %s annulées\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Le nom `%s' est mal parenthésé\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "L'adresse de destination `%s' est invalide\n" #: quilt/scripts/patchfns.in:217 quilt/scripts/patchfns.in:511 msgid "%s is not a regular file\\n" msgstr "%s n'est pas un fichier régulier\\n" #: quilt/scripts/patchfns.in:465 quilt/scripts/patchfns.in:482 msgid "No patches in series\\n" msgstr "Aucun patch dans la série\\n" #: quilt/scripts/patchfns.in:467 quilt/scripts/patchfns.in:484 msgid "No series file found\\n" msgstr "Fichier de série non trouvé\\n" #: quilt/scripts/patchfns.in:540 msgid "Patch %s is not in series\\n" msgstr "Le patch %s n'est pas dans la série\\n" #: quilt/scripts/patchfns.in:568 msgid "Patch %s is not applied\\n" msgstr "Le patch %s n'est pas appliqué\\n" #: quilt/scripts/patchfns.in:605 msgid "File series fully applied, ends at patch %s\\n" msgstr "La série est complètement appliquée. Le dernier patch est %s.\\n" #: quilt/scripts/patchfns.in:638 msgid "Patch %s does not exist\\n" msgstr "Le patch %s n'existe pas\\n" #: quilt/scripts/patchfns.in:910 msgid "Failed to patch temporary files\\n" msgstr "Impossible de patcher les fichiers temporaires\\n" #: quilt/scripts/patchfns.in:951 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Les méta-données de quilt dans cet arbre de travail sont au format \n" "v%s, mais cette version de quilt ne peut traiter que jusqu'au \n" "format %s (inclus). Veuillez retirer vos patches avec la version \n" "utilisée pour les appliquer avant d'installer une version plus ancienne.\\n" #: quilt/scripts/patchfns.in:1095 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Votre arbre a été créé par une vieille version de quilt. Veuillez \n" "utiliser « quilt upgrade ».\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "SYNOPSIS : %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s : Je suis confus.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Attention : espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Attention : espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Suppression des espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Suppression des espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "En renommant %s en %s : %s\n" #: quilt/series.in:22 msgid "Usage: quilt series [-v]\\n" msgstr "Usage : quilt series [-v]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\t\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Affiche le nom de tous les patches de la série.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" #: quilt/setup.in:34 quilt/setup.in:53 msgid "Directory %s exists\\n" msgstr "Le répertoire %s existe\\n" #: quilt/setup.in:59 msgid "File %s exists\\n" msgstr "Le fichier %s existe\\n" #: quilt/setup.in:99 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "Usage : quilt setup [-d répertoire_source] [-v] [--sourcedir répertoire] [--" "fuzz=N] {fichier_spec|fichier_séries}\\n" #: quilt/setup.in:102 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Initialise un arbre de sources à partir d'un fichier de\n" "spécification rpm, ou d'un fichier de série quilt.\n" "\n" "-d\tPréfixe de chemin optionel (sous-répertoire).\n" "\n" "--sourcefdir\n" "\tRépertoire contenant les sources. Valeur par défaut : \\`.'.\n" "\n" "-v\tAffichage verbeux pour le debug.\n" "\n" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (nécessite rpm 4.6 ou supérieur).\n" #: quilt/setup.in:173 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "La section %%prep de %s a échoué ; les résultats sont peut-être incomplets\\n" #: quilt/setup.in:176 msgid "The -v option will show rpm's output\\n" msgstr "L'option -v montre les affichages de rpm\\\\n" #: quilt/setup.in:228 quilt/setup.in:240 msgid "File %s not found\\n" msgstr "Le fichier %s est introuvable\\n" #: quilt/setup.in:231 quilt/setup.in:243 msgid "Unpacking archive %s\\n" msgstr "Désarchivage de %s\\n" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Usage : quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Prend un instantané de l'état courant du répertoire de travail. Après " "cela, \n" "il reste possible de travailler normalement avec quilt en poussant et en \n" "retirant des patches. Un différentiel entre l'arbre au moment de " "l'instantané \n" "et son état courant peut être généré avec «quilt diff --snapshot».\n" "\n" "-d\tSupprime l'instantané actuel et termine.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "Usage : quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Affiche le nom du patch au sommet de la pile des patches actuellement\n" "appliqués.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Usage : quilt unapplied [patch]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Affiche la liste de tous les patches non appliqués, ou de tous les patches\n" "suivant celui indiqué en paramètre.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "Usage : quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Convertit les méta-données contenues dans un arbre de travail d'une \n" "ancienne version de quilt à la version actuelle. Cette commande n'est\n" "nécessaire que lorsque le format de ces méta-données change lors d'une\n" "mise à jour de quilt, mais que l'arbre de travail contient des données\n" "à l'ancien format. Dans ce cas, quilt vous demandera d'utiliser\n" "« quilt upgrade » explicitement.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Les méta-données de quilt dans %s sont déjà au format %s ; rien à faire\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Conversion des méta-données au format v%s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Échec de la conversion\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Veuillez retirer tous les patchs en utilisant « quilt pop -a » avec la \n" "version utilisée pour créer cet arbre de travail, ou effacez le répertoire\n" "%s et réappliquez complètement vos patchs.\\n" quilt-0.61/po/de.po0000644000175000017500000015541512251154460014463 0ustar mquinsonmquinson# translation of de.po to # German quilt translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Andreas Gruenbacher , 2003, 2005. # msgid "" msgstr "" "Project-Id-Version: de\n" "PO-Revision-Date: 2005-07-19 11:32+0200\n" "Last-Translator: Andreas Gruenbacher \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10\n" #: bin/quilt.in:36 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Verwendung: quilt [--trace[=verbose]] [--quiltrc=XX] befehl [-h] ..." #: bin/quilt.in:37 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:39 msgid "Commands are:" msgstr "Vorhandene Befehle:" #: bin/quilt.in:44 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Globale Optionen:\n" "\n" "--trace\n" "\tFührt die Kommandos im bash Trace-Modus (-x) aus. Für Debugging.\n" "\n" "--quiltrc datei\n" "\tVerwende die angegebene Konfigurationsdatei statt ~/.quiltrc (oder\n" "\t@ETCDIR@/quilt.quiltrc, wenn ~/.quiltrc fehlt). Siehe die pdf-" "Dokumentation\n" "\tfür mögliche Einstellungen. Der Dateiname \\`-' bedeutet, dass keine\n" "\tResource-Datei eingelesen werden soll.\n" "\n" "--version\n" "\tGibt die Versionsummer aus." #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Verwendung: quilt add [-P patch] {datei} ...\\n" #: quilt/add.in:25 msgid "" "\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 already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\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" "\tPatch, zu dem die Dateien hinzugefügt werden sollen.\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "Die Datei %s befindet sich unter dem Verzeichnis %s\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Datei %s ist bereits in Patch $patch\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Datei %s wird von Patch %s verändert\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Kann symbolische Verknüpfung %s nicht hinzufügen\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Konnte Datei %s nicht sichern\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Datei %s zu Patch %s hinzugefügt\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Verwendung: quilt annotate [-P patch] {datei}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Erzeuge ein Listing der angegebenen Datei das anzeigt, welche\n" "Patches welche Zeilen verändern. Nur angewandte Patches werden\n" "angezeigt.\n" "\n" "-P patch\n" "\tNur bis zum angegebenen Patch anstatt bis zum obersten Patch\n" "\tnach Änderungen suchen.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "Verwendung: quilt applied [patch]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Gibt eine Liste der angewandten Patches aus, oder eine Liste aller Patches\n" "vom Anfang der series-Datei bis zum angegebenen Patch.\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Verwendung: quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:25 msgid "" "\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.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\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.)\n" "\n" "-n\tLösche den nächsten (dem obersten folgenden) Patch statt des obersten\n" "\toder angegebenen.\n" "\n" "-r\tEntferne den Patch auch aus dem patches-Verzeichnis.\n" "\n" "--backup\n" "\tBenenne den Patch auf patch~, anstatt ihn zu löschen.\n" "\tHat nur in Kompination mit -r eine Wirkung.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "Kein Patch %s\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:589 msgid "Patch %s is currently applied\\n" msgstr "Patch %s ist momentan angewandt\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Entferne Patch %s\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Konnte Patch %s nicht entfernen\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "Konnte Datei %s nicht sichern\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "Konnte Patch %s nicht entfernen\\n" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [file ...]\\n" msgstr "" "Verwendung: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-" "z] [-R] [-P patch] [--snapshot] [--diff=programm] [--no-timestamps] [--no-" "index] [--sort] [--color] [datei ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\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 ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine 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" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\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\tErzeuge einen -p n Patch (n=0 oder n=1 wird unterstützt).\n" "\n" "-p ab\tErzeuge einen -p1-artigen Patch, verwende aber a/datei und\n" "\tb/datei als den ursprünglichen und neuen Dateinamen anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeuge ein Unified Diff (-u, -U) mit anzahl Kontextzeilen. Erzeuge\n" "\tein Context Diff (-c, -C) mit anzahl Kontextzeilen. Die Anzahl der\n" "\tKontextzeilen ist 3, wenn nicht anders angegeben.\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben.\n" "\n" "--no-index\n" "\tErzeuge keine \\`Index:'-Zeilen\n" "\n" "-z\tÄnderungen relativ zum angewandten Patch ausgeben.\n" "\n" "-P patch\n" "\tErzeuge ein Diff für den angegebenen Patch. (Wenn nicht angegeben,\n" "\toberster Patch.)\n" "\n" "--combine 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" "--snapshot\n" "\tErzeuge einen Patch gegen den Snapshot (siehe \\`quilt snapshot -h').\n" "\n" "--diff=programm\n" "\tVerwendet das angegebene Programm, um den Patch zu generieren. Das\n" "\tProgramm wird mit dem Dateinamen der ursprünglichen und der\n" "\tneuen Datei aufgerufen.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (immer, nur für Terminals, nie).\n" "\n" "--sort\tSortiere Dateien im Patch nach ihrem namen, statt die ursprüngliche\n" "\tReihenfolge zu erhalten.\n" #: quilt/diff.in:218 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Die Optionen \\`--combine', \\`--snapshot', und \\`-z' können nicht " "kombiniert werden.\\n" #: quilt/diff.in:232 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Kann kein Diff mit -p%s erzeugen, bitte -p0, -p1 oder -pab verwenden.\\n" #: quilt/diff.in:241 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:273 quilt/files.in:105 quilt/mail.in:418 msgid "Patch %s not applied before patch %s\\n" msgstr "Patch %s ist nicht vor Patch %s angewandt\\n" #: quilt/diff.in:341 msgid "File %s is not being modified\\n" msgstr "Datei %s wird nicht verändert.\\n" #: quilt/diff.in:360 quilt/refresh.in:234 msgid "Diff failed, aborting\\n" msgstr "Diff fehlgeschlagen, Abbruch.\\n" #: quilt/diff.in:367 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Warnung: später angewandte Patches verändern Dateien von %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "Verwendung: quilt edit datei ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Füge die angegebene(n) Datei(en) dem obersten Patch hinzu, und editiere\n" "sie dann in \\$EDITOR (%s).\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Verwendung: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Gibt eine Liste der Dateien aus, die der oberste oder angegebene Patch\n" "beinhaltet.\n" "\n" "-a\tZeigt alle Dateien in allen angewandten Patches an.\n" "\n" "-l\tGibt auch die Patchnamen mit aus.\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" "\n" "--combine patch\n" "\tErzeige eine Liste für alle Patches zwischen diesem und dem obersten\n" "\toder angegebenen Patch am Stack. Der Patchname \\`-'\n" "\tentspricht dem ersten angewandten Patch.\n" "\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Verwendung: quilt fold [-R] [-q] [-f] [-p strip-ebenen]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Integriert den Patch von der Standardeingabe in den obersten Patch:\n" "Stellt zuerst sicher, dass alle Dateien, die verändert werden, im\n" "obersten Patch enthalten sind, und wendet dann den neuen Patch\n" "mit der angegebenen Anzahl an Strip-Ebenen an (Standardwert = 1).\n" "\n" "-r\tPatch vekehrt herum anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten. Wenn -q nicht\n" "\tangegeben wird der Patch interaktiv angewandt, und das Patch-Utility\n" "\tkann fragen stellen.\n" "\n" "-p strip-ebenen\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Datei %s ist möglicherweise defekt\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "Verwendung: quilt fork [neuer_name]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Spalte den obersten Patch auf. Ausfspalten bedeutet, dass eine neue Kopie\n" "des Patches unter einem anderen Namen angelegt wird, und der neue Patch\n" "anstelle des ursprünglichen in die Series-Datei eingetragen wird. Das ist\n" "praktisch wenn ein Patch verändert werden soll, aber die ursprüngliche " "Version\n" "erhalten bleiben soll. Eine typische Abfolge von Befehlen ist: fork, edit, " "refresh.\n" "\n" "Wenn neuer_name fehlt, wird der Name des ursprünglichen Patches verwendet,\n" "gefolgt von \\`-2'. Falls der name bereits in Strich-Nummer endet, wird " "die\n" "Nummer erhöht (z.B. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Patch %s existiert bereits, bitte neuen Namen wählen\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Fehler beim Aufspalten von %s auf %s\\n" #: quilt/fork.in:102 quilt/refresh.in:346 msgid "Fork of patch %s created as %s\\n" msgstr "Neue Version von %s erstellt als %s\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Verwendung: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-" "labels=files] [-T ps] [patch]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Erzeuge einen gerichteten dot(1)-Graphen, der die Abhängigkeiten zwischen\n" "den angewandten Patches zeigt. Ein Patch hängt voni einem anderen ab, wenn\n" "beide dieselbe Datei verändern, oder mit der --lines-Option, wenn sich die\n" "Anderungen in den Patches überlappen. Wenn nicht anders angegeben, zeigt\n" "der Graph alle Patches, von denen der oberste Patch abhängt.\n" "Wenn ein Patchname angegeben wird, wird ein Graph erzeugt, der alle Patches\n" "beinhaltet, von denen der angegebene Patch abhängt, sowie alle, die von\n" "diesem Patch abhängen.\n" "\n" "--all\tErzeuge einen Graph, der alle Abhängigkeiten zwischen allen\n" "\tangewandten Patches beinhaltet. (Nicht angewandte Patches sind nicht\n" "\tbeinhaltet.)\n" "\n" "--reduce\n" "\tEliminiere transitive Kanten.\n" "\n" "--lines[=num]\n" "\tErmittle Abhängigkeiten durch Vergleich der veränderten Zeilen.\n" "\tSolange nicht anders angegeben, werden zwei Kontextzeilen angenommen.\n" "\n" "--edge-labels=files\n" "\tBeschrifte Kanten mit den Namen der betroffenen Dateien.\n" "\n" "-T ps\tErzeuge direkt eine PostScript-Datei.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Verwendung: quilt grep [-h|options] {suchausdruck}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Durchsuche die Quelldateien rekursiv, und überspringe Patches und Quilt-\n" "Metainformation. Wenn kein Dateiname angegeben wird, wird der gesamte\n" "Quellbaum durchsucht. Siehe die grep(1) Manual Page zu Optionen.\n" "\n" "-h\tGib diese Hilfsmeldung aus. Die grep -h - Option kann nach einem\n" "\tDoppelstrick (--) angegeben werden. Suchausdrücke, die mit einem Strich\n" "\tbeginnen, können nach einem weiteren Doppelstrich (--) angegeben werden.\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Verwendung: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Zeige den Header des obersten oder angegebenen Patches an, oder verändere " "ihn.\n" "\n" "-a, -r, -e\n" "\tFüge Text von der Standardeingabe an den Header an (-a), ersetze den " "Header\n" "\tmit der Standardeingabe, oder editiere den Header in \\$EDITOR (%s). Wenn " "keine\n" "\tdieser Optionen angegeben ist, gib den Header aus.\n" "\n" "--strip-diffstat\n" "\tEntferne diffstat-Ergebnisse vom Header.\n" "\n" "--strip-trailing-whitespace\n" "\tEntferne Whitespace an Zeilenenden im Header.\n" "\n" "--backup\n" "\tErzeuge eine Sicherungskopie von patch als patch~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "Header von Patch %s ersetzt\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Text an Header von Patch %s angefügt\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Verwendung: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "[patchdatei] ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importiere externe Patches. Die Patches werden nach dem momentan obersten\n" "Patch eingefügt, und können dann mit dem push-Befehl angewandt werden.\n" "\n" "-p num\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen (Standard=1).\n" "\n" "-R\n" "\tPatch umgekehrt anwenden.\n" "\n" "-P patch\n" "\tPatch-Dateiname, den Quilt verwenden soll. Diese Option kann nur beim\n" "\tImport eines einzelnen Patches angegeben werden.\n" "\n" "-f\tÜberschreibe/aktualisiere existierende Patches.\n" "\n" "-d {o|a|n}\n" "\tErhalte beim Überschreiben von Patches den alten (o), alle (a), oder den\n" "\tneuen (n) Patch-Header. Wenn beide Patches Header enthalten, muss diese\n" "\tOption angegeben werden. Diese Option ist nur in Kombination mit -f " "wirksam.\n" #: quilt/import.in:71 msgid "Patch headers differ:\\n" msgstr "Die Patch-Header unterscheiden sich:\\n" #: quilt/import.in:74 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Bitte verwenden Sie die Option -d {o|a|n} um anzugeben, welche Patch-Header " "erhalten bleiben sollen.\\n" #: quilt/import.in:139 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "Die Option \\`-P' kann nur beim Importieren eines einzelnen Patches " "verwendet werden\\n" #: quilt/import.in:169 msgid "Patch %s is applied\\n" msgstr "Patch %s ist angewandt\\n" #: quilt/import.in:178 msgid "Patch %s already exists in series.\\n" msgstr "Patch %s existiert bereits in der series-Datei\\n" #: quilt/import.in:184 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Patch %s existiert bereits. Ersetzen mit -f.\\n" #: quilt/import.in:195 msgid "Replacing patch %s with new version\\n" msgstr "Ersetze Patch %s durch neuere Version\\n" #: quilt/import.in:199 msgid "Importing patch %s\\n" msgstr "Importiere patch %s\\n" #: quilt/import.in:201 msgid "Importing patch %s (stored as %s)\\n" msgstr "Importiere Patch %s (abgelegt als %s)\\n" #: quilt/import.in:214 msgid "Failed to import patch %s\\n" msgstr "Konnte Patch %s nicht importieren\\n" #: quilt/import.in:223 quilt/refresh.in:333 msgid "Failed to insert patch %s into file series\\n" msgstr "Konnte Patch %s nicht in die series-Datei einfügen\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "Verwendung: quilt mail {--mbox datei|--send} [-m text] [--prefix prefix] [--" "sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] " "[first_patch [last_patch]]\\n" #: quilt/mail.in:27 #, fuzzy msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Erzeuge E-Mail-Nachrichten für alle Patches in der series-Datei, und\n" "speichere sie in einer Mailbox-Datei, oder versende sie sofort. Der Editor\n" "wird mit der Vorlage einer Einleitung geöffnet. Für Details siehe\n" "%s.\n" "Wenn ein Bereich von Patches angegeben wird, kann \\`-' für den ersten bzw.\n" "letzten Patch in der Series-Datei angegeben werden.\n" "\n" "-m text\n" "\tText, der für die Einleitung verwendet werden soll. Wenn\n" "\tdiese Option verwendet wird, wird der Editor nicht gestartet, und\n" "\tdie Patches werden sofort abgearbeitet.\n" "\n" "--prefix Prefix\n" "\tVerwende einen anderen Prefix als \\`patch' in dem eckig umklammerten\n" "\tText in der Subject-Kopfzeile.\n" "\n" "--mbox datei\n" "\tAlle Nachrichten in der angegebenen Datei im mbox-Format speichern. Die\n" "\tMailbox kann dann später mit formail o.ä. verschickt werden.\n" "\n" "--send\n" "\tVerschicke die Nachrichten direkt.\n" "\n" "--sender\n" "\tVerwende die angegebene Envelope-Adresse. Die Adresse muss von der Form\n" "\t\\`user@domain.name' sein; Anzeigenamen sind nicht möglich.\n" "\n" "--from, --subject\n" "\tDie Werte für die From- und Subject-Kopfzeilen.\n" "\n" "--to, --cc, --bcc\n" "\tFüre einen Empfänger an die To, Cc, or Bcc-Kopfzeilen an.\n" #: quilt/mail.in:302 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "Konnte die Envelope-Adresse nicht feststellen. Bitte verwenden Sie --sender." #: quilt/mail.in:446 msgid "Unable to extract a subject header from %s\\n" msgstr "Konnte keine Subject-Kopfzeile aus %s extrahieren\\n" #: quilt/mail.in:470 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Die Patches %s haben die selben Subject-Kopfzeilen.\\n" #: quilt/mail.in:479 msgid "File %s does not exist\\n" msgstr "Datei %s existiert nicht\\n" #: quilt/mail.in:539 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile (gespeichert als %s)\\n" #: quilt/mail.in:542 msgid "Introduction has no subject header\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile\\n" #: quilt/mail.in:656 msgid "Introduction saved as %s\\n" msgstr "Einleitung gespeichert als %s\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Verwendung: quilt new [-p n|-p ab] {patchname}\\n" #: quilt/new.in:25 #, fuzzy msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Erzeuge einen neuen Patch mit dem angegebenen Dateinamen, und fügt\n" "ihn nach dem obersten Patch ein.\n" "\n" "Quilt kann aus Unterverzeichnissen eines Quellbaums heraus verwendet " "werden.\n" "Es bestimmt die Wurzel des Quellbaums, in dem es nach %s-Verzeichnissen\n" "über dem aktuellen Verzeichnis sucht. Erzeugen Sie ein %s-Verzeichnis\n" "im vorgesehenen Wurzelverzeichnis, falls Quilt ein Verzeichnis zu weit oben\n" "im Verzeichnisbaum verwendet.\n" #: quilt/new.in:76 #, fuzzy msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Kann Patches mit Level -p%s nicht aktualisieren, bitte -p0, -p1 oder -pab " "angeben\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Patch %s existiert bereits\\n" #: quilt/new.in:108 quilt/refresh.in:342 msgid "Failed to create patch %s\\n" msgstr "Konnte Patch %s nicht erzeugen\\n" #: quilt/new.in:111 msgid "Patch %s is now on top\\n" msgstr "Der oberste Patch ist jetzt %s\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "Verwendung: quilt next [patch]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "Gibt den Namen des nächsten Patches nach dem obersten oder angegebenen\n" "Patch in der series-Datei aus.\n" #: quilt/patches.in:24 #, fuzzy msgid "Usage: quilt patches [-v] {file} [files...]\\n" msgstr "Verwendung: quilt patches [-v] {file}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Gibt die Liste der Patches aus, die die angegebene Datei verändern.\n" "(Verwendet für Patches, die nicht angewandt sind, eine Heuristik. Diese\n" "Heuristik ist langsamer als die Suche in angewandten Patches.)\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "Verwendung: quilt pop [-afRqv] [num|patch]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\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\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Entferne Patches vom Stapel der angewandten Patches. Es kann eine Anzahl\n" "von Patches, die entfernt werden soll, oder der Name eines Patches\n" "angegeben werden. Wenn ein Name angegeben wird, werden alle Patches über\n" "dem angegebenen Patch entfernt. Wenn weder ein Patchname noch eine Nummer\n" "angegeben 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\t Überprüfe immer, ob sich Patches vollständig entfernen lassen;\n" "\tnicht auf Datei-Zeitspempel verlassen.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-v\tViele Meldungen ausgeben.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:892 msgid "Failed to copy files to temporary directory\\n" msgstr "Konnte Dateien nicht in temporäres Verzeichnis kopieren\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Patch %s kann nicht entfernt werden (Patch aktualisieren oder entfernen " "erzwingen mit -f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Patch %s scheint leer zu sein; wird entfernt\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Entferne patch %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Patch %s muss zuerst aktualisiert werden (Refresh).\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Kein Patch entfernt\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:498 msgid "No patches applied\\n" msgstr "Keine Patches angewandt\\n" #: quilt/pop.in:259 quilt/push.in:397 msgid "Now at patch %s\\n" msgstr "Jetzt in Patch %s\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "Verwendung: quilt previous [patch]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "Gibt den Namen des Patches vor dem obersten oder angegebenen\n" "Patch in der series-Datei aus.\n" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "Verwendung: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\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 einschliesslich\n" "diesem Patch angewandt. Wenn weder ein Patchname noch eine Nummer angegeben\n" "wird, wird der nächste Patch angewandt.\n" "\n" "-a\tAlle folgenden Patches anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten. Wenn -q nicht\n" "\tangegeben wird der Patch interaktiv angewandt, und das Patch-Utility\n" "\tkann fragen stellen.\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" "\n" "--color[=always|auto|never]\n" "\tSyntax-Einfärbung aktivieren (immer, automatisch, nie).\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Unterbrechung durch Benutzer; Patch %s wurde nicht angewandt.\\n" #: quilt/push.in:180 msgid "Applying patch %s\\n" msgstr "Wende Patch %s an\\n" #: quilt/push.in:214 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Patch %s existiert nicht; wende leeren patch an\\n" #: quilt/push.in:218 msgid "Patch %s appears to be empty; applied\\n" msgstr "Patch %s scheint leer zu sein; angewandt\\n" #: quilt/push.in:222 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Patch %s angewandt (erzwungen, muss aktualisiert werden (Refresh))\\n" #: quilt/push.in:232 msgid "Patch %s can be reverse-applied\\n" msgstr "Patch %s kann verkehrt angewandt werden\\n" #: quilt/push.in:235 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Patch %s lässt sich nicht anwenden (erzwingen mit -f)\\n" #: quilt/push.in:377 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Der oberste Patch %s muss zuerst aktualisiert werden (Refresh).\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Verwendung: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] " "[-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--" "strip-trailing-whitespace] [patch]\\n" #: quilt/refresh.in:26 msgid "" "\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" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\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 aktualisiert werden. Wenn\n" "Patches, die nach dem angegebenen Patch angewandt sind, dieselben\n" "Dateien verändern, die auch dieser Patch verändert, bricht dieses Script\n" "normalerweise ab. Mit der Option -f kann das Aktalisieren trotzdem\n" "erzwungen werden. Dann wird für jede Datei, die später noch verändert\n" "wurde, eine Warnung ausgegeben, und nur Änderungen in Dateien, die\n" "danach nicht von anderen Patches weiter verändert werden, werden beim\n" "Aktalisieren berücksichtigt.\n" "\n" "-p n\tErzeuge einen -p n Patch (n=0 oder n=1 werden unterstützt).\n" "\n" "-p ab\tErzeuge einen -p1-artigen Patch, verwende aber a/datei und\n" "\tb/datei als den ursprünglichen und neuen Dateinamen anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeuge ein Unified Diff (-u, -U) mit anzahl Kontextzeilen. Erzeuge\n" "\tein Context Diff (-c, -C) mit anzahl Kontextzeilen. Die Anzahl der\n" "\tKontextzeilen ist 3, wenn nicht anders angegeben.\n" "\n" "-z[neuer_name]\n" "\tErzeuge einen neuen Patch mit den Änderungen, statt den obersten\n" "\tPatch zu aktualisieren. Wenn kein neuer Name angegeben wird, wird\n" "\t\\`-2' an den Namen angehängt, usw (siehe das fork-Kommando).\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben.\n" "\n" "--no-index\n" "\tErzeuge keine \\`Index:'-Zeilen\n" "\n" "--diffstat\n" "\tFüge dem Patch-Kopf einen diffstat-Abschnitt hinzu, oder ersetzte den\n" "\tbestehenden Abschnitt.\n" "\n" "-f\tErzwinge das Aktalisieren eines Patches, der sich nicht an oberster\n" "\tPosition befindet.\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patches angeben (wie QUILT_DIFF_NO_TIMESTAMPS in~/." "quiltrc).\n" "\n" "--backup\n" "\tErzeuge ein Backup der alten Version von patch als patch~\n" "\n" "--sort\tSortiere Dateien im Patch nach ihrem namen, statt die ursprüngliche\n" "\tReihenfolge zu erhalten.\n" "\n" "--strip-trailing-whitespace\n" "\tEntferne Whitespace an Zeilenenden.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Kann nur den obersten Patch mit -z aktualisieren\\n" #: quilt/refresh.in:202 msgid "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" msgstr "" "Kann Patches mit Level -p$opt_strip_level nicht aktualisieren, bitte -p0 " "oder -p1 angeben\\n" #: quilt/refresh.in:240 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Später angewandte Patches verändern Dateien von %s. Aktalisieren mit -f " "erzwingen.\\n" #: quilt/refresh.in:246 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "Kann --strip-trailing-whitespace nicht für Patches verwenden, die Dateien " "enthalten, die danach von anderen Patches weiter verändert werden.\\n" #: quilt/refresh.in:252 quilt/refresh.in:354 msgid "Nothing in patch %s\\n" msgstr "Patch %s ist leer\\n" #: quilt/refresh.in:324 msgid "Patch %s is unchanged\\n" msgstr "Patch %s ist unverändert\\n" #: quilt/refresh.in:352 msgid "Refreshed patch %s\\n" msgstr "Patch %s aktualisiert\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Verwendung: quilt remove [-P patch] {datei} ...\\n" #: quilt/remove.in:25 #, fuzzy msgid "" "\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" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Änderungen an den angegebenen Dateien am obersten oder angegebenen Patch\n" "zurücknehmen. Änderungen in Dateien, die durch Patches über dem angegebenen\n" "Patch verändert werden, können nicht zurückgenommen werden.\n" "\n" "-P patch\n" "\tPatch, aus dem Dateien entfernt werden sollen.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Datei %s ist nicht in Patch %s\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Konnte Datei %s aus Patch %s nicht entfernen\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Datei %s aus Patch %s entfernt\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Verwendung: quilt rename [-P patch] neuer_name\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Benennt den obersten oder angegebenen Patch um.\n" "\n" "-P patch\n" "\tPatch, der umbenannt werden soll.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Patch %s existiert bereits, bitte einen anderen Namen wählen\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Fehler beim Umbenennen von Patch %s auf %s\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s auf %s umbenannt\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Verwendung: quilt revert [-P patch] {datei} ...\\n" #: quilt/revert.in:25 #, fuzzy msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Änderungen an den angegebenen Dateien am obersten oder angegebenen Patch\n" "zurücknehmen. Änderungen in Dateien, die durch Patches über dem angegebenen\n" "Patch verändert werden, können nicht zurückgenommen werden.\n" "\n" "-P patch\n" "\tPatch, aus dem Dateien entfernt werden sollen.\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "Datei %s ist unverändert\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Konnte Änderungen an %s in Patch %s nicht zurücknehmen\\n" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "Änderungen an %s in Patch %s zurückgenommen\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Anzeigename `%s' enthält eine unvollständige Klammerung\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Zustelladresse `%s' ist ungültig\n" #: quilt/scripts/patchfns.in:217 quilt/scripts/patchfns.in:511 #, fuzzy msgid "%s is not a regular file\\n" msgstr "Patch %s ist nicht in der series-Datei\\n" #: quilt/scripts/patchfns.in:465 quilt/scripts/patchfns.in:482 msgid "No patches in series\\n" msgstr "Keine Patches in der series-Datei\\n" #: quilt/scripts/patchfns.in:467 quilt/scripts/patchfns.in:484 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:540 msgid "Patch %s is not in series\\n" msgstr "Patch %s ist nicht in der series-Datei\\n" #: quilt/scripts/patchfns.in:568 msgid "Patch %s is not applied\\n" msgstr "Patch %s ist nicht angewandt\\n" #: quilt/scripts/patchfns.in:605 msgid "File series fully applied, ends at patch %s\\n" msgstr "series-Datei vollständig angewandt, endet in Patch %s\\n" #: quilt/scripts/patchfns.in:638 msgid "Patch %s does not exist\\n" msgstr "Patch %s existiert nicht\\n" #: quilt/scripts/patchfns.in:910 msgid "Failed to patch temporary files\\n" msgstr "Konnte temporäre Dateien nicht patchen\\n" #: quilt/scripts/patchfns.in:951 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Die quilt-Metadaten in diesem Arbeitsverzeichnis haben Version $version, " "aber diese Version von quilt kann nur mit Metadaten in den Versionen " "$DB_VERSION und darunter umgehen. Bitte entfernen Sie vor dem Downgrade von " "quilt alle Patches mit der Version von quilt, die zur Erstellung des " "Arbeitsverzeichnisses verwendet wurde.\\n" #: quilt/scripts/patchfns.in:1095 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Das Arbeitsverzeichnis wurde von einer älteren Version von quilt erstellt. " "Bitte führen Sie \\`quilt upgrade' aus.\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "Aufruf: %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: Ich bin verwirrt.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in Zeile %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in den Zeilen %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Entferne abschliessende Leerzeichen in Zeile %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Entferne abschliessende Leerzeichen in den Zeilen %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Umbenennen von %s auf %s: %s\n" #: quilt/series.in:22 msgid "Usage: quilt series [-v]\\n" msgstr "Verwendung: quilt series [-v]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\t\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Gibt die Namen aller Dateien in der series-Datei aus.\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" #: quilt/setup.in:34 quilt/setup.in:53 msgid "Directory %s exists\\n" msgstr "Verzeichnis %s existiert\\n" #: quilt/setup.in:59 msgid "File %s exists\\n" msgstr "Datei %s existiert\\n" #: quilt/setup.in:99 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "Verwendung: quilt setup [-d pfad-präfix] [-v] [--sourcedir verzeichnis] [--" "fuzz=N] {spec-datei|series-datei}\\n" #: quilt/setup.in:102 #, fuzzy msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Initialisiere einen Quellbaum aus einer rpm spec-Datei oder einer quilt " "series-Datei.\n" "\n" "-d\tOptionaler Pfad-Präfix für den erzeugten Quellbaum.\n" "\n" "--sourcedir\n" "\tVerzeichnis, das die Paketquellen enthält. (Default: \\`.'.)\n" "\n" "-v\tAusführliche Ausgabe.\n" #: quilt/setup.in:173 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Der %%prep-Abschnitt von %s ist fehlgeschlagen; die Ergebnisse sind " "möglicherweise unvollständig\\n" #: quilt/setup.in:176 msgid "The -v option will show rpm's output\\n" msgstr "Die Option -v zeigt die Ausgaben von rpm an\\n" #: quilt/setup.in:228 quilt/setup.in:240 msgid "File %s not found\\n" msgstr "Datei %s nicht gefunden\\n" #: quilt/setup.in:231 quilt/setup.in:243 msgid "Unpacking archive %s\\n" msgstr "Entpacke Archiv %s\\n" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Verwendung: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Erzeuge einen Snapshot des aktuellen Zustands des Quellbaums. Danach kann\n" "der Quellbaum auf die üblichen Arten verändert werden, inklusive dem\n" "Hinzufügen und Entfernen von Patches. Ein Patch zwischen dem Quellbaum\n" "zum Zeitpunkt des Snapshots und dem aktuellen Zustand kann mit\n" "\\`quilt diff --snapshot' erzeugt werden.\n" "\n" "-d\tEntferne lediglich den aktuellen Snapshot.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "Verwendung: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Gibt den Namen des obersten Patches auf dem Stapel aus.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Verwendung: quilt unapplied [patch]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Gint eine Liste der Patches aus, die momentan nicht angewandt sind, bzw.\n" "eine Liste der Patches, die dem angegebenen Patch folgen.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "Verwendung: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Aktualisiere die Metadaten in einem Arbeitsverzeichnis von einer älteren " "Version\n" "von quilt zur aktuellen. Dieses Kommando wird nur benötigt, wenn sich das\n" "Format der Metadaten verändert hat, und das Arbeitsverzeichnis noch alte\n" "Metadaten enthält. In diesem Fall fordert quilt dazu auf, \\`quilt upgrade'\n" "auszuführen.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Die Metadaten in $QUILT_PC/ sind bereits in Format Version $DB_VERSION; " "nichts zu tun\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Konvertiere Metadaten in Version %s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Konvertierung fehlgeschlagen\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Bitte entfernen Sie alle Patches mit \\`quilt pop -a' der quilt-Version, die " "zur Erzeugung des Arbeitsverzeichnis verwendet wurden, oder entfernen Sie " "das Verzeichnis %s, und wenden Sie die Patches neu an.\\n" quilt-0.61/po/ja.po0000644000175000017500000017167212251154460014470 0ustar mquinsonmquinson# Quilt japanese translation # Copyright (C) 2003 Free Software Foundation, Inc. # Yasushi SHOJI , 2003. # msgid "" msgstr "" "Project-Id-Version: quilt 0.33\n" "PO-Revision-Date: 2011-02-01 19:37+0900\n" "Last-Translator: Yasushi SHOJI \n" "Language-Team: Quilt\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:36 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "ä½¿ã„æ–¹: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." #: bin/quilt.in:37 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:39 msgid "Commands are:" msgstr "コマンド一覧:" #: bin/quilt.in:44 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "全コマンド共通オプション:\n" "\n" "--trace\n" "\tコマンドをbashã®ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ¢ãƒ¼ãƒ‰(-x)ã§å®Ÿè¡Œã€‚内部デãƒãƒƒã‚°ç”¨ã€‚\n" "\n" "--quiltrc file\n" "\t~/.quiltrc (存在ã—ãªã„å ´åˆã¯ @ETCDIR@/quiltrc) ã®ä»£ã‚Šã«èª­ã¿è¾¼ã‚€\n" "\tコンフィギュレーションファイルを指定。内容ã®è©³ç´°ã«ã¤ã„ã¦ã¯\n" "\tPDFã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å‚照。特別ãªãƒ•ァイルå \\\"-\\\"を使ã†ã¨ã€\n" "\tコンフィギュレーションファイルを読ã¿è¾¼ã¾ãªã„。\n" "\n" "--version\n" "\tãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を出力ã—ã¦çµ‚了。" #: quilt/add.in:22 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt add [-P パッãƒ] {file} ...\\n" #: quilt/add.in:25 msgid "" "\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 already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ãƒ•ァイル(複数å¯)を追加ã™ã‚‹ã€‚ファイルã¯ç·¨\n" "集ã™ã‚‹å‰ã«ã‹ãªã‚‰ãšè¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚る。指定ã—ãŸãƒ‘ッãƒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰\n" "æ›´ã•れã¦ã„るファイルã¯è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを追加ã™ã‚‹ãƒ‘ッãƒ\n" #: quilt/add.in:48 quilt/add.in:54 msgid "File %s is located below %s\\n" msgstr "ファイル %s ã¯ã€%s 以下ã«ã‚りã¾ã™\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã™\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«ã‚ˆã£ã¦ã™ã§ã«å¤‰æ›´ã•れã¦ã„ã¾ã™\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "シンボリックファイル %s ã¯è¿½åŠ ã§ãã¾ã›ã‚“" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "ファイル %s をパッム%s ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/annotate.in:22 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "ä½¿ã„æ–¹: quilt annotate [-P パッãƒ] {file}\\n" #: quilt/annotate.in:25 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "パッãƒãŒå¤‰æ›´ã—ãŸè¡Œã«è¨»é‡ˆã‚’付ã‘ã¦è¡¨ç¤ºã€‚é©å¿œã•れるã®ã¯ã€ã‚ã¦ã‚‰ã‚Œã¦ã„るパッ\n" "ãƒã®ã¿ã€‚\n" "\n" "-P パッãƒ\n" "\t最上ä½ã®ãƒ‘ッãƒã¾ã§å‡¦ç†ã‚’行ãªã‚ãšã€æŒ‡å®šã•れãŸãƒ‘ッãƒã§å‡¦ç†ã‚’終了\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt applied [パッãƒ]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã®ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚指定ã•れãŸãƒ‘ッãƒãŒã‚ã‚‹å ´åˆã¯ã€\n" "seriesファイル内ã®ãƒ‘ッãƒä¸€è¦§ã®ä¸­ã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã‚’表示ã—ã¾ã™ã€‚\n" #: quilt/delete.in:22 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "ä½¿ã„æ–¹: quilt delete [-r] [--backup] [パッãƒ|-n]\\n" #: quilt/delete.in:25 msgid "" "\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.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã€ã¾ãŸã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã‚’シリーズファイルã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "パッãƒãŒã™ã§ã«é©ç”¨ã•れã¦ã„ã‚‹å ´åˆã¯ã€æœ€åˆã«ãƒ‘ッãƒã‚’外ã™ã€‚( ç¾çŠ¶ã€æœ€ä¸Šä½\n" "ã®ãƒ‘ッãƒã—ã‹å‰Šé™¤ã™ã‚‹ã“ã¨ã¯ã§ããªã„。)\n" "\n" "-n\t最上ä½ãƒ‘ッãƒã‚„指定ã•れãŸãƒ‘ッãƒã§ã¯ãªãã€æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒã‚’\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "-r\tシリーズファイルã‹ã‚‰ãƒ‘ッãƒã‚’消ã™ã¨ãã«ã€patchesディレクトリã‹ã‚‰ã‚‚\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tパッãƒã‚’削除ã›ãšã€ãƒ‘ッãƒ~ã«åå‰ã‚’変更ã—ã¾ã™ã€‚オプション\\`-r'ãŒ\n" "\t有効ã§ã¯ãªã„ã¨ãã¯ç„¡è¦–ã•れる。\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "次ã®ãƒ‘ッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:589 msgid "Patch %s is currently applied\\n" msgstr "パッム%s ã¯ç¾åœ¨é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "パッム%s を削除ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:127 msgid "Failed to backup patch file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:134 msgid "Failed to remove patch file %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/diff.in:24 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [file ...]\\n" msgstr "" "ä½¿ã„æ–¹: quilt diff [-p n|-p ab] [-u|-U æ•°|-c|-C æ•°] [--combine パッãƒ|-z] [-" "R] [-P パッãƒ] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [ファイル ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\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 ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine 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" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã€æŒ‡å®šã•れãŸãƒ•ァイルã®å·®åˆ†ã‚’作æˆã™ã‚‹ã€‚\n" "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ã€å¤‰æ›´ã•れãŸãƒ•ァイルã™ã¹ã¦ãŒå«ã¾ã‚Œã‚‹ã€‚\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€a/fileã¨b/fileã‚’ãれãžã‚Œã‚ªãƒªã‚¸ãƒŠãƒ«\n" "\tã¨æ–°ã—ã„ファイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "-z\t最上ä½ã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«é–¢é€£ã—ãŸå¤‰æ›´ã‚’ã€æ¨™æº–出力ã«è¡¨ç¤ºã€‚\n" "\n" "-R\treverse diffを作æˆã€‚\n" "\n" "-P パッãƒ\n" "\t指定ã•れãŸãƒ‘ッãƒç”¨ã« diffを作æˆã€‚(デフォルトã§ã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã€‚)\n" "\n" "--combine パッãƒ\n" "\tã“ã®ãƒ‘ッãƒã¨ -Pã§æŒ‡å®šã•れãŸãƒ‘ッãƒã®é–“ã™ã¹ã¦ã®ãƒ‘ッãƒã®å·®åˆ†ã‚’åˆ\n" "\tã›ã¦ä¸€ã¤ã®ãƒ‘ッãƒã‚’作æˆã€‚\\`-' ã¨ã„ã†ãƒ‘ッãƒåã¯æœ€åˆã«é©ç”¨ã•れãŸ\n" "\tパッãƒã‚’指定ã™ã‚‹ã®ã¨åŒã˜æ„味ãŒã‚る。\n" "\n" "--snapshot\n" "\tスナップショットã¨ã®å·®åˆ†ã‚’ä½œæˆ (å‚ç…§ \\`quilt snapshot -h')。\n" "\n" "--diff=utility\n" "\t指定ã•れ㟠utilityを使ã£ã¦å·®åˆ†ã‚’生æˆã€‚オリジナルã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨æ–°\n" "\tã—ã„ファイルを引数ã¨ã—㦠utilityã«æ¸¡ã•れる。\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定。\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" #: quilt/diff.in:218 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "オプション \\`--combine'㨠\\`--snapshot'〠\\`-z'ã¯åŒæ™‚ã«ä½¿ãˆã¾ã›ã‚“。\\n" #: quilt/diff.in:232 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã®å·®åˆ†ã¯ã¨ã‚Œã¾ã›ã‚“。-p0ã€-p1ã€ã¾ãŸã¯ -pab を指定ã—ã¦ãã ã•ã„\\n" #: quilt/diff.in:241 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:273 quilt/files.in:105 quilt/mail.in:418 msgid "Patch %s not applied before patch %s\\n" msgstr "パッム%s ã¯ã€ãƒ‘ッム%s ã®å‰ã«é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:341 msgid "File %s is not being modified\\n" msgstr "ファイル %s ã¯å¤‰æ›´ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:360 quilt/refresh.in:234 msgid "Diff failed, aborting\\n" msgstr "差分ã«å¤±æ•—ã—ã¾ã—ãŸã€‚異常終了ã—ã¾ã™\\n" #: quilt/diff.in:367 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "警告: 最近ã®ãƒ‘ッãƒãŒã€ãƒ‘ッム%s 内ã®ãƒ•ァイルを変更ã—ã¦ã„ã¾ã™\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "ä½¿ã„æ–¹: quilt edit ファイル ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã«æŒ‡å®šã•れãŸãƒ•ァイルを追加後ã€\\$EDITOR (%s) を使ã£ã¦ç·¨é›†ã€‚\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt files [-v] [-a] [-l] [--combine パッãƒ] [パッãƒ]\\n" #: quilt/files.in:25 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒå¤‰æ›´ã‚’加ãˆã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "ã™ã‚‹ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "\n" "-l\tパッãƒåを追加表示\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" "--combine パッãƒ\n" "\t最上ä½ãƒ‘ッãƒã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã®ãƒ‘ッãƒä¸€è¦§ã‚’作æˆã€‚パッãƒ\n" "\tåã« \\`-' を指定ã™ã‚‹ã¨ã€ä¸€ç•ªæœ€åˆã«é©ç”¨ã•れã¦ã„るパッãƒã‚’指定ã—ãŸ\n" "\tã“ã¨ã«ãªã‚‹ã€‚\n" "\n" #: quilt/fold.in:22 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "ä½¿ã„æ–¹: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:25 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "標準入力ã‹ã‚‰èª­ã¿è¾¼ã‚“ã ãƒ‘ッãƒã‚’最上ä½ã®ãƒ‘ッãƒã«çµ±åˆã™ã‚‹:パッãƒã«ã‚ˆã£ã¦\n" "変更ã•れるファイルãŒã€æœ€ä¸Šä½ã®ãƒ‘ッãƒã«è¿½åŠ ã•れã¦ã„ã‚‹ã“ã¨ãŒç¢ºèªã•れãŸå¾Œã€\n" "パッãƒã¯æŒ‡å®šã•れãŸã‚¹ãƒˆãƒªãƒƒãƒ—レベルを使ã£ã¦é©ç”¨ã•れる (デフォルト㯠1)。\n" "\n" "-R\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-q 表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚表示抑制モード以外ã§ã¯ã€ã‚¤ãƒ³ã‚¿\n" " ラクティブã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ã¤ã¾ã‚Šã€ãƒ‘ッãƒé©ç”¨æ™‚ã«è³ªå•ã•れるã“ã¨\n" "\tãŒã‚る。\n" "\n" "-p strip-level\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«ã€ãƒ•ァイルåã‹ã‚‰çœãパスåè¦ç´ ã®æ•°\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "ファイル %s ã¯å£Šã‚Œã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "ä½¿ã„æ–¹: quilt fork [new_name]\\n" #: quilt/fork.in:25 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã‚’フォークã™ã‚‹ã€‚パッãƒã‚’フォークã™ã‚‹ã¨ã¯åŒã˜å†…容ã®ã‚³ãƒ”ーを別ã®å" "å‰ã§ä½œæˆã™ã‚‹ã“ã¨ã§ã€æ–°ã—ã„åå‰ã‚’å…ƒã®æ–¹ã«ã‹ã‚ã£ã¦ä½¿ç”¨ã™ã‚‹ã€‚ã“れã¯ãƒ‘ッãƒã‚’変更" "ã—ãªã‘れã°ãªã‚‰ãªã„ãŒã€å…ƒã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚‚残ã•ãªã‘れã°ãªã‚‰ãªã„å ´åˆã«ä¾¿åˆ©ã§ã‚ã‚‹" "(例: 別シリーズã§ã®ä½¿ç”¨ã‚„éŽç¨‹ã®ä¿å­˜) 。典型的ãªã‚³ãƒžãƒ³ãƒ‰ã®é †ç•ªã¨ã—ã¦ã¯ã€forkã€" "editã€refreshã¨ãªã‚‹ã€‚\n" "\n" "new_nameãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã€ãƒ•ォークã—ãŸãƒ‘ッãƒåã¯ç¾åœ¨ã®ãƒ‘ッãƒåã®å¾Œã« " "\\`-2' ãŒä»˜ã。ã™ã§ã«ãƒ‘ッãƒå㌠-番å·ã§çµ‚ã£ã¦ã„ã‚‹å ´åˆã€ç•ªå·ã®å€¤ãŒ1増ãˆã‚‹ " "(例: patch.diffã€patch-2.diffã€patch-3.diff)。\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "パッム%s ã‹ã‚‰ãƒ‘ッム%s ã¸ã®åˆ†å²ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/fork.in:102 quilt/refresh.in:346 msgid "Fork of patch %s created as %s\\n" msgstr "パッム%s ã®åˆ†å²ã§ %s ãŒä½œæˆã•れã¾ã—ãŸ\\n" #: quilt/graph.in:22 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [パッãƒ]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "dot(1)を使ã£ã¦é©ç”¨ã•れã¦ã„るパッãƒã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚ã‚るパッ\n" "ãƒãŒä»–ã®ãƒ‘ッãƒã«ä¾å­˜ã—ã¦ã„る状態ã¨ã¯ã€ä¸¡æ–¹ã®ãƒ‘ッãƒãŒåŒã˜ãƒ•ァイルを変更\n" "ã—ã¦ã„ã‚‹å ´åˆã‚„変更箇所ãŒé‡ãªã£ãŸ(オプション --lines使用時)を指ã™ã€‚特ã«\n" "示ã•れãªã„ã‹ãŽã‚Šã€ã‚°ãƒ©ãƒ•ã¯ç¾åœ¨æœ€ä¸Šä½ã®ãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ãƒ‘ッãƒã™ã¹ã¦ã‚’å«\n" "む。\n" "\n" "最上ä½ãƒ‘ッãƒä»¥å¤–ã®ãƒ‘ッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã®ã‚°ãƒ©ãƒ•\n" "を作æˆã™ã‚‹ã€‚ã‚°ãƒ©ãƒ•ã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ã€æŒ‡å®šã•\n" "れãŸãƒ‘ッãƒã«ä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’å«ã‚€ã€‚\n" "\n" "--all\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ãã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚\n" "(é©ç”¨ã•れã¦ã„ãªã„パッãƒã¯å«ã¾ãªã„)\n" "\n" "--reduce\n" "\tTransitive edgeã‚’çœç•¥ã™ã‚‹ã€‚tred(1)ã‚’å‚照。\n" "\n" "--lines[=行数]\n" "\tパッãƒãŒå¤‰æ›´ã™ã‚‹è¡Œã‹ã‚‰ä¾å­˜é–¢ä¿‚を計算ã™ã‚‹ã€‚è¡Œæ•°ãŒæŒ‡å®šã•れãªã„å ´\n" "\tåˆã¯2行分ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãŒä½¿ç”¨ã•れる。\n" "\n" "--edge-labels=files\n" "\tグラフ内ã®ã‚¨ãƒƒã‚¸ã«ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルåを付ã‘る。\n" "\n" "-T ps\t直接ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—トファイルを生æˆã™ã‚‹ã€‚\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "ä½¿ã„æ–¹: quilt grep [-h|options] {パターン}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Quiltã«ã‚ˆã£ã¦ç®¡ç†ã•れã¦ã„るパッãƒã¯ãƒ¡ã‚¿æƒ…報以外ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’å†å¸°çš„\n" "ã«grepã™ã‚‹ã€‚ファイルåãŒä¸Žãˆã‚‰ã‚Œãªã‹ã£ãŸå ´åˆã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã™ã¹ã¦ãŒå¯¾\n" "象ã¨ãªã‚‹ã€‚オプションã«ã¤ã„ã¦ã¯ grep(1)ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’å‚照。\n" "\n" "-h\tã“ã®ãƒ˜ãƒ«ãƒ—を表示。二é‡ãƒ€ãƒƒã‚·ãƒ¥è¨˜å· (--)を使ã†ã“ã¨ã«ã‚ˆã‚Šã€grepã«\n" "-hを渡ã™ã“ã¨ãŒã§ãる。ダッシュ記å·ã§å§‹ã¾ã‚‹æ¤œç´¢ãƒ‘ターンã¯2ã¤ç›®ã®äºŒé‡ãƒ€ãƒƒ\n" "シュ記å·ã®å¾Œã«æ¸¡ã™ã“ã¨ãŒã§ãる。\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/header.in:28 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®ãƒ˜ãƒƒãƒ€ã‚’出力ã¾ãŸã¯å¤‰æ›´ã™ã‚‹ã€‚\n" "\n" "-a, -r, -e\n" "\tパッãƒã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ  (-a) ã¾ãŸã¯ãƒ˜ãƒƒãƒ€ã‚’変更 (-r)ã€$EDITOR (%s)ã‚’\n" "\t使ã£ã¦ç·¨é›† (-e)ã™ã‚‹ã€‚ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ãƒ‘ッãƒã®\n" "\tヘッダを出力ã™ã‚‹ã€‚\n" "\n" "--strip-diffstat\n" "\tdiffstatã®å‡ºåŠ›ã‚’ãƒ˜ãƒƒãƒ€ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—をヘッダã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーをパッãƒ~ã¨ã—ã¦ä½œæˆã™ã‚‹ã€‚\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/import.in:22 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "ä½¿ã„æ–¹: quilt import [-p num] [-R] [-P パッãƒ] [-f] [-d {o|a|n}] パッãƒãƒ•ァイ" "ル ...\\n" #: quilt/import.in:25 #, fuzzy msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "外部パッãƒãƒ•ァイルをå–り込む。パッãƒã¯æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã®ä½ç½®ã«å–り込ã¾\n" "れる。å–り込んã ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã«ã¯ pushãŒå¿…è¦ã€‚\n" "\n" "-p num\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«çœãã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¬ãƒ™ãƒ«ã®æ•° (デフォルト㯠1)\n" "\n" "-R\n" "\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-P パッãƒ\n" "\tquiltã®å†…部ã§ä½¿ç”¨ã™ã‚‹ãƒ‘ッãƒã®ãƒ•ァイルå。ã“ã®ã‚ªãƒ—ションã¯ãƒ‘ッãƒã‚’\n" "\t一ã¤ã ã‘å–り込むã¨ãã«æœ‰åŠ¹ã€‚\n" "\n" "-f\t存在ã™ã‚‹ãƒ‘ッãƒã®ä¸Šæ›¸ãã€ã¾ãŸã¯ã‚¢ãƒƒãƒ—デート。\n" "\n" "-d {o|a|n}\n" "\tパッãƒã‚’上書ãã™ã‚‹ã¨ãã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã®æŒ™å‹•を示ã™ã€‚å¤ã„方を残ã™\n" "\t(o)ã€å…¨ã¦ (a)ã€ã¾ãŸã¯æ–°ã—ã„æ–¹ã‚’残㙠(n)。両方ã®ãƒ‘ッãƒã«ãƒ˜ãƒƒãƒ€\n" "\tãŒã‚ã‚‹å ´åˆã¯å¿…ãšã“ã®ã‚ªãƒ—ションを指定ã™ã‚‹å¿…è¦ãŒã‚る。ã“ã®ã‚ªãƒ—ショ\n" "\tン㯠-fãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã®ã¿æœ‰åŠ¹ã€‚\n" #: quilt/import.in:71 msgid "Patch headers differ:\\n" msgstr "パッãƒãƒ˜ãƒƒãƒ€ã®å·®ç•°:\\n" #: quilt/import.in:74 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "ã©ã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã‚’残ã™ã‹ã€ã‚ªãƒ—ション -d {o|a|n}を使ã£ã¦æŒ‡å®šã—ã¦ãã ã•ã„" #: quilt/import.in:139 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "オプション \\`-P'ã¯ã€ãƒ‘ッãƒã‚’一ã¤ã ã‘å–り込むã¨ãã®ã¿æœ‰åйã§ã™\\n" #: quilt/import.in:169 msgid "Patch %s is applied\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/import.in:178 msgid "Patch %s already exists in series.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã« seriesã®ä¸­ã«ã‚りã¾ã™\\n" #: quilt/import.in:184 msgid "Patch %s exists. Replace with -f.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚-fã§ç½®ãæ›ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/import.in:195 msgid "Replacing patch %s with new version\\n" msgstr "パッム%s ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ç½®ãæ›ãˆã¾ã™\\n" #: quilt/import.in:199 msgid "Importing patch %s\\n" msgstr "パッム%s ã‚’å–り込ã¿ã¾ã™\\n" #: quilt/import.in:201 msgid "Importing patch %s (stored as %s)\\n" msgstr "パッム%s ã‚’å–り込んã§ã„ã¾ã™ (%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã™)\\n" #: quilt/import.in:214 msgid "Failed to import patch %s\\n" msgstr "パッム%s ã®å–り込ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/import.in:223 quilt/refresh.in:333 msgid "Failed to insert patch %s into file series\\n" msgstr "seriesファイルã¸ã®ãƒ‘ッム%s ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "ä½¿ã„æ–¹: quilt mail {--mbox file|--send} [-m text] [--prefix prefix] [--" "sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] " "[--reply-to message] [first_patch [last_patch]]\\n" #: quilt/mail.in:27 #, fuzzy msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "指定ã•れãŸç¯„囲内ã€ã¾ãŸã¯ã‚·ãƒªãƒ¼ã‚ºãƒ•ァイル内ã®å…¨ã¦ã®ã®ãƒ‘ッãƒã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’\n" "作æˆã—ã€mailboxファイルã¨ã—ã¦ä¿å­˜ã™ã‚‹ã‹ã€ã™ãã«é€ã‚Šå‡ºã™ã“ã¨ãŒã§ãる。テ\n" "ンプレート付ãã§èª¬æ˜Žæ–‡ä½œæˆç”¨ã«ã‚¨ãƒ‡ã‚£ã‚¿ãŒå®Ÿè¡Œã•れる。詳細ã«ã¤ã„ã¦ã¯\n" "%s ã‚’å‚照。\n" "\n" "-m テキスト\n" "\tãƒ†ã‚­ã‚¹ãƒˆã‚’åºæ–‡ã¨ã—ã¦ä½¿ç”¨ã€‚ã“ã®ã‚ªãƒ—ションãŒä½¿ç”¨ã•れã¦ãŸå ´åˆã«\n" "\tã¯ã‚¨ãƒ‡ã‚£ã‚¿ã¯èµ·å‹•ã•れãšã€ã™ãã«ãƒ‘ッãƒãŒå‡¦ç†ã•れる。\n" "\n" "--prefix 接頭文字列\n" "\tä»¶åã®å‰ã«ç½®ãæ‹¬å¼§å†…ã®æ–‡å­—列を指定。デフォルトã¯\\`patch'。\n" "\n" "--mbox ファイル\n" "\t全メッセージを指定ã•れãŸãƒ•ァイル㫠mboxå½¢å¼ã§ä¿å­˜ã€‚後ã«ä¾‹ãˆã°\n" "\tformailãªã©ã‚’使ã£ã¦é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãる。\n" "\n" "--send\n" "\t直接メッセージをé€ä¿¡ã™ã‚‹ã€‚\n" "\n" "--sender\n" "\tエンベロープ用é€ä¿¡è€…ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ‡å®šã€‚アドレスã¯å¿…ãš \n" "\t\\`user@domain.name'ã¨ã„ã†å½¢ã«ãªã£ã¦ã„ãªã‘れã°ãªã‚‰ãªã„。表示用\n" "\tã®åå‰ã¯ä½¿ç”¨ä¸å¯ã€‚\n" "\n" "--from, --subject\n" "\t使用ã™ã‚‹ Fromã¨Subjectヘッダã®å€¤ã€‚--formオプションãŒä¸Žãˆã‚‰ã‚Œãª\n" "\tã„å ´åˆã¯ --senderオプションãŒä½¿ç”¨ã•れる。\n" "\n" "--to, --cc, --bcc\n" "\tToã‚„CCã€BCCã¸ã®å—信者ã®è¿½åŠ ã€‚\n" "\n" "--signature ファイル\n" "\t指定ã•れãŸã‚·ã‚°ãƒãƒãƒ£ã‚’メッセージã«è¿½è¨˜ (ã‚‚ã—ã‚れã°ã€~/.signature\n" " ãŒãƒ‡ãƒ•ォルトã§ä½¿ã‚れる。\\`-' を指定ã™ã‚‹ã¨ã‚·ã‚°ãƒãƒãƒ£ç„¡ã—ã¨ãªã‚‹)。\n" "\n" "--reply-to メッセージ\n" "\t指定ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¸ã®ãƒªãƒ—ライã¨ãªã‚‹ã‚ˆã†ã«ã€é©åˆ‡ãªãƒ˜ãƒƒãƒ€ã‚’追加。\n" #: quilt/mail.in:302 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "エンベロープã®é€ä¿¡è€…アドレスを確定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚--senderオプション\n" "を使用ã—ã¦ãã ã•ã„。" #: quilt/mail.in:446 msgid "Unable to extract a subject header from %s\\n" msgstr "%s ã‹ã‚‰ä»¶åã‚’å–り出ã›ã¾ã›ã‚“。\\n" #: quilt/mail.in:470 msgid "Patches %s have duplicate subject headers.\\n" msgstr "パッム%s ã®ä»¶åãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã€‚\\n" #: quilt/mail.in:479 msgid "File %s does not exist\\n" msgstr "ファイル %s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/mail.in:539 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "åºæ–‡ã«ä»¶åãŒã‚りã¾ã›ã‚“(%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã—ãŸ)\\n" #: quilt/mail.in:542 msgid "Introduction has no subject header\\n" msgstr "åºæ–‡ã«ä»¶åãŒã‚りã¾ã›ã‚“\\n" #: quilt/mail.in:656 msgid "Introduction saved as %s\\n" msgstr "åºæ–‡ã¯ %s ã¨ã„ã†åå‰ã§ä¿å­˜ã•れã¾ã—ãŸ\\n" #: quilt/new.in:22 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "ä½¿ã„æ–¹: quilt new [-p n | -p ab] {パッãƒå}\\n" #: quilt/new.in:25 #, fuzzy msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルåã§æ–°ã—ã„パッãƒã‚’作æˆã—ã€ãƒ‘ッãƒã‚·ãƒªãƒ¼ã‚ºãƒ•ァイルã«ã‚\n" "る最上ä½ãƒ‘ッãƒã®æ¬¡ã«è¿½åŠ ã™ã‚‹ã€‚\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1 ã«å¯¾å¿œ)。\n" "\n" "-p ab\t-p1 スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/file ã¨\n" "\tdir/file ã¨ã„ã†åå‰ã§ã¯ãªãã€ã‚ªãƒªã‚¸ãƒŠãƒ«å´ã‚’ a/file ã€æ–°ã—ã„æ–¹ã‚’\n" "\tb/file ã¨ã„ã†åå‰ã«ã™ã‚‹\n" "\n" "Quilt ã¯ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ä»»æ„ã®ã‚µãƒ–ディレクトリã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚実行\n" "ã•れãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã«ã‚ã‚‹ %s ディレクトリを探ã™ã“ã¨ã§ã€\n" "ソースコードã®ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’自動的ã«åˆ¤æ–­ã™ã‚‹ã“ã¨ãŒã§ãる。æ„図ã—\n" "ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ Quilt ãŒé–“é•ã£ã¦é¸ã‚“ã§ã—ã¾ã£ãŸå ´\n" "åˆã¯ã€æ­£ã—ã„場所㫠%s ディレクトリを作æˆã™ã‚‹ã“ã¨ã€‚\n" #: quilt/new.in:76 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã€-p1 ã¾ãŸã¯ -pab を指定ã—ã¦ãã " "ã•ã„\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/new.in:108 quilt/refresh.in:342 msgid "Failed to create patch %s\\n" msgstr "パッム%s ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/new.in:111 msgid "Patch %s is now on top\\n" msgstr "パッム%s を最上ä½ã«ã—ã¾ã—ãŸ\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt next [パッãƒ]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒåを表示。\n" #: quilt/patches.in:24 #, fuzzy msgid "Usage: quilt patches [-v] {file} [files...]\\n" msgstr "ä½¿ã„æ–¹: quilt patches [-v] {ファイル}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルã«å¯¾ã—ã€å¤‰æ›´ã‚’行ãªã†ãƒ‘ッãƒã®ãƒªã‚¹ãƒˆã‚’表示。 (é©ç”¨ã•れã¦\n" "ã„ãªã„パッãƒãŒæŒ‡å®šã•れãŸãƒ•ァイルã«å¯¾ã—ã¦å¤‰æ›´ã‚’åŠã¼ã™ã‹ã©ã†ã‹ã‚’調ã¹ã‚‹ã«ã¯\n" "発見的方法 (a heuristic)ãŒç”¨ã„られる。ã“ã®æ–¹æ³•ã¯é©ç”¨ã•れã¦ã„るパッãƒã‚’\n" "スキャンã™ã‚‹ã‚ˆã‚Šå¤§å¹…ã«é…ã„。\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "ä½¿ã„æ–¹: quilt pop [-afRqv] [æ•°å­—|パッãƒ]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\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\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã‹ã‚‰ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚オプションãŒç„¡ã„å ´åˆã¯\n" "最上ä½ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚æ•°å­—ãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•ã‚ŒãŸæ•°ã®ãƒ‘ッãƒã‚’ã¯\n" "ãšã™ã€‚パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒãŒæœ€ä¸Šä½ãƒ‘ッãƒã«ãªã‚‹\n" "ã¾ã§ã€ãã®ä¸Šã«ç©ã¾ã‚Œã¦ã„るパッãƒã‚’ã¯ãšã—ã¦ã„ã。シェルã®ãƒ•ァイルå補完\n" "機能を有効ã«ä½¿ã†ãŸã‚ã«ã€ãƒ‘ッãƒåã®å‰ã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚\n" "å¯èƒ½ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚\n" "\n" "-f\tå•題ãŒã‚るパッãƒã§ã‚‚ã€å‡¦ç†ã‚’進ã‚る。ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルを使ã£ã¦ã€\n" "\tパッãƒãŒé©ç”¨ã•れるå‰ã®çŠ¶æ…‹ã«å¾©æ—§ã™ã‚‹ã€‚\n" "\n" "-R\tå¿…ãšãƒ‘ッãƒãŒæ­£å¸¸ã«ã¯ãšã›ã‚‹ã‹æ¤œè¨¼ã™ã‚‹ (タイムスタンプã®ãƒã‚§ãƒƒã‚¯ã«\n" "\tä¾å­˜ã—ãªã„)\n" "\n" "-q\t表示を抑制。\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:892 msgid "Failed to copy files to temporary directory\\n" msgstr "テンãƒãƒ©ãƒªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¸ã®ãƒ•ァイルコピーã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "パッム%s ã‚’ã€æ­£å¸¸ã«ã¯ãšã™ã“ã¨ãŒã§ãã¾ã›ã‚“ (リフレッシュã™ã‚‹ã‹ -fを付\n" "ã‘ã¦ã¯ãšã—ã¦ãã ã•ã„)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "パッム%s ã¯ã€ç©ºã®ã‚ˆã†ã§ã™ã€‚ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "パッム%s ã‚’ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "最åˆã«ã€ãƒ‘ッム%s ã®ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™ã€‚\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:498 msgid "No patches applied\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:259 quilt/push.in:397 msgid "Now at patch %s\\n" msgstr "ç¾åœ¨ä½ç½®ã¯ãƒ‘ッム%s ã§ã™\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt previous [パッãƒ]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®š\n" "ã•れãŸãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。\n" #: quilt/push.in:24 msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "seriesã«ç™»éŒ²ã•れã¦ã„るパッãƒã‚’é©ç”¨ã™ã‚‹ã€‚オプションãŒç„¡ã„å ´åˆã¯ series\n" "ãƒ•ã‚¡ã‚¤ãƒ«å†…ã®æ¬¡ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚æ•°å­—ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã¯ã€ä¸Žãˆã‚‰ã‚ŒãŸå€‹\n" "æ•°ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚パッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§\n" "ã‚’é©ç”¨ã™ã‚‹(指定ã•れãŸãƒ‘ッãƒã‚’å«ã‚€)。ファイルå補完機能を活用ã™ã‚‹ãŸã‚ã«ã€\n" "パッãƒåã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã€‚\n" "\n" "-a\tseriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’é©ç”¨ã€‚\n" "\n" "-q\t表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚表示抑制モード以外ã§ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ©\n" "\tクティブã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ã¤ã¾ã‚Šã€ãƒ‘ッãƒé©ç”¨æ™‚ã«è³ªå•ã•れるã“ã¨ãŒ\n" "\tã‚る。\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹ã€‚\n" "\n" "-m, --merge[=merge|diff3]\n" "\tパッãƒãƒ•ァイルをオリジナルã®ãƒ•ァイルã«ãƒžãƒ¼ã‚¸ (patch(1)ã‚’å‚ç…§)。\n" "\n" "--leave-rejects\n" "\tパッãƒãŒé©ç”¨ã•れãªãã¦ã‚‚ã€patchコマンドã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸãƒªã‚¸ã‚§\n" "\tクトファイルをãã®ã¾ã¾æ®‹ã™ã€‚\n" "\n" "--color[=always|auto|never]\n" " シンタックスã®è‰²ä»˜ã‘を行ãªã†ã€‚\n" "\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "ユーザã«ã‚ˆã£ã¦ä¸­æ–­ã•れã¾ã—ãŸã€‚パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“。\\n" #: quilt/push.in:180 msgid "Applying patch %s\\n" msgstr "パッム%s ã‚’é©ç”¨ã—ã¦ã„ã¾ã™\\n" #: quilt/push.in:214 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "パッム%s ã¯å­˜åœ¨ã—ã¾ã›ã‚“。空ã®ãƒ‘ッãƒã‚’é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:218 msgid "Patch %s appears to be empty; applied\\n" msgstr "パッム%s ã¯ç©ºã®ã‚ˆã†ã§ã™ãŒã€é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:222 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" "パッム%s ã‚’é©ç”¨ã—ã¾ã—㟠(強制é©ç”¨ã—ãŸãŸã‚ã«ã€ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™)\\n" #: quilt/push.in:232 msgid "Patch %s can be reverse-applied\\n" msgstr "パッム%s ã¯ã€å転ã—ã¦é©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/push.in:235 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "パッム%s ãŒé©ç”¨ã§ãã¾ã›ã‚“ (強制é©ç”¨ã™ã‚‹å ´åˆã¯ -fを付ã‘ã¦ãã ã•ã„)\\n" #: quilt/push.in:377 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "最上ä½ãƒ‘ッãƒã®ãƒªãƒ•ãƒ¬ãƒƒã‚·ãƒ¥ãŒæœ€åˆã«å¿…è¦ã§ã™ã€‚\\n" #: quilt/refresh.in:22 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[æ–°ã—ã„åå‰]] [-" "f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/refresh.in:26 msgid "" "\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" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã‚’作æˆã—ç›´ã™ã€‚ã“れをリフレッシュã™ã‚‹ã¨å‘¼ã¶ã€‚デフォルト\n" "ã§ã¯æœ€ä¸Šä½ãƒ‘ッãƒã®ãƒªãƒ•レッシュを行ã†ã€‚パッãƒã®å…ˆé ­ã«æ›¸ã‹ã‚Œã¦ã„るドキュ\n" "メントã¯ä¿æŒã•れる。\n" "\n" "スタックã®ä¸€ç•ªä¸Šä»¥å¤–ã®ãƒ‘ッãƒã‚‚リフレッシュã™ã‚‹ã“ã¨ãŒã§ãる。リフレッシュ\n" "ã™ã‚‹ãƒ‘ッãƒã¨ãã®ä¸Šã«ä¹—ã£ã¦ã„るパッãƒãŒã€åŒã˜ãƒ•ァイルを変更ã—ã¦ã„ã‚‹å ´åˆ\n" "ã¯ãƒ‡ãƒ•ォルトã§ç•°å¸¸çµ‚了ã™ã‚‹ã€‚-fオプションを付ã‘ã‚‹ã“ã¨ã§ãƒªãƒ•レッシュを強\n" "制ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ãŒã€å½±ã«ãªã£ãŸãƒ•ァイルã”ã¨ã« quiltã¯è­¦å‘Šã‚’出ã™ã€‚最近\n" "ã®ãƒ‘ッãƒã«ã‚ˆã‚‹å¤‰æ›´ã¯ç„¡è¦–ã•れるãŸã‚ã€ãれ以外ã®å¤‰æ›´ã ã‘ãŒæŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒã«å映ã•れる。\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)。\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€a/fileã¨b/fileã‚’ãれãžã‚Œã‚ªãƒªã‚¸ãƒŠãƒ«\n" "\tã¨æ–°ã—ã„ファイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "-z[æ–°ã—ã„åå‰]\n" "\t一番上ã®ãƒ‘ッãƒã‚’リフレッシュã›ãšã«ã€æ–°ã—ã„パッãƒã‚’作æˆã™ã‚‹ã€‚ã‚‚\n" "\tã—æ–°ã—ã„åå‰ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã¯ã€\\`-2'ãŒå…ƒã®ãƒ‘ッãƒåã«ä»˜åŠ ã•\n" "\tれる。(forkコマンドå‚ç…§)\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "--diffstat\n" "\tdiffstatã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’パッãƒã®å…ˆé ­éƒ¨åˆ†ã«è¿½åŠ ã€ã¾ãŸã¯æ—¢å­˜ã® \n" "\tdiffstatセクションを上書ãã™ã‚‹ã€‚\n" "\n" "-f\tスタックã®ä¸€ç•ªä¸Šã«ãªã„パッãƒã®ãƒªãƒ•レッシュを強è¦ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—用ã®ã‚³ãƒ”ーã¨ã—ã¦å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã‚’パッãƒ~ã®\n" "\tå½¢ã§ä½œæˆã™ã‚‹ã€‚\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—を削除ã™ã‚‹ã€‚\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "-zオプションãŒã‚ã‚‹å ´åˆã€æœ€ä¸Šä½ãƒ‘ッãƒä»¥å¤–ã®ãƒªãƒ•レッシュã¯ã§ãã¾ã›ã‚“\\n" #: quilt/refresh.in:202 msgid "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" msgstr "" "-p%s ã§ã¯ãƒªãƒ•レッシュã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã¾ãŸã¯ -p1を指定ã—ã¦ãã ã•ã„\\n" #: quilt/refresh.in:240 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "より最近ã®ãƒ‘ッãƒãŒãƒ‘ッム%s ã®ãƒ•ァイルã«å¤‰æ›´ã‚’加ãˆã¦ã„ã¾ã™ã€‚リフレッシュを実" "行ã™ã‚‹å ´åˆã¯ -f オプションを使用ã—ã¦ãã ã•ã„。\\n" #: quilt/refresh.in:246 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "--strip-trailing-whitespace ã¯å½±ã«ãªã£ã¦ã„るファイルãŒã‚ã‚‹å ´åˆã¯ä½¿ãˆã¾ã›ã‚“" #: quilt/refresh.in:252 quilt/refresh.in:354 msgid "Nothing in patch %s\\n" msgstr "パッム%s ã«ã¯ãªã«ã‚‚å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/refresh.in:324 msgid "Patch %s is unchanged\\n" msgstr "パッム%s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/refresh.in:352 msgid "Refreshed patch %s\\n" msgstr "パッム%s をリフレッシュã—ã¾ã—ãŸ\\n" #: quilt/remove.in:22 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt remove [-P パッãƒ] {ファイル} ...\\n" #: quilt/remove.in:25 msgid "" "\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" "\tRemove named files from the named patch.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルを最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚指\n" "定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "ファイル %s をパッム%s ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "ファイル %s ã‚’ã€ãƒ‘ッム%s ã‹ã‚‰å‰Šé™¤ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:22 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "ä½¿ã„æ–¹: quilt rename [-P patch] new_name\\n" #: quilt/rename.in:25 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®åå‰ã‚’変更ã™ã‚‹\n" "\n" "-P patch\n" "\tåå‰ã‚’変更ã™ã‚‹ patch\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸ã®åå‰ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/revert.in:22 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt revert [-P パッãƒ] {ファイル} ...\\n" #: quilt/revert.in:25 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã‚³ãƒŸãƒƒãƒˆã•れã¦ã„ãªã„ã€æŒ‡å®šãƒ•ァイル\n" "ã¸ã®å¤‰æ›´ã‚’å…ƒã«æˆ»ã™ã€‚å…ƒã«æˆ»ã—ãŸå¾Œã€'quilt diff -z' ã¯ã“れらã®ãƒ•ァイルã«\n" "é•ã„ãŒãªã„ã“ã¨ã‚’示ã™ã€‚指定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹\n" "å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/revert.in:103 quilt/revert.in:112 msgid "File %s is unchanged\\n" msgstr "ファイル %s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/revert.in:120 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "%s ã¸ã®å¤‰æ›´(パッム%s 内)ã‚’å…ƒã«æˆ»ã™ã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" #: quilt/revert.in:124 msgid "Changes to %s in patch %s reverted\\n" msgstr "%s ã¸ã®å¤‰æ›´ (パッム%s 内) ã‚’å…ƒã«æˆ»ã—ã¾ã—ãŸ" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "表示用ã®åå‰ `%s' ãŒå¯¾ã«ãªã‚‰ãªã„括弧をå«ã‚“ã§ã„ã¾ã™\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "é…é€å…ˆã®ã‚¢ãƒ‰ãƒ¬ã‚¹ `%s' ãŒä¸æ­£ã§ã™\n" #: quilt/scripts/patchfns.in:217 quilt/scripts/patchfns.in:511 msgid "%s is not a regular file\\n" msgstr "%s ã¯æ™®é€šã®ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:465 quilt/scripts/patchfns.in:482 msgid "No patches in series\\n" msgstr "シリーズã«ç™»éŒ²ã•れã¦ã„るパッãƒãŒã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:467 quilt/scripts/patchfns.in:484 msgid "No series file found\\n" msgstr "シリーズファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:540 msgid "Patch %s is not in series\\n" msgstr "パッム%s 㯠seriesã®ä¸­ã«ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:568 msgid "Patch %s is not applied\\n" msgstr "パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:605 msgid "File series fully applied, ends at patch %s\\n" msgstr "" "seriesファイルã®ãƒ‘ッãƒã¯ã™ã¹ã¦é©ç”¨ã•れã¦ã„ã¾ã™ã€‚最終パッãƒã¯ %s ã§ã™ã€‚\\n" #: quilt/scripts/patchfns.in:638 msgid "Patch %s does not exist\\n" msgstr "パッム%s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:910 msgid "Failed to patch temporary files\\n" msgstr "テンãƒãƒ©ãƒªãƒ•ァイルã¸ã®ãƒ‘ッãƒé©ç”¨ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/scripts/patchfns.in:951 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "ã“ã®ãƒ„リー内ã«ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %sã® quiltメタデータãŒå­˜åœ¨ã—ã¾ã™ã€‚ã—ã‹ã—ã“\n" "ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ã¯ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã¾ã§ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã—ã‹ã‚µãƒãƒ¼ãƒˆã—\n" "ã¦ã„ã¾ã›ã‚“。ダウングレードã™ã‚‹å‰ã«ã€pushã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltを使ã£ã¦ã€\n" "ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ pop ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/patchfns.in:1095 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã«ã‚ˆã£ã¦ä½œã‚‰ã‚ŒãŸã‚‚ã®ã§" "ã™ã€‚'quilt upgrade'を実行ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "書å¼: %s [p num] [-n] [パッãƒ]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: æ··ä¹±ã—ã¾ã—ãŸ\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ: %s\n" #: quilt/series.in:22 msgid "Usage: quilt series [-v]\\n" msgstr "ä½¿ã„æ–¹: quilt series [-v]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\t\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "seriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’表示。\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" #: quilt/setup.in:34 quilt/setup.in:53 msgid "Directory %s exists\\n" msgstr "ディレクトリ %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:59 msgid "File %s exists\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:99 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "ä½¿ã„æ–¹: quilt setup [-d path-prefix] [-v] [--sourcedir ディレクトリ] [--" "fuzz=N] {specファイル|シリーズファイル}\\n" #: quilt/setup.in:102 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "rpmã® specファイルã¾ãŸã¯ quiltã® seriesファイルを使ã£ã¦ã‚½ãƒ¼ã‚¹ãƒ„リーを\n" "åˆæœŸåŒ–ã™ã‚‹ã€‚\n" "\n" "-d\tソースツリー用ã®ä»»æ„ã®ãƒ‘スプレフィクス\n" "\n" "--sourcedir\n" "\tパッケージソースãŒå…¥ã£ã¦ã„るディレクトリ。デフォルトã¯\\`.'。\n" "\n" "-v\t詳細ãªãƒ‡ãƒãƒƒã‚°è¡¨ç¤º\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹\n" #: quilt/setup.in:173 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "%%prepセクションã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸã€‚完全ã«ä½œæ¥­ãŒå®Œäº†ã—ã¦ã„ãªã„å ´åˆãŒã‚りã¾" "ã™\\n" #: quilt/setup.in:176 msgid "The -v option will show rpm's output\\n" msgstr "-vオプションを使ã£ã¦ã€rpmã®å‡ºåŠ›ã‚’è¡¨ç¤ºã§ãã¾ã™" #: quilt/setup.in:228 quilt/setup.in:240 msgid "File %s not found\\n" msgstr "ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: quilt/setup.in:231 quilt/setup.in:243 msgid "Unpacking archive %s\\n" msgstr "アーカイブ %s を展開ã—ã¦ã„ã¾ã™\\n" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "ä½¿ã„æ–¹: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "ç¾åœ¨ã®ä½œæ¥­çŠ¶æ…‹ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã™ã‚‹ã€‚スナップショットを作æˆã—ãŸ\n" "後ã€ãƒ„リーã¯ã„ã¤ã‚‚ã®ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚パッãƒã‚’ pushã—ãŸã‚Š pop\n" "ã™ã‚‹ã“ã¨ãŒã§ãる。スナップショットã¸ã® diffã¯ã€\\`quilt diff\n" "--snapshot'ã¨ã™ã‚‹ã“ã¨ã§ç”Ÿæˆã§ãる。\n" "\n" "-d\tç¾åœ¨ã®ã‚¹ãƒŠãƒƒãƒ—ショットを削除。\n" "\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "ä½¿ã„æ–¹: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "ç¾åœ¨é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã®æœ€ä¸Šä½ãƒ‘ッãƒåを表示\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt unapplied [パッãƒ]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。パッãƒãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒä»¥é™ã§é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "ä½¿ã„æ–¹: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "作業ツリーã«ã‚ã‚‹å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—ã‚°\n" "レードã™ã‚‹ã€‚ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€quiltã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ãƒ•ォーマットãŒå¤‰æ›´ã•れãŸ\n" "å ´åˆã®ã¿å¿…è¦ã€‚変更ãŒç¢ºèªã•れãŸå ´åˆã€quiltã‹ã‚‰ \\`quilt upgrade'ã®å®Ÿè¡ŒãŒ\n" "è¦æ±‚ã•れる。\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "%s 内㮠quilt メタデータã¯ã™ã§ã« version %s フォーマットã®ãŸã‚ã€å‡¦ç†ã™ã‚‹å¿…è¦" "ãŒã‚りã¾ã›ã‚“。\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "メタデータを version %s ã«å¤‰æ›´ä¸­ã§ã™\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "変更ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ„リーを作æˆã—㟠quiltã¨åŒã˜ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ \\`quilt\n" "pop -a'を実行ã—ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã—ã¦ãã ã•ã„。ã¾ãŸã¯ã€%s ディレク\n" "トリを削除ã—ã€æœ€åˆã‹ã‚‰ãƒ‘ッãƒã‚’ã‚ã¦ç›´ã—ã¦ãã ã•ã„。\\n" quilt-0.61/po/ru.po0000644000175000017500000017505512251154460014523 0ustar mquinsonmquinson# Russian translation for quilt # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the quilt package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: quilt\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-09-20 08:04+0000\n" "PO-Revision-Date: 2011-09-20 07:55+0000\n" "Last-Translator: Sergey Basalaev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-20 08:04+0000\n" "X-Generator: Launchpad (build 13980)\n" #: bin/quilt.in:36 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "СинтакÑиÑ: quilt [--trace[=verbose]] [--quiltrc=XX] команда [-h] ..." #: bin/quilt.in:37 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:39 msgid "Commands are:" msgstr "Команды:" #: bin/quilt.in:44 #, fuzzy msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t@ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately." msgstr "" "\n" "Общие опции:\n" "\n" "--trace\n" "\tЗапуÑкает команду в режиме траÑÑировки bash (-x). Ð”Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ отладки.\n" "\n" "--quiltrc файл\n" "\tИÑпользовать указанный файл конфигурации вмеÑто ~/.quiltrc (или\n" "\t/etc/quilt.quiltrc, еÑли ~/.quiltrc не ÑущеÑтвует). Смотрите\n" "\tpdf-документацию, чтобы узнать о возможном Ñодержимом.\n" "\n" "--version\n" "\tÐапечатать номер верÑии и выйти из программы." #: quilt/add.in:22 #, fuzzy msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt add [-p патч] {файл} ...\\n" #: quilt/add.in:25 #, fuzzy msgid "" "\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 already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Добавить один или более файлов к верхнему или к названному патчу.\n" "Файлы необходимо добавлÑть к патчу перед тем, как изменÑть их.\n" "Файлы, которые изменены патчами, уже наложенными поверх выбранного,\n" "не могут быть добавлены.\n" "\n" "-p патч\n" "\tПатч, к которому добавлÑть файлы.\n" #: quilt/add.in:48 quilt/add.in:54 #, fuzzy msgid "File %s is located below %s\\n" msgstr "Файл \\`%s' раÑположен ниже \\`%s'\\n" #: quilt/add.in:103 msgid "File %s is already in patch %s\\n" msgstr "Файл %s уже в патче %s\\n" #: quilt/add.in:111 quilt/remove.in:82 quilt/revert.in:84 msgid "File %s modified by patch %s\\n" msgstr "Файл %s изменён патчем %s\\n" #: quilt/add.in:119 msgid "Cannot add symbolic link %s\\n" msgstr "Ðе удалоÑÑŒ добавить Ñимвольную ÑÑылку %s\\n" #: quilt/add.in:126 msgid "Failed to back up file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла %s\\n" #: quilt/add.in:137 msgid "File %s added to patch %s\\n" msgstr "Файл %s добавлен к патчу %s\\n" #: quilt/annotate.in:22 #, fuzzy msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "СинтакÑиÑ: quilt annotate {файл}\\n" #: quilt/annotate.in:25 #, fuzzy msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок, показывающий, какие Ñтроки указанного файла\n" "какими патчами изменены.\n" #: quilt/applied.in:22 msgid "Usage: quilt applied [patch]\\n" msgstr "СинтакÑиÑ: quilt applied [патч]\\n" #: quilt/applied.in:25 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок применённых патчей или вÑех патчей, до и включаÑ\n" "указанный патч в файле series.\n" #: quilt/delete.in:22 #, fuzzy msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "СинтакÑиÑ: quilt delete [патч | -n]\\n" #: quilt/delete.in:25 #, fuzzy msgid "" "\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.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Удалить указанный или верхний патч из файла series. ЕÑли патч применён,\n" "то quilt попытаетÑÑ ÐµÐ³Ð¾ отменить. (Ð’ наÑтоÑщий момент можно удалить\n" "лишь верхний патч).\n" "\n" "-n\tУдалить патч, предшеÑтвующий верхнему, вмеÑто указанного\n" "\tили верхнего.\n" #: quilt/delete.in:89 msgid "No next patch\\n" msgstr "ОтÑутÑтвует Ñледующий патч\\n" #: quilt/delete.in:102 quilt/scripts/patchfns.in:589 msgid "Patch %s is currently applied\\n" msgstr "Патч %s применён\\n" #: quilt/delete.in:114 msgid "Removed patch %s\\n" msgstr "Удалён патч %s\\n" #: quilt/delete.in:116 msgid "Failed to remove patch %s\\n" msgstr "Ðе удалоÑÑŒ отменить патч %s\\n" #: quilt/delete.in:127 #, fuzzy msgid "Failed to backup patch file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла %s\\n" #: quilt/delete.in:134 #, fuzzy msgid "Failed to remove patch file %s\\n" msgstr "Ðе удалоÑÑŒ отменить патч %s\\n" #: quilt/diff.in:24 #, fuzzy msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color] [file ...]\\n" msgstr "" "СинтакÑиÑ: quilt diff [-p n] [-u|-U чиÑло|-c|-C чиÑло] [--combine патч|-z] [-" "R] [-P патч] [--snapshot] [--diff=утилита] [--no-timestamps] [--no-index] [--" "sort] [--color] [файл ...]\\n" #: quilt/diff.in:28 #, fuzzy msgid "" "\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 ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine 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" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Создаёт diff указанных файлов в верхнем или указанном патче. ЕÑли не\n" "указано файлов, то в diff включаютÑÑ Ð²Ñе изменённые файлы.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "-z\tВывеÑти на Ñтандартный вывод изменениÑ, Ñделанные\n" "\tотноÑительно Ñамого верхнего или указанного патча.\n" "\n" "-R\tСоздать обратный diff.\n" "\n" "-P патч\n" "\tСоздать diff Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ патча. (По умолчанию Ð´Ð»Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾.)\n" "\n" "--combine патч\n" "\tСоздать объединённый diff Ð´Ð»Ñ Ð²Ñех патчей между Ñтим патчем и\n" "\tуказанным в опции -P. Ð˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° «-» Ñквивалентно первому\n" "\tприменённому патчу.\n" "\n" "--snapshot\n" "\tdiff отноÑительно Ñнимка (Ñм. \\`quilt snapshot -h').\n" "\n" "--diff=утилита\n" "\tИÑпользовать указанную утилиту Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ diff. Утилита вызываетÑÑ\n" "\tÑ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ оригинального файла и нового файла в качеÑтве аргументов.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа.\n" "\n" "--sort\tСортировать файлы по имени, не ÑохранÑÑ Ð¸Ñ… иÑходного порÑдка.\n" #: quilt/diff.in:218 #, fuzzy msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Опции \\`-c patch', \\`--snapshot' и \\`-z' не могут иÑпользоватьÑÑ " "ÑовмеÑтно.\\n" #: quilt/diff.in:232 #, fuzzy msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "Ðевозможно Ñравнить патчи Ñ -p%s, иÑпользуйте -p0 либо -p1\\n" #: quilt/diff.in:241 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:273 quilt/files.in:105 quilt/mail.in:418 msgid "Patch %s not applied before patch %s\\n" msgstr "Патч %s не был применён перед патчем %s\\n" #: quilt/diff.in:341 msgid "File %s is not being modified\\n" msgstr "Файл %s не изменÑетÑÑ\\n" #: quilt/diff.in:360 quilt/refresh.in:234 msgid "Diff failed, aborting\\n" msgstr "Ðе удалоÑÑŒ выполнить diff, завершение\\n" #: quilt/diff.in:367 #, fuzzy msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Более новые патчи изменÑÑŽÑ‚ файлы в патче %s\\n" #: quilt/edit.in:24 msgid "Usage: quilt edit file ...\\n" msgstr "СинтакÑиÑ: quilt edit файл ...\\n" #: quilt/edit.in:27 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Редактировать указанные файлы в редакторе \\$EDITOR (%s) поÑле\n" "Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñ… к верхнему патчу.\n" #: quilt/files.in:22 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "СинтакÑиÑ: quilt files [-v] [-a] [-l] [--combine патч] [патч]\\n" #: quilt/files.in:25 #, fuzzy msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "ВывеÑти ÑпиÑок файлов, которые указанный или верхний патч изменÑет.\n" "\n" "-a\tСпиÑок вÑех файлов во вÑех применённых патчах.\n" "\n" "-l\tДобавить Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° к выводу.\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" "\n" "--combine патч\n" "\tСоздать ÑпиÑок вÑех патчей между Ñтим патчем и верхним\n" "\tприменённым патчем. Указание имени «-» Ñквивалентно\n" "\tуказанию первого применённого патча.\n" "\n" #: quilt/fold.in:22 #, fuzzy msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Usage: quilt fold [-p strip-level]\\n" #: quilt/fold.in:25 #, fuzzy msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Интегрировать патч, Ñчитанный Ñо Ñтандартного ввода, в верхний:\n" "ПоÑле проверки того, что вÑе изменённые файлы чаÑть Ñамого верхнего\n" "патча, патч применÑетÑÑ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ уровнем очиÑтки (по умолчанию 1).\n" "\n" "-p strip-level\n" "\tЧиÑло компонент пути, которые необходимо удалить из имён файлов\n" "\tпри наложении патча.\n" #: quilt/fold.in:131 msgid "File %s may be corrupted\\n" msgstr "Файл %s может быть повреждён\\n" #: quilt/fork.in:22 msgid "Usage: quilt fork [new_name]\\n" msgstr "СинтакÑиÑ: quilt fork [новое_имÑ]\\n" #: quilt/fork.in:25 #, fuzzy msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Создать ответвление верхнего патча. СоздаётÑÑ Ñ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° Ñ Ð½Ð¾Ð²Ñ‹Ð¼\n" "именем, и Ñто Ð¸Ð¼Ñ Ð¸ÑпользуетÑÑ Ð²Ð¼ÐµÑто оригинального патча в файле series.\n" "Это полезно, еÑли необходимо изменить патч, но иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð°\n" "быть Ñохранаена, например, потому что она иÑпользуетÑÑ Ð² другой Ñерии\n" "патчей или Ð´Ð»Ñ Ð¸Ñтории. Типичной поÑледовательноÑтью команд в Ñтом Ñлучае\n" "может быть: fork, edit, refresh.\n" "\n" "ЕÑли новое_Ð¸Ð¼Ñ Ð¾Ñ‚ÑутÑтвует, иÑпользуетÑÑ Ð¸Ð¼Ñ Ð¸Ñходного патча, к которому\n" "добавлÑетÑÑ Â«-2». ЕÑли патч уже заканчиваетÑÑ Ð´ÐµÑ„Ð¸Ñом и чиÑлом, то Ñто\n" "чиÑло увеличиваетÑÑ (Ñ‚.е. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:84 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите новое имÑ\\n" #: quilt/fork.in:96 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Ðе удалоÑÑŒ Ñоздать ответвление патча %s в патч %s\\n" #: quilt/fork.in:102 quilt/refresh.in:346 msgid "Fork of patch %s created as %s\\n" msgstr "Ответвление патча %s Ñоздано как %s\\n" #: quilt/graph.in:22 #, fuzzy msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt graph [--all] [--reduce] [--lines[=чиÑло]] [--edge-" "labels=файлы] [патч]\\n" #: quilt/graph.in:26 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Создать ориентированный граф dot(1), показывающий завиÑимоÑти между\n" "применёнными патчами. Патч завиÑит от другого патча, еÑли оба изменÑÑŽÑ‚\n" "один и тот же файл или, Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --lines, еÑли их Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑекаютÑÑ.\n" "ЕÑли не указано иное, граф включает вÑе патчи, от которых завиÑит Ñамый\n" "верхний патч.\n" "Когда указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, ÑоздаётÑÑ Ð³Ñ€Ð°Ñ„ завиÑимоÑтей Ð´Ð»Ñ Ð½ÐµÐ³Ð¾. Граф\n" "включает вÑе патчи, от которых завиÑит Ñтот патч, а также вÑе патчи,\n" "которые завиÑÑÑ‚ от него.\n" "\n" "--all\tСоздать граф, включающий вÑе применённые патчи и их\n" "\tзавиÑимоÑти. (Ðеприменённые патчи не включаютÑÑ.)\n" "\n" "--reduce\n" "\tУдалить транзитивные рёбра из графа.\n" "\n" "--lines[=чиÑло]\n" "\tВычиÑлÑть завиÑимоÑти по Ñтрокам, которые патчи изменÑÑŽÑ‚.\n" "\tЕÑли не указано другое чиÑло, включает две Ñтроки контекÑта.\n" "\n" "--edge-labels=files\n" "\tПомечать рёбра именами файлов, которые Ñмежные патчи изменÑÑŽÑ‚.\n" "\n" "-T ps\tСразу Ñоздать файл PostScript.\n" #: quilt/grep.in:22 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "СинтакÑиÑ: quilt grep [-h|параметры] {шаблон}\\n" #: quilt/grep.in:25 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "ПроизвеÑти поиÑк Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ grep(1) по файлам иÑходного кода рекурÑивно,\n" "пропуÑÐºÐ°Ñ Ð¿Ð°Ñ‚Ñ‡Ð¸ и метаинформацию quilt. ЕÑли Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° не указано,\n" "поиÑк выполнÑетÑÑ Ð¿Ð¾ вÑему дереву. Опции Ñмотрите на Ñтранице Ñправки\n" "grep(1).\n" "\n" "-h\tВывеÑти Ñту Ñправку. ÐžÐ¿Ñ†Ð¸Ñ grep -h может быть передана поÑле\n" "\tдвойного дефиÑа (--). Ð’Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка, начинающиеÑÑ Ñ Ð´ÐµÑ„Ð¸Ñа,\n" "\tмогут быть переданы поÑле второго двойного дефиÑа (-- --).\n" #: quilt/header.in:24 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [патч]\\n" #: quilt/header.in:28 #, fuzzy msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "ВывеÑти или изменить заголовок верхнего или указанного патча.\n" "\n" "-a, -r, -e\n" "\tДобавить к (-a) или заменить (-r) текущий заголовок патча, или\n" "\tредактировать (-e) заголовок в редакторе \\$EDITOR (%s). ЕÑли\n" "\tне дано ни одной из Ñтих опций, вывеÑти заголовок патча.\n" "\n" "--strip-diffstat\n" "\tУдалить вывод diffstat из заголовка.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалить пробелы из концов Ñтрок заголовка.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча в файле патч~.\n" #: quilt/header.in:169 msgid "Replaced header of patch %s\\n" msgstr "Заменён заголовок патча %s\\n" #: quilt/header.in:172 msgid "Appended text to header of patch %s\\n" msgstr "Добавлен текÑÑ‚ к заголовку патча %s\\n" #: quilt/import.in:22 #, fuzzy msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "Usage: quilt import [-f] [-p чиÑло] [-n патч] файл-патча ...\\n" #: quilt/import.in:25 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" #: quilt/import.in:71 msgid "Patch headers differ:\\n" msgstr "" #: quilt/import.in:74 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" #: quilt/import.in:139 #, fuzzy msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "Опцию \\`-n' можно иÑпользовать только при импорте одного патча\\n" #: quilt/import.in:169 msgid "Patch %s is applied\\n" msgstr "Патч %s применён\\n" #: quilt/import.in:178 #, fuzzy msgid "Patch %s already exists in series.\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/import.in:184 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Патч %s ÑущеÑтвует. Принудительно заменить можно опцией -f.\\n" #: quilt/import.in:195 msgid "Replacing patch %s with new version\\n" msgstr "Замена патча %s новой верÑией\\n" #: quilt/import.in:199 #, fuzzy msgid "Importing patch %s\\n" msgstr "Удаление патча %s\\n" #: quilt/import.in:201 msgid "Importing patch %s (stored as %s)\\n" msgstr "Импорт патча %s (Ñохранён как %s)\\n" #: quilt/import.in:214 msgid "Failed to import patch %s\\n" msgstr "Ðе удалоÑÑŒ импортировать патч %s\\n" #: quilt/import.in:223 quilt/refresh.in:333 msgid "Failed to insert patch %s into file series\\n" msgstr "Ðе удалоÑÑŒ вÑтавить патч %s в файл series\\n" #: quilt/mail.in:24 #, fuzzy msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [first_patch [last_patch]]\\n" msgstr "" "СинтакÑиÑ: quilt mail {--mbox file|--send} [--from ...] [--to ...] [--" "cc ...] [--bcc ...] [--subject ...]\\n" #: quilt/mail.in:27 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" #: quilt/mail.in:302 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" #: quilt/mail.in:446 msgid "Unable to extract a subject header from %s\\n" msgstr "" #: quilt/mail.in:470 msgid "Patches %s have duplicate subject headers.\\n" msgstr "" #: quilt/mail.in:479 #, fuzzy msgid "File %s does not exist\\n" msgstr "Файл %s ÑущеÑтвует\\n" #: quilt/mail.in:539 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" #: quilt/mail.in:542 msgid "Introduction has no subject header\\n" msgstr "" #: quilt/mail.in:656 msgid "Introduction saved as %s\\n" msgstr "" #: quilt/new.in:22 #, fuzzy msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "СинтакÑиÑ: quilt new {имÑ-патча}\\n" #: quilt/new.in:25 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" #: quilt/new.in:76 #, fuzzy msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0 или -p1\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:185 msgid "Patch %s exists already\\n" msgstr "Патч %s уже ÑущеÑтвует\\n" #: quilt/new.in:108 quilt/refresh.in:342 msgid "Failed to create patch %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать патч %s\\n" #: quilt/new.in:111 msgid "Patch %s is now on top\\n" msgstr "Патч %s теперь наверху\\n" #: quilt/next.in:22 msgid "Usage: quilt next [patch]\\n" msgstr "СинтакÑиÑ: quilt next [патч]\\n" #: quilt/next.in:25 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, Ñледующего за указанным или верхним патчем в\n" "файле series.\n" #: quilt/patches.in:24 #, fuzzy msgid "Usage: quilt patches [-v] {file} [files...]\\n" msgstr "СинтакÑиÑ: quilt patches {файл}\\n" #: quilt/patches.in:27 #, fuzzy msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "ВывеÑти ÑпиÑок вÑех патчей, изменÑющих указанный файл. (ИÑпользует\n" "ÑвриÑтику, чтобы определить, какие файлы изменÑÑŽÑ‚ неналоженные патчи.\n" "Учтите, что ÑвриÑтика медленнее, чем Ñканирование наложенных патчей.)\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" #: quilt/pop.in:22 msgid "Usage: quilt pop [-afRqv] [num|patch]\\n" msgstr "СинтакÑиÑ: quilt pop [-afRqv] [чиÑло|патч]\\n" #: quilt/pop.in:25 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\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\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" msgstr "" "\n" "Убрать патчи из Ñтека наложенных патчей. ЕÑли не указаны опции,\n" "отменÑетÑÑ Ð²ÐµÑ€Ñ…Ð½Ð¸Ð¹ патч. ЕÑли указано чиÑло, отменÑетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. Когда указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, патчи убираютÑÑ Ð´Ð¾ тех пор,\n" "пока указанный патч не окажетÑÑ Ð½Ð° вершине Ñтека. Имена патчей могут\n" "Ñодержать Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ patches/ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.\n" "\n" "-a\tОтменить вÑе наложенные патчи.\n" "\n" "-f\tПринудительно убрать патч. СоÑтоÑние перед тем, как патчи были\n" "\tналожены, может быть воÑÑтановлено из резервных копий.\n" "\n" "-R\tÐ’Ñегда проверÑть, чиÑто ли удалÑÑŽÑ‚ÑÑ Ð¿Ð°Ñ‚Ñ‡Ð¸; не надеÑтьÑÑ\n" "\tна проверки отметок времени.\n" "\n" "-q\tРаботать тихо.\n" "\n" "-v\tПодробный вывод.\n" #: quilt/pop.in:100 quilt/scripts/patchfns.in:892 msgid "Failed to copy files to temporary directory\\n" msgstr "Ðе удалоÑÑŒ Ñкопировать файлы во временный каталог\\n" #: quilt/pop.in:125 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Ðе удалоÑÑŒ чиÑто удалить патч %s (обновите его или удалите принудительно Ñ -" "f)\\n" #: quilt/pop.in:150 msgid "Patch %s appears to be empty, removing\\n" msgstr "Похоже, патч %s пуÑÑ‚, удаление\\n" #: quilt/pop.in:155 msgid "Removing patch %s\\n" msgstr "Удаление патча %s\\n" #: quilt/pop.in:226 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Сначала нужно обновить патч %s.\\n" #: quilt/pop.in:236 msgid "No patch removed\\n" msgstr "Ðе удалено ни одного патча\\n" #: quilt/pop.in:252 quilt/scripts/patchfns.in:498 msgid "No patches applied\\n" msgstr "Ðет применённых патчей\\n" #: quilt/pop.in:259 quilt/push.in:397 msgid "Now at patch %s\\n" msgstr "Текущий патч: %s\\n" #: quilt/previous.in:22 msgid "Usage: quilt previous [patch]\\n" msgstr "СинтакÑиÑ: quilt previous [патч]\\n" #: quilt/previous.in:25 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, предшеÑтвующего указанному или верхнему\n" "в файле series.\n" #: quilt/push.in:24 #, fuzzy msgid "" "Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--" "color[=always|auto|never]] [num|patch]\\n" msgstr "СинтакÑиÑ: quilt push [-afqv] [--leave-rejects] [чиÑло|патч]\\n" #: quilt/push.in:27 #, fuzzy msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Применить патчи из файла series. Без опций накладываетÑÑ Ñледующий\n" "патч из файла series. ЕÑли указано чиÑло, накладываетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. ЕÑли указано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, накладываютÑÑ Ð²Ñе патчи\n" "до и Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¹ патч. Имена патчей могут Ñодержать префикÑ\n" "patches/, чтобы можно было иÑпользовать автодополнение имён.\n" "\n" "-a\tПрименить вÑе патчи из файла series.\n" "\n" "-f\tПринудительно применить, даже еÑли наложение вызывает ошибки.\n" "\n" "-q\tРаботать тихо.\n" "\n" "-v\tПодробный вывод.\n" "\n" "--leave-rejects\n" "\tОÑтавлÑть файлы reject, Ñозданные программой patch, даже еÑли патч\n" "\tне был применён.\n" "\n" "--interactive\n" "\tПозволить утилите patch Ñпрашивать о разрешении конфликтов. ЕÑли\n" "\tÑта Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ðµ указана, Ð¾Ð¿Ñ†Ð¸Ñ -f будет передана программе patch.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа.\n" #: quilt/push.in:68 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Прервано пользователем; патч %s не был наложен.\\n" #: quilt/push.in:180 msgid "Applying patch %s\\n" msgstr "Ðаложение патча %s\\n" #: quilt/push.in:214 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Патч %s не ÑущеÑтвует; наложен пуÑтой патч\\n" #: quilt/push.in:218 msgid "Patch %s appears to be empty; applied\\n" msgstr "Похоже, патч %s пуÑÑ‚; наложен\\n" #: quilt/push.in:222 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Применён патч %s (принудительно; Ñледует Ñделать refresh)\\n" #: quilt/push.in:232 #, fuzzy msgid "Patch %s can be reverse-applied\\n" msgstr "Патч %s применён\\n" #: quilt/push.in:235 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Патч %s не применÑетÑÑ (принудить Ñ -f)\\n" #: quilt/push.in:377 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Сначала необходимо обновить Ñамый верхний патч %s.\\n" #: quilt/refresh.in:22 #, fuzzy msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt refresh [-p n] [-f] [--no-timestamps] [--no-index] [--" "diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [патч]\\n" #: quilt/refresh.in:26 #, fuzzy msgid "" "\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" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "ОбновлÑет указанный патч, или по умолчанию верхний патч. ДокументациÑ,\n" "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑодержитÑÑ Ð² файле патча перед данными, ÑохранÑетÑÑ.\n" "\n" "ЕÑть возможноÑть обновлÑть патчи, которые раÑполагаютÑÑ Ð½Ðµ Ñверху.\n" "ЕÑли какой-нибудь патч поверх обновлÑемого патча изменÑет те же файлы,\n" "то по умолчанию программа прекращает выполнение. Такие патчи вÑÑ‘ же\n" "можно обновить Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ -f. Ð’ таком Ñлучае Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ такого файла\n" "программа выведет предупреждение, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ новыми патчами будут\n" "игнорированы, и только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, которые не были изменены\n" "более новыми патчами, попадут в указанный патч.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\t\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "--diffstat\n" "\tДобавить Ñекцию diffstat в заголовок патча, или заменить\n" "\tÑущеÑтвующую Ñекцию diffstat.\n" "\n" "-f\tПринудительно обновить патч, находÑщийÑÑ Ð½Ðµ вверху Ñтека.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ патч~.\n" "\n" "--sort\tСортировать файлы по имени, не ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ð¸Ñходный порÑдок.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалÑть пробелы на концах Ñтрок.\n" #: quilt/refresh.in:171 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "" #: quilt/refresh.in:202 msgid "Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\\n" msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0 или -p1\\n" #: quilt/refresh.in:240 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Более новые патчи изменÑÑŽÑ‚ файлы в патче %s. Принудительное обновление можно " "Ñделать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции -f.\\n" #: quilt/refresh.in:246 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --strip-trailing-whitespace на патче Ñ Ð·Ð°Ñ‚ÐµÐ½Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ " "файлами.\\n" #: quilt/refresh.in:252 quilt/refresh.in:354 msgid "Nothing in patch %s\\n" msgstr "Ðичего нет в патче %s\\n" #: quilt/refresh.in:324 msgid "Patch %s is unchanged\\n" msgstr "Патч %s не изменён\\n" #: quilt/refresh.in:352 msgid "Refreshed patch %s\\n" msgstr "Патч %s обновлён\\n" #: quilt/remove.in:22 #, fuzzy msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-p патч] {файл} ...\\n" #: quilt/remove.in:25 #, fuzzy msgid "" "\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" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Удалить один или более файлов из Ñамого верхнего или названного\n" "патча. Файлы, изменённые патчами поверх указанного патча, не\n" "могут быть удалены.\n" "\n" "-p патч\n" "\tПатч, из которого нужно удалить файлы.\n" #: quilt/remove.in:73 quilt/revert.in:75 msgid "File %s is not in patch %s\\n" msgstr "Файл %s отÑутÑтвует в патче %s\\n" #: quilt/remove.in:91 msgid "Failed to remove file %s from patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл %s из патча %s\\n" #: quilt/remove.in:105 msgid "File %s removed from patch %s\\n" msgstr "Файл %s удалён из патча %s\\n" #: quilt/rename.in:22 #, fuzzy msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "СинтакÑиÑ: quilt rename [-p патч] новое_имÑ\\n" #: quilt/rename.in:25 #, fuzzy msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Переименовать верхний или указанный патч.\n" "\n" "-p патч\n" "\tПатч, который нужно переименовать.\n" #: quilt/rename.in:84 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите другое имÑ\\n" #: quilt/rename.in:98 msgid "Renaming of patch %s to %s failed\\n" msgstr "Ðе удалоÑÑŒ переименовать патч %s в %s\\n" #: quilt/rename.in:104 msgid "Patch %s renamed to %s\\n" msgstr "Патч %s переименован в %s\\n" #: quilt/revert.in:22 #, fuzzy msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-p патч] {файл} ...\\n" #: quilt/revert.in:25 #, fuzzy msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Добавить один или более файлов к верхнему или к названному патчу.\n" "Файлы необходимо добавлÑть к патчу перед тем, как изменÑть их.\n" "Файлы, которые изменены патчами, уже наложенными поверх выбранного,\n" "не могут быть добавлены.\n" "\n" "-p патч\n" "\tПатч, к которому добавлÑть файлы.\n" #: quilt/revert.in:103 quilt/revert.in:112 #, fuzzy msgid "File %s is unchanged\\n" msgstr "Патч %s не изменён\\n" #: quilt/revert.in:120 #, fuzzy msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл %s из патча %s\\n" #: quilt/revert.in:124 #, fuzzy msgid "Changes to %s in patch %s reverted\\n" msgstr "Ðе удалоÑÑŒ вÑтавить патч %s в файл series\\n" #: quilt/scripts/edmail.in:96 #, fuzzy, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит непарные Ñкобки\n" #: quilt/scripts/edmail.in:114 #, fuzzy, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Ðекорректный Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ '%s'\n" #: quilt/scripts/patchfns.in:217 quilt/scripts/patchfns.in:511 #, fuzzy msgid "%s is not a regular file\\n" msgstr "Патч %s не входит в файл series\\n" #: quilt/scripts/patchfns.in:465 quilt/scripts/patchfns.in:482 #, fuzzy msgid "No patches in series\\n" msgstr "Ðет применённых патчей\\n" #: quilt/scripts/patchfns.in:467 quilt/scripts/patchfns.in:484 msgid "No series file found\\n" msgstr "" #: quilt/scripts/patchfns.in:540 msgid "Patch %s is not in series\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/scripts/patchfns.in:568 msgid "Patch %s is not applied\\n" msgstr "Патч %s не применён\\n" #: quilt/scripts/patchfns.in:605 msgid "File series fully applied, ends at patch %s\\n" msgstr "Ð¡ÐµÑ€Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² полноÑтью применена, заканчиваетÑÑ Ð½Ð° патче %s\\n" #: quilt/scripts/patchfns.in:638 #, fuzzy msgid "Patch %s does not exist\\n" msgstr "Патч %s не в Ñерии\\n" #: quilt/scripts/patchfns.in:910 msgid "Failed to patch temporary files\\n" msgstr "Ðе удалоÑÑŒ применить патч к временным файлам\\n" #: quilt/scripts/patchfns.in:951 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Метаданные quilt в Ñтом дереве имеют верÑию %s, но Ñта верÑÐ¸Ñ quilt может " "обрабатывать форматы метаданных толь до верÑии %s включительно. ПожалуйÑта, " "отмените вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð²ÐµÑ€Ñию quilt, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользовалаÑÑŒ Ð´Ð»Ñ Ð¸Ñ… " "наложениÑ, прежде чем иÑпользовать Ñту верÑию.\\n" #: quilt/scripts/patchfns.in:1095 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Рабочее дерево было Ñоздано более Ñтарой верÑией quilt. ПожалуйÑта, " "выполните 'quilt upgrade'.\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "СИÐТÐКСИС: %s [-p чиÑло] [-n] [патч]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: Ñ Ð² раÑтерÑнноÑти.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Удаление пробела из конца Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Удаление пробела из конца Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Переименование %s в %s: %s\n" #: quilt/series.in:22 msgid "Usage: quilt series [-v]\\n" msgstr "СинтакÑиÑ: quilt series [-v]\\n" #: quilt/series.in:25 #, fuzzy msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\t\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "ВывеÑти имена вÑех патчей в файле series.\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" #: quilt/setup.in:34 quilt/setup.in:53 msgid "Directory %s exists\\n" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s ÑущеÑтвует\\n" #: quilt/setup.in:59 msgid "File %s exists\\n" msgstr "Файл %s ÑущеÑтвует\\n" #: quilt/setup.in:99 #, fuzzy msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] " "{specfile|seriesfile}\\n" msgstr "" "СинтакÑиÑ: quilt setup [-d префикÑ-пути] [-v] {файл-spec|файл-series}\\n" #: quilt/setup.in:102 #, fuzzy msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" msgstr "" "\n" "Инициализирует иÑходное дерево из файла rpm spec или файла quilt series.\n" "\n" "-d\tопциональный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¿ÑƒÑ‚Ð¸ (поддиректориÑ).\n" "\n" "-v\tвывод отладочной информации.\n" #: quilt/setup.in:173 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Ð¡ÐµÐºÑ†Ð¸Ñ %%prep файла %s Ñодержит ошибки; результаты могут быть незавершены\\n" #: quilt/setup.in:176 msgid "The -v option will show rpm's output\\n" msgstr "ÐžÐ¿Ñ†Ð¸Ñ -v покажет вывод rpm\\n" #: quilt/setup.in:228 quilt/setup.in:240 #, fuzzy msgid "File %s not found\\n" msgstr "Файл %s не изменÑетÑÑ\\n" #: quilt/setup.in:231 quilt/setup.in:243 msgid "Unpacking archive %s\\n" msgstr "РаÑпаковка архива %s\\n" #: quilt/snapshot.in:22 msgid "Usage: quilt snapshot [-d]\\n" msgstr "СинтакÑиÑ: quilt snapshot [-d]\\n" #: quilt/snapshot.in:25 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Сделать Ñнимок текущего ÑоÑтоÑÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ дерева. ПоÑле ÑнÑÑ‚Ð¸Ñ Ñнимка,\n" "дерево можно модифицировать обычными ÑпоÑоами, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ и\n" "отмену патчей. СпиÑок изменений diff отноÑительно дерева в момент взÑтиÑ\n" "Ñнимка может быть Ñоздан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ \\`quilt diff --snapshot'.\n" "\n" "-d\tПроÑто удалить текущий Ñнимок.\n" #: quilt/top.in:22 msgid "Usage: quilt top\\n" msgstr "СинтакÑиÑ: quilt top\\n" #: quilt/top.in:25 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Ðапечатать Ð¸Ð¼Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾ патча в текущем Ñтеке применённых патчей.\n" #: quilt/unapplied.in:22 msgid "Usage: quilt unapplied [patch]\\n" msgstr "СинтакÑиÑ: quilt unapplied [патч]\\n" #: quilt/unapplied.in:25 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок неприменённых патчей или вÑех патчей, Ñледующих\n" "за указанным патчем в файле series.\n" #: quilt/upgrade.in:25 msgid "Usage: quilt upgrade\\n" msgstr "СинтакÑиÑ: quilt upgrade\\n" #: quilt/upgrade.in:28 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Обновить метаданные в рабочем дереве Ñо Ñтарой верÑии quilt до текущей\n" "верÑии. Эта команда необходима только, еÑли формат метаданных quilt\n" "изменилÑÑ, а рабочее дерево по-прежнему Ñодержит метаданные Ñтарого\n" "формата. Ð’ Ñтом Ñлучае quilt попроÑит запуÑтить \\`quilt upgrade'.\n" #: quilt/upgrade.in:67 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "Метаданные quilt в %s уже в формате верÑии %s; нечего делать\\n" #: quilt/upgrade.in:71 msgid "Converting meta-data to version %s\\n" msgstr "Преобразование метаданных к верÑии %s\\n" #: quilt/upgrade.in:102 msgid "Conversion failed\\n" msgstr "Преобразование не удалоÑÑŒ\\n" #: quilt/upgrade.in:103 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ПожалуйÑта, удалите вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ \\`quilt pop -a' верÑией quilt, " "иÑпользованной при Ñоздании Ñтого рабочего дерева, или удалите директорию %s " "и примените вÑе патчи Ñ Ð½ÑƒÐ»Ñ.\\n" #~ msgid "Patch is not applied\\n" #~ msgstr "Патч не применён\\n" #~ msgid "" #~ "\n" #~ "Import external patches.\n" #~ "\n" #~ "-p num\n" #~ "\tNumber of directory levels to strip when applying (default=1)\n" #~ "\n" #~ "-n patch\n" #~ "\tPatch filename to use inside quilt. This option can only be\n" #~ "\tused when importing a single patch.\n" #~ "\n" #~ "-f\tOverwite/update existing patches.\n" #~ msgstr "" #~ "\n" #~ "Импортировать внешние патчи.\n" #~ "\n" #~ "-p чиÑло\n" #~ "\tЧиÑло уровней директорий, которые нужно убрать перед наложением\n" #~ "\t(по умочанию=1)\n" #~ "\n" #~ "-n патч\n" #~ "\tÐ˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² quilt. Эту опцию можно иÑпользовать\n" #~ "\tтолько прии импорте одного патча.\n" #~ "\n" #~ "-f\tПерезапиÑать или обновить ÑущеÑтвующие патчи.\n" #~ msgid "" #~ "\n" #~ "Create mail messages from all patches in the series file, and either " #~ "store\n" #~ "them in a mailbox file, or send them immediately. The editor is opened\n" #~ "with a template for the introductory message. Please see the file\n" #~ "%s for details.\n" #~ "\n" #~ "--mbox file\n" #~ "\tStore all messages in the specified file in mbox format. The mbox\n" #~ "\tcan later be sent using formail, for example.\n" #~ "\n" #~ "--send\n" #~ "\tSend the messages directly using %s.\n" #~ "\n" #~ "--from, --subject\n" #~ "\tThe values for the From and Subject headers to use.\n" #~ "\n" #~ "--to, --cc, --bcc\n" #~ "\tAppend a recipient to the To, Cc, or Bcc header.\n" #~ msgstr "" #~ "\n" #~ "Создать почтовые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· вÑех патчей в файле series, и либо\n" #~ "Ñохранить их в файле mailbox, либо немедленно отоÑлать. ОткрываетÑÑ\n" #~ "редактор Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑообщениÑ. ПодробноÑти Ñмотрите в\n" #~ "файле %s.\n" #~ "\n" #~ "--mbox файл\n" #~ "\tСохранить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² указанном файле в формате mbox.\n" #~ "\tmbox затем можно отправить, иÑпользуÑ, например, formail.\n" #~ "\n" #~ "--send\n" #~ "\tОтоÑлать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ %s.\n" #~ "\n" #~ "--from, --subject\n" #~ "\tÐ—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ñ‡Ð½Ñ‹Ñ… полей From и Subject.\n" #~ "\n" #~ "--to, --cc, --bcc\n" #~ "\tДобавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ðº заголовку To, Cc, или Bcc.\n" #~ msgid "" #~ "\n" #~ "Create a new patch with the specified file name, and insert it after the\n" #~ "topmost patch in the patch series file.\n" #~ msgstr "" #~ "\n" #~ "Создать новый патч Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ именем файла, и вÑтавить его поÑле\n" #~ "верхнего патча в файле series.\n" #~ msgid "Patch %s not found in file series\\n" #~ msgstr "Патч %s не найден в файле series\\n" #~ msgid "Patch %s is already applied\\n" #~ msgstr "Патч %s уже применён\\n" #~ msgid "Display name '%s' contains invalid characters\n" #~ msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит некорректные Ñимволы\n" #~ msgid "Display name '%s' contains non-printable or 8-bit characters\n" #~ msgstr "Отображаемое Ð¸Ð¼Ñ '%s' Ñодержит непечатные или 8-битные Ñимволы\n" quilt-0.61/test/add-filename-check.test0000644000175000017500000000043411634336352020352 0ustar mquinsonmquinson$ mkdir patches $ quilt new test.diff >Patch patches/test.diff is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/test.diff $ quilt add patches/bar > File patches/bar is located below patches/ $ quilt add .pc/baz > File .pc/baz is located below .pc/ quilt-0.61/test/annotate.test0000644000175000017500000000320411634336352016600 0ustar mquinsonmquinson $ mkdir patches $ cat > foo < foo < bar < baz $ quilt new patch > Patch patches/patch is now on top $ quilt add foo > File foo added to patch patches/patch $ sed -e 's:b:B:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch $ quilt annotate foo > foo > 1 Bar > 1 Baz > > 1 patches/patch $ quilt new patch2 > Patch patches/patch2 is now on top $ quilt add foo > File foo added to patch patches/patch2 $ sed -e 's:Baz:baz:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch2 $ quilt annotate foo > foo > 1 Bar > 2 baz > > 1 patches/patch > 2 patches/patch2 $ quilt new patch3 > Patch patches/patch3 is now on top $ quilt add foo > File foo added to patch patches/patch3 $ sed -e '/Bar/d' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch patches/patch3 $ quilt annotate foo > foo > 2 baz > > 1 patches/patch > 2 patches/patch2 > 3 patches/patch3 $ quilt annotate -P patch3 foo > foo > 2 baz > > 1 patches/patch > 2 patches/patch2 > 3 patches/patch3 $ quilt annotate -P patch2 foo > foo > 1 Bar > 2 baz > > 1 patches/patch > 2 patches/patch2 $ quilt annotate -P patch foo > foo > 1 Bar > 1 Baz > > 1 patches/patch $ quilt new patch4 > Patch patches/patch4 is now on top $ cat > jkl < abc < def $ quilt add jkl wrz > File jkl added to patch patches/patch4 > File wrz added to patch patches/patch4 $ rm -f jkl $ cat > wrz < one < two $ quilt refresh > Refreshed patch patches/patch4 $ quilt annotate jkl > > 1 patches/patch4 $ quilt annotate wrz > 1 one > 1 two > > 1 patches/patch4 quilt-0.61/test/applied.test0000644000175000017500000000140611634336352016407 0ustar mquinsonmquinson $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ quilt pop -q > Removing patch patches/patch > No patches applied $ patch -s -p0 < patches/patch $ quilt push -q > Applying patch patches/patch > 1 out of 1 hunk FAILED > Patch patches/patch can be reverse-applied $ echo patch -p0 -R > patches/series $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ quilt pop -q > Removing patch patches/patch > No patches applied $ patch -s -p0 -R < patches/patch $ quilt push -q > Applying patch patches/patch > 1 out of 1 hunk FAILED > Patch patches/patch can be reverse-applied quilt-0.61/test/backup-files.test0000644000175000017500000001452211726705776017355 0ustar mquinsonmquinsonUnit test of the backup-files script. # Test backup without options; it should link, not copy $ echo foo > foo $ echo bar > "space bar" $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b foo > Copying foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ [ backup/foo -nt foo ] && echo "mtimes differ" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ ls -l foo | awk '{ print $2 }' > 1 # Test silent backup with -L; it should copy, not link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 1 $ [ backup/foo -nt foo ] && echo "mtimes differ" # Test restore without options $ echo modified > foo $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ cat foo > foo $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test backup files with hard links $ ln foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo2 $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l foo2 | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 # Test restore of files with hard links $ rm -f foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ ! -e foo2 ] || echo "file foo2 shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo2 ] && echo "backup/foo2 not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test restore with -t $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s foo $ touch -r foo foo.timeref $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t foo $ ls -l foo | awk '{ print $2 }' > 2 $ [ foo -nt foo.timeref ] || echo "touch failed" # Test restore with -k $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo "space bar" $ touch -r "space bar" bar.timeref $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l "backup/space bar" | awk '{ print $2 }' > 1 $ mkdir tmp $ cd tmp $ %{QUILT_DIR}/scripts/backup-files -B ../backup/ -r -s -k foo "space bar" $ cd .. $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 3 $ ls -l "backup/space bar" | awk '{ print $2 }' > 2 $ ls -l tmp/foo | awk '{ print $2 }' > 3 $ ls -l "tmp/space bar" | awk '{ print $2 }' > 2 $ rm -rf tmp # Test restore all (-) $ rm -f foo "space bar" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t - $ cat foo > foo $ cat "space bar" > bar $ [ "space bar" -nt bar.timeref ] || echo "touch failed" # Backup and restore a non-existing files $ mkdir "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L new "dir with spaces/space file" $ echo data > new $ echo data2 > "dir with spaces/space file" $ ls -l backup/new | awk '{ print $5 }' > 0 $ ls -l "backup/dir with spaces/space file" | awk '{ print $5 }' > 0 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s - $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ [ ! -e "backup/dir with spaces/space file" ] || echo "file backup/dir with spaces/space file shouldn't exist" $ [ ! -e "dir with spaces/space file" ] || echo "file dir with spaces/space file shouldn't exist" # Test restore involving a dir name with spaces $ echo data > "dir with spaces/space file" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L "dir with spaces/space file" > Copying dir with spaces/space file $ rm -rf "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - > Restoring dir with spaces/space file $ cat "dir with spaces/space file" > data $ [ -e backup ] && echo "backup directory not deleted" # Test backup reading file list from a file $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L -f - < foo < new < space bar $ echo data > new $ echo modified > foo $ rm -f "space bar" $ [ -e backup/new -a ! -s backup/new ] || echo "file backup/new isn't empty" $ ls -l backup/new | awk '{ print $5 }' > 0 $ cat backup/foo > foo $ cat "backup/space bar" > bar $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -f - < foo < new < space bar $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ cat foo > foo $ cat "space bar" > bar # Test the special -L alone case $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L -f - < new < foo < space bar > New file new > Copying foo > Copying space bar $ ln "space bar" "linked space" $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" # Second call should be idempotent $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - | sort > Removing new > Restoring foo > Restoring space bar $ rm "linked space" # Test copy (as used by quilt snapshot) $ %{QUILT_DIR}/scripts/backup-files -B snapshot/ -c -f - < new < foo < space bar < dir with spaces/space file > New file new > Copying foo > Copying space bar > Copying dir with spaces/space file $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l "dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ ls -l snapshot/new | awk '{ print $2 }' > 1 $ ls -l snapshot/foo | awk '{ print $2 }' > 1 $ ls -l snapshot/"space bar" | awk '{ print $2 }' > 1 $ ls -l snapshot/"dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -s new ] || echo "file snapshot/new should be empty" $ rm -rf snapshot quilt-0.61/test/colon-in-patch-name.test0000644000175000017500000000207312064151701020512 0ustar mquinsonmquinson$ mkdir patches $ quilt new "patch_with:strange[name]" > Patch patches/patch_with:strange[name] is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/patch_with:strange[name] $ quilt files > foo $ echo bar > foo $ quilt diff -p ab -P "patch_with:strange[name]" > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch patches/patch_with:strange[name] $ quilt applied > patches/patch_with:strange[name] $ quilt pop -q > Removing patch patches/patch_with:strange[name] > No patches applied $ quilt next > patches/patch_with:strange[name] $ quilt push -q "patch_with:strange[name]" > Applying patch patches/patch_with:strange[name] > Now at patch patches/patch_with:strange[name] $ quilt rename "another:strange(name)" > Patch patches/patch_with:strange[name] renamed to patches/another:strange(name) $ quilt series > patches/another:strange(name) $ quilt remove foo > File foo removed from patch patches/another:strange(name) quilt-0.61/test/comments.test0000644000175000017500000000227411634336352016622 0ustar mquinsonmquinsonRegresion test case: Empty lines in patch descriptions were accidentally removed. $ mkdir patches $ echo one > f $ cat > patches/test.diff < C1 < < C3 < < Index: f < =================================================================== < --- f.orig foo < +++ f bar < @@ -1 +1 @@ < -one < +two $ cat > patches/series < test.diff -p0 # What a wonderful patch $ quilt push > Applying patch %{P}test.diff >~ patching file `?f'? > > Now at patch %{P}test.diff $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two $ quilt refresh -c > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > *** f.orig > --- f > *************** > *** 1 **** > ! one > --- 1 ---- > ! two $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two quilt-0.61/test/conflicts.test0000644000175000017500000000443511634336352016762 0ustar mquinsonmquinsonThis test case creates a patch and then applies that patch to a modified source file. The source file is modified until the patch doesn't apply anymore, then the patch is fixed. $ mkdir patches $ cat > one.txt < 1 < 2 < 3 < 4 < 5 < 6 < 7 < -- < a < b < c < d < e < f < g $ quilt new a.diff > Patch %{P}a.diff is now on top $ quilt add one.txt > File one.txt added to patch %{P}a.diff $ mv one.txt one.orig $ sed -e "s/4/4+/" -e 's/d/d+/' one.orig > one.txt $ quilt refresh > Refreshed patch %{P}a.diff $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ sed -e "s/^\\([17]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ sed -e "s/^\\([1267]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ sed -e "s/^\\([123567]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > 1 out of 2 hunks FAILED > Patch %{P}a.diff does not apply (enforce with -f) $ quilt push -qf > Applying patch %{P}a.diff >~ 1 out of 2 hunks FAILED -- saving rejects to (file )?`?one.txt.rej'? > Applied patch %{P}a.diff (forced; needs refresh) $ mv one.txt one.x $ sed -e "s/4/4+/" one.x > one.txt $ rm -f one.x $ quilt diff -z | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- $ quilt diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ quilt refresh > Refreshed patch %{P}a.diff $ cat patches/a.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ quilt pop -q > Removing patch %{P}a.diff > No patches applied quilt-0.61/test/create-delete.test0000644000175000017500000000175411634336352017502 0ustar mquinsonmquinsonCheck whether quilt generates patches properly so that GNU patch recognizes file creates and deletions. $ mkdir patches $ echo delete > delete $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add create > File create added to patch %{P}test.diff $ echo create > create $ quilt refresh > Refreshed patch %{P}test.diff $ quilt add delete > File delete added to patch %{P}test.diff $ rm -f delete $ quilt refresh > Refreshed patch %{P}test.diff $ quilt pop -q > Removing patch %{P}test.diff > No patches applied $ echo create > create $ rm -f delete $ patch -p1 --dry-run < patches/test.diff >~ The next patch would create the file `?create'?, > which already exists! Assume -R? [n] > Apply anyway? [n] > Skipping patch. >~ 1 out of 1 hunk ignored( -- saving rejects to( file)? create.rej)? >~ The next patch would delete the file `?delete'?, > which does not exist! Assume -R? [n] > Apply anyway? [n] > Skipping patch. > 1 out of 1 hunk ignored quilt-0.61/test/delete.test0000644000175000017500000000341712251037232016226 0ustar mquinsonmquinsonTest the delete command. $ mkdir patches $ quilt delete > No series file found $ cat > test.txt < Calling pci_match_id() would be more feasible. $ quilt new test1 > Patch %{P}test1 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test1 $ cat > test.txt < Try the following patch instead. $ quilt refresh > Refreshed patch %{P}test1 $ quilt new test2 > Patch %{P}test2 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test2 $ cat > test.txt < Ok, that's fine with me if you want to do that instead. $ quilt refresh > Refreshed patch %{P}test2 $ quilt delete test1 > Patch %{P}test1 is currently applied $ quilt pop > Removing patch %{P}test2 > Restoring test.txt > > Now at patch %{P}test1 $ quilt series > %{P}test1 > %{P}test2 $ quilt delete -n > Removed patch %{P}test2 $ quilt series > %{P}test1 $ quilt pop > Removing patch %{P}test1 > Restoring test.txt > > No patches applied $ quilt delete test1 > Removed patch %{P}test1 $ quilt series $ echo "test1" > %{P}series $ quilt delete -n > Removed patch %{P}test1 $ quilt series # Force the pop operaton to fail $ echo "test3" > %{P}/series $ echo "test3" > .pc/applied-patches $ mkdir -p .pc/test3/dir $ touch .pc/test3/dir/file $ chmod a-rx .pc/test3/dir # Note that this will succeed (instead of the expected failure) if # running as root, but you shouldn't do that anyway. $ quilt delete "test3" > Removing patch %{P}test3 >~ .*find: [`']?\./dir'?: Permission denied $ chmod a+rx .pc/test3/dir $ find .pc/test3 > .pc/test3 > .pc/test3/dir > .pc/test3/dir/file $ quilt applied > No patches applied $ quilt series > %{P}test3 $ quilt delete > No patches applied $ quilt delete test3 > Removed patch %{P}test3 quilt-0.61/test/dir-a-b.test0000644000175000017500000000171711634336352016211 0ustar mquinsonmquinson $ mkdir patches $ echo a > test.txt $ echo d > test3.txt $ cat > patches/ab.diff < --- a/test.txt < +++ b/test.txt < @@ -1 +1 @@ < -a < +b < --- /dev/null < +++ b/test2.txt < @@ -0,0 +1 @@ < +c < --- a/test3.txt < +++ /dev/null < @@ -1 +0,0 @@ < -d $ echo "ab.diff" > patches/series $ quilt push -q > Applying patch patches/ab.diff > Now at patch patches/ab.diff $ quilt diff -p ab --no-index > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ rm -f patches/ab.diff $ quilt refresh -p ab --no-index > Refreshed patch patches/ab.diff $ cat patches/ab.diff > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ quilt pop -qR > Removing patch patches/ab.diff > No patches applied quilt-0.61/test/dotglob.test0000644000175000017500000000063411634336352016425 0ustar mquinsonmquinson $ mkdir patches $ quilt new dotglob.diff > Patch patches/dotglob.diff is now on top $ quilt add .foo > File .foo added to patch patches/dotglob.diff $ echo dot-foo > .foo $ quilt refresh > Refreshed patch patches/dotglob.diff $ quilt pop -q > Removing patch patches/dotglob.diff > No patches applied $ quilt push -q > Applying patch patches/dotglob.diff > Now at patch patches/dotglob.diff quilt-0.61/test/edit.test0000644000175000017500000000103011634336352015707 0ustar mquinsonmquinson$ mkdir patches subdir $ cat > editor < #! /bin/sh < echo Editing $1 < sed -e 's:foo:bar:' $1 > $1.new < mv $1.new $1 $ chmod +x editor $ export EDITOR=%{PWD}/editor $ quilt new patch > Patch patches/patch is now on top $ echo foobar > foobar $ quilt edit foobar > File foobar added to patch patches/patch > Editing foobar $ cd subdir $ echo foo > foo $ quilt edit foo > File subdir/foo added to patch ../patches/patch > Editing subdir/foo $ cd .. $ cat foobar > barbar $ cat subdir/foo > bar $ quilt files > foobar > subdir/foo quilt-0.61/test/empty.test0000644000175000017500000000162711634336352016134 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < empty1.diff < empty2.diff $ touch patches/empty1.diff patches/empty2.diff $ quilt push -qa > Applying patch %{P}empty1.diff > Patch %{P}empty1.diff appears to be empty; applied > Applying patch %{P}empty2.diff > Patch %{P}empty2.diff appears to be empty; applied > Now at patch %{P}empty2.diff $ quilt rename empty3.diff > Patch %{P}empty2.diff renamed to %{P}empty3.diff $ quilt pop -qa > Patch %{P}empty3.diff appears to be empty, removing > Patch %{P}empty1.diff appears to be empty, removing > No patches applied $ quilt new empty_new.diff > Patch %{P}empty_new.diff is now on top $ quilt pop -q > Patch %{P}empty_new.diff appears to be empty, removing > No patches applied $ quilt delete empty_new.diff > Removed patch %{P}empty_new.diff $ quilt rename -P empty3.diff empty_new.diff > Patch %{P}empty3.diff renamed to %{P}empty_new.diff quilt-0.61/test/example1.test0000644000175000017500000001053311634336352016506 0ustar mquinsonmquinsonThe text used here was taken from: http://the-tech.mit.edu/Shakespeare/midsummer/full.html $ mkdir patches $ cat > Oberon.txt < Yet mark'd I where the bolt of Cupid fell: < It fell upon a little western flower, < Before milk-white, now purple with love's wound, < And girls call it love-in-idleness. $ quilt new flower.diff > Patch %{P}flower.diff is now on top $ quilt add Oberon.txt > File Oberon.txt added to patch %{P}flower.diff $ cat >> Oberon.txt < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. Or ``quilt edit Oberon.txt'' $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,6 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ sed -ne '1,4p' Oberon.txt > Oberon.new $ echo "Fetch me that flower; the herb I shew'd thee once:" >> Oberon.new $ sed -e '1,4d' Oberon.txt >> Oberon.new $ mv Oberon.new Oberon.txt $ quilt diff -z -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,6 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ quilt diff -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt refresh > Refreshed patch %{P}flower.diff $ quilt top > %{P}flower.diff $ quilt files > Oberon.txt $ quilt patches Oberon.txt > patches/flower.diff $ quilt pop -f > Removing patch %{P}flower.diff > Restoring Oberon.txt > > No patches applied $ sed -e "s/girls/maidens/" Oberon.txt > Oberon.new $ mv Oberon.new Oberon.txt $ quilt push > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- rejects in file `?Oberon.txt'? > Patch %{P}flower.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?Oberon.txt.rej'? > Applied patch %{P}flower.diff (forced; needs refresh) $ cat >> Oberon.txt < Fetch me that flower; the herb I shew'd thee once: < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ rm -f Oberon.txt.rej $ cat Oberon.txt > Yet mark'd I where the bolt of Cupid fell: > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt grep love > Oberon.txt:Before milk-white, now purple with love's wound, > Oberon.txt:And maidens call it love-in-idleness. quilt-0.61/test/failpop.test0000644000175000017500000000071612206665406016427 0ustar mquinsonmquinson $ mkdir patches $ cat > test.txt < This is test.txt. $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add test.txt > File test.txt added to patch %{P}test.diff $ cat >> test.txt < Line two. $ quilt refresh > Refreshed patch %{P}test.diff $ sed -e "s/ /_/g" patches/test.diff > patches/test.new $ mv patches/test.new patches/test.diff $ quilt pop > Patch %{P}test.diff does not remove cleanly (refresh it or enforce with -f) quilt-0.61/test/fold.test0000644000175000017500000000271311634336352015717 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < patch1.diff $ cat > patches/patch1.diff < --- q.orig/file1.txt < +++ q/file1.txt < @@ -0,0 +1 @@ < +This is file1.txt. < --- q.orig/file2.txt < +++ q/file2.txt < @@ -0,0 +1 @@ < +This is file2.txt. $ quilt push -q > Applying patch %{P}patch1.diff > Now at patch %{P}patch1.diff $ quilt files > file1.txt > file2.txt $ quilt fold -q < --- q.orig/file2.txt < +++ q/file2.txt < @@ -1 +0,0 @@ < -This is file2.txt. < --- q.orig/dir/file3.txt < +++ q/dir/file3.txt < @@ -0,0 +1 @@ < +This is file3.txt. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt. $ cd dir $ quilt fold -q < --- dir.orig/file3.txt < +++ dir/file3.txt < @@ -1 +1 @@ < -This is file3.txt. < +This is file3.txt, now modified. $ cd .. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt, now modified. quilt-0.61/test/formats.test0000644000175000017500000000347311634336352016452 0ustar mquinsonmquinson # We create our own working directory to be able to verify # all patch formats, including the ones which mention the # base directory. $ mkdir -p d/patches $ cd d $ cat > test.txt < 1 < 2 < old < 4 < 5 $ quilt new test > Patch %{P}test is now on top $ quilt add test.txt > File test.txt added to patch %{P}test $ cat > test.txt < 1 < 2 < new < 4 < 5 $ quilt diff > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff --no-index > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff -R > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -new > +old > 4 > 5 $ quilt diff -U1 > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -2,3 +2,3 @@ > 2 > -old > +new > 4 $ quilt diff -c > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 1,5 **** > 1 > 2 > ! old > 4 > 5 > --- 1,5 ---- > 1 > 2 > ! new > 4 > 5 $ quilt diff -C1 > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 2,4 **** > 2 > ! old > 4 > --- 2,4 ---- > 2 > ! new > 4 $ quilt diff -p ab > Index: b/test.txt > =================================================================== > --- a/test.txt > +++ b/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 quilt-0.61/test/half-applies.test0000644000175000017500000000206011634336352017333 0ustar mquinsonmquinson$ mkdir patches $ echo foo > foo.orig $ echo foo2 > foo $ echo bar > bar.orig $ echo bar2 > bar $ diff -u foo.orig foo >> patches/foorab.diff $ diff -u bar bar.orig >> patches/foorab.diff $ mv foo.orig foo $ mv bar.orig bar $ echo foorab.diff -p0 > patches/series $ quilt push > Applying patch patches/foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch patches/foorab.diff does not apply (enforce with -f) $ quilt push > Applying patch patches/foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch patches/foorab.diff does not apply (enforce with -f) $ quilt push -qf > Applying patch patches/foorab.diff >~ 1 out of 1 hunk FAILED( -- saving rejects to( file)? bar.rej)? > Applied patch patches/foorab.diff (forced; needs refresh) $ quilt diff > Index: foo > =================================================================== > --- foo.orig > +++ foo > @@ -1 +1 @@ > -foo > +foo2 quilt-0.61/test/header.test0000644000175000017500000000140411634336352016217 0ustar mquinsonmquinson $ mkdir patches $ echo foo > foo $ quilt new patch > Patch patches/patch is now on top $ quilt add foo > File foo added to patch patches/patch $ echo bar > foo $ quilt refresh -p ab > Refreshed patch patches/patch $ mv patches/patch patches/patch~ $ echo Header > patches/patch $ cat patches/patch~ >> patches/patch $ quilt header > Header $ quilt header -r < Header2 > Replaced header of patch patches/patch $ quilt header > Header2 $ quilt header -a < Appended > Appended text to header of patch patches/patch $ quilt header > Header2 > Appended $ cat patches/patch > Header2 > Appended > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar quilt-0.61/test/import2.test0000644000175000017500000000606211634336352016370 0ustar mquinsonmquinson# same as import.test, but with compressed patches $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt pop > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ mkdir t $ gzip < patches/patch1.diff > t/patch1.diff.gz $ rm -f patches/patch1.diff # test importing into an empty series $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff.gz > Importing patch t/patch1.diff.gz (stored as %{P}patch1.diff.gz) $ quilt push > Applying patch %{P}patch1.diff.gz >~ patching file `?f'? > > Now at patch %{P}patch1.diff.gz $ quilt new patch2.diff.gz > Patch %{P}patch2.diff.gz is now on top $ quilt add g > File g added to patch %{P}patch2.diff.gz $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff.gz $ quilt pop > Removing patch %{P}patch2.diff.gz > Removing g > > Now at patch %{P}patch1.diff.gz $ quilt header -a < original description > Appended text to header of patch %{P}patch1.diff.gz $ quilt pop > Removing patch %{P}patch1.diff.gz > Removing f > > No patches applied $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz $ cat %{P}series > patch2.diff.gz # test a few error cases $ quilt import missing.diff.gz > Patch missing.diff.gz does not exist $ quilt import patches/patch1.diff.gz > Importing patch %{P}patch1.diff.gz $ quilt import patches/patch2.diff.gz > Patch %{P}patch2.diff.gz already exists in series. # a simple use of import $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # an import requiring a description merge $ zcat patches/patch1.diff.gz | sed -e 's/original/new/' | gzip > t/patch1.diff.gz $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # quilt header does not work in this case because it stops at '---' $ zcat patches/patch1.diff.gz | head -n 3 > original description > --- > new description $ quilt import -d n -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff.gz t/patch1.patch.gz $ quilt import t/patch1.patch.gz > Importing patch t/patch1.patch.gz (stored as %{P}patch1.patch.gz) $ ls patches/ > patch1.diff.gz > patch1.patch.gz > patch2.diff.gz > series $ cat %{P}series > patch1.patch.gz > patch2.diff.gz $ quilt delete patch1.diff.gz > Patch patch1.diff.gz is not in series quilt-0.61/test/import.test0000644000175000017500000001320111726705776016313 0ustar mquinsonmquinson $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patchR.diff > Patch %{P}patchR.diff is now on top $ quilt add f > File f added to patch %{P}patchR.diff $ rm -f f $ quilt refresh > Refreshed patch %{P}patchR.diff $ quilt fork patchRp0.diff > Fork of patch %{P}patchR.diff created as %{P}patchRp0.diff $ quilt refresh -p0 > Refreshed patch %{P}patchRp0.diff $ quilt pop -a > Removing patch patches/patchRp0.diff > Restoring f > > Removing patch patches/patch1.diff > Removing f > > No patches applied $ mkdir t $ mv patches/patch1.diff t/patch1.diff $ mv patches/patchR.diff t/patchR.diff $ mv patches/patchRp0.diff t/patchRp0.diff # test importing into an empty series $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) $ quilt push > Applying patch patches/patch1.diff >~ patching file `?f'? > > Now at patch patches/patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt pop > Removing patch patches/patch2.diff > Removing g > > Now at patch patches/patch1.diff $ quilt header -a < original description > Appended text to header of patch patches/patch1.diff $ quilt pop > Removing patch patches/patch1.diff > Removing f > > No patches applied $ quilt delete patch1 > Removed patch patches/patch1.diff $ cat %{P}series > patch2.diff # test a few error cases $ quilt import missing.diff > Patch missing.diff does not exist $ quilt import patches/patch1.diff > Importing patch patches/patch1.diff $ quilt import patches/patch2.diff > Patch patches/patch2.diff already exists in series. # a simple use of import $ quilt import t/patch1.diff > Patch patches/patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Replacing patch patches/patch1.diff with new version # an import requiring a description merge $ sed -e 's/original/new/' patches/patch1.diff > t/patch1.diff $ quilt import t/patch1.diff > Patch patches/patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff > Replacing patch patches/patch1.diff with new version # quilt header does not work in this case because it stops at '---' $ head -n 3 patches/patch1.diff > original description > --- > new description $ quilt import -d n -f t/patch1.diff > Replacing patch patches/patch1.diff with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch patches/patch1.diff # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff t/patch1.patch $ quilt import t/patch1.patch > Importing patch t/patch1.patch (stored as patches/patch1.patch) $ ls patches/ > patch1.diff > patch1.patch > patch2.diff > series $ cat %{P}series > patch1.patch > patch2.diff $ quilt delete patch1.diff > Patch patch1.diff is not in series # test importing a reverse patch $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import -R t/patchR.diff > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ quilt push > Applying patch patches/patchR.diff >~ patching file `?f'? > > Now at patch patches/patchR.diff $ cat f > f $ cat patches/series > patchR.diff -R # test that comments are preserved $ echo "# Test of -R import" > patches/series $ echo "patchR.diff -R # This patch was originally -R -p1" >> patches/series # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchR.diff $ cat patches/series > # Test of -R import > patchR.diff # This patch was originally -R -p1 $ touch f $ quilt pop > Removing patch patches/patchR.diff > Removing f > > No patches applied # test importing a reverse patch with strip level $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import -R -p0 t/patchRp0.diff > Importing patch t/patchRp0.diff (stored as patches/patchRp0.diff) $ quilt push > Applying patch patches/patchRp0.diff >~ patching file `?f'? > > Now at patch patches/patchRp0.diff $ cat f > f $ cat patches/series > patchRp0.diff -p0 -R # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchRp0.diff $ cat patches/series > patchRp0.diff -p0 $ touch f $ quilt pop > Removing patch patches/patchRp0.diff > Removing f > > No patches applied # Test importing multiple patches at once $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patch1.diff t/patchR.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ cat patches/series > patch1.diff > patchR.diff $ rm -rf patches/ .pc/ $ mkdir patches $ quilt import t/patchR.diff > Importing patch t/patchR.diff (stored as patches/patchR.diff) $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as patches/patch1.diff) $ cat patches/series > patch1.diff > patchR.diff # Also test importing when in a subdirectory $ touch empty.patch $ cd t $ touch empty2.patch $ quilt import ../empty.patch > Importing patch ../empty.patch (stored as ../patches/empty.patch) $ quilt import %{PWD}/empty2.patch > Importing patch %{PWD}/empty2.patch (stored as ../patches/empty2.patch) quilt-0.61/test/mail.test0000644000175000017500000000542012251154534015707 0ustar mquinsonmquinson $ mkdir patches $ cat > no-subject < Here goes a longer description of the patch, which is < totally useless except as a test case for the quilt mail < command. This paragraph is longer than 150 characters so < that it won't be taken for a subject header itself. < < Index: anything $ cat no-subject > patches/1.diff $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Unable to extract a subject header from patches/1.diff $ cat - no-subject > patches/1.diff < Subject: Subject of 1.diff < < Acked-by: Dummy < $ quilt mail --mbox mbox --prefix "test" -m "Message" > Introduction has no subject header $ cat - no-subject > patches/2.diff < DESC < Subject of 2.diff < is: split < into multiple < lines < EDESC < < Signed-off-by: Dummy < $ cat - no-subject > patches/3.diff < Subject of 3.diff < < To: John X. Doe < $ cat - no-subject > patches/4.diff < First paragraph used as < subject of 4.diff. < < Signed-off-by: Joe R. Hacker < Cc: "John X. Doe" < Cc: Ü is an umlaut < $ cat - no-subject > patches/5.diff < Subject of 1.diff < $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Patches patches/1.diff, patches/5.diff have duplicate subject headers. $ cat - no-subject > patches/5.diff < Aw: [patch] Fwd: Re: [patch 5/7] Fw: Subject of 5.diff < $ cat - no-subject > patches/6.diff < Subject: Must not expand * ? [abc] < $ cat - no-subject > patches/7.diff < Subject of 7.diff < < Signed-off-by: someone@without.name < $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" $ sed -nre "s/^(From [^ ]*).*/\\1/p" -e "/^Subject:/p" -e "/^To:/p" -e "/^Cc:/p" -e "/^ /p" -e "/^Replace-.*:/p" -e "/^Recipient-.*:/p" mbox > From a@b.c > Subject: [test 0/7] This is a test > From a@b.c > Cc: Dummy > Subject: [test 1/7] Subject of 1.diff > From a@b.c > Cc: Dummy > Subject: [test 2/7] Subject of 2.diff is: split into multiple lines > From a@b.c > To: "John X. Doe" > Subject: [test 3/7] Subject of 3.diff > To: John X. Doe > From a@b.c > Cc: "Joe R. Hacker" , > "John X. Doe" , > =?UTF-8?q?=C3=9C=20is=20an=20umlaut?= > Subject: [test 4/7] First paragraph used as subject of 4.diff. > Cc: "John X. Doe" > Cc: Ü is an umlaut > From a@b.c > Subject: [test 5/7] Subject of 5.diff > From a@b.c > Subject: [test 6/7] Must not expand * ? [abc] > From a@b.c > Cc: someone@without.name > Subject: [test 7/7] Subject of 7.diff quilt-0.61/test/merge.test0000644000175000017500000000302711634336352016071 0ustar mquinsonmquinsonTest the patch merging functionality of `quilt diff'. $ mkdir patches $ cat > abc.txt < a < b < c $ cat > patches/series < a.diff < b.diff < c.diff $ cat > patches/a.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -1 +1 @@ < -a < +a+ $ cat > patches/b.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -2 +2 @@ < -b < +b+ $ cat > patches/c.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -3 +3 @@ < -c < +c+ $ quilt push -qa > Applying patch %{P}a.diff > Applying patch %{P}b.diff > Applying patch %{P}c.diff > Now at patch %{P}c.diff $ quilt diff -P b.diff | grep -v "^\\(---\\|+++\\)" > Warning: more recent patches modify files in patch %{P}b.diff >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > +b+ > c $ quilt diff --combine a.diff -P b.diff | grep -v "^\\(---\\|+++\\)" > Warning: more recent patches modify files in patch %{P}b.diff >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > +a+ > +b+ > c $ quilt diff --combine b.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > -c > +b+ > +c+ $ quilt diff --combine - | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > -c > +a+ > +b+ > +c+ quilt-0.61/test/missing.test0000644000175000017500000000112112077343334016434 0ustar mquinsonmquinson $ mkdir patches $ cat > patches/series < missing1.diff < missing2.diff $ quilt push -qa > Applying patch patches/missing1.diff > Patch patches/missing1.diff does not exist; applied empty patch > Applying patch patches/missing2.diff > Patch patches/missing2.diff does not exist; applied empty patch > Now at patch patches/missing2.diff $ quilt rename missing3.diff > Patch %{P}missing2.diff renamed to %{P}missing3.diff $ quilt pop -qa > Patch %{P}missing3.diff appears to be empty, removing > Patch patches/missing1.diff appears to be empty, removing > No patches applied quilt-0.61/test/new-nosubdir.test0000644000175000017500000000014611634336352017405 0ustar mquinsonmquinson $ mkdir patches $ mkdir sub $ cd sub $ quilt new here.diff > Patch %{_P}here.diff is now on top quilt-0.61/test/new.test0000644000175000017500000000201511634336352015557 0ustar mquinsonmquinson $ mkdir patches $ echo reject > f $ echo p.diff > patches/series $ cat > patches/p.diff < --- d.orig/f < +++ d/f < @@ -1 +1 @@ < -old < +new < --- d.orig/g < +++ d/g < @@ -0,0 +1 @@ < +added $ quilt push > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?f'? >~ patching file `?g'? > Patch %{P}p.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?f.rej'? >~ patching file `?g'? > Applied patch %{P}p.diff (forced; needs refresh) $ echo new > f $ quilt refresh -p ab > Refreshed patch %{P}p.diff $ cat patches/p.diff > Index: b/f > =================================================================== > --- a/f > +++ b/f > @@ -1 +1 @@ > -reject > +new > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +added quilt-0.61/test/no-file-to-patch.test0000644000175000017500000000115411634336352020037 0ustar mquinsonmquinson# Test case for patches which attempt to modify a file which doesn't exist. # As no part of the patch applies, this triggers a corner case in # backup-files (restore called but no file to restore.) $ mkdir patches $ cat > patches/series < one.patch $ cat > patches/one.patch < --- a/foo < +++ b/foo < @@ -1 +1 @@ < -foo < +bar $ quilt push -q > Applying patch patches/one.patch > The text leading up to this was: > -------------------------- > |--- a/foo > |+++ b/foo > -------------------------- > No file to patch. Skipping patch. > 1 out of 1 hunk ignored > Patch patches/one.patch does not apply (enforce with -f) quilt-0.61/test/nolink.test0000644000175000017500000000273111634336352016265 0ustar mquinsonmquinson $ mkdir patches # quilt should preserve hard links and not create new ones $ echo foo > foo $ ln foo foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add foo > File foo added to patch patches/test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test.diff/foo | awk '{ print $2 }' > 2 $ echo "foo changed" > foo $ quilt refresh > Refreshed patch patches/test.diff $ quilt new test2.diff > Patch patches/test2.diff is now on top $ quilt add foo > File foo added to patch patches/test2.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test2.diff/foo | awk '{ print $2 }' > 1 $ echo "foo changed again" > foo $ quilt refresh > Refreshed patch patches/test2.diff $ quilt pop -q > Removing patch patches/test2.diff > Now at patch patches/test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l .pc/test.diff/foo | awk '{ print $2 }' > 2 $ quilt pop -q > Removing patch patches/test.diff > No patches applied $ ls -l foo | awk '{ print $2 }' > 2 # quilt revert should not create hard links $ echo bar > bar $ quilt push -q > Applying patch patches/test.diff > Now at patch patches/test.diff $ quilt add bar > File bar added to patch patches/test.diff $ echo "bar changed" > bar $ quilt revert bar > Changes to bar in patch patches/test.diff reverted $ ls -l bar | awk '{ print $2 }' > 1 $ quilt pop -q > Removing patch patches/test.diff > No patches applied quilt-0.61/test/null-bug.test0000644000175000017500000000131411634336352016514 0ustar mquinsonmquinson $ mkdir patches $ echo file > file $ quilt new remove.diff > Patch patches/remove.diff is now on top $ quilt add file > File file added to patch patches/remove.diff In this case, the original file in the --- line must not have .orig appended or else patch won't know the real original filename anymore. $ rm -f file $ quilt diff -p0 > Index: file > =================================================================== > --- file > +++ /dev/null > @@ -1 +0,0 @@ > -file $ quilt refresh -p0 > Refreshed patch patches/remove.diff $ quilt pop -q > Removing patch patches/remove.diff > No patches applied $ quilt push -q > Applying patch patches/remove.diff > Now at patch patches/remove.diff quilt-0.61/test/one.test0000644000175000017500000000733211634336352015556 0ustar mquinsonmquinsonThis is a minimal test script that runs a few quilt commands and verifies their output. Much needs to be done; particularly it sould be possible to run the tests using the built instead of the installed quilt with `make check'. (To run, type `./run one.test' in this directory.) $ mkdir patches $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add dir/file1 > File dir/file1 added to patch %{P}patch1.diff $ quilt add file2 > File file2 added to patch %{P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt diff -z -p ab dir/file1 > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add dir/file3 > File dir/file3 added to patch %{P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt add -P patch1 dir/file3 > File dir/file3 modified by patch %{P}patch2.diff $ quilt pop -R > Removing patch %{P}patch2.diff > Removing dir/file3 > > Now at patch %{P}patch1.diff $ quilt add file4 > File file4 added to patch %{P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt push > Applying patch %{P}patch2.diff >~ patching file `?dir/file3'? > > Now at patch %{P}patch2.diff $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ quilt add file4 > File file4 added to patch %{P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/file4 > =================================================================== > --- a/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File file4 modified by patch %{P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/file2 > =================================================================== > --- a/file2 > +++ b/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{P}subdir/patch3.diff > Restoring file4 > > Now at patch %{P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied quilt-0.61/test/patch-wrapper.test0000644000175000017500000000302611634336352017546 0ustar mquinsonmquinson$ mkdir somewhere $ cat > foo.orig < 1 < < 3 < < 5 $ sed -e 's/3/3a/' foo.orig > foo $ diff -u foo.orig foo > foo.diff $ mv foo.orig foo $ patch-wrapper -s -p0 < foo.diff $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ patch-wrapper --backup -B xxx/ -s -p0 < foo.diff $ find xxx -type f > xxx/foo $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ patch-wrapper -s -p0 -i foo.diff $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ patch-wrapper -p0 < foo.diff > patching file foo $ quilt pop -q > Removing patch patches/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ mv foo.diff somewhere/ $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ patch-wrapper -p0 -i somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} $ sed -e 's/5/5b/' foo > foo.new $ mv foo.new foo $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo > Hunk #1 succeeded at 1 with fuzz 1. $ cat foo.orig > 1 > > 3 > > 5b $ quilt pop -q > Removing patch patches/somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-.pc} quilt-0.61/test/perms.test0000644000175000017500000000233211726705776016132 0ustar mquinsonmquinson $ umask 022 $ mkdir patches $ echo foo > foo $ chmod 704 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ echo foobar > foo $ quilt refresh > Refreshed patch %{P}test.diff $ quilt new test2.diff > Patch %{P}test2.diff is now on top $ quilt add foo > File foo added to patch %{P}test2.diff $ chmod 702 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx----w- foo $ echo foobaz > foo $ quilt refresh > Refreshed patch %{P}test2.diff The permissions of foo as they were in patch2 are lost here (there is no way to preserve them in the patch). Quilt will restore the permissions of the backup file. $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt push -q > Applying patch %{P}test2.diff > Now at patch %{P}test2.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff quilt-0.61/test/refresh.test0000644000175000017500000000060412064151701016415 0ustar mquinsonmquinson $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch patches/patch > Now at patch patches/patch $ echo a > a $ quilt refresh > Nothing in patch patches/patch $ quilt pop > Removing patch patches/patch > Restoring a > > No patches applied $ cat a > a $ cat patches/patch quilt-0.61/test/refresh-z.test0000644000175000017500000000100611634336352016672 0ustar mquinsonmquinson $ mkdir patches $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add foo > File foo added to patch patches/test.diff $ echo foo > foo $ quilt refresh > Refreshed patch patches/test.diff $ echo bar >> foo $ quilt refresh -z > Fork of patch patches/test.diff created as patches/test-2.diff $ echo baz >> foo $ quilt refresh -zbaz.diff > Fork of patch patches/test-2.diff created as patches/baz.diff $ quilt series > patches/test.diff > patches/test-2.diff > patches/baz.diff quilt-0.61/test/remember-locations.test0000644000175000017500000000124011634336352020554 0ustar mquinsonmquinson $ mkdir -p my/changes $ export QUILT_PATCHES=my/changes $ export QUILT_SERIES=patchlist $ quilt new mychange1 > Patch my/changes/mychange1 is now on top $ unset QUILT_PATCHES $ unset QUILT_SERIES $ cat .pc/.quilt_patches > my/changes $ cat .pc/.quilt_series > patchlist $ cat my/changes/patchlist > mychange1 # Verify that the custom location is still used even # if QUILT_PATCHES is not set $ quilt new mychange2 > Patch my/changes/mychange2 is now on top # Verify that the root directory can be identified even # without QUILT_PATCHES with the .pc directory $ cd my $ quilt applied > ../my/changes/mychange1 > ../my/changes/mychange2 $ cd .. quilt-0.61/test/remove-trailing-ws.test0000644000175000017500000000656512064151701020526 0ustar mquinsonmquinson# Unit test for the remove-trailing-ws script. # Prepare the working directory $ mkdir files.orig files $ cat > files.orig/add < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files.orig/change < change < from < this $ cat > files.orig/complex < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files.orig/delete < delete < an old < file $ cat > files.orig/remove < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files.orig/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files/add < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files/change < change < to < that $ cat > files/complex < Line 1 < Line 2 < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line A < < Line B < Line C < < Line D < Line E < Line F < Line 10 $ cat > files/create < create < a new < file $ cat > files/remove < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cp -r files files.backup # Generate the two patches $ diff -ruN files.orig files > unified.diff # For the context diff we need the files listed in a certain order to # cover some corner cases $ diff -c files.orig/add files/add > context.diff $ diff -C 10 files.orig/remove-at-end files/remove-at-end >> context.diff $ diff -cN files.orig/create files/create | sed -e '/^diff /d' >> context.diff $ diff -cN files.orig/delete files/delete >> context.diff $ diff -c files.orig/remove files/remove | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/change files/change | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/complex files/complex >> context.diff $ %{QUILT_DIR}/scripts/remove-trailing-ws < unified.diff > unified-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add > 8 files/add $ wc -l files/change > 3 files/change $ wc -l files/complex > 21 files/complex $ wc -l files/create > 3 files/create $ wc -l files/remove > 6 files/remove $ wc -l files/remove-at-end > 8 files/remove-at-end $ wc -l unified.diff > 85 unified.diff $ wc -l unified-wsok.diff > 85 unified-wsok.diff $ diff -u unified.diff unified-wsok.diff | grep '^++[^+]' > ++Line 4 > ++to > ++that > ++Line 9 > ++Line C > ++create > ++a new > ++file $ rm -rf files $ mv files.backup files $ %{QUILT_DIR}/scripts/remove-trailing-ws < context.diff > context-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add > 8 files/add $ wc -l files/change > 3 files/change $ wc -l files/complex > 21 files/complex $ wc -l files/create > 3 files/create $ wc -l files/remove > 6 files/remove $ wc -l files/remove-at-end > 8 files/remove-at-end $ wc -l context.diff > 104 context.diff $ wc -l context-wsok.diff > 104 context-wsok.diff $ diff -u context.diff context-wsok.diff | grep '^+[+!] ' > ++ Line 4 > ++ create > ++ a new > ++ file > +! to > +! that > +! Line 9 > +! Line C quilt-0.61/test/rename.test0000644000175000017500000000254511634336352016245 0ustar mquinsonmquinson $ mkdir patches $ cat > announce.txt < A short summary of the fixes are below. $ quilt new original-name.diff > Patch %{P}original-name.diff is now on top $ quilt add announce.txt > File announce.txt added to patch %{P}original-name.diff $ cat > announce.txt < The diffstat and short summary of the fixes are below. $ quilt refresh > Refreshed patch %{P}original-name.diff $ quilt series -v > = %{P}original-name.diff $ quilt rename _tmp_name.diff > Patch %{P}original-name.diff renamed to %{P}_tmp_name.diff $ quilt series -v > = %{P}_tmp_name.diff $ quilt pop > Removing patch %{P}_tmp_name.diff > Restoring announce.txt > > No patches applied $ quilt series -v > %{P}_tmp_name.diff $ quilt rename -P random_name.diff final.name.diff > Patch random_name.diff is not in series $ quilt rename final.name.diff > No patches applied $ quilt rename -P _tmp_name.diff _tmp_name.diff > Patch %{P}_tmp_name.diff exists already, please choose a different name $ quilt rename -P _tmp_name.diff newsubdir/final.name.diff > Patch %{P}_tmp_name.diff renamed to %{P}newsubdir/final.name.diff $ quilt series -v > %{P}newsubdir/final.name.diff $ quilt push -q > Applying patch %{P}newsubdir/final.name.diff > Now at patch %{P}newsubdir/final.name.diff $ quilt pop -q > Removing patch %{P}newsubdir/final.name.diff > No patches applied quilt-0.61/test/revert2.test0000644000175000017500000000114511634336352016362 0ustar mquinsonmquinson $ mkdir patches $ quilt new revert.patch > Patch patches/revert.patch is now on top $ quilt add foo bar baz > File foo added to patch patches/revert.patch > File bar added to patch patches/revert.patch > File baz added to patch patches/revert.patch $ echo foo > foo $ echo bar > bar $ echo baz > baz $ quilt revert baz > Changes to baz in patch patches/revert.patch reverted $ quilt refresh > Refreshed patch patches/revert.patch $ echo will-revert > bar $ quilt revert bar > Changes to bar in patch patches/revert.patch reverted $ quilt refresh > Patch patches/revert.patch is unchanged quilt-0.61/test/revert.test0000644000175000017500000000201511634336352016275 0ustar mquinsonmquinson $ mkdir patches $ mkdir sub $ echo f1 > sub/f $ echo g1 > sub/g $ quilt new p.diff > Patch patches/p.diff is now on top $ quilt add sub/f sub/g sub/h > File sub/f added to patch patches/p.diff > File sub/g added to patch patches/p.diff > File sub/h added to patch patches/p.diff $ rm -f sub/g $ echo h1 > sub/h $ quilt refresh > Refreshed patch patches/p.diff $ cd sub $ echo f2 > f $ quilt revert f > Changes to sub/f in patch ../patches/p.diff reverted $ quilt diff -z $ quilt pop -qf > Removing patch ../patches/p.diff > No patches applied $ quilt push -q > Applying patch ../patches/p.diff > Now at patch ../patches/p.diff $ echo g2 > g $ quilt revert g > Changes to sub/g in patch ../patches/p.diff reverted $ quilt diff -z $ quilt pop -qf > Removing patch ../patches/p.diff > No patches applied $ quilt push -q > Applying patch ../patches/p.diff > Now at patch ../patches/p.diff $ echo h2 > h $ quilt revert h > Changes to sub/h in patch ../patches/p.diff reverted $ quilt diff -z quilt-0.61/test/setup.test0000644000175000017500000000605112064151701016121 0ustar mquinsonmquinson$ mkdir dir $ echo 1 > dir/foo.orig $ echo 2 > dir/foo $ diff -u dir/foo.orig dir/foo > foo.diff $ diff -u dir/foo.orig dir/foo > revert.diff $ diff -u dir/foo.orig dir/foo > again.diff $ mv dir/foo.orig dir/foo $ tar cf - dir | gzip > dir.tar.gz $ mkdir dir/patches $ echo crap > dir/patches/foo.diff $ tar cf - dir | gzip > dir_with_patches.tar.gz $ rm -rf dir $ cat > series < # Source: dir.tar.gz < # Patchdir: dir < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive dir.tar.gz $ cd dir $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd .. $ rm -rf dir $ quilt setup -d other series > Unpacking archive dir.tar.gz $ cd other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd ../.. $ rm -rf other $ mkdir dir1 $ mv series dir1 $ cd dir1 $ quilt setup -d ../other series > File dir.tar.gz not found $ quilt setup --sourcedir .. -d ../other series > Unpacking archive ../dir.tar.gz $ cd ../other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../dir1/series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd ../.. $ rm -rf "dir" # Now test the cases where the directory already exists, or the tarball # contains a patches directory $ cat > series_with_patches < # Source: dir_with_patches.tar.gz < # Patchdir: dir < # < foo.diff $ mkdir dir $ quilt setup series_with_patches > Directory dir exists $ rmdir dir $ quilt setup series_with_patches > Unpacking archive dir_with_patches.tar.gz > Directory dir/patches exists > Trying alternative patches and series names... $ cd dir $ ls -l quilt_patches quilt_series | sed -e 's:.* -> ::' > .. > ../series_with_patches $ quilt push -qa > Applying patch quilt_patches/foo.diff > Now at patch quilt_patches/foo.diff $ cd .. $ rm -rf "dir" # Now a basic test with space in dir name $ mkdir "space [dir]" $ echo 1 > "space [dir]/foo.orig" $ echo 2 > "space [dir]/foo" $ diff -u "space [dir]/foo.orig" "space [dir]/foo" > foo.diff $ diff -u "space [dir]/foo.orig" "space [dir]/foo" > revert.diff $ diff -u "space [dir]/foo.orig" "space [dir]/foo" > again.diff $ mv "space [dir]/foo.orig" "space [dir]/foo" $ tar cf - "space [dir]" | gzip > "space [dir].tar.gz" $ rm -rf "space [dir]" $ cat > series < # Source: space [dir].tar.gz < # Patchdir: space [dir] < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive space [dir].tar.gz $ cd space\ [dir] $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch patches/foo.diff > Applying patch patches/revert.diff > Applying patch patches/again.diff > Now at patch patches/again.diff $ cd .. $ rm -rf "space [dir]" quilt-0.61/test/snapshot2.test0000644000175000017500000000201711634336352016711 0ustar mquinsonmquinson $ mkdir patches d $ quilt new snapshot > Patch %{P}snapshot is now on top $ cd d $ quilt add f.txt > File d/f.txt added to patch %{_P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File d/g.txt added to patch %{_P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{_P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{_P}snapshot created as %{_P}snapshot-2 $ rm g.txt $ quilt add h.txt > File d/h.txt added to patch %{_P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{_P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/d/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/d/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/d/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.61/test/snapshot.test0000644000175000017500000000176211634336352016635 0ustar mquinsonmquinson $ mkdir patches $ quilt new snapshot > Patch %{P}snapshot is now on top $ quilt add f.txt > File f.txt added to patch %{P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File g.txt added to patch %{P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{P}snapshot created as %{P}snapshot-2 $ rm g.txt $ quilt add h.txt > File h.txt added to patch %{P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.61/test/sort.test0000644000175000017500000000316011634336352015757 0ustar mquinsonmquinson $ mkdir patches $ quilt new sort.diff > Patch patches/sort.diff is now on top $ quilt add b f > File b added to patch patches/sort.diff > File f added to patch patches/sort.diff $ echo b > b $ echo f > f $ quilt refresh > Refreshed patch patches/sort.diff $ quilt add c > File c added to patch patches/sort.diff $ echo c > c $ quilt refresh > Refreshed patch patches/sort.diff $ quilt files > b > c > f $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c $ quilt add z x > File z added to patch patches/sort.diff > File x added to patch patches/sort.diff $ echo z > z $ echo x > x $ quilt files > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt add a > File a added to patch patches/sort.diff $ echo a > a $ quilt files > a > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh > Refreshed patch patches/sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt diff --sort | grep '^Index' >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh --sort > Refreshed patch patches/sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z quilt-0.61/test/space-in-filenames.test0000644000175000017500000000353111726705776020446 0ustar mquinsonmquinson$ mkdir patches $ quilt new test.diff >Patch patches/test.diff is now on top $ echo foo > foo $ quilt add foo > File foo added to patch patches/test.diff $ quilt files > foo $ echo foo > "foo bar" $ quilt add "foo bar" > File foo bar added to patch patches/test.diff $ quilt files > foo > foo bar $ quilt add "a: b [c]" > File a: b [c] added to patch patches/test.diff $ quilt files > a: b [c] > foo > foo bar $ echo bar > "foo bar" $ echo "new line" > "a: b [c]" $ quilt diff -p ab > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch patches/test.diff $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab --sort > Patch patches/test.diff is unchanged $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ b/a: b [c] > @@ -0,0 +1 @@ > +new line > Index: b/foo bar > =================================================================== > --- a/foo bar > +++ b/foo bar > @@ -1 +1 @@ > -foo > +bar $ quilt grep bar > foo bar:bar $ quilt grep new > a: b [c]:new line $ quilt grep " " > a: b [c]:new line $quilt remove "a: b [c]" > File a: b [c] removed from patch patches/test.diff $ quilt files > foo > foo bar $quilt remove "foo bar" > File foo bar removed from patch patches/test.diff $ quilt files > foo quilt-0.61/test/subdir.test0000644000175000017500000000233511634336352016263 0ustar mquinsonmquinson $ mkdir patches $ mkdir subdir $ cat > subdir/file < old file $ quilt new test.patch > Patch %{P}test.patch is now on top $ quilt add subdir/file > File subdir/file added to patch %{P}test.patch $ cat > subdir/file < new contents This creates the patches/ directory: $ quilt refresh > Refreshed patch %{P}test.patch $ cd subdir $ quilt add file2 > File subdir/file2 added to patch %{_P}test.patch $ cat > file2 < another file $ cat > file3 < yet another file $ quilt add file3 > File subdir/file3 added to patch %{_P}test.patch $ rm -f file3 $ quilt files -v > subdir/file > + subdir/file2 > - subdir/file3 $ quilt diff -p ab > Index: b/subdir/file > =================================================================== > --- a/subdir/file > +++ b/subdir/file > @@ -1 +1 @@ > -old file > +new contents > Index: b/subdir/file2 > =================================================================== > --- /dev/null > +++ b/subdir/file2 > @@ -0,0 +1 @@ > +another file > Index: b/subdir/file3 > =================================================================== > --- a/subdir/file3 > +++ /dev/null > @@ -1 +0,0 @@ > -yet another file $ quilt refresh > Refreshed patch %{_P}test.patch quilt-0.61/test/three.test0000644000175000017500000000571111634336352016103 0ustar mquinsonmquinson $ mkdir patches $ touch e $ quilt annotate e > No series file found $ quilt top > No series file found $ quilt next > No series file found $ quilt previous > No series file found $ quilt unapplied > No series file found $ quilt applied > No series file found $ quilt next patch1 > No series file found $ quilt push patch1 > No series file found $ quilt push > No series file found $ quilt pop > No patch removed $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt top > patches/patch1.diff $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ ls %{P} > series $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt previous > patches/patch1.diff $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt pop > Removing patch patches/patch2.diff > Removing g > > Now at patch patches/patch1.diff $ ls %{P} > patch2.diff > series $ quilt next > patches/patch2.diff $ quilt previous $ quilt previous patch2 > patches/patch1.diff $ quilt pop > Patch %{P}patch1.diff does not remove cleanly (refresh it or enforce with -f) $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt refresh patch2 > Patch patches/patch2.diff is not applied $ quilt pop > Removing patch patches/patch1.diff > Removing f > > No patches applied $ quilt top > No patches applied $ quilt pop > No patch removed $ quilt applied > No patches applied $ quilt unapplied > patches/patch1.diff > patches/patch2.diff $ quilt previous > No patches applied $ quilt next > patches/patch1.diff $ quilt applied patch1 > Patch patches/patch1.diff is not applied $ quilt unapplied patch2 $ quilt unapplied patch1 > patches/patch2.diff $ quilt revert f > No patches applied $ quilt delete patch3.diff > Patch patch3.diff is not in series $ quilt push -qa > Applying patch patches/patch1.diff > Applying patch patches/patch2.diff > Now at patch patches/patch2.diff $ quilt push patch2 > Patch patches/patch2.diff is currently applied $ quilt push > File series fully applied, ends at patch patches/patch2.diff $ quilt diff --combine patch1 -P patch2 -p ab > Index: b/f > =================================================================== > --- /dev/null > +++ b/f > @@ -0,0 +1 @@ > +f > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +g $ quilt diff -P patch1 --combine patch2 > Patch patches/patch2.diff not applied before patch patches/patch1.diff $ echo patch3.diff >> %{P}/series $ quilt diff -P patch1 --combine patch3 > Patch patches/patch3.diff is not applied $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied $ quilt annotate f > No patches applied $ quilt pop patch4.diff > Patch patch4.diff is not in series $ quilt grep "not there" quilt-0.61/test/trailing-ws.test0000644000175000017500000000260611634336352017234 0ustar mquinsonmquinson $ mkdir patches $ cat > a < a < b < c $ quilt new test.diff > Patch patches/test.diff is now on top $ quilt add a > File a added to patch patches/test.diff $ cat > a < a < b < c $ quilt refresh > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test.diff $ grep '[ \t]$' patches/test.diff > +a > +c $ quilt refresh -U0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test.diff $ quilt refresh --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch patches/test.diff $ grep '[ \t]$' patches/test.diff $ quilt pop -q > Removing patch patches/test.diff > No patches applied $ cat > a < a < b < c $ quilt new test2.diff > Patch patches/test2.diff is now on top $ quilt add a > File a added to patch patches/test2.diff $ cat > a < a < b < c $ quilt refresh -c > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test2.diff $ grep '[ \t]$' patches/test2.diff > ! a > ! c $ quilt refresh -C0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch patches/test2.diff $ quilt refresh -c --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch patches/test2.diff $ grep '[ \t]$' patches/test2.diff $ quilt pop -q > Removing patch patches/test2.diff > No patches applied quilt-0.61/test/two.test0000644000175000017500000001030012206665406015574 0ustar mquinsonmquinson(To run, type `./run two.test' in this directory.) $ mkdir patches d $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ cd d $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt add dir/file1 > File d/dir/file1 added to patch %{_P}patch1.diff $ quilt add file2 > File d/file2 added to patch %{_P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{_P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd dir $ quilt diff -z file1 -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd .. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ cd .. $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ cd d $ quilt add dir/file3 > File d/dir/file3 added to patch %{_P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{_P}patch2.diff $ quilt add -P patch1 dir/file3 > File d/dir/file3 modified by patch %{_P}patch2.diff $ quilt pop -R > Removing patch %{_P}patch2.diff > Removing d/dir/file3 > > Now at patch %{_P}patch1.diff $ quilt add file4 > File d/file4 added to patch %{_P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt push > Applying patch %{_P}patch2.diff >~ patching file `?d/dir/file3'? > > Now at patch %{_P}patch2.diff $ cd .. $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ cd d $ quilt add file4 > File d/file4 added to patch %{_P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/d/file4 > =================================================================== > --- a/d/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File d/file4 modified by patch %{_P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{_P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/d/file2 > =================================================================== > --- a/d/file2 > +++ b/d/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{_P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{_P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{_P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{_P}subdir/patch3.diff > Restoring d/file4 > > Now at patch %{_P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ quilt grep -- two > d/file2:This is file two. $ quilt pop -qaR > Removing patch %{_P}patch2.diff > Removing patch %{_P}patch1.diff > No patches applied $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt push -qa > Applying patch %{_P}patch1.diff > Applying patch %{_P}patch2.diff > Applying patch %{_P}subdir/patch3.diff > Now at patch %{_P}subdir/patch3.diff $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt pop -q patch2.diff > Removing patch %{_P}subdir/patch3.diff > Now at patch %{_P}patch2.diff $ quilt patches -v dir/file3 file4 > + %{_P}patch1.diff > = %{_P}patch2.diff > %{_P}subdir/patch3.diff quilt-0.61/test/run0000755000175000017500000002220112146777124014623 0ustar mquinsonmquinson#!/usr/bin/perl -w -U # Copyright (c) 2007, 2008 Andreas Gruenbacher. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions, and the following disclaimer, # without modification, immediately at the beginning of the file. # 2. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # Alternatively, this software may be distributed under the terms of the # GNU Public License ("GPL"). # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Possible improvements: # # - distinguish stdout and stderr output # - add environment variable like assignments # - run up to a specific line # - resume at a specific line # use strict; use FileHandle; use Getopt::Std; use POSIX qw(isatty setuid getcwd); use vars qw($opt_l $opt_q $opt_v %output); no warnings qw(taint); $opt_l = ~0; # a really huge number getopts('l:qv'); my ($OK, $FAILED) = ("ok", "failed"); if (isatty(fileno(STDOUT))) { $OK = "\033[32m" . $OK . "\033[m"; $FAILED = "\033[31m\033[1m" . $FAILED . "\033[m"; } sub exec_test($$); sub process_test($$$$); sub print_header($); sub print_body($); sub print_footer($); sub flush_output($); my ($prog, $in, $out) = ([], [], []); my $prog_line = 0; my ($tests, $failed) = (0,0); my $lineno; my $width = ($ENV{COLUMNS} || 80) >> 1; my $origdir = getcwd; my $workdir = "d.$$"; # Create a dedicated working directory mkdir $workdir or die; chdir $workdir or die; $ENV{PWD} = getcwd; if (defined $ARGV[0]) { open(SOURCE, "$origdir/$ARGV[0]"); print_header "[$ARGV[0]]\n"; } else { *SOURCE = *STDIN; } for (;;) { my $line = ; $lineno++; if (defined $line) { # Substitute %{VAR} with environment variables. $line =~ s[%{(\w+)}][$ENV{$1}]eg; } if (defined $line) { if ($line =~ s/^\s*< ?//) { push @$in, $line; } elsif ($line =~ s/^\s*> ?//) { push @$out, $line; } else { process_test($prog, $prog_line, $in, $out); last if $prog_line >= $opt_l; $prog = []; $prog_line = 0; } if ($line =~ s/^\s*\$ ?//) { $prog = [ map { s/\\(.)/$1/g; $_ } split /(? @$result) ? @$out : @$result; for (my $n=0; $n < $nmax; $n++) { my $use_re; if (defined $out->[$n] && $out->[$n] =~ /^~ /) { $use_re = 1; $out->[$n] =~ s/^~ //g; } if (!defined($out->[$n]) || !defined($result->[$n]) || (!$use_re && $result->[$n] ne $out->[$n]) || ( $use_re && $result->[$n] !~ /^$out->[$n]/)) { push @good, ($use_re ? '!~' : '!='); } else { push @good, ($use_re ? '=~' : '=='); } } my $good = !grep(/!/, @good); $tests++; $failed++ unless $good; print_body(($good ? $OK : $FAILED)."\n"); if (!$good || $opt_v) { for (my $n=0; $n < $nmax; $n++) { my $l = defined($out->[$n]) ? $out->[$n] : "~"; chomp $l; my $r = defined($result->[$n]) ? $result->[$n] : "~"; chomp $r; print_body sprintf("%-" . ($width-3) . "s %s %s\n", $r, $good[$n], $l); } } } sub su($) { my ($user) = @_; $user ||= "root"; my ($login, $pass, $uid, $gid) = getpwnam($user) or return [ "su: user $user does not exist\n" ]; my @groups = (); my $fh = new FileHandle("/etc/group") or return [ "opening /etc/group: $!\n" ]; while (<$fh>) { chomp; my ($group, $passwd, $gid, $users) = split /:/; foreach my $u (split /,/, $users) { push @groups, $gid if ($user eq $u); } } $fh->close; my $groups = join(" ", ($gid, $gid, @groups)); #print STDERR "[[$groups]]\n"; $! = 0; # reset errno $> = 0; $( = $gid; $) = $groups; if ($!) { return [ "su: $!\n" ]; } if ($uid != 0) { $> = $uid; #$< = $uid; if ($!) { return [ "su: $prog->[1]: $!\n" ]; } } #print STDERR "[($>,$<)($(,$))]"; return []; } sub sg($) { my ($group) = @_; my $gid = getgrnam($group) or return [ "sg: group $group does not exist\n" ]; my %groups = map { $_ eq $gid ? () : ($_ => 1) } (split /\s/, $)); #print STDERR "<<", join("/", keys %groups), ">>\n"; my $groups = join(" ", ($gid, $gid, keys %groups)); #print STDERR "[[$groups]]\n"; $! = 0; # reset errno if ($> != 0) { my $uid = $>; $> = 0; $( = $gid; $) = $groups; $> = $uid; } else { $( = $gid; $) = $groups; } if ($!) { return [ "sg: $!\n" ]; } print STDERR "[($>,$<)($(,$))]"; return []; } sub exec_test($$) { my ($prog, $in) = @_; local (*IN, *IN_DUP, *IN2, *OUT_DUP, *OUT, *OUT2); my $needs_shell = (join('', @$prog) =~ /[][|<>"'`\$\*\?]/); if ($prog->[0] eq "umask") { umask oct $prog->[1]; return []; } elsif ($prog->[0] eq "cd") { if (!chdir $prog->[1]) { return [ "chdir: $prog->[1]: $!\n" ]; } $ENV{PWD} = getcwd; return []; } elsif ($prog->[0] eq "su") { return su($prog->[1]); } elsif ($prog->[0] eq "sg") { return sg($prog->[1]); } elsif ($prog->[0] eq "export") { my ($name, $value) = split /=/, $prog->[1]; # FIXME: need to evaluate $value, so that things like this will work: # export dir=$PWD/dir $ENV{$name} = $value; return []; } elsif ($prog->[0] eq "unset") { delete $ENV{$prog->[1]}; return []; } pipe *IN2, *OUT or die "Can't create pipe for reading: $!"; open *IN_DUP, "<&STDIN" or *IN_DUP = undef; open *STDIN, "<&IN2" or die "Can't duplicate pipe for reading: $!"; close *IN2; open *OUT_DUP, ">&STDOUT" or die "Can't duplicate STDOUT: $!"; pipe *IN, *OUT2 or die "Can't create pipe for writing: $!"; open *STDOUT, ">&OUT2" or die "Can't duplicate pipe for writing: $!"; close *OUT2; *STDOUT->autoflush(); *OUT->autoflush(); if (fork()) { # Server if (*IN_DUP) { open *STDIN, "<&IN_DUP" or die "Can't duplicate STDIN: $!"; close *IN_DUP or die "Can't close STDIN duplicate: $!"; } open *STDOUT, ">&OUT_DUP" or die "Can't duplicate STDOUT: $!"; close *OUT_DUP or die "Can't close STDOUT duplicate: $!"; foreach my $line (@$in) { #print "> $line"; print OUT $line; } close *OUT or die "Can't close pipe for writing: $!"; my $result = []; while () { #print "< $_"; if ($needs_shell) { s#^/bin/sh: line \d+: ##; } push @$result, $_; } return $result; } else { # Client $< = $>; close IN or die "Can't close read end for input pipe: $!"; close OUT or die "Can't close write end for output pipe: $!"; close OUT_DUP or die "Can't close STDOUT duplicate: $!"; local *ERR_DUP; open ERR_DUP, ">&STDERR" or die "Can't duplicate STDERR: $!"; open STDERR, ">&STDOUT" or die "Can't join STDOUT and STDERR: $!"; if ($needs_shell) { exec ('/bin/sh', '-c', join(" ", @$prog)); } else { exec @$prog; } print STDERR $prog->[0], ": $!\n"; exit; } } sub print_header($) { if ($opt_q) { $output{header} = $_[0]; } else { print $_[0]; } } sub print_body($) { if ($opt_q) { $output{body} .= $_[0]; } else { print $_[0]; } } sub print_footer($) { if ($opt_q) { $output{footer} .= $_[0]; } else { print $_[0]; } } sub flush_output($) { my $failed = shift; return unless $opt_q; print $output{header} || "", $failed ? $output{body} : "", $output{footer} || ""; } quilt-0.61/test/test.quiltrc0000644000175000017500000000036211634336352016454 0ustar mquinsonmquinson# Define this to generate diffs without timestamps. QUILT_DIFF_ARGS="--no-timestamps" QUILT_REFRESH_ARGS="--no-timestamps" QUILT_MAIL_ARGS="--charset=UTF-8 --sender a@b.c --signature=-" QUILT_PATCHES_PREFIX=yes export QUOTING_STYLE=literal quilt-0.61/changes2changelog0000755000175000017500000000050711726705776016416 0ustar mquinsonmquinson#! /usr/bin/perl $ENV{"LC_ALL"} = "C"; while (<>) { if (/^(|-+)$/) { next; } elsif (/^(\S.*) - (.*@.*)$/) { # print "[" . $1 . "]\n"; open FH, 'date -u +"* %a %b %d %Y" -d "' . $1 . '" |'; while () { chomp; print $_ . " - " . $2 . "\n"; } close FH; next; } elsif (/(- | +)(?!\s)/) { print; } } quilt-0.61/configure0000755000175000017500000047104512251155760015030 0ustar mquinsonmquinson#! /bin/sh # From configure.ac . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for quilt 0.61. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: quilt-dev@nongnu.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='quilt' PACKAGE_TARNAME='quilt' PACKAGE_VERSION='0.61' PACKAGE_STRING='quilt 0.61' PACKAGE_BUGREPORT='quilt-dev@nongnu.org' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS COMPAT_PROGRAMS COMPAT_SYMLINKS RPMBUILD USE_NLS PATCH_WRAPPER MSGCAT MSGUNIQ XGETTEXT MSGFMT MSGMERGE SENDMAIL DIFFSTAT XARGS FIND PATCH DIFF MKTEMP GETOPT COLUMN POD2MAN AWK SED STAT_HARDLINK STAT TR TAIL GREP PERL DATE CP BASH INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM PACKAGE_RELEASE target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_bash with_cp with_date with_perl with_grep with_tail with_tr with_stat with_sed with_awk with_pod2man with_column with_getopt with_mktemp with_diff with_patch with_find with_xargs with_diffstat with_sendmail enable_nls with_patch_wrapper with_rpmbuild ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures quilt 0.61 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/quilt] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of quilt 0.61:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls exclude natural language support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-bash name of the bash executable to use --with-cp name of the cp executable to use --with-date name of the date executable to use (use --without-date to use an internal mechanism) --with-perl name of the perl executable to use --with-grep name of the grep executable to use --with-tail name of the tail executable to use --with-tr name of the tr executable to use --with-stat name of the stat executable to use --with-sed name of the sed executable to use --with-awk name of the awk executable to use --with-pod2man name of the pod2man executable to use (use --without-pod2man to disable) --with-column name of the column executable to use (use --without-column to use an internal mechanism) --with-getopt name of the getopt executable to use (use --without-getopt to use an internal mechanism) --with-mktemp name of the mktemp executable to use (use --without-mktemp to use an internal mechanism) --with-diff name of the diff executable to use --with-patch name of the patch executable to use --with-find name of the find executable to use --with-xargs name of the xargs executable to use --with-diffstat name of the diffstat executable to use --with-sendmail name of the sendmail executable to use (use --without-sendmail to use an internal mechanism) --with-patch-wrapper include GNU patch wrapper --with-rpmbuild name of the rpmbuild executable to use Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF quilt configure 0.61 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by quilt $as_me 0.61, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ($Revision: 1.84 $) PACKAGE_RELEASE=1 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether #! works in shell scripts" >&5 $as_echo_n "checking whether #! works in shell scripts... " >&6; } if ${ac_cv_sys_interpreter+:} false; then : $as_echo_n "(cached) " >&6 else echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) if test $? -ne 69; then ac_cv_sys_interpreter=yes else ac_cv_sys_interpreter=no fi rm -f conftest fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 $as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter if test "$interpval" != yes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&5 $as_echo "$as_me: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&2;} fi unset BASH # bash sets this itself! # Check whether --with-bash was given. if test "${with_bash+set}" = set; then : withval=$with_bash; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-bash" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bash" >&5 $as_echo_n "checking for bash... " >&6; } BASH="$withval" if test -e "$BASH"; then if test ! -f "$BASH" -a ! -h "$BASH" || test ! -x "$BASH"; then as_fn_error $? "$BASH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } if test ! -e "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $BASH does not exist" >&5 $as_echo "$as_me: WARNING: $BASH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS bash" fi else # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BASH+:} false; then : $as_echo_n "(cached) " >&6 else case $BASH in [\\/]* | ?:[\\/]*) ac_cv_path_BASH="$BASH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BASH=$ac_cv_path_BASH if test -n "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$BASH"; then as_fn_error $? "Please specify the location of bash with the option '--with-bash'" "$LINENO" 5 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" \< "3.0" ]'` ; then as_fn_error $? " $PACKAGE_NAME requires at least version 3.0 of bash, you can download a current version of bash from ftp.gnu.org " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $BASH quoting works" >&5 $as_echo_n "checking whether $BASH quoting works... " >&6; } if test `$BASH -c "echo \"\\\$(set -- \\\$'a b'; echo \\\$#)\"" 2>/dev/null` = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " You have a version of \`bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ " "$LINENO" 5 fi # Check whether --with-cp was given. if test "${with_cp+set}" = set; then : withval=$with_cp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-cp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cp" >&5 $as_echo_n "checking for cp... " >&6; } CP="$withval" if test -e "$CP"; then if test ! -f "$CP" -a ! -h "$CP" || test ! -x "$CP"; then as_fn_error $? "$CP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } if test ! -e "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CP does not exist" >&5 $as_echo "$as_me: WARNING: $CP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi else for ac_prog in gcp cp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CP+:} false; then : $as_echo_n "(cached) " >&6 else case $CP in [\\/]* | ?:[\\/]*) ac_cv_path_CP="$CP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CP=$ac_cv_path_CP if test -n "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CP" && break done if test -n "$CP" -a "`expr "$CP" : '.*/\([^/]*\)$'`" != "cp"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi fi if test -z "$CP"; then as_fn_error $? "Please specify the location of cp with the option '--with-cp'" "$LINENO" 5 fi # Check whether --with-date was given. if test "${with_date+set}" = set; then : withval=$with_date; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-date" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for date" >&5 $as_echo_n "checking for date... " >&6; } DATE="$withval" if test -e "$DATE"; then if test ! -f "$DATE" -a ! -h "$DATE" || test ! -x "$DATE"; then as_fn_error $? "$DATE is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } if test ! -e "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DATE does not exist" >&5 $as_echo "$as_me: WARNING: $DATE does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi else for ac_prog in gdate date do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DATE+:} false; then : $as_echo_n "(cached) " >&6 else case $DATE in [\\/]* | ?:[\\/]*) ac_cv_path_DATE="$DATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DATE=$ac_cv_path_DATE if test -n "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DATE" && break done if test -n "$DATE" -a "`expr "$DATE" : '.*/\([^/]*\)$'`" != "date"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi fi if test -z "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&5 $as_echo "$as_me: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS date" DATE=date INTERNAL_DATE=1 fi if test -z "$INTERNAL_DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $DATE --rfc-822 works" >&5 $as_echo_n "checking whether $DATE --rfc-822 works... " >&6; } if $DATE --rfc-822 >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "no If you don't have a version of \`date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. " "$LINENO" 5 fi fi # Check whether --with-perl was given. if test "${with_perl+set}" = set; then : withval=$with_perl; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-perl" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl" >&5 $as_echo_n "checking for perl... " >&6; } PERL="$withval" if test -e "$PERL"; then if test ! -f "$PERL" -a ! -h "$PERL" || test ! -x "$PERL"; then as_fn_error $? "$PERL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } if test ! -e "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PERL does not exist" >&5 $as_echo "$as_me: WARNING: $PERL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi else for ac_prog in perl perl5 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PERL" && break done if test -n "$PERL" -a "`expr "$PERL" : '.*/\([^/]*\)$'`" != "perl"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi fi if test -z "$PERL"; then as_fn_error $? "Please specify the location of perl with the option '--with-perl'" "$LINENO" 5 fi # Check whether --with-grep was given. if test "${with_grep+set}" = set; then : withval=$with_grep; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-grep" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep" >&5 $as_echo_n "checking for grep... " >&6; } GREP="$withval" if test -e "$GREP"; then if test ! -f "$GREP" -a ! -h "$GREP" || test ! -x "$GREP"; then as_fn_error $? "$GREP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } if test ! -e "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GREP does not exist" >&5 $as_echo "$as_me: WARNING: $GREP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS grep" fi else # Extract the first word of "grep", so it can be a program name with args. set dummy grep; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else case $GREP in [\\/]* | ?:[\\/]*) ac_cv_path_GREP="$GREP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GREP=$ac_cv_path_GREP if test -n "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GREP"; then as_fn_error $? "Please specify the location of grep with the option '--with-grep'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP -q works" >&5 $as_echo_n "checking whether $GREP -q works... " >&6; } if echo first | $GREP -q first 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP understands (foo|bar)" >&5 $as_echo_n "checking whether $GREP understands (foo|bar)... " >&6; } if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi # Check whether --with-tail was given. if test "${with_tail+set}" = set; then : withval=$with_tail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tail" >&5 $as_echo_n "checking for tail... " >&6; } TAIL="$withval" if test -e "$TAIL"; then if test ! -f "$TAIL" -a ! -h "$TAIL" || test ! -x "$TAIL"; then as_fn_error $? "$TAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } if test ! -e "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TAIL does not exist" >&5 $as_echo "$as_me: WARNING: $TAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tail" fi else # Extract the first word of "tail", so it can be a program name with args. set dummy tail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $TAIL in [\\/]* | ?:[\\/]*) ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TAIL=$ac_cv_path_TAIL if test -n "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TAIL"; then as_fn_error $? "Please specify the location of tail with the option '--with-tail'" "$LINENO" 5 fi # Solaris' /usr/bin/tail doesn't understand -n. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TAIL -n works" >&5 $as_echo_n "checking whether $TAIL -n works... " >&6; } if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. " "$LINENO" 5 fi # Check whether --with-tr was given. if test "${with_tr+set}" = set; then : withval=$with_tr; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tr" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tr" >&5 $as_echo_n "checking for tr... " >&6; } TR="$withval" if test -e "$TR"; then if test ! -f "$TR" -a ! -h "$TR" || test ! -x "$TR"; then as_fn_error $? "$TR is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } if test ! -e "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TR does not exist" >&5 $as_echo "$as_me: WARNING: $TR does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tr" fi else # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TR+:} false; then : $as_echo_n "(cached) " >&6 else case $TR in [\\/]* | ?:[\\/]*) ac_cv_path_TR="$TR" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TR=$ac_cv_path_TR if test -n "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TR"; then as_fn_error $? "Please specify the location of tr with the option '--with-tr'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TR understands a-z " >&5 $as_echo_n "checking whether $TR understands a-z ... " >&6; } if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. " "$LINENO" 5 fi # Check whether --with-stat was given. if test "${with_stat+set}" = set; then : withval=$with_stat; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-stat" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stat" >&5 $as_echo_n "checking for stat... " >&6; } STAT="$withval" if test -e "$STAT"; then if test ! -f "$STAT" -a ! -h "$STAT" || test ! -x "$STAT"; then as_fn_error $? "$STAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } if test ! -e "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $STAT does not exist" >&5 $as_echo "$as_me: WARNING: $STAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS stat" fi else # Extract the first word of "stat", so it can be a program name with args. set dummy stat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_STAT+:} false; then : $as_echo_n "(cached) " >&6 else case $STAT in [\\/]* | ?:[\\/]*) ac_cv_path_STAT="$STAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_STAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi STAT=$ac_cv_path_STAT if test -n "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$STAT"; then as_fn_error $? "Please specify the location of stat with the option '--with-stat'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -c '%h' works" >&5 $as_echo_n "checking whether $STAT -c '%h' works... " >&6; } if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-c '%h'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -f '%l' works" >&5 $as_echo_n "checking whether $STAT -f '%l' works... " >&6; } if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-f '%l'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. " "$LINENO" 5 fi fi # Check whether --with-sed was given. if test "${with_sed+set}" = set; then : withval=$with_sed; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sed" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sed" >&5 $as_echo_n "checking for sed... " >&6; } SED="$withval" if test -e "$SED"; then if test ! -f "$SED" -a ! -h "$SED" || test ! -x "$SED"; then as_fn_error $? "$SED is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } if test ! -e "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SED does not exist" >&5 $as_echo "$as_me: WARNING: $SED does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sed" fi else # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else case $SED in [\\/]* | ?:[\\/]*) ac_cv_path_SED="$SED" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SED=$ac_cv_path_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$SED"; then as_fn_error $? "Please specify the location of sed with the option '--with-sed'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $SED understands (foo|bar)" >&5 $as_echo_n "checking whether $SED understands (foo|bar)... " >&6; } if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. " "$LINENO" 5 fi # Check whether --with-awk was given. if test "${with_awk+set}" = set; then : withval=$with_awk; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-awk" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for awk" >&5 $as_echo_n "checking for awk... " >&6; } AWK="$withval" if test -e "$AWK"; then if test ! -f "$AWK" -a ! -h "$AWK" || test ! -x "$AWK"; then as_fn_error $? "$AWK is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } if test ! -e "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $AWK does not exist" >&5 $as_echo "$as_me: WARNING: $AWK does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi else for ac_prog in gawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_AWK+:} false; then : $as_echo_n "(cached) " >&6 else case $AWK in [\\/]* | ?:[\\/]*) ac_cv_path_AWK="$AWK" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi AWK=$ac_cv_path_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done if test -n "$AWK" -a "`expr "$AWK" : '.*/\([^/]*\)$'`" != "awk"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi fi if test -z "$AWK"; then as_fn_error $? "Please specify the location of awk with the option '--with-awk'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AWK supports sub" >&5 $as_echo_n "checking whether $AWK supports sub... " >&6; } if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. " "$LINENO" 5 fi # Check whether --with-pod2man was given. if test "${with_pod2man+set}" = set; then : withval=$with_pod2man; if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi else # Extract the first word of "pod2man", so it can be a program name with args. set dummy pod2man; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_POD2MAN+:} false; then : $as_echo_n "(cached) " >&6 else case $POD2MAN in [\\/]* | ?:[\\/]*) ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi POD2MAN=$ac_cv_path_POD2MAN if test -n "$POD2MAN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5 $as_echo "$POD2MAN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # Check whether --with-column was given. if test "${with_column+set}" = set; then : withval=$with_column; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-column" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for column" >&5 $as_echo_n "checking for column... " >&6; } COLUMN="$withval" if test -e "$COLUMN"; then if test ! -f "$COLUMN" -a ! -h "$COLUMN" || test ! -x "$COLUMN"; then as_fn_error $? "$COLUMN is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } if test ! -e "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $COLUMN does not exist" >&5 $as_echo "$as_me: WARNING: $COLUMN does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS column" fi else # Extract the first word of "column", so it can be a program name with args. set dummy column; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_COLUMN+:} false; then : $as_echo_n "(cached) " >&6 else case $COLUMN in [\\/]* | ?:[\\/]*) ac_cv_path_COLUMN="$COLUMN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_COLUMN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi COLUMN=$ac_cv_path_COLUMN if test -n "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&5 $as_echo "$as_me: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS column" COLUMN=column INTERNAL_COLUMN=1 fi # Check whether --with-getopt was given. if test "${with_getopt+set}" = set; then : withval=$with_getopt; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-getopt" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt" >&5 $as_echo_n "checking for getopt... " >&6; } GETOPT="$withval" if test -e "$GETOPT"; then if test ! -f "$GETOPT" -a ! -h "$GETOPT" || test ! -x "$GETOPT"; then as_fn_error $? "$GETOPT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } if test ! -e "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GETOPT does not exist" >&5 $as_echo "$as_me: WARNING: $GETOPT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS getopt" fi else # Extract the first word of "getopt", so it can be a program name with args. set dummy getopt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GETOPT+:} false; then : $as_echo_n "(cached) " >&6 else case $GETOPT in [\\/]* | ?:[\\/]*) ac_cv_path_GETOPT="$GETOPT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GETOPT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GETOPT=$ac_cv_path_GETOPT if test -n "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&5 $as_echo "$as_me: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS getopt" GETOPT=getopt INTERNAL_GETOPT=1 fi if test -z "$INTERNAL_GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt --long syntax" >&5 $as_echo_n "checking for getopt --long syntax... " >&6; } $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. " "$LINENO" 5 fi fi # Check whether --with-mktemp was given. if test "${with_mktemp+set}" = set; then : withval=$with_mktemp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-mktemp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mktemp" >&5 $as_echo_n "checking for mktemp... " >&6; } MKTEMP="$withval" if test -e "$MKTEMP"; then if test ! -f "$MKTEMP" -a ! -h "$MKTEMP" || test ! -x "$MKTEMP"; then as_fn_error $? "$MKTEMP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } if test ! -e "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $MKTEMP does not exist" >&5 $as_echo "$as_me: WARNING: $MKTEMP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS mktemp" fi else # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MKTEMP+:} false; then : $as_echo_n "(cached) " >&6 else case $MKTEMP in [\\/]* | ?:[\\/]*) ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MKTEMP=$ac_cv_path_MKTEMP if test -n "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&5 $as_echo "$as_me: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS mktemp" MKTEMP=mktemp INTERNAL_MKTEMP=1 fi if test -z "$INTERNAL_MKTEMP" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MKTEMP -d works" >&5 $as_echo_n "checking whether $MKTEMP -d works... " >&6; } if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \ rmdir "$tempdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " '$MKTEMP -d' does not create temporary directories. If you don't have a version of mktemp that can create directories, you can specify '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. " "$LINENO" 5 fi fi # Check whether --with-diff was given. if test "${with_diff+set}" = set; then : withval=$with_diff; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-diff" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diff" >&5 $as_echo_n "checking for diff... " >&6; } DIFF="$withval" if test -e "$DIFF"; then if test ! -f "$DIFF" -a ! -h "$DIFF" || test ! -x "$DIFF"; then as_fn_error $? "$DIFF is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } if test ! -e "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFF does not exist" >&5 $as_echo "$as_me: WARNING: $DIFF does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diff" fi else # Extract the first word of "diff", so it can be a program name with args. set dummy diff; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFF+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFF in [\\/]* | ?:[\\/]*) ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFF=$ac_cv_path_DIFF if test -n "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$DIFF"; then as_fn_error $? "Please specify the location of diff with the option '--with-diff'" "$LINENO" 5 fi # Check whether --with-patch was given. if test "${with_patch+set}" = set; then : withval=$with_patch; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-patch" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for patch" >&5 $as_echo_n "checking for patch... " >&6; } PATCH="$withval" if test -e "$PATCH"; then if test ! -f "$PATCH" -a ! -h "$PATCH" || test ! -x "$PATCH"; then as_fn_error $? "$PATCH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } if test ! -e "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PATCH does not exist" >&5 $as_echo "$as_me: WARNING: $PATCH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS patch" fi else # Extract the first word of "patch", so it can be a program name with args. set dummy patch; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PATCH+:} false; then : $as_echo_n "(cached) " >&6 else case $PATCH in [\\/]* | ?:[\\/]*) ac_cv_path_PATCH="$PATCH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PATCH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PATCH=$ac_cv_path_PATCH if test -n "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$PATCH"; then as_fn_error $? "Please specify the location of patch with the option '--with-patch'" "$LINENO" 5 fi # Sun diff and others will not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $DIFF" >&5 $as_echo_n "checking the version of $DIFF... " >&6; } if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diff_version" >&5 $as_echo "$diff_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU diff" >&5 $as_echo "no GNU diff" >&6; } fi if test -z "$diff_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. " "$LINENO" 5 fi # Sun's patch, and others, do not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $PATCH" >&5 $as_echo_n "checking the version of $PATCH... " >&6; } if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $patch_version" >&5 $as_echo "$patch_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU patch" >&5 $as_echo "no GNU patch" >&6; } fi if test -z "$patch_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. " "$LINENO" 5 fi # Check whether --with-find was given. if test "${with_find+set}" = set; then : withval=$with_find; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-find" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for find" >&5 $as_echo_n "checking for find... " >&6; } FIND="$withval" if test -e "$FIND"; then if test ! -f "$FIND" -a ! -h "$FIND" || test ! -x "$FIND"; then as_fn_error $? "$FIND is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } if test ! -e "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $FIND does not exist" >&5 $as_echo "$as_me: WARNING: $FIND does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS find" fi else # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_FIND+:} false; then : $as_echo_n "(cached) " >&6 else case $FIND in [\\/]* | ?:[\\/]*) ac_cv_path_FIND="$FIND" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi FIND=$ac_cv_path_FIND if test -n "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$FIND"; then as_fn_error $? "Please specify the location of find with the option '--with-find'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -path works" >&5 $as_echo_n "checking whether $FIND -path works... " >&6; } if $FIND . -path '*' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -print0 works" >&5 $as_echo_n "checking whether $FIND -print0 works... " >&6; } if $FIND . -path '*' -print0 >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi # Check whether --with-xargs was given. if test "${with_xargs+set}" = set; then : withval=$with_xargs; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-xargs" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xargs" >&5 $as_echo_n "checking for xargs... " >&6; } XARGS="$withval" if test -e "$XARGS"; then if test ! -f "$XARGS" -a ! -h "$XARGS" || test ! -x "$XARGS"; then as_fn_error $? "$XARGS is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } if test ! -e "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $XARGS does not exist" >&5 $as_echo "$as_me: WARNING: $XARGS does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS xargs" fi else # Extract the first word of "xargs", so it can be a program name with args. set dummy xargs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XARGS+:} false; then : $as_echo_n "(cached) " >&6 else case $XARGS in [\\/]* | ?:[\\/]*) ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XARGS=$ac_cv_path_XARGS if test -n "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$XARGS"; then as_fn_error $? "Please specify the location of xargs with the option '--with-xargs'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $XARGS -0 works" >&5 $as_echo_n "checking whether $XARGS -0 works... " >&6; } if echo | $XARGS -0 echo >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. " "$LINENO" 5 fi # Check whether --with-diffstat was given. if test "${with_diffstat+set}" = set; then : withval=$with_diffstat; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat" >&5 $as_echo_n "checking for diffstat... " >&6; } DIFFSTAT="$withval" if test -e "$DIFFSTAT"; then if test ! -f "$DIFFSTAT" -a ! -h "$DIFFSTAT" || test ! -x "$DIFFSTAT"; then as_fn_error $? "$DIFFSTAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } if test ! -e "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFFSTAT does not exist" >&5 $as_echo "$as_me: WARNING: $DIFFSTAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diffstat" fi else # Extract the first word of "diffstat", so it can be a program name with args. set dummy diffstat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFFSTAT+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFFSTAT in [\\/]* | ?:[\\/]*) ac_cv_path_DIFFSTAT="$DIFFSTAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFFSTAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFFSTAT=$ac_cv_path_DIFFSTAT if test -n "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: diffstat not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$DIFFSTAT"; then DIFFSTAT=diffstat fi if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat version" >&5 $as_echo_n "checking for diffstat version... " >&6; } diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&5 $as_echo "$as_me: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&2;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diffstat_major_version.$diffstat_minor_version" >&5 $as_echo "$diffstat_major_version.$diffstat_minor_version" >&6; } if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&5 $as_echo "$as_me: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&2;} fi fi fi # Check whether --with-sendmail was given. if test "${with_sendmail+set}" = set; then : withval=$with_sendmail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sendmail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendmail" >&5 $as_echo_n "checking for sendmail... " >&6; } SENDMAIL="$withval" if test -e "$SENDMAIL"; then if test ! -f "$SENDMAIL" -a ! -h "$SENDMAIL" || test ! -x "$SENDMAIL"; then as_fn_error $? "$SENDMAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } if test ! -e "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SENDMAIL does not exist" >&5 $as_echo "$as_me: WARNING: $SENDMAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" fi else # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SENDMAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $SENDMAIL in [\\/]* | ?:[\\/]*) ac_cv_path_SENDMAIL="$SENDMAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/sbin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SENDMAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SENDMAIL=$ac_cv_path_SENDMAIL if test -n "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$SENDMAIL"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "/usr/sbin"; do if test "`dirname $SENDMAIL`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" break fi done IFS="$as_save_IFS" fi fi if test -z "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&5 $as_echo "$as_me: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS sendmail" SENDMAIL=sendmail INTERNAL_SENDMAIL=1 fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msguniq", so it can be a program name with args. set dummy msguniq; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGUNIQ+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGUNIQ in [\\/]* | ?:[\\/]*) ac_cv_path_MSGUNIQ="$MSGUNIQ" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGUNIQ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGUNIQ=$ac_cv_path_MSGUNIQ if test -n "$MSGUNIQ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGUNIQ" >&5 $as_echo "$MSGUNIQ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgcat", so it can be a program name with args. set dummy msgcat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGCAT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGCAT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGCAT="$MSGCAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGCAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGCAT=$ac_cv_path_MSGCAT if test -n "$MSGCAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGCAT" >&5 $as_echo "$MSGCAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=$HAVE_NLS fi if test $USE_NLS = yes -a $HAVE_NLS = no ; then as_fn_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 " "$LINENO" 5 fi # Check whether --with-patch-wrapper was given. if test "${with_patch_wrapper+set}" = set; then : withval=$with_patch_wrapper; fi PATCH_WRAPPER=$withval if test $USE_NLS = no ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Building without natural language support" >&5 $as_echo "$as_me: Building without natural language support" >&6;} fi # Check whether --with-rpmbuild was given. if test "${with_rpmbuild+set}" = set; then : withval=$with_rpmbuild; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmbuild" >&5 $as_echo_n "checking for rpmbuild... " >&6; } RPMBUILD="$withval" if test -e "$RPMBUILD"; then if test ! -f "$RPMBUILD" -a ! -h "$RPMBUILD" || test ! -x "$RPMBUILD"; then as_fn_error $? "$RPMBUILD is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } if test ! -e "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $RPMBUILD does not exist" >&5 $as_echo "$as_me: WARNING: $RPMBUILD does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi else for ac_prog in rpmbuild rpm do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_RPMBUILD+:} false; then : $as_echo_n "(cached) " >&6 else case $RPMBUILD in [\\/]* | ?:[\\/]*) ac_cv_path_RPMBUILD="$RPMBUILD" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RPMBUILD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RPMBUILD=$ac_cv_path_RPMBUILD if test -n "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$RPMBUILD" && break done if test -n "$RPMBUILD" -a "`expr "$RPMBUILD" : '.*/\([^/]*\)$'`" != "rpmbuild"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi if test -z "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rpmbuild not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: rpmbuild not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$RPMBUILD"; then RPMBUILD=rpmbuild fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by quilt $as_me 0.61, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ quilt config.status 0.61 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_NAME version $PACKAGE_VERSION configured." >&5 $as_echo "$PACKAGE_NAME version $PACKAGE_VERSION configured." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using '$prefix' for installation prefix." >&5 $as_echo "Using '$prefix' for installation prefix." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Report bugs to $PACKAGE_BUGREPORT" >&5 $as_echo "Report bugs to $PACKAGE_BUGREPORT" >&6; } quilt-0.61/quilt.spec0000644000175000017500000031323512251156770015131 0ustar mquinsonmquinson# # 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.61 Release: 1 Requires: coreutils diffutils findutils 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://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" ./configure --mandir=%_mandir make prefix=/usr RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog * Sun Dec 08 2013 - mquinson@debian.org - configure*: Bump version to 0.61 "better releasing quilt than working" * Sun Dec 08 2013 - mquinson@debian.org - quilt/mail.in: accept recipents that have no full name along with the email. Thanks to Christoph Lameter for the detailed bug report. - quilt/mail.in: Add missing MIME headers (MIME-Version, Content-Type) (this closes the bug #21114 on Savannah) - doc/quilt.1.in: document QUILT_COLOR (closes #32093 on Savannah) - po/fr.po: update 2 strings * Mon Sep 30 2013 - jdelvare@suse.de - Makefile.in: Fix support for configure --with-xargs. * Mon Sep 30 2013 - jdelvare@suse.de - delete.test: Cope with new quoting style in find error message. Also support find being a compat script. * Tue Sep 03 2013 - mquinson@debian.org - quilt/fold.in: make it work with filenames with spaces (closes http://savannah.nongnu.org/bugs/?39833) Report and patch by David Leonard, thanks! * Fri May 24 2013 - jdelvare@suse.de - Makefile: Fix "find -perm" usage. - failpop.test: Drop needless sleep. * Thu May 23 2013 - jdelvare@suse.de - patches: Also match deleted files in unapplied patches. - patches: Add support for multiple files. * Wed May 22 2013 - jdelvare@suse.de - patches: Fix shift in scan_unapplied. * Thu Dec 27 2012 - mquinson@debian.org - Use 'less -R' as a default pager to help the users forcing diff to produce colors. (Closes https://bugs.launchpad.net/ubuntu/+source/quilt/+bug/933617) * Thu Dec 27 2012 - mquinson@debian.org - Document how quilt searches for its 'patches' directory in man page (Closes http://bugs.debian.org/549482). * Tue Dec 18 2012 - jdelvare@suse.de - test/remove-trailing-ws.test: Add a test case for the remove-trailing-ws script. - remove-trailing-ws: Undefine $file at the end of every file. * Tue Dec 18 2012 - krebbel@linux.vnet.ibm.com - remove-trailing-ws: Fix parsing of some context diffs. * Tue Dec 18 2012 - jdelvare@suse.de - remove-trailing-ws: Sort output. - Makefile: Fix test case dependencies on helper scripts. * Wed Dec 05 2012 - jdelvare@suse.de - top: Fix parameter quoting. - rename: Fix parameter quoting. - diff: Fix parameter quoting. - refresh: Fix parameter quoting. - remove: Fix parameter quoting. - files: Fix parameter quoting. - push: Fix parameter quoting. - pop: Fix parameter quoting. * Wed Dec 05 2012 - jdelvare@suse.de - push: Fix variable usage in interrupt. * Wed Dec 05 2012 - bpoirier@suse.de - Fix handling of patch files with ':' in their name. * Mon Dec 03 2012 - jdelvare@suse.de - push: Always let the user force pushing a patch. * Mon Dec 03 2012 - jdelvare@suse.de - pop: Fix timestamp comparison. * Thu Oct 25 2012 - jdelvare@suse.de - Fix typos in japanese translation. * Thu Oct 25 2012 - jdelvare@suse.de - setup: Check for existing files after unpacking, not before. - setup: Try alternative patches/series names. - setup: Run create_db(). - setup/inspect: Handle zip archives. - setup: Fix white space handling by check_for_existing_files. - setup: Check for existing directories before unpacking. - inspect: Refactor code to pwd_to_dir. * Thu Oct 25 2012 - jdelvare@suse.de - Makefile: Keep reference entries sorted. * Sun Mar 11 2012 - satoru.takeuchi@gmail.com - Be aware of QUILT_PATCHES environment variable. - Support multiple quilt trees. - Optimize "quilt-revert". - Fix some bugs and clean up code. * Wed Feb 29 2012 - jdelvare@suse.de - configure*: Bump version to 0.60 "Happy Birthday Lina". * Wed Feb 29 2012 - jdelvare@suse.de - fr.po: Update French translation. * Wed Feb 29 2012 - jdelvare@suse.de - Ensure quilt(1) documents the correct patches directory. - Unset POSIXLY_CORRECT to ensure that patch works non-interactively. * Wed Feb 29 2012 - jdelvare@suse.de - mail: Skip additional recipients with "bad" email addresses - edmail: Allow to add "good" recipient addresses while skipping "bad" ones - mail: Fix wrong use of edmail - mail: Require a "reasonable looking" email address in patch headers - mail: Don't use localized date format in From lines - mail: Improve error reporting (requires bash 3.0) * Wed Feb 22 2012 - jdelvare@suse.de - doc/main.tex, new: Document the patch grouping feature. This fixes bug #12428. * Fri Feb 17 2012 - jdelvare@suse.de - setup.test: Increase coverage. Test for reverted patches, patches without options in the series file, as well as spaces in directory names. * Fri Feb 17 2012 - jdelvare@suse.de - setup, scripts/inspect: Properly escape spaces in directory and archive names (bug #25579). * Wed Feb 01 2012 - jdelvare@suse.de - Makefile.in: Let "make clean" delete generated source tarballs. * Wed Feb 01 2012 - jdelvare@suse.de - grep: Accept file names with spaces. * Wed Feb 01 2012 - jdelvare@suse.de - Makefile.in: Include utilfns when generating source tarball. * Wed Feb 01 2012 - jdelvare@suse.de - backup-files: 32 performance improvements, developed during Suse Hack Week VI (February 2010.) This speeds up backup-files by a factor 50, roughly, bringing it close enough to the original C implementation. Many thanks to Raphael Hertzog for reviewing most of the series. * Wed Feb 01 2012 - jdelvare@suse.de - Finally get rid of the old C implementation of backup-files, together with all the related checks in configure and variables in Makefile. * Wed Feb 01 2012 - jdelvare@suse.de - backup-files: Avoid relying on GNU-specific extensions of stat, cp and rmdir. Otherwise it fails on BSD systems and probably others. * Wed Feb 01 2012 - mquinson@debian.org - Make backup-files a shell script. This makes it possible to package quilt as an architecture-indepdendent package. * Wed Feb 01 2012 - jdelvare@suse.de - Add a dedicated test case for backup-files. * Tue Jan 31 2012 - jdelvare@suse.de - import.in, scripts/patchfns.in: Fix import of patches from a subdirectory (bug #35244). * Sat Jan 28 2012 - jdelvare@suse.de - configure*: Bump version to 0.51. * Sat Jan 28 2012 - jdelvare@suse.de - Remove parse-patch which is no longer used. Based on a preliminary patch by Yasushi SHOJI. None of quilt code uses parse-patch anymore. The last one, it seems, was contrib/import.diff, which was removed at 2f9728a9. So, just remove it. * Mon Jan 23 2012 - jdelvare@suse.de - scripts/inspect.in: Leave stderr free for actual error reporting. - scripts/inspect.in: Complain if wrapper script can't be executed. * Mon Jan 23 2012 - mquinson@debian.org - bash_completion: silence the errors of "quilt unapplied" in the completion of quilt push, as we did previously on other scripts. * Tue Jan 10 2012 - jdelvare@suse.de - Makefile.in: No need to delete doc/quilt.1 twice on "make clean". - Makefile.in: Silent the generation of the quilt manual page, for consistency. - Makefile.in: Store the quilt command reference once generated. This avoids generating it twice, once for README and once for quilt.1. * Mon Jan 09 2012 - mquinson@debian.org - Makefile.in: - revert the change to fix the generation of quilt.1 with dash It induced relying on GNU sed, which introduce severe portability issues as BSD and Mac OSX versions of sed (at least) cannot deal with by themselves. - Force it to use SHELL = @BASH@ to ensure that it works when dash is the default shell (bash is installed anyway since our scripts use it) * Mon Jan 02 2012 - mquinson@debian.org - Makefile.in: Fix auto-generation of quilt.1 to work with dash - quilt/new: add a check that QUILT_PATCHES != QUILT_PC. Rational: If QUILT_PATCHES and QUILT_PC are set to the same directory, the awk script in filenames_in_patch (in scripts/patchfns) will break with a ' is a directory' error. Patch provided by anonymous in #30956 on savannah * Fri Dec 16 2011 - jdelvare@suse.de - Makefile.in: Really skip setting execute bit on scripts/patchfns. * Fri Dec 16 2011 - jdelvare@suse.de - configure*, Makefile.in: Use the standard docdir definition, so that it can be easily changed from the command line. * Thu Dec 15 2011 - jdelvare@suse.de - scripts/inspect.in: Don't let TMPDIR take over /var/tmp. * Thu Dec 15 2011 - jdelvare@suse.de - scripts/inspect.in: Fix quilt setup. A file name of "-" means "read from stdin" for tar. * Thu Dec 08 2011 - jdelvare@suse.de - scripts/inspect.in: Consistently use ${TMPDIR:-...} when testing if TMPDIR is set. * Thu Dec 08 2011 - jdelvare@suse.de - configure*: Honor $TMPDIR if set. * Tue Dec 06 2011 - jdelvare@suse.de - Makefile.in, doc/quilt.1.in: Substitute documentation directory name in path to PDF documentation. * Mon Dec 05 2011 - jdelvare@suse.de - configure*: Bump version to 0.50. * Mon Dec 05 2011 - jdelvare@suse.de - po/*: Synchronize language files. - po/fr.po: French translation update. - po/de.po: Partial German translation update. * Mon Nov 14 2011 - jdelvare@suse.de - scripts/inspect.in: Fix decompression of tar archives. * Thu Nov 10 2011 - jdelvare@suse.de - scripts/inspect.in: Old versions of file don't know about xz-compressed files, so recognize them by their filename too. * Thu Nov 10 2011 - pth@suse.de - quilt/inspect.in: Newer file changed the output for xz compressed data so adapt to it. * Wed Oct 05 2011 - ohering@suse.de - quilt/inspect.in: Quote strings to avoid flood of shell syntax errors during quilt setup -v *.spec. * Sun Sep 25 2011 - mquinson@debian.org - po/ru.po: incorporate the russian translation contributed by Sergey Basalaev as savannah bug report #34340 (thanks for your work!) * Mon Apr 04 2011 - jdelvare@suse.de - test/no-file-to-patch.test: New test case for patches attempting to modify files which do not exist. * Fri Mar 25 2011 - jdelvare@suse.de - configure.ac: Fix test for GNU patch version. * Fri Mar 25 2011 - jdelvare@suse.de - quilt/diff.in, quilt/refresh.in: Accept file names with spaces. * Fri Mar 18 2011 - jdelvare@suse.de - test/run: Enforce single variable substitution method. There is no need to have two ways to access environment variables from test cases, one is enough. * Fri Mar 18 2011 - jdelvare@suse.de - Makefile.in: Fix i18n of quilt/scripts/patchfns, broken by previous commit. * Wed Mar 16 2011 - jdelvare@suse.de - quilt/scripts/patchfns.in: Drop #! stament. patchfns is meant to be sourced from other scripts, rather than executed on its own. * Wed Mar 16 2011 - jdelvare@suse.de - quilt/diff.in: If diffing against snapshot, ensure that snapshot is actually present. If not, bail out with an error message. * Tue Mar 15 2011 - jdelvare@suse.de - compat/getopt.in: Add support of options with optional parameters. Both short and long options are supported. This is required to pass the test suite, if nothing else. * Tue Mar 15 2011 - jdelvare@suse.de - compat/getopt.in: Fix quoting and spacing. This way the output matches exactly the output of getopt from util-linux, and spaces and other special characters in filenames are properly supported. * Sat Mar 12 2011 - jdelvare@suse.de - quilt/grep.in: Not all implementations of find default to the current directory as the search root. So explicitly set the root to "." if the user didn't provide one. * Wed Mar 09 2011 - jdelvare@suse.de - quilt.spec.in: BUILD_ROOT is only needed at installation time, not at build time. * Mon Mar 07 2011 - jdelvare@suse.de - test/example1.test, test/two.test, test/three.test: Let the test suite cover "quilt grep". * Sat Mar 05 2011 - jdelvare@suse.de - quilt/pop.in: Add missing local variable declaration. * Wed Mar 02 2011 - jdelvare@suse.de - compat/mktemp.in: Properly support white space in file names. * Sun Feb 06 2011 - jdelvare@suse.de - quilt/mail.in: Fix a temporary directory leak. * Sun Feb 06 2011 - jdelvare@suse.de - Makefile.in: Don't build quilt.spec by default, it's only needed for packaging purposes. * Sun Feb 06 2011 - jdelvare@suse.de - quilt.spec.in: List findutils as a requirement (for find and xargs.) - configure.ac: Check for the presence of xargs. * Sun Feb 06 2011 - yashi@atmark-techno.com - po/ja.po: Update Japanese translation. * Tue Feb 01 2011 - jdelvare@suse.de - po/quilt.pot, po/fr.po: Update French translation. * Fri Jan 28 2011 - jdelvare@suse.de - test/nolink.test: Add missing check, to make sure we won't miss a bug. * Tue Nov 02 2010 - jdelvare@suse.de - Add bash completion for revert command. * Mon Jun 28 2010 - jdelvare@suse.de - No longer ship quilt.spec, it can easily be regerated from quilt.spec.in. * Wed Jun 23 2010 - jdelvare@suse.de - doc/main-rus.tex, quilt.spec.in: Update the remaining outdated links to Andrew Morton's stuff. * Wed Jun 23 2010 - jdelvare@suse.de - configure.ac: Properly detect newer versions of GNU patch. * Wed Jun 23 2010 - jdelvare@suse.de - quilt/scripts/inspect.in: Handle reversed patches in spec files. * Wed Jun 23 2010 - jdelvare@suse.de - quilt/setup.in, quilt/scripts/inspect.in: Add a --fuzz parameter to quilt setup and inspect. * Sun Feb 14 2010 - agruen@suse.de - doc/main-rus.tex: Add a Russian translation of the quilt paper by Ivan Borzenkov . * Wed Jan 27 2010 - dapal@debian.org - quilt/scripts/patchfns.in: Differentiate output when $QUILT_PATCHES/series is not found from when $QUILT_PATCHES/series is empty. - test/*.test: Update accordingly. * Wed Jan 27 2010 - jdelvare@suse.de - configure.ac: Stop testing for cp -l. Bug reported by Olivier Mengué. * Wed Jan 27 2010 - bert.wesarg@googlemail.com - quilt/push.in: patch's --merge option has an optional argument now. * Wed Jan 27 2010 - hertzog@debian.org - quilt/scripts/patchfns.in: Skip non-files when selecting the SERIES file. * Sat Jan 23 2010 - jdelvare@suse.de - test/run, test/*.test: Separate working directory for each test case. - Makefile.in, test/run: Let the test suite be run in parallel. * Sat Jan 23 2010 - hertzog@debian.org - quilt/scripts/patchfns.in: Remember QUILT_PATCHES and QUILT_SERIES by storing them in .pc. - doc/main.tex: Document this change. - test/remember-locations.test: Add non-regression test to verify that quilt remembers QUILT_PATCHES/QUILT_SERIES. * Wed Jan 06 2010 - jdelvare@suse.de - quilt.spec, doc/main.tex: Update URI of Andrew Morton's patch scripts. Reported by Randy Dunlap. * Sat Dec 19 2009 - bert.wesarg@googlemail.com - quilt/scripts/patchfns.in: Fix pager on broken pipe. * Sat Dec 12 2009 - jdelvare@suse.de - quilt/scripts/patchfns.in (diff_file): Swap options and parameters for better portability. * Fri Nov 27 2009 - jdelvare@suse.de - Some (possibly all) versions of "file" do not recognize lzma- compressed files. Rely on the file name for these. * Fri Nov 27 2009 - jdelvare@suse.de - Fix support of lzma- or xz-compressed files: * Let xz handle lzma compatibility externally, with links. Otherwise lzma support will not work for users with only lzma installed and not xz. * "upgrade" doesn't need to care about lzma nor xz, these compression formats were not supported back in v1. * Fix cat_to_new_file() for lzma/xz files.. * Use a different letter for lzma and xz files in inspect. * Wed Nov 25 2009 - agruen@suse.de - quilt.quiltrc: make sure to only override QUILT_PAGER if QUILT_PAGER isn't set already. * Wed Nov 25 2009 - agruen@suse.de - inspect: Try to better recognize "patch -d" and "tar -C" (which both change the working directory). (This may fail in some other cases now -- there are still a lot of heuristics involved here.) * Wed Nov 25 2009 - agruen@suse.de - inspect: When guessing the tarball filename, make sure that only regular files are considered. (Otherwise, we will trip over command lines like "tar xjCf dir file"). * Wed Nov 25 2009 - agruen@suse.de - new command: Add -p ... option (equivalent to diff -p ...). (Based on a patch from Egbert Eich .) * Wed Nov 25 2009 - agruen@suse.de - Make sure the series file is a regular file (or a symlink to a regular file). Reported by Raphael Hertzog . * Wed Nov 25 2009 - bert.wesarg@googlemail.com - push: update color matcher for failed merge * Sun Nov 22 2009 - agruen@suse.de - No longer create backup files of new files with file mode 0. (This has been changed in GNU patch 2.6 as well.) * Fri Nov 20 2009 - agruen@suse.de - Add pagination support (code based on topgit; patch from Bert Wesarg ). - When QUILT_PAGER is set to an empty value, do not paginate. - Document QUILT_PAGER in the man page. - Clean things up a little. - Add a workaround in quilt.quiltrc for color output when $LESS is defined. * Fri Nov 20 2009 - pth@novell.com - Enable quilt to handle compressed tarballs and patches that were compressed with lzma or xz. * Thu Nov 05 2009 - agruen@suse.de - patches command: Commit 2e581933a introduced a bug in scanning unapplied patches which lead to missed matches. - patches command: Prevent false matches in unapplied patches for patches which delete files. - patches command: Also match deleted files in unapplied patches, at the cost of more possible false matches. * Wed Nov 04 2009 - agruen@suse.de - Fix typo in doc/quilt.1.in. * Mon Nov 02 2009 - agruen@suse.de - Implement -r / --reference option in compat/date (patch from Olivier Mehani ). * Thu Sep 17 2009 - agruen@suse.de - Restore the "remove" command which a few people were missing since its replacement by "revert" in April 2007. (Patch from Pedro Alves.) * Wed Sep 09 2009 - agruen@suse.de - French translation update from from Jean Delvare . * Wed Jun 17 2009 - agruen@suse.de - No longer use $0 in gen_tempfile. * Wed Jun 17 2009 - agruen@suse.de - Prevent "quilt revert" from accidentally creating hard links (bug #25305; fix from Jean Delvare ). - Try to clarify the help text of "quilt revert". * Mon Jun 15 2009 - agruen@suse.de - Some filesystems / operating systems may miss files in readdir() loops when the directory is modified at the same time (e.g., http://support.apple.com/kb/TA21420). Avoid running into this problem in backup-files.c by reading all files before processing them. * Sun Apr 05 2009 - agruen@suse.de - Push command: don't imply --force when --merge is given so that a patch that doesn't merge cleanly will still require to spcify --force separately. Update merge syntax highlighting. * Tue Mar 31 2009 - agruen@suse.de - Rename push's -M option to -m. * Sun Mar 08 2009 - agruen@suse.de - series and patches commands: add --color options for colorizing the output. * Sun Feb 01 2009 - agruen@suse.de - push command: Add --fuzz=N option. Add experimental --merge option. Fail pushes when GNU patch exits with a status > 1. Some cleanups. * Sat Nov 29 2008 - agruen@suse.de - quilt setup: Define %__tar and %__patch to refer to the tar and patch wrapper. (Patch from Jan Kratochvil, Savannah bug 24964). * Sun Nov 02 2008 - agruen@suse.de - To allow using 'procmail' (which contains 'formail') as weak dependency in package managers, explicitely check for the 'formail' binary when invoking 'quilt mail' so that the user gets a clear error message when 'formail' is missing and knows what to do. (From Bernhard Walle .) * Sun Nov 02 2008 - agruen@suse.de - push command: Remove leftovers of the former interactive-option. (From Wolfram Sang .) * Sun Nov 02 2008 - agruen@suse.de - mail command: don't word boundaries in awk; it's a GNU awk extension. (From Wolfram Sang .) * Sun Nov 02 2008 - agruen@suse.de - From Wolfram Sang : "The test for import did not always recreate a patches-dir inside the temporary location, so it would fail if you modified quilt using quilt." * Sun Nov 02 2008 - agruen@suse.de - Fix from Dean Roehrich for Solaris: "I ran into a case solaris ON build 99 where configure found ginstall, but the Makefile.in used something else, and that led to things going a bit haywire." * Sun Nov 02 2008 - agruen@suse.de - Add a dual BSD/GPL license header to test/run. - Only run test/patch-wrapper.test if the --with-patch-wrapper config option is used. * Wed Sep 03 2008 - agruen@suse.de - Bash completion fix for fold command from Bernhard Walle . * Thu Aug 21 2008 - agruen@suse.de - Bump version to 0.47. - Add a new "publish" makefile target for pushing releases to savannah.nongnu.org. * Tue Jun 24 2008 - agruen@suse.de - quilt/scripts/patchfns.in (cat_series): Handle lines properly that only contain whitespace. * Fri Jun 13 2008 - agruen@suse.de - quilt/import.in: When importing multiple patches at once, make sure that they won't end up in the series file in reverse order. This happened because each new patch was inserted before the "next" patch, which made it the new "next" patch. * Tue May 20 2008 - agruen@suse.de - Stop using cp -l: it doesn't fall back to doing a regular copy when hardlinks are not supported; on some types of filesystems like AFS and in some situtions, this is annoying. * Tue Mar 25 2008 - agruen@suse.de - Assume patches are in unified format by default when applying them. (For working with other patch formats, make sure to remove "--unified" from QUILT_PATCH_OPTS in ~/.quiltrc or /etc/quilt.quiltrc.) * Mon Nov 05 2007 - agruen@suse.de - quilt/mail.in: Remove the Recipient-* and Replace-* headers used internally from the resulting emails; not sure how that was missed so far. * Mon Oct 29 2007 - agruen@suse.de - Fix `make snapshot'. - Make the changelog file chronological again. * Mon Oct 29 2007 - agruen@suse.de - quilt/mail.in: Ran into a bash ``Broken pipe'' problem in quilt_mail_patch_filter() which I cannot explain or cleanly reproduce. Work around it by not using pipes and subshells as extensively here. * Thu Oct 25 2007 - agruen@suse.de - quilt/mail.in: Make sure that shell meta-characters like * in subjects won't get expanded by accident (this was broken). Add test case. - quilt/mail.in: ``formail -x Foo'' will extract all Foo* headers, so use ``formail -x Foo:'' instead. - quilt/mail.in: Recognize sequences of common subject prefixes like Fwd:, Fw:, Re:, Aw:, Tr:, [foo] only at the beginning of subjects. * Mon Oct 15 2007 - agruen@suse.de - quilt/mail.in: Add a --signature flag that allows to override the signature used. (The test suite still depended on the .signature file of the user runnig it; fixed now.) * Sat Oct 06 2007 - agruen@suse.de - Allow to define a MUA different from the one found at configure time in .quiltrc (by setting QUILT_SENDMAIL). * Sat Sep 08 2007 - agruen@suse.de - quite refresh: Avoid a possible environment overflow with very, very large patches (#19748). * Fri Aug 10 2007 - agruen@suse.de - quilt mail: only add a "-- " at the end of messages if it is actually followed by a signature. * Fri Aug 10 2007 - agruen@suse.de - quilt mail: Add a --reply-to option which adds the appropriate Subject, Reply-To, and References headers to the intro and patch messages. * Wed Aug 08 2007 - agruen@suse.de - quilt setup: replace the --path argument with --sourcedir for specifying the location of the package sources. Pass the source dir to inspect as well. Fix a test suite bug for quilt setup. Minor cosmetic changes. - Fix a quilt mail test suite bug: specify a dummy --sender in test.quiltrc. * Thu Aug 02 2007 - paul@pwsan.com - quilt mail: strip closing angle brackets from the mail sender address before it is inserted into the message ID. (Changed by agruen@suse.de.) * Thu Jul 26 2007 - agruen@suse.de - quilt diff: don't colorize the output when the --diff=... option is used (allows diff utilities to use terminal IO). * Tue Jun 05 2007 - agruen@suse.de - Man page improvements from Ben Pfaff . - QUILT_SERIES and series file search algorithm bugfix. * Sun May 06 2007 - agruen@suse.de - Mail command: when only a single patch is specified, only mail that one. Only mail all patches to the end of the series if the last patch is '-', or no patches have been specified. - Revert command: change semantics to really revert the changes relative to the patch instead of removing the file from the patch. That's much more useful; the other behavior is available as ``quilt diff | patch -p1'', anyway. - Update German translation. * Thu May 03 2007 - agruen@suse.de - fold command: Add -R option. - Update German translation. * Fri Apr 27 2007 - agruen@suse.de - Try to clean up the force-apply and interactive-apply logic in quilt push, and add a force option to quilt fold: Fold was applying patches interactively and was restoring files if there were rejects; this was very unexpected for users. * Fri Apr 27 2007 - agruen@suse.de - Rename the ``remove'' command to ``revert'': this removes ambiguities with the delete command, and more closely matches what the command does. * Sun Apr 22 2007 - khali@linux-fr.org - quilt mail: Document the possibility to specifiy a patch range. * Sun Apr 22 2007 - khali@linux-fr.org - Dependencies of quilt/* on quilt/scripts/* are run-time dependencies for the test suite, not build-time dependencies. * Thu Apr 19 2007 - agruen@suse.de - quilt mail: Allow to specify a patch range. - Remove fuzzy German translations. * Thu Apr 19 2007 - agruen@suse.de - Make pod2man optional (./configure --without-pod2man). * Wed Apr 18 2007 - agruen@suse.de - Install quilt.el into $(datadir)/emacs/site-lisp/. * Mon Apr 16 2007 - agruen@suse.de - lib/backup-files.c: Do not modify the original file whenever possible: previously, a ``quilt add'' usually linked the file to the backup and then copied the backup over the file to ensure a link count of one. Recognize this case, and create a copy in the first place instead. * Sun Apr 15 2007 - agruen@suse.de - Add quilt.el and its README file. (The emacs mode is not being installed properly, yet.) * Sun Apr 15 2007 - khali@linux-fr.org - quilt/refresh.in: Remove stray in error message. Reported by Randy Dunlap. * Mon Mar 26 2007 - agruen@suse.de - Quilt refresh: fix existing patch check. * Thu Feb 22 2007 - khali@linux-fr.org - quilt/scripts/patchfns.in: Fix an off-by-one error in change_db_strip_level when inserting the strip level in the patch argument list. Also cleanup this function a bit. * Wed Feb 21 2007 - khali@linux-fr.org - quilt/import.in, quilt/scripts/patchfns.in: Implement import -R for reverse-applying a patch. Original patch contributed by Randy Dunlap. * Tue Feb 20 2007 - khali@linux-fr.org - test/run: Don't attempt to remove comments from command lines. We don't put such comments in our test cases, and it prevents legitimate uses of the "#" character (e.g. in a string, inside quotes) in commands. * Tue Feb 13 2007 - khali@linux-fr.org - Update the Japanese translation. Patch from Yasushi Shoji. * Wed Jan 31 2007 - agruen@suse.de - Update the German translation. * Thu Oct 19 2006 - agruen@suse.de - Refresh command: add -z option, which refreshes changes into a new patch instead of modifying the existing patch. * Thu Oct 19 2006 - khali@linux-fr.org - Bump version to 0.46. * Tue Oct 10 2006 - khali@linux-fr.org - aclocal.m4: New helper for optional binaries. - configure.ac: Use the new helper for diffstat and rpmbuild. - compat/diffstat.in: Delete. - compat/rpmbuild.in: Delete. * Mon Oct 09 2006 - agruen@suse.de - Update the German translation. * Mon Oct 09 2006 - agruen@suse.de - quilt.spec.in: Pass %_mandir to --configure (fix from Anders Larsen). * Fri Sep 22 2006 - khali@linux-fr.org - quilt/delete.in: Display the proper error message when using "quilt delete" with no argument and no patch is applied. - test/delete.test: Add a test for this specific case. * Wed Sep 20 2006 - khali@linux-fr.org - po/ja.po: Update the Japanese translation, patch from Yasushi Shoji. - po/fr.po: Update the French translation. * Tue Sep 19 2006 - khali@linux-fr.org - quilt/diff.in, quilt/refresh.in: Update usage line to mention "-p ab". * Tue Sep 19 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Drop support for "-pab" in series file, for it breaks compatibility with previous versions of quilt, and is inconsistent. - test/dir-a-b.test: Drop test case for "-pab" in series file. * Tue Sep 19 2006 - khali@linux-fr.org - test/*.test: Make sure that rm commands are non-interactive. * Tue Sep 19 2006 - khali@linux-fr.org - test/dir-a-b.test: Don't use diffstat in the regression test suite, as it may or may not be available. * Mon Sep 18 2006 - khali@linux-fr.org - doc/quilt.1.in: Document the fact that per-patch comments are now supported. Fix a typo. * Mon Sep 18 2006 - khali@linux-fr.org - Makefile.in: Set LC_ALL=C before running the regression tests, setting LANG alone isn't sufficient because LC_ALL overrides LANG when set. * Tue Sep 05 2006 - khali@linux-fr.org - quilt/mail.in, test/mail.test: Fix signature separator. Patch from Ville Syrjala. * Tue Jun 27 2006 - agruen@suse.de - A few more `-p ab' fixes. * Tue Jun 27 2006 - agruen@suse.de - quilt/push.in: Fix a bug introduced with the -p ab support. - test/dir-a-b.test: Add a regression test case for this fix. * Tue Jun 27 2006 - agruen@suse.de - Remove some broken translations that slipped in on Jun 12. * Sat Jun 24 2006 - khali@linux-fr.org - configure.ac: Test for bash 3.1 quoting bug (#16763). * Sat Jun 24 2006 - khali@linux-fr.org - bin/quilt.in, doc/quilt.1.in: Document the --quiltrc=- feature (#16727). * Mon Jun 12 2006 - agruen@suse.de - quilt/diff.in, quilt/refresh.in: Add `-p ab' options which produce a/file and b/file filenams in headers instead of dir.orig/file and dir/file, similar to BK, git, hg patches. - Only touch .pc/$patch/.timestamp when a path actually is being refreshed. * Fri Jun 02 2006 - khali@linux-fr.org - doc/quilt.1.in: Mention the QUILT_PATCHES_PREFIX, QUILT_NO_DIFF_INDEX and QUILT_NO_DIFF_TIMESTAMP variables, and describe their effects. * Thu Jun 01 2006 - khali@linux-fr.org - quilt/import.in: Add some missing quotes. This makes it possible to import a patch with unfriendly characters (say spaces) in its name as long as it is renamed to something more friendly in the process. * Thu Jun 01 2006 - agruen@suse.de - compat/rpmbuild.in: Add a version that tries to execute a rpmbuild that may have been installed after building quilt. - compat/diffstat.in: Same as for compat/rpmbuild.in, try to execute diffstat even though none was there at quilt build time. - aclocal.m4: Fix a quoting error. * Wed May 31 2006 - agruen@suse.de - Fix the --with-rpmbuild option of configure. * Fri May 26 2006 - agruen@suse.de - quilt/scripts/patchfns.in: Fix bugs in basename() and dirname(). * Thu May 25 2006 - khali@linux-fr.org - quilt/edit.in, quilt/header.in, quilt/mail.in: Run $EDITOR with LANG=$ORIGINAL_LANG. Fallback to $ORIGINAL_LANG rather than $LANG for charset detection. Patch from Thomas Petazzoni. * Tue May 23 2006 - khali@linux-fr.org - quilt/scripts/edmail.in: Declare option parameters as mandatory rather than optional. This makes more sense as the parameters are indeed not optional, and this also works around a bug in Getopt::Long. * Wed Apr 26 2006 - khali@linux-fr.org - quilt/pop.in: Delete .pc/$patch directory when popping empty patches. Report and original patch by Arnaud Patard. - quilt/push.in: Create .pc/$patch directory when pushing missing or empty patches. If we don't, some commands such as rename can fail later. - test/missing.test: Test rename command on missing patches. - test/empty.test: New test case similar to missing.test, but for empty patches. Somewhat based on a contribution by Arnaud Patard. * Mon Apr 24 2006 - agruen@suse.de - Add @datarootdir@ macro which future versions of Autoconf will start to use in @datadir@ (bug 16155, patch from Ralf Wildenhues). * Mon Apr 24 2006 - khali@linux-fr.org - Bump version to 0.45. * Wed Apr 19 2006 - khali@linux-fr.org - po/*.po: Delete obsolete translations. * Wed Apr 19 2006 - khali@linux-fr.org - compat/getopt.in: Ignore option -q, rather than failing on it. This prevents the test suite from failing on patch-wrapper when --without-getopt is used. Reported by Markus Oberhumer. * Sat Apr 15 2006 - khali@linux-fr.org - compat/getopt.in: Remove duplicate test. * Sat Apr 15 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Fix broken return in function find_applied_patch, which was causing a bogus error message on failed pop. - test/three.test: Test failed pop. * Sun Mar 26 2006 - agruen@suse.de - test/mail.in: Test UTF-8 header encoding. * Sun Mar 26 2006 - khali@linux-fr.org - test/mail.in: Test for recipients with a dot in their name. * Sat Mar 25 2006 - agruen@suse.de - quilt/mail.in: Use -gt instead of > in [ ... ] expression. - quilt/scripts/edmail.in: Improve handling of quoting and special characters in recipient addresses: Automatically quote display names that contain quotable characters, and encode special and eight-bit characters according to RFC 2047 (e.g., =?utf-8?q?Andreas=20Gr=C3=BCnbacher?=). * Sat Mar 25 2006 - khali@linux-fr.org - Makefile.in: configure depends on aclocal.m4 too. - configure.ac: Cleanup two QUILT_COMPAT_PROG_PATH calls, the second parameter is not supposed to be a list. - aclocal.m4: Document the fourth (optional) parameter of QUILT_COMPAT_PROG_PATH. - aclocal.m4: No need to check for binaries we were told not to use. * Tue Mar 21 2006 - agruen@suse.de - quilt/edit.in: The last fix broke another way of using edit. * Mon Mar 20 2006 - khali@linux-fr.org - configure.ac: Fix a typo in a test expression which was breaking configure on FreeBSD. Patch contributed by Dirk Jagdmann. * Mon Mar 20 2006 - khali@linux-fr.org - Makefile.in: Fix building with GNU make < 3.80. * Wed Mar 15 2006 - agruen@suse.de - quilt/edit.in: Fix for working in subdirectories. * Sun Mar 12 2006 - khali@linux-fr.org - Makefile.in: Fix pseudo-symlinks under compat not being removed by "make clean". * Sun Mar 05 2006 - khali@linux-fr.org - quilt/import.in: Fix replacement of compressed patches. - test/import2.test: New test case for compressed patches. * Thu Feb 16 2006 - agruen@suse.de - quilt/scripts/inspect.in: Also recognize when tar is passed a filename on the command line -- in this case, md5sum will add a `*' in front of the filename, which indicates a binary file. * Thu Feb 16 2006 - agruen@suse.de - quilt/scripts/inspect.in: Add default value for QUILT_DIR so that inspect can be used stand-alone as well. * Wed Feb 15 2006 - agruen@suse.de - quilt.spec.in: Use wildcards for matching manpage{,.gz,bz2} (Thomas Petazzoni ). * Tue Feb 14 2006 - agruen@suse.de - Stop using bash's =~ operator: older versions don't support it. - Bump version to 0.44. * Tue Feb 14 2006 - khali@linux-fr.org - po/fr.po: French translation update. * Tue Feb 14 2006 - khali@linux-fr.org - quilt/mail.in: Fix temporary file leak. * Tue Feb 14 2006 - agruen@suse.de - po/ja.po: Translation update from Yasushi. * Tue Feb 14 2006 - agruen@suse.de - Fix a critical bug in the push command that causes parts of patches to end up half-reversed (introduced on 22 Jan). * Sat Feb 11 2006 - agruen@suse.de - lib/backup-files.c: Close files before rename; Windows won't rename open files. * Sat Feb 11 2006 - agruen@suse.de - test/run: Avoid warnings with some versions of Perl. * Sat Feb 11 2006 - agruen@suse.de - Two bash 3.1 compatibility fixes from Arnaud Patard -- thank you. * Sat Feb 11 2006 - agruen@suse.de - Some versions of mkdir screw up on `mkdir -p dir/.' when dir does not already exist. * Sat Feb 11 2006 - agruen@suse.de - bin/patch-wrapper.in: Call GNU patch by absolute patch to avoid recursion. Don't print an error message when a patch contains no files. * Sat Feb 11 2006 - agruen@suse.de - quilt/setup.in: Add --path option for defining a tarball search path. Fix a bug in check_for_existing_files. When a series file is given as an argument, symlink to that series file in the same way as we symlink to the patches. Improve the symlink creation algorithm. Add testcase test/setup.test. * Sat Feb 11 2006 - agruen@suse.de - quilt/new.in: Try to explain how to choose another source tree root directory when quilt chooses the wrong one. * Sat Feb 11 2006 - agruen@suse.de - quilt/scripts/patchfns.in: Fix bug in quilt_command when working in subdirectories. - Add testcase test/edit.test to catch this kind of bug. * Wed Feb 08 2006 - agruen@suse.de - bin/patch-wrapper.in: Fix permissions of installed file. * Tue Feb 07 2006 - agruen@suse.de - quilt/scripts/inspect.in: Improve recognition of patch's -i and --input options. * Tue Feb 07 2006 - agruen@suse.de - po/ja.po: Fix three errors: % used instead of %s (Yasushi Shoji). * Mon Feb 06 2006 - agruen@suse.de - Add --with-patch-wrapper configure argument, and optionally install the wrapper as /usr/share/quilt/wrapper/patch. - bin/patch-wrapper.in: Minor cleanups. * Mon Feb 06 2006 - agruen@suse.de - bin/patch-wrapper.in: Add hack to follow pipes via /proc on Linux (zcat patch.diff.gz | patch -p0, etc.). * Mon Feb 06 2006 - agruen@suse.de - bin/patch-wrapper.in: A wrapper to GNU patch that recognizes the most common options and mimics GNU patch's behavior and output, and creates the quilt metadata as if quilt push was used to apply the patch. When options are used that this wrapper does not recognize, GNU patch is used directly, and no quilt metadata will get created. - lib/backup-files.c: Don't fail if a directory specified with -B does not exist. * Sat Feb 04 2006 - agruen@suse.de - make dist: Add the missing aclocal.m4 to the tarball. * Fri Feb 03 2006 - khali@linux-fr.org - bash_completion: Code refactoring, indentation fixes. * Fri Feb 03 2006 - khali@linux-fr.org - quilt/mail.in: Strip "Tr:" from subject lines like we do with "Re:" and "Fwd:". * Fri Feb 03 2006 - agruen@suse.de - quilt/mail.in: Disable broken patch header format check. * Fri Feb 03 2006 - jayvdb@gmail.com - configure.ac: Add check for GNU diff and use $GREP in GNU patch check. * Wed Feb 01 2006 - agruen@suse.de - Bump version to 0.43. * Wed Feb 01 2006 - agruen@suse.de - compat/date.in: Fix GetOptions problem with options starting with `+'. - test/run: Adjust $ENV{PWD} in cd command; add FIXME comment in export command: in commands like `export foo=$var/bar', $var is not evaluated. * Wed Feb 01 2006 - agruen@suse.de - quilt/mail.in: Documentation fix. * Wed Feb 01 2006 - agruen@suse.de - configure.ac: Remove uniq -D test; we no longer use it. * Wed Feb 01 2006 - jayvdb@gmail.com - compat/date.in: Compatibility wrapper that emulates the GNU date features that quilt depends on (with minor cleanups from Andreas Gruenbacher). - configure.ac: Add test for date --rfc-822. * Wed Feb 01 2006 - agruen@suse.de - bin/guards: Update to latest version (supports --with-guards option). - doc/README.in: Update the description of the helper scripts. Add Typical Usages section from Randy Dunlap . - contrib/import.diff: Remove obsolete file. * Wed Feb 01 2006 - khali@linux-fr.org - po/fr.po: Add missing translation of quilt mail's --sender option help. Thanks to Andreas Gruenbacher for pointing out. * Wed Feb 01 2006 - jayvdb@gmail.com - Filter duplicates with awk instead of using uniq -D. * Wed Feb 01 2006 - agruen@suse.de - Clean up quoting in messages. Add some spaces to the Japanese translation for good measure. * Wed Feb 01 2006 - agruen@suse.de - Japanese translation update from Yasushi Shoji. * Tue Jan 31 2006 - agruen@suse.de - Check for GNU uniq, and test if uniq -D is supported (from Gary V. Vaughan). * Tue Jan 31 2006 - agruen@suse.de - Make sure that the %changes section in the spec file will contain POSIX dates (#15591). * Mon Jan 30 2006 - khali@linux-fr.org - quilt/mail.in: Don't use sed's Q command, old versions of sed don't know about it. * Mon Jan 30 2006 - agruen@suse.de - quilt/mail.in: Use $(hostname) for the sender address for platforms on which $(hostname -f) doesn't work. * Mon Jan 30 2006 - jayvdb@gmail.com - compat/getopt.in: Properly handle spaces in arguments to getopt. * Mon Jan 30 2006 - agruen@suse.de - Allow backup-files to build on windows using the MinGW compiler. * Mon Jan 30 2006 - jayvdb@gmail.com - Makefile.in: The trailing slash in `find compat/' is causing OSX /usr/bin/find to print 'compat//sed', etc. As a result, they are appearing in compat_leftover, being removed in the middle of the build, causing errors during the construction of $(DOC). * Mon Jan 30 2006 - jayvdb@gmail.com - test/mail.test: /dev/stdin @CHANGELOG@ /dev/stdout dont exist on Tru64. * Mon Jan 30 2006 - agruen@suse.de - lib/backup-files.c: Tru64 does not have snprintf. (Reported by John Vandenberg). * Mon Jan 30 2006 - khali@linux-fr.org - bash_completion: Update import and mail commands options. * Mon Jan 30 2006 - khali@linux-fr.org - po/fr.po: Update French translation. * Sun Jan 29 2006 - agruen@suse.de - Also strip any bracketed fields and Re:, Fwd:, Fw:, Aw: from subject headers. * Sun Jan 29 2006 - agruen@suse.de - quilt/mail.in: + Add -m and --prefix options so that the mail command can be used without invoking an editor. + Verify that each message generated will have a unique subject. + Verify that the introduction has a subject header. + Fix a bug in the heuristic for adding recipients. + Add a heuristic for extracting subject headers + Clarify some messages. + Add a test case. + Update the documentation. * Sun Jan 29 2006 - agruen@suse.de - Makefile.in: Add a missing dependency. * Sun Jan 29 2006 - khali@linux-fr.org - quilt/files.in, bash_completion: Command files only works on applied patches. * Sun Jan 29 2006 - khali@linux-fr.org - quilt/patches.in, quilt/refresh.in: Update usage line. - bash_completion: Resync with quilt commands options. * Sun Jan 29 2006 - khali@linux-fr.org - quilt/push.in: Fix a temporary file leak and vulnerability. * Sun Jan 29 2006 - khali@linux-fr.org - quilt/scripts/patchfns.in: Drop an unused local variable in function find_patch_file. - quilt/import.in: Add a missing print_patch call. - quilt/import.in: Fix several temporary file leaks. * Fri Jan 27 2006 - agruen@suse.de - po/ja.po: Translation update from Yasushi. * Fri Jan 27 2006 - agruen@suse.de - Stop using bash <(...) process substitution: it triggers bugs on some platforms. - In source tree compat/ "virtual symlink" scripts, exec the target binary instead of only calling it. * Fri Jan 27 2006 - agruen@suse.de - Unify existing -p and -n parameters that specify a patch: always use -P as the option name. Update test suite and the translations accordingly. Patch mostly from Gary V. Vaughan. * Thu Jan 26 2006 - khali@linux-fr.org - po/fr.po: Update French translation. * Thu Jan 26 2006 - khali@linux-fr.org - lib/backup-files.c: Fix usage line and help text. - lib/backup-files.c: Improve recursive processing by avoiding repeated realloc and strlen calls. Hardly measurable though. * Thu Jan 26 2006 - khali@linux-fr.org - Makefile.in: Have Makefile depend on configure, so that the user runs ./configure only once if both Makefile.in and configure.ac have changed. * Thu Jan 26 2006 - agruen@suse.de - quilt/import.in: Add missing quoting, stop using diff -U for portability. * Thu Jan 26 2006 - agruen@suse.de - aclocal.m4(QUILT_COMPAT_PROG_PATH): Create missing compat symlinks for binaries that have a different basename than what quilt expects (e.g., awk/gawk). Patch from Gary V. Vaughan. * Thu Jan 26 2006 - agruen@suse.de - Stop using find's -printf option: some versions of find don't have it. * Thu Jan 26 2006 - agruen@suse.de - quilt/delete.in: Remove a superfluous message. * Thu Jan 26 2006 - agruen@suse.de - lib/backup-files.c: Stop using ftw and implement our own dir walking: ftw is a portability nightmare. The foreachdir function is based a proposal from Gary V. Vaughan , thanks! * Wed Jan 25 2006 - agruen@suse.de - quilt/import.in: Improve the help text. - Makefile.in: Make sure configure is up to date. * Wed Jan 25 2006 - agruen@suse.de - lib/backup-files.c: Fix memory leaks (markus@oberhumer.com). * Wed Jan 25 2006 - agruen@suse.de - lib/backup-files.c: Don't fail when link(1) returns ENOSYS, and try to copy in that case. * Wed Jan 25 2006 - agruen@suse.de - lib/backup-files.c: Fix another missed optimization. * Wed Jan 25 2006 - agruen@suse.de - lib/backup-files.c: Cleanups by Markus F.X.J. Oberhumer . - lib/backup-files.c: Several fixes from Markus as well. * Tue Jan 24 2006 - agruen@suse.de - quilt/scripts/parse-patch.in: files_in_patch improvement from jayvdb@gmail.com. * Mon Jan 23 2006 - agruen@suse.de - configure.ac: Use $TR instead of tr. * Mon Jan 23 2006 - jayvdb@gmail.com - Fix make check-all and make check-*. * Mon Jan 23 2006 - agruen@suse.de - configure.ac: Require GNU patch 2.4+. - quilt/import.in: Don't use diff -U-1. - Test suite: Recognize output of old versions of patch (from jayvdb@gmail.com). * Mon Jan 23 2006 - jayvdb@gmail.com - configure.ac: Check if awk supports sub(). - quilt/scripts/patchfns.in: Syntax changes for Solaris /usr/xpg4/bin/awk. * Mon Jan 23 2006 - agruen@suse.de - Stop using GNU awk's gensub. * Mon Jan 23 2006 - jayvdb@gmail.com - A better rule for test/.depend. - In order to run make check immediately after configure, a few minor dependencies need to be added. - The test suite depends on the compat layer and backup-files. - quilt/refresh depends on remove-trailing-ws. * Mon Jan 23 2006 - agruen@suse.de - Remove unnecessary uses of diff's -N option. * Sun Jan 22 2006 - agruen@suse.de - Don't include any object files in LIBOBJS that we don't have. * Sun Jan 22 2006 - agruen@suse.de - Call $(CMD) instead of cmd in Makefile.in. * Sun Jan 22 2006 - agruen@suse.de - push command: when a patch doesn't apply, check if it reverse applies, and inform the user. * Sun Jan 22 2006 - agruen@suse.de - When inserting new diffstat, put a "---" line above it. * Sat Jan 21 2006 - agruen@suse.de - Add fallback ftw implementation for systems that don't have it. * Sat Jan 21 2006 - agruen@suse.de - Use ftw instead of nftw (some platforms don't have nftw). * Sat Jan 21 2006 - jayvdb@gmail.com - lib/backup-files.c: Only create and remove parents that are missing or empty. Report errors in nftw. (Minor changes by agruen@suse.de). * Sat Jan 21 2006 - jayvdb@gmail.com - Don't use date -r for comparing file timestamps. * Sat Jan 21 2006 - jayvdb@gmail.com - GNU patch 2.5 messages differ slightly from the messages of more recent versions. Recognize the old version's output when fixing patch's output in the push command, and also accept the old version's output in the test suite. * Sat Jan 21 2006 - jayvdb@gmail.com - test/run: Support regex matching in test scripts. * Sat Jan 21 2006 - jayvdb@gmail.com - Check whether cp -l works. * Sat Jan 21 2006 - jayvdb@gmail.com - Default to use NLS when NLS binaries are available (minor changes by agruen@suse.de). * Sat Jan 21 2006 - agruen@suse.de - Split off strip_diffstat from header command. - import command: compare patch headers to prevent destruction; add -d option to choose which header(s) to keep. * Sat Jan 21 2006 - jayvdb@gmail.com - import command: catch several error conditions. Patches in QUILT_PATCHES can now be imported. A minor fix in the output. * Sat Jan 21 2006 - agruen@suse.de - Fix delete -n when no patches are applied. * Fri Jan 20 2006 - jayvdb@gmail.com - Tru64 /bin/sh complains when $(call ) is used without ; on each line of the define. * Fri Jan 20 2006 - jayvdb@gmail.com - Clear up the internal make rules so make -d is not so verbose. * Fri Jan 20 2006 - agruen@suse.de - Check if arguments to --with- exist, warn if they do not, and fail if they do but are no executables. (Based on a patch from jayvdb@gmail.com). * Fri Jan 20 2006 - jayvdb@gmail.com - configure.in: Document to use --without-foo instead of --with-foo=none. * Thu Jan 19 2006 - agruen@suse.de - Make sure quilt diff --snapshot visits files in a defined order. * Thu Jan 19 2006 - jayvdb@gmail.com - Move patch parameter checks into patchfns.in, adding quotes around all patch parameters, and reporting 'No patches in series' - quilt/annonate.in: Fix case where no patches have been applied. * Mon Jan 16 2006 - jayvdb@gmail.com - test/three.test, test/import.test: Add various tests. * Mon Jan 16 2006 - jayvdb@gmail.com - Always use full command names in the test suite. * Mon Jan 16 2006 - jayvdb@gmail.com - doc/README and doc/quilt.1 depend on compat/getopt being built prior to their generation. As the phony target 'compat' cant be used as a prereq, except to other phony targets, $(COMPAT) has been added to refer to all necessary compat/ objects. - bin/*.in should be regenerated after a change to Makefile. * Mon Jan 16 2006 - agruen@suse.de - Change the rules for splitting a patch into header and body so that it will work for git extanded patches as well. * Sun Jan 15 2006 - agruen@suse.de - John Vandenberg : Make check depends on programs that have been configured with --with-=. Make dependencies would get confused by symlinks, so create wrappers in compat/ for make check. - Remove binaries in compat/ that are not listed in COMPAT_PROGRAMS or COMPAT_SYMLINKS. - configure.ac: use --without-$foo instead of --with-foo=none. - Fix processing of translations again, and update de.po. * Sat Jan 14 2006 - agruen@suse.de - Move scripts directory to quilt/scripts to simplify running quilt directly from the source tree. - test/Makefile: merge into Makefile.in (target check). - Makefile.in: clean up. * Sat Jan 14 2006 - agruen@suse.de - Use the quilt version in the source tree instead of the installed version for running the test suite. * Tue Jan 10 2006 - khali@linux-fr.org - test/null-bug.test: Fix the original directory creation so that the test doesn't fail if any higher-level directory contains a patches/ sub-directory. - test/*.test: Fix the test suite after the December 8th, 2005 change to quilt diff. Contributed by Markus Oberhumer. * Wed Jan 04 2006 - khali@linux-fr.org - po/quilt.pot, po/de.po: Resync with code. - po/ja.po: Update from Yasushi Shoji. - po/fr.po: Update from me. * Thu Dec 08 2005 - agruen@suse.de - scripts/inspect.in (setup command): add heuristic to check for input files specified on the command line in the tar/patch wrapper. - quilt/diff.in: Degrade the ``More recent patches modify files in patch'' message to a warning. * Thu Dec 01 2005 - mquinson@debian.org - bin/guards.in: s/ocnfiguration/configuration/ (fixes Bug#341518 in Debian) - doc/quilt.1.in: Document common options to all commands (fixes Bug#334408 in Debian) * Mon Nov 28 2005 - agruen@suse.de - quilt/diff.in, quilt/refresh.in: for -p0 style patches, when a file is being deleted, use the real filename in the +++ line instead of filename.orig: if we don't, the patch does not contain the real filename anymore, and patch will fail. See test/null-bug.test. - files command: remove a redundant find_patch(). - Make top_patch() fail if there is no top patch. * Fri Nov 04 2005 - agruen@suse.de - Makefile.in: don't strip the backup-files binary in the install target. - quilt.spec.in: set the CFLAGS to $RPM_OPT_FLAGS, and pass on the RPM release number when building quilt. * Wed Oct 12 2005 - agruen@suse.de - scripts/inspect.in: remove unnecessary path_search() function and let the shell search the path internally. * Tue Oct 04 2005 - khali@linux-fr.org - scripts/patchfns.in: Prevent patch_header and patch_body from mistakenly considering "---" alone on its header line as the beginning of the patch body. * Fri Sep 23 2005 - khali@linux-fr.org - configure.ac: Let the user select the find binary. Test that find supports -path. * Fri Sep 23 2005 - khali@linux-fr.org - quilt/files.in: Sort the file names rather than respecting the original order of the files in patches. This is slightly faster, and we don't much care about the original order. * Fri Sep 23 2005 - khali@linux-fr.org - Fix the test suite so that directories leftover from a previously interrupted test won't cause a test to fail. * Fri Sep 23 2005 - khali@linux-fr.org - Drop test/reorder.test, it duplicates test/sort.test but is less complete. * Fri Sep 23 2005 - khali@linux-fr.org - test/run: Do not depend on Term::ReadKey. * Fri Sep 23 2005 - agruen@suse.de - Fix the test suite so that it doesn't fail if any higher-level directory contains a patches/ sub-directory (iow, if quilt itself is patched with quilt). * Thu Sep 22 2005 - khali@linux-fr.org - Makefile.in: Fix extra spaces in foreach command which were causing "missing separator" errors. Patch from Gary V. Vaughan. * Thu Sep 22 2005 - khali@linux-fr.org - configure.ac: Test sed support for (foo|bar) constructs. * Wed Sep 21 2005 - khali@linux-fr.org - configure.ac, Makefile.in: Make the cp, date and tr binaries user-selectable. - configure.ac: Test grep and tr features. * Wed Sep 21 2005 - khali@linux-fr.org - aclocal.m4: Fix typo causing binaries with alternative names not to be properly handled. * Wed Sep 21 2005 - khali@linux-fr.org - quilt/files.in: Compute file status only when needed (that is, when -v is used and -l isn't). This divides the execution time by 5 in all other cases. * Wed Sep 21 2005 - khali@linux-fr.org - test/subdir.test: Test quilt files -v. * Wed Sep 21 2005 - khali@linux-fr.org - test/sort.test: Quote grep arguments, as some grep implementations seem to otherwise choke on them. Original patch from John Vandenberg. * Wed Sep 21 2005 - khali@linux-fr.org - quilt/diff.in: Add missing call to print_patch. * Tue Sep 20 2005 - khali@linux-fr.org - Makefile.in: Fix compat/tail symlink creation. Fix variable exporting bashism. - configure.ac: Use grep >/dev/null instead of grep -q for compatibility. Test for grep -q, some quilt scripts need it. - test/Makefile: Fix varible exporting and script sourcing bashisms. * Mon Sep 19 2005 - agruen@suse.de - Makefile.in: Fix when COMPAT_PROGRAMS is empty. - Avoid spurious rebuilds because of unnecessary chmod. * Mon Sep 19 2005 - khali@linux-fr.org - Makefile.in: Fix harmless error message in reference rule. * Mon Sep 19 2005 - khali@linux-fr.org - aclocal.m4: Fix a bug causing user-selected binary names not to be displayed properly. * Mon Sep 19 2005 - agruen@suse.de - Use compatibility m4 for diffstat. Correctly diagnose older diffstat on OS X 10.3, which outputs '1.2 (patch 5)'. Update configure warning message to reflect reality that quilt diff does not accept --diffstat (John Vandenberg ). * Mon Sep 19 2005 - agruen@suse.de - quilt/mail.in: add a --sender option for specifying the envelope sender address (defaults to ${LOGNAME:-`whoami`}@`hostname -f`). * Mon Sep 19 2005 - agruen@suse.de - Rename MTA program to SENDMAIL, and improve configure.ac (from John Vandenberg again, as several other recent things -- thanks!) - Must build the compatibility programs before creating the command reference (which extracts the help texts). * Mon Sep 19 2005 - agruen@suse.de - Fix mta check when sendmail is found. - Fix --disable-nls. - configure.ac: Don't run tests when using internal compatibility programs. * Sun Sep 18 2005 - agruen@suse.de - Add a missing $(BUILD_ROOT) and fix compat-symlink dependencies. * Sun Sep 18 2005 - khali@linux-fr.org - configure.ac: Test for tail -n. * Sun Sep 18 2005 - agruen@suse.de - Makefile.in: Add a dependency of all to COMPAT_PROGRAMS which was lost somewhere. Fix internal "mta" program. - Get rid of ``grep -E''. * Sun Sep 18 2005 - agruen@suse.de - Fix a few things in po/quilt.pot generation. - Always create the mta symlink in compat/. Replace "@MTA@" with "mta" in scripts. Replace mta check in configure.ac with QUILT_COMPAT_PROG_PATH. - quilt/mail.in: Add a User-Agent header. - Update the German translation. * Sun Sep 18 2005 - agruen@suse.de - Makefile.in: remove obsolete substitutions. * Sun Sep 18 2005 - agruen@suse.de - Get rid of ``grep -e''. * Sun Sep 18 2005 - agruen@suse.de - Remove config.h, and use @DEFS@ in Makefile.in instead (Gary V. Vaughan ). * Sun Sep 18 2005 - khali@linux-fr.org - configure.ac: Drop useless -e to grep. * Sun Sep 18 2005 - agruen@suse.de - Merge po/Makefile into Makefile.in. Add a lost @false to Makefile.in. * Sun Sep 18 2005 - agruen@suse.de - lib/backup-files.c: add missing dependency on config.h. Check for chmod and fchmod support. Remove two unnecessary chmod calls. - Makefile.in: fix cyclic dependency on Makefile. * Sun Sep 18 2005 - agruen@suse.de - lib/backup-files.c: use mktemp if mkstemp is not available (Gary V. Vaughan ). Add a config.h. * Sun Sep 18 2005 - agruen@suse.de - lib/backup-files.c: switch from alloca to malloc for portability. * Sun Sep 18 2005 - khali@linux-fr.org - configure.ac: Make the tail executable user-selectable. * Sun Sep 18 2005 - agruen@suse.de - Forgot to add new files to the repository. * Sun Sep 18 2005 - agruen@suse.de - Merge compatibility layer from John Vandenberg . - Only add compat/ directory to PATH if it exists. Only create it when necessary. - configure.ac: fail if getopt does not support --long. - Replace @INSTALL@ with $(INSTALL) and @BASH@ with $(BASH) in Makefile.in. - Replace @FOO@ macros in scripts with foo command where possible. - Remove compatibility shell functions and convert them to standalone scripts. * Fri Sep 16 2005 - khali@linux-fr.org - configure.ac: Fix a copy-n-paste bug which was causing perl to be checked twice and awk not to be checked properly. * Fri Sep 16 2005 - khali@linux-fr.org - Make it possible to pass arbitrary options to diffstat, by defining a QUILT_DIFFSTAT_OPTS variable in ~/.quiltrc. - Update documentation and sample configuration file accordingly. * Thu Sep 15 2005 - agruen@suse.de - Fix off-by-one error: it's not a good idea to edit $x instead of $x.in. * Thu Sep 15 2005 - khali@linux-fr.org - Makefile.in: Add missing dependency of doc/README on quilt/*. - Makefile.in: Rewrite non-portable sed command in "reference" rule. * Thu Sep 15 2005 - khali@linux-fr.org - Omitting the search directory in "find" is not portable; add an explicit "." (Gary V. Vaughan, John Vandenberg). * Thu Sep 15 2005 - agruen@suse.de - Fix quilt.spec generation after the Sep 14 change. * Thu Sep 15 2005 - agruen@suse.de - quilt/pop.in: get rid of tac. * Wed Sep 14 2005 - agruen@suse.de - quilt/mail.in: Remove stray getopt line. If --subject is given, actually fill in the subject in the message template. * Wed Sep 14 2005 - khali@linux-fr.org - Makefile.in: Use @BASH@ instead of bash (John Vandenberg). - Makefile.in: Use `foo` instead of $$(foo) for compatibility. - Makefile.in: Drop call to chmod --reference (Gary V. Vaughan). * Tue Sep 13 2005 - khali@linux-fr.org - quilt/annotate.in: Rework the annotation algorithm (Andreas Gruenbacher). The new code is shorter and faster. - quilt/annotate.in: New option "-p patch" to stop checking for changes at the specified rather than the topmost patch. - bash_completion: Support the new -p option. - test/annotation.test: Test the new -p option. * Sun Sep 11 2005 - khali@linux-fr.org - quilt/annotate.in: Update help text to mention that only applied patches will show (Andreas Gruenbacher). Optimize by using applied_patches() instead of cat_series(). * Fri Sep 09 2005 - khali@linux-fr.org - test/*.test: Fix sed compatibility issues: do not use inplace (-i); do not filter out tabs in patches, it's no more needed now that --no-timestamps is used; do not use the "a" command. Based on a patch by John Vandenberg. * Fri Sep 09 2005 - khali@linux-fr.org - scripts/patchfns.in: New quilt_command function for running another quilt command. Patch from Joe Green. - quilt/delete.in, quilt/edit.in: Use the new quilt_command function. Patch from Joe Green. * Wed Sep 07 2005 - khali@linux-fr.org - quilt/delete.in: Fix the quilt pop invocation when attempting to delete the top patch (default). Patch by Joe Green. * Tue Sep 06 2005 - khali@linux-fr.org - Japanese translation update contributed by Satoru Takeuchi and Yasushi Shoji. * Tue Sep 06 2005 - khali@linux-fr.org - It is now possible to set EDITOR in ~/.quiltrc in order to use a different editor for quilt and for the other tasks. * Tue Sep 06 2005 - khali@linux-fr.org - doc/README needs the same $EDITOR filtering quirk we just added for doc/quilt.1. * Tue Sep 06 2005 - khali@linux-fr.org - scripts/patchfns.in: Rewrite files_in_patch_ordered() so as to not require the awk asort function, which is not available on all versions of awk. - test/sort.test: Add more files to better test the ordering and sorting issues. Original patch by John Vandenberg. * Tue Sep 06 2005 - khali@linux-fr.org - Merge doc/sample.quiltrc into quilt.quiltrc, and delete it. It will be easier to maintain a single configuration file. * Tue Sep 06 2005 - khali@linux-fr.org - Makefile.in: Filter out expanded $EDITOR in quilt.1. This value being set at installation time may be irrelevant at execution time. * Tue Sep 06 2005 - agruen@suse.de - Fix test/perms.test for LANG=POSIX (from John Vandenberg ), and always run the test cases with LANG set to POSIX. * Sun Sep 04 2005 - khali@linux-fr.org - quilt/diff.in: Fix incorrect error message when incompatible options are used. Fix direct call to awk. * Fri Sep 02 2005 - khali@linux-fr.org - scripts/patchfns.in: Fix permissions of .pc/applied-patches being lost in remove_from_db() and rename_in_db(). * Fri Sep 02 2005 - khali@linux-fr.org - quilt/refresh.in: Drop a useless line in the awk script replacing the diffstat section in patch headers. Improve the regular expression matching diffstat lines. Original patch from John Vandenberg. * Sun Aug 28 2005 - khali@linux-fr.org - configure.ac, Makefile.in: Support GCC and other compilers. Allow executable extensions (non-Unix.) Original patch from John Vandenberg. * Fri Aug 26 2005 - khali@linux-fr.org - quilt/delete.in: Drop extra spaces in usage line. - quilt/graph.in: Add missing -T option to usage line. - quilt/push.in: Add missing --interactive and --color options to usage line. * Fri Aug 26 2005 - khali@linux-fr.org - quilt/delete.in: Add options -r (remove patch file) and --backup (backup rather than remove.) Patch from Joe Green. * Fri Aug 26 2005 - agruen@suse.de - scripts/patchfns.in: insert_in_series(): Insert new patches before the following patch instead of after the top patch. When no patch is in the series file, insert the new patch at the end (i.e., after comments from setup, etc.) instead of at the top. * Fri Aug 26 2005 - khali@linux-fr.org - quilt/import.in: Fix error path when imported patch doesn't exist. * Wed Aug 24 2005 - agruen@suse.de - quilt/edit.in: Check exit status after adding files, and fail except when files have already been added. * Mon Aug 22 2005 - agruen@suse.de - quilt/fold.in: fold did not work when invoked from a subdirectory; update test case. * Fri Aug 12 2005 - khali@linux-fr.org - configure.ac: Do not check for diffstat version if --without-diffstat is used. * Thu Aug 11 2005 - mquinson@debian.org - bash_completion: add completion of the header command [Joe Green]. - improve description of the import command [Joe Green]. * Fri Jul 29 2005 - khali@linux-fr.org - test/delete.test: New test case for the delete command. * Fri Jul 29 2005 - khali@linux-fr.org - Makefile.in: add test/Makefile and test/test.quiltrc to SRC, so that they get included into the tarball by make dist. * Wed Jul 27 2005 - agruen@suse.de - test/missing.test: Fix test case. * Tue Jul 26 2005 - khali@linux-fr.org - Bump version to 0.42. * Tue Jul 26 2005 - agruen@suse.de - Mike Fabian fixed two fuzzy Japanese messages for us -- thanks! * Mon Jul 25 2005 - khali@linux-fr.org - Fix one fuzzy message in French translation. * Mon Jul 25 2005 - agruen@suse.de - Japanese translation update from Yasushi SHOJI . * Sun Jul 24 2005 - khali@linux-fr.org - Let the perl scripts (edmail, parse-patch and remove-trailing-ws) work without Locale::gettext. * Fri Jul 22 2005 - khali@linux-fr.org - Makefile.in: Drop pointless dependency between quilt command files and scripts. * Tue Jul 19 2005 - khali@linux-fr.org - Update French translation. * Tue Jul 19 2005 - agruen@suse.de - Fix a few translation bugs; update german translation. * Mon Jul 18 2005 - agruen@suse.de - Add internationalization support to Perl scripts as well. - Rename test/create-delete.diff to *.test and fix the test. * Mon Jul 18 2005 - khali@linux-fr.org - French translation unfuzzying. * Mon Jul 18 2005 - agruen@suse.de - uninstall target: remove $(LIB_DIR) as well. * Mon Jul 18 2005 - agruen@suse.de - Based on work done by several contributers, add a header command. - Bump version to 0.41. * Mon Jul 18 2005 - agruen@suse.de - quilt/annotate.in: Fix case where the file is created/deleted by a patch. - Makefile.in: add uninstall target. * Sun Jul 17 2005 - agruen@suse.de - bin/quilt.in: clean up helptext. * Thu Jul 14 2005 - khali@linux-fr.org - Update the French translation. * Thu Jul 14 2005 - agruen@suse.de - Use wildcard to generate the list of all commands in Makefile instead of explicitly listing them. - Helptext improvements. * Thu Jul 07 2005 - khali@linux-fr.org - Makefile.in: Properly set LINGUAS before running "make all" in subdirectory po. This ensures that all .mo files will actually be built. - Makefile.in: Delete po/*.mo only once on "make clean". * Wed Jul 06 2005 - khali@linux-fr.org - quilt delete: Add option -n, which deletes the next patch after topmost (rather than the specified or topmost patch). * Tue Jul 05 2005 - khali@linux-fr.org - fr.po: Add all missing translations. - de.po: Add one easy translation. * Tue Jul 05 2005 - khali@linux-fr.org - quilt delete: Display the name of the deleted patch on success. * Sat Jul 02 2005 - agruen@suse.de - Remove outdated BUGS file and references. - refresh command: don't write into existing patches but create new files instead to avoid overwriting hardlinked copies. * Fri Jul 01 2005 - khali@linux-fr.org - configure.ac: Add a test on diffstat version. Versions prior to 1.32 are known to behave in a confusing manner, so we warn the user if such an old version is found. * Wed Jun 29 2005 - agruen@suse.de - po/de.po: Small update from Debian Bug #313827. * Wed Jun 29 2005 - khali@linux-fr.org - Fix a typo in diff.in's help. * Wed Jun 29 2005 - khali@linux-fr.org - French translation unfuzzying. * Mon Jun 27 2005 - khali@linux-fr.org - Fix a typo in quilt.changes. * Mon Jun 27 2005 - agruen@suse.de - quilt diff: Fix -z option if QUILT_PATCHES is an absolute path. * Sun Jun 26 2005 - agruen@suse.de - Jean Delvare: + Add a --version option that prints the program version. + patch_args: Fix comments parsing in series files. * Wed Jun 22 2005 - agruen@suse.de - annotate: temp file leak; add bash completions (Jean Delvare). * Tue Jun 21 2005 - agruen@suse.de - quilt/annotate.in: Add comment; remove some dead code. * Tue Jun 21 2005 - agruen@suse.de - add command: "File %s added to patch %s" message goes to stdout and not to stderr (Jean Delvare). - Don't fail when popping missing patches (Jerome Lacoste, Jean Delvare, I). * Sat Jun 18 2005 - agruen@suse.de - Add fix for refresh --strip-trailing-whitespace option: now refresh always checks for trailing whitespace and reports it per file and line number. With --strip-trailing-whitespace it strips the whitespace from the patch and from the affected files in the working tree. * Sat Jun 18 2005 - agruen@suse.de - Add new annotate command. * Thu Jun 16 2005 - agruen@suse.de - rpm build: add missing files to file list; remove percent-prep string from changes file so that RPM doesn't choke on it. * Tue Jun 14 2005 - agruen@suse.de - refresh command: also touch .pc/$patch/.timestamp when a patch is found to be up-to-date (Peter Williams, ). * Sun Jun 12 2005 - agruen@suse.de - Documentation update from Jerome Lacoste and me. * Sun Jun 12 2005 - agruen@suse.de - Remove obsolete remnants of removed -n flag (Jean Delvare). * Thu Jun 09 2005 - agruen@suse.de - Additional fixes to the rename command. * Wed Jun 08 2005 - agruen@suse.de - Add rename command from Jean Delvare . * Wed Jun 08 2005 - agruen@suse.de - Add testcase for diff --no-index. * Mon Jun 06 2005 - agruen@suse.de - Add --no-index option to diff and refresh commands: Suppress Index: lines in the patch. From Jean Delvare . * Wed Jun 01 2005 - agruen@suse.de - test/remove2.test: Test for remove + refresh interactions. * Mon May 23 2005 - agruen@suse.de - quilt.quiltrc: A minor cleanup in quilt_mail_patch_filter(). * Sun May 22 2005 - agruen@suse.de - setup command: When a patch cannot be identified, scan all the files in the build directory: the patch may have been created, unpacked from an archive, etc. * Sun May 22 2005 - agruen@suse.de - refresh command: Fix temporary file leak (from Jean Delvare). * Wed May 18 2005 - agruen@suse.de - debian/changelog: Fix typo. * Thu May 12 2005 - agruen@suse.de - Quoting fix from Jean Delvare , and one more from me. * Sun May 08 2005 - agruen@suse.de - doc/quilt.1.in: Fix some typos (mostly from Jean Delvare). * Sun May 01 2005 - agruen@suse.de - Fix misspelling in documentation (Nicolas Kaiser ). * Fri Apr 29 2005 - agruen@suse.de - Add trailing-whitespace check an --strip-trailing-whitespace option to the refresh command. - Bump version to 0.40. * Tue Apr 19 2005 - agruen@suse.de - fork command help update (Jean Delvare ). * Wed Apr 13 2005 - agruen@suse.de - Add --sort options to the diff and refresh commands which sorts files by filename. The default is to keep files in their original order whenever possible. - refresh command: add new files in sort order instead of the filesystem order. - diff command: output files in the order in which they show up in the patch instead of sorting them alphabetically. - Add sort testcase. * Wed Apr 13 2005 - agruen@suse.de - Fix typos in introduction. * Tue Apr 05 2005 - agruen@suse.de - doc/quilt.1.in: Remove an unnecessary 8-bit character. * Thu Mar 10 2005 - agruen@suse.de - Debian Bug #298785: Pass -p $opt_strip_level option to diffstat in refresh command. * Mon Mar 07 2005 - agruen@suse.de - Another Japanese translation update from Yasushi SHOJI. * Sun Mar 06 2005 - agruen@suse.de - Add `graph', `grep' and `mail' to QUILT_IN in po/Makefile. - Fix typo and translation updates. - Add a missing ``exit 1'' to quilt/fold.in when no patches are applied. (All except the German translation update from Yasushi SHOJI -- thanks.) * Thu Feb 24 2005 - mquinson@debian.org - quilt add: Add check to ensure that no symlink will be added since we fail to backup them properly (see #295913 in Debian). * Fri Feb 18 2005 - agruen@suse.de - quilt add: Add check to ensure that no files below patches/ or .pc/ will be added. * Thu Feb 10 2005 - agruen@suse.de - quilt remove: Update restored file's timestamp. Also, some uses caused a subsequent ``quilt diff -z'' to fail: we must mark the patch as dirty after removing files. - test/run: adjust to terminal width. - Bump version to 0.39. * Sun Feb 06 2005 - agruen@suse.de - Update of the Japanese translation from Yasushi SHOJI -- thank you. - Don't leak so many temporary files in the push command. - Include command names in tempfile names to find leaks more easily. * Wed Feb 02 2005 - agruen@suse.de - Fix date calculation bug with some versions of GNU date. * Wed Feb 02 2005 - agruen@suse.de - Use color defaults so that QUILT_COLORS can be used to only override some colors. - When checking for remaining changes (refresh forgotten), use $QUILT_PATCH_OPTS as in the push command to get identical results. Don't generate the actually diff; it doesn't get printed anyway. This should speed things up. * Thu Jan 27 2005 - agruen@suse.de - lib/backup-files.c: Remove unused command line option and document the remaining options. - quilt/pop.in: Colorize this as well: "Patch attempted to create file *, which already exists." "can't find file to patch at input line *" "* out of * hunk ignored" * Tue Jan 25 2005 - agruen@suse.de - Fix pop command for recent coreutils (cp dir dir2/ no longer works if dir2 doesn't yet exist). * Sun Jan 23 2005 - agruen@suse.de - Add color support for push command output and allow to customize colors via the QUILT_COLORS environment variable (for reverse video, etc.). * Sun Jan 23 2005 - agruen@suse.de - Add mail command, doc/README.MAIL and example ``mail'' command filter in quilt.quiltrc. - Bump version to 0.38. * Fri Jan 21 2005 - agruen@suse.de - Add a missing find_patch call in the files command. * Thu Jan 20 2005 - mquinson@debian.org - fix the bash completion file: - does not complete on dir anymore, just files. - use string comparison when dealing with BASH_VERSION, it may contain letters. * Tue Jan 11 2005 - agruen@suse.de - Add a default /etc/quilt.quiltrc file that is sourced if no ~/.quiltrc file exists. * Fri Nov 19 2004 - agruen@suse.de - Push command: Write out output of patch process immediately instead of reading into a variable and then printing that variable. This helps to see what's happening with large patches. * Mon Nov 15 2004 - agruen@suse.de - Get rid of the apatch and rpatch helper scripts: Integrate them in the push and pop commands. This should bring a small performance improvement. * Mon Nov 08 2004 - agruen@suse.de - Fix extra trailing space in series file after quilt refresh (David Vrabel ). - Missing quotation in bash_completion (Axel Grossklaus ). - Fix patches command (Brent Casavant ). * Sun Oct 17 2004 - agruen@suse.de - When applying a patch with -q and without -f no (individual) reject files are created, and the "patching file" comments are missing as well. In that case, we don't know wich files the "-- saving rejects to file /tmp/foo" comments belong to, and we can't fix them up. Remove them, instead. - Pop command: Touch files after they are restored so that tools like make don't get confused. - Add a missing print_patch call (cosmetic). - Bump to version 0.37. * Wed Sep 22 2004 - agruen@suse.de - scripts/patchfns.in: set the dotglob option so that dot files will show up in file globs as well. Bug reported by James Rowe. - Add a missing tab to the patch header of files that are removed. Bug reported by James Rowe. - Push command: Without -f or --leave-rejects, when applying a patch failed, the *.rej files were not removed properly. Change the code so that they won't be created in the working tree in the first place in this case. - test/run script: Oops, the previous commit was not the latest version. - Fix the version check in bash_completion for bash 3. - Bump version to 0.36. * Tue Sep 21 2004 - agruen@suse.de - Series command: add missing paths to patches if $QUILT_PATCHES_PREFIX is set. - test/run script: Add export and unset statements. * Mon Sep 13 2004 - agruen@suse.de - bin/quilt.in: Add optional verbose modifier to --trace option by request of Dean Roehrich . - Fix a message; took a while. Thanks Yasushi SHOJI . * Sun Sep 12 2004 - agruen@suse.de - scripts/inspect.in: Run the RPM prep section in /var/tmp and not in /tmp: the sources can become large. - The fork command at some point broke and did not insert the "serial number" in the right place in patch names anymore. * Wed Aug 25 2004 - agruen@suse.de - Refresh command: recognize and ignore header lines generated by ``cvs diff''. - Add a missing print_patch call (cosmetic). * Sat Aug 14 2004 - agruen@suse.de - Add Japanese translation from Yasushi SHOJI . Thank you. * Fri Aug 13 2004 - agruen@suse.de - setup command: detect errors when running ``rpm -bp'' and improve the messages of ``quilt setup''. * Wed Aug 11 2004 - agruen@suse.de - Merge improvement to files command from Dean Roehrich: Allow to list all files modified, or all files modified by a range of patches. - Fix pop command help. * Wed Aug 11 2004 - agruen@suse.de - Working in sub-directories: `quilt new' so far did always create patches in the current directory, even if the current directory appeared to be a sub-directory of the working tree. This was confusing for several people now. Make `quilt new' behave like all other commands, and thus allow it to be used from within sub-directories. * Sat Aug 07 2004 - mquinson@fuxfamily.org - Small fix by Yasushi SHOJI: display the name of the patch which is not applied in the error message. * Thu Jul 22 2004 - mquinson@tuxfamily.org - repharse the output of rpatch when patch does not remove properly: refreshing the patch is another way to fix it - sync french translation. * Thu Jul 15 2004 - mquinson@tuxfamily.org - patch from Joe Green to "Complete options for a partial command as long as it's unique. quilt will accept such a partial command as valid." * Thu Jul 15 2004 - agruen@suse.de - Add test case for permissions. - Very minor translation updates. - Convert timestamps in changes file into UTC when generating the RPM changelog: the changelog does not understand timestamps. - Bump version to 0.35. * Tue Jul 13 2004 - mquinson@tuxfamily.org - Fix a typo (s/prinf/printf/) reported by Dean Roehrich. - Track down two variable expensions in printf $"" constructs. - update the french translation accordingly * Mon Jul 12 2004 - agruen@suse.de - refresh command: Fix --diffstat option; it did swap lines. Also remove stray dollar sign. - Also set TEXTDOMAINDIR in the wrapper script (bin/quilt.in). - Fix stripping of the path to $QUILT_PATCHES when working in sub-dirextories. (This could be fixed more flexibly later...) * Mon Jul 12 2004 - mquinson@tuxfamily.org - Sync french translation after the recent butchery ;) - Commit patch from Joe Green to make the completion file usable on non-debian systems. * Mon Jul 12 2004 - agruen@suse.de - Some more QUILT_PATCHES_PREFIX fixes. - Disable CDPATH within quilt (Joe Green writes: I've seen some cases where having CDPATH set results in the path being printed by cd, and I suppose it's possible that the wrong destination might be selected in some cases.) * Fri Jul 09 2004 - agruen@suse.de - Switch from echo to printf for all translations: This is more stable than having expansions in messages that might change independent of the message. - Add print_patch function and always use it when printing patch names. Remove -n options from various scripts and use a global switch QUILT_PATCHES_PREFIX in .quiltrc to decide between patch names with and without directory prefix. Depending on user experience this switch may eventually go away. - Add --diffstat option to refresh command: If given, this option inserts diffstat statistics at the end of the patch header, or refreshes the existing diffstat output. No special tags in the path file (%diffstat or the like) are needed. - Minor fix inserting changelog into RPM specfile. * Wed Jul 07 2004 - mquinson@tuxfamily.org - Fix the bash_completion by not using quilt internals, but the external commands [Joe Green]. * Sun Jul 04 2004 - agruen@suse.de - Add common GNU diff format options to diff and refresh commands: -u, -U num, -c, -C num. Rename old -c option (combine patches) of diff command to --combine. - Extend the function that splits comments from patches and syntax coloring to handle combined diff format. - Honor the LANG environment variable again; this got broken at some point. - Set TEXTDOMAINDIR to where the translations are put so that Messages are found even when not installing into /usr. * Fri Jul 02 2004 - agruen@suse.de - Several Fixes from Joe Green : + Another sed problem, in Makefile.in + Bad error message on "quilt delete" of non-existent patch + "import" doesn't remove all leading components on patch file + Misspelling in "import" help text - With using the GNU diff --label option, file timestamps disappeared. Specify the timestamps in --label by hand: This gives us added flexibility when generating patches; we may some day want to support diff styles other than unified. Also reported by Joe Green. - Add --backup option to quilt refresh. - Update documentation to QUILT_${COMMAND}_ARGS in .quiltrc. (The old settings still work but they are no longer documented.) - Update German translation. * Thu Jul 01 2004 - agruen@suse.de - Allow passing of default options to commands by defining QUILT_${COMMAND}_ARGS in .quiltrc. This should eventually get us rid of some of the mess in .quiltrc. * Wed Jun 30 2004 - agruen@suse.de - Quilt diff: add --color option for optionally colorizing the output. * Sat Jun 26 2004 - agruen@suse.de - Quilt import: when importing patches with their original file name, strip path prefixes from the patch names. * Sat Jun 12 2004 - agruen@suse.de - Fix another upgrade bug: The series file may optionally contain a strip level argument (-pN) which must be stripped off when determining the patch name. - A minor correction in the doumentation; some whitespace fixes. - Translation update. * Fri Jun 11 2004 - mquinson@tuxfamily.org - Fix the man page generation - Add a --no-timestamps option to diff and refresh doing what QUILT_NO_DIFF_TIMESTAMPS does. This should make more visible a feature I was about reimplementing ;) - Document all options from the pdf into the man page. - update the bash completion stuff so that : - it does not kill the shell when completing in a tree not matching the meta data version. - it does not move the current directory around, seeking for patches/ - it completes on the new commands (grep graph upgrade) - Various output messages polishing (and translation fuzzying) - French translation unfuzzying * Thu Jun 10 2004 - agruen@suse.de - Add meta-data version check/upgrade code from Martin Quinson and me; new `quilt upgrade' command. - Handle new/removed files correctly in generated patches: If the old or new file is missing, the file name in the patch should be /dev/null. Fix test suite accordingly, and add test/create-delete.diff. GNU patch recognizes this, and does additional file existance tests when a patch creates/deletes a file. Also use the --label option of GNU diff instead of hand-editing file name headers. - Add test/Makefile for running the test suite. Note: The tests run against the installed version of quilt! - Bump version to 0.34. * Sun Jun 06 2004 - agruen@suse.de - Preserve the order of files in patches in the diff and refresh commands. Files added to a patch appear at the end of a patch. The files command also lists the files in the order in which they appear in patches. - Update to version 0.33. * Sun Jun 06 2004 - agruen@suse.de - dependency-graph: Fix for --lines option in patcher mode; restrict to applied patches. * Sun Jun 06 2004 - agruen@suse.de - import: Create patches/ and parent directories to patch to be imported. Insert the correct patch name in the series file. * Sun Jun 06 2004 - agruen@suse.de - backup-file.c: Add code to recursively search .pc directories. Add a "no-op" mode as default, and allow to just unlink files. - apatch/rpatch: let backup-files search .pc directories instead of generating temporary file lists. - rpatch/pop: unlink files of topmost patch after popping instead of unlinking at each step. - If QUILTRC is set in the environment, use this as the configuration file. * Sat Jun 05 2004 - agruen@suse.de - Return exit status 2 when commands go beyond the series (top with no series, push/next when all patches are applied, pop/ previous when no patches are applied). - From John Lenz : Add compatibility code to the dependency-graph script for reading the meta-data of Holger Schurig's patcher tool, http://www.holgerschurig.de/patcher.html. - Update German translation. * Tue Jun 01 2004 - agruen@suse.de - Fix from Dean Roehrich : Preserve file mode of original file when creating backup files. * Tue Jun 01 2004 - mquinson@tuxfamily.org - document common options to all scripts (--trace and --quiltrc) - update french translation * Mon May 31 2004 - agruen@suse.de - Rewrite spec2series to return what the new `quilt setup' needs, and rename it to inspect. - `quilt setup': Rewrite so that it supports multiple archives per spec file. Always make the patches directory a symlink to the original patch files instead of copying the patches. - Update German translation. * Sun May 16 2004 - agruen@suse.de - Clarify help text of `quilt add' (thanks to Tom Rini ). Update translations. * Sat May 15 2004 - agruen@suse.de - Add `quilt grep': Grep over all files, recursively, skipping the $QUILT_PATCHES and $QUILT_PC directories. * Tue Apr 27 2004 - agruen@suse.de - Fix `quilt fork': It destroys .pc/applied patches; that bug got introduced when reverting it to its previous semantics. * Wed Apr 21 2004 - agruen@suse.de - Replace two occurrences of in sed regular expressions with bash $' ': Some older versions of sed don't understand . Thanks to Randy Dunlap and Greg Edwards for reporting. * Sat Mar 20 2004 - agruen@suse.de - Fix an algorithmic bug in `quilt graph --lines': Edges were sometimes lost. - A few minor cleanups. * Sun Mar 14 2004 - agruen@suse.de - Extend `quilt graph' to also support checking for overlapping changes in patches. - Export QUILT_PATCHES QUILT_PC SUBDIR SERIES DB for use in non-shell components of quilt. * Sat Mar 13 2004 - agruen@suse.de - Change `quilt import' to allow importing multiple patches at once. - Fix a bug in backup-files.c (introduced just before). - Update to version 0.32. * Sat Mar 13 2004 - agruen@suse.de - Add `quilt graph' command for generating a dependency graph between patches. This requires the graphviz package for removing transitive edges (optional) and for rendering the graph. Please note that the graph command itself is minimal, while the underlying scripts/dependency-graph is more flexible. - Complete one more detail in scripts/dependency-graph. - Revert `quilt fork' to how it originally worked: fork the *topmost* patch, not the next unapplied patch. Adapt the test suite accordingly. - Add flag to backup-files.c to make sure that files in the working tree have a link count of at most one. Use this where appropriate. - Fix a bug in `quilt snapshot': Taking snapshots caused files to get link counts bigger than one, so modifying them could cause multiple files to get modified. Speed up the command, too. - Update the documentation. Add example1.test from the documentation. * Wed Mar 10 2004 - agruen@suse.de - Quilt push/pop: exit with a non-zero status when beyond series. - Ignore empty lines in series file. - Add man page to tarball and to spec file; add make dependencies. - Sort the commands in the man page command reference. * Tue Mar 09 2004 - agruen@suse.de - Make files writeable in `quilt add' (and `quilt edit') for working with read-only trees. * Wed Feb 25 2004 - martin.quinson@tuxfamily.org - Add completion to the edit command in bash * Sun Feb 22 2004 - martin.quinson@tuxfamily.org - Add a man page (generated automatically from -h) * Sat Feb 21 2004 - agruen@suse.de - Sub-directory support: `quilt setup' could get confused, too. * Fri Feb 20 2004 - agruen@suse.de - Sub-directory support: + Fix another bug that triggers when /patches exists. + Working in sub-directories: Force `quilt new' to always create the new patch in the current working directory even if there is a patches/ sub-directory further up the directory tree. This should restore the behavior from before Jan 28 very well. - quilt files, diff, refresh: Sort the files in the patch alphabetically. * Sun Feb 15 2004 - agruen@suse.de - Never fail when patching temporary files in `quilt diff -z', only warn. * Thu Feb 05 2004 - agruen@suse.de - Add some fixes from Manuel Estrada Sainz . - Add QUILT_SERIES setting: Override the location of the series file to use. - Don't print an empty line for `quilt top' if no patches are applied. * Tue Feb 03 2004 - agruen@suse.de - Add --quiltrc={rcfile|-} option. Remove some superfluous quoting from quilt wrapper. - Extra tests in `quilt refresh' did not check if the old patch was missing. * Mon Feb 02 2004 - agruen@suse.de - Fix test for bash in configure.ac. - Add `--trace' option to quilt wrapper (runs commands with -x, which prints an execution trace). - Add QUILT_BACKUP setting in .quiltrc (creates backup copies when refreshing patches). - Fix `quilt next'. * Sat Jan 31 2004 - agruen@suse.de - Also fix `quilt import' after patch name mangling removal. * Sat Jan 31 2004 - agruen@suse.de - No longer remove common extensions (.dif, .diff, .patch, .gz, .bz2) from patch names. This allows patches in the same series that only differ by extension, and cleans up the scripts a little. Also don't remove extensions when printing patch names. - Remove unused diffstat code. - Fix generating doc/README after subdirectory support broke it. - Remove excessive newlines in -h messages. * Wed Jan 28 2004 - agruen@suse.de - Fix bugs introduced while merging Chris's patch. - Add more test cases for subdirectory support. - Fix `make dist': Some files in debian/ did not exist. - Update to version 0.30. * Wed Jan 28 2004 - agruen@suse.de - Patch from Chris Mason : Add support for working in subdirectories of the base directory that contains patches/ and .pc/. In the unlikely case that quilt shall operate in the sub-directory itself, it is sufficient to create a patches/ directory there. - Add a small testcase for subdirectory support. * Sat Jan 24 2004 - agruen@suse.de - Add QUILT_NO_DIFF_TIMESTAMPS option in .quiltrc. - Add QUILT_PATCH_OPTS setting to allow passing options to GNU patch. - Fix help for `quilt diff'. * Thu Jan 08 2004 - agruen@suse.de - Also accept `quilt diff -z ./file' (ignore the ./ prefix that is often produced by find etc.) * Thu Nov 27 2003 - agruen@suse.de - `quilt fold' did not create directories for additional files, and the code for recovering from failures was wrong. * Tue Nov 25 2003 - agruen@suse.de - Update quilt paper. * Mon Nov 24 2003 - agruen@suse.de - Error check for `quilt diff -z filelist' was too strict; relax. * Mon Nov 17 2003 - agruen@suse.de - Add new command `quilt fold' to fold one patch into another. - Fix bug in `quilt files': Files that are neither present in the working directory and have an empty backup copy sometimes were still listed. - Some minor cleanups in apatch. - Add test/fold.test, and fix a now-useless check in one.test. * Sat Nov 15 2003 - agruen@suse.de - Merge some changes from wangdi: + Use -f (force) option of GNU patch in `quilt diff -z'. + Build source and binary RPMs in `make rpm' target. + Simplify sed expression in Makefile.in. * Wed Nov 12 2003 - agruen@suse.de - Add introductory paper to CVS repository. - Remove obsolete documentation. - Bump version number to 0.29 (cvs tag VER_0_29). * Tue Nov 04 2003 - agruen@suse.de - Add failpop.test that checks if modified patches are recognized. - Fix the check for modified patches: That broke with the .pc file removal. - `quilt setup' sometimes forgot to create the patches sub-dir. - Fix the timestamp check in scripts/rpatch.in for missing files. * Fri Oct 31 2003 - agruen@suse.de - Bump version number to 0.28 (cvs tag VER_0_28). * Fri Oct 31 2003 - agruen@suse.de - No longer verify if patches remove cleanly by reverse applying them: This doesn't always succeed, and the the equivalent of `quilt diff -z' should suffice, anyway. - Add `touch .pc/$patch' after successful refresh: Speeds up `quilt pop' after a refresh. - Update test suite. - apatch was printing a spurious newline. * Wed Oct 29 2003 - agruen@suse.de - If a patch does not apply cleanly and `quilt push' removes rejects files it GNU patch left behind, change the output from ``saving rejects to file x.rej'' to ``rejects in file x''. * Tue Oct 28 2003 - agruen@suse.de - Remove .pc/*/.pc files, and adjust various scripts accordingly. - Run test/one.test inside sub-directory. - Bump version number to 0.27 (cvs tag VER_0_27). * Tue Oct 28 2003 - agruen@suse.de - Change name and semantics of PATCHSCRIPTS variable: Before, if PATCHSCRIPTS was set, the patches were in $PATCHSCRIPTS/patches. Now, if QUILT_PATCHES is set, the patches are in $QUILT_PATCHES. QUILT_PATCHES defaults to "patches", like before. * Sun Oct 26 2003 - agruen@suse.de - Get rid of patches_per cache_in `quilt patches'. Remove patches_per_file and associated functions. `quilt patches' now is a bit slow for unapplied patches. * Sun Oct 26 2003 - agruen@suse.de - Rename snapshot directory from ".snap0" to ".snap". - `quilt diff: Speed up file list generation in `quilt diff'. Don't use modified_files anymore. Instead, add first_modified_by function. I want to get rid of the patches_per_file cache; it sometimes was not brought up to date. Some cleanups. - Add test/snapshot.test. - Fix two errors in the date format in quilt.changes. * Thu Oct 23 2003 - agruen@suse.de - `quilt add': Return exit code 2 when a file has already been added. - Add `quilt edit' command: Does a `quilt add' and then invokes $EDITOR (fallback is `vi'). Files that don't exist after editing are again removed from the patch. * Tue Oct 21 2003 - agruen@suse.de - `Quilt fork' should better fork the next patch instead of the topmost one. Also fix a bug in updating the series file when forking. The rename_in_db() function is no longer needed. * Tue Oct 21 2003 - agruen@suse.de - Add `quilt fork' command. - Add `quilt snapshot' command and `quilt diff --snapshot' option. - Bump the version number to 0.26. * Tue Sep 09 2003 - martin.quinson@tuxfamily.org - fix LC_ALL to C during building the reference so that the documentation comes to english and not to french when build on my box. - Update the french translation - Bump the version number to 0.25 * Tue Sep 02 2003 - agruen@suse.de - Pipe rpmbuild output to /dev/null in spec2series (seems to be necessary since rpm4). * Sun Jul 27 2003 - agruen@suse.de - Use %{find_lang} macro in spec file. * Sat Jul 26 2003 - agruen@suse.de - Pushing is only possible if the topmost file is found in the series file. Fix from Tom Wang . * Sat Jul 26 2003 - agruen@suse.de - When popping files, go through the list of applied patches instead of looking at the series file: The series file may have changed. * Sat Jul 26 2003 - agruen@suse.de - Install package documentation into $RPM_DOC_DIR if this environment variable is set. On RedHat 9 $RPM_DOC_DIR points to /usr/share/doc/packages, but documentation lives in /usr/share/doc. This is a bug in RedHat's RPM configuration; working around it would break other distributions. * Wed Jul 23 2003 - agruen@suse.de - Add Autoconf test for rpmbuild vs. rpm (needed for `make rpm'). - Update spec2series accordingly. * Sat Jul 19 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. * Thu Jun 26 2003 - martin.quinson@tuxfamily.org - Add what needed to have inteligent bash completion when using quilt - Bump version to 0.24 * Wed Jun 25 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 2003 - agruen@suse.de - Preserve permissions of files added with `quilt add'. * Sun May 18 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 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 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 09 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 09 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 09 2003 - agruen@suse.de - The change from Mar 24 caused empty lines to be removed in patch descriptions. * Mon Apr 07 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 05 2003 - agruen@suse.de - Improve error checking of `quilt diff'. * Mon Mar 24 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 2003 - agruen@suse.de - Update test script to reflect recent patch format changes. * Sat Mar 22 2003 - agruen@suse.de - Also substitute @SED@ and @AWK@. - Some versions of sed don't like ' '. Expand those in the shell instead. * Fri Mar 21 2003 - agruen@suse.de - Bump version number to 0.23 (CVS tag VER_0_23). * Fri Feb 14 2003 - agruen@suse.de - A couple more I18N fixes, minor cleanups in status messages. - Remove "quilt guidiff" (obsolete). * Fri Feb 14 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 08 2003 - agruen@suse.de - Merge James Rowe 's quilt-help.diff patch that fixes several help messages. * Thu Feb 06 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 05 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 02 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 01 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 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 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 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 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 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 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 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 bug in patch_description function. * Tue Jan 28 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 2003 - agruen@suse.de - Restart change log at quilt-0.21. Let orderly development begin :)