From 795fac13d5b0fe453bc59d5c1267b9493ec463c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6hler?= Date: Sat, 8 Mar 2008 17:17:47 +0000 Subject: [PATCH] Remove make-gnucash-patch and only suggest `svn diff' or plain `diff -urN'. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17012 57a11ea4-9604-0410-9ed3-97b8803252fd --- .gitignore | 1 - Makefile.am | 12 +- README | 18 ++- README.patches | 244 ----------------------------- make-gnucash-patch.in | 312 ------------------------------------- packaging/win32/install.sh | 2 +- 6 files changed, 17 insertions(+), 572 deletions(-) delete mode 100644 README.patches delete mode 100644 make-gnucash-patch.in diff --git a/.gitignore b/.gitignore index ab15985289..84ee07dbf8 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,6 @@ lib/libqof/backend/file/qsf-dir.h lib/libqof/qof/qofla-dir.h libtool ltmain.sh -make-gnucash-patch make-gnucash-potfiles missing mkinstalldirs diff --git a/Makefile.am b/Makefile.am index 3d7adfcb99..4aef68a442 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,7 @@ docdir = ${GNC_DOC_INSTALL_DIR} GNC_CTAGS_FILE = @GNC_CTAGS_FILE@ GNC_ETAGS_FILE = @GNC_ETAGS_FILE@ -noinst_DATA = make-gnucash-patch make-gnucash-potfiles +noinst_DATA = make-gnucash-potfiles dist_doc_DATA = \ AUTHORS \ @@ -39,7 +39,6 @@ dist_doc_DATA = \ EXTRA_DIST = \ gnucash.lsm \ - make-gnucash-patch.in \ make-gnucash-potfiles.in \ macros/aqbanking.m4 \ macros/as-scrub-include.m4 \ @@ -82,13 +81,6 @@ EXTRA_DIST = \ ## brackets here, instead of the usual @...@. This prevents autoconf ## from substituting the values directly into the left-hand sides of ## the sed substitutions. -make-gnucash-patch: make-gnucash-patch.in Makefile - rm -f $@.tmp - sed < $< > $@.tmp \ - -e 's:@-PERL-@:${PERL}:g' - chmod +x $@.tmp - mv $@.tmp $@ - make-gnucash-potfiles: make-gnucash-potfiles.in Makefile rm -f $@.tmp sed < $< > $@.tmp \ @@ -99,7 +91,7 @@ make-gnucash-potfiles: make-gnucash-potfiles.in Makefile DISTCLEANFILES = \ intltool-extract intltool-update intltool-merge\ - cscope.files cscope.out etags.files make-gnucash-patch \ + cscope.files cscope.out etags.files \ make-gnucash-potfiles po/.intltool-merge-cache cscope.files: diff --git a/README b/README index 35fbc379aa..18f891ee43 100644 --- a/README +++ b/README @@ -439,10 +439,20 @@ Before you start developing GnuCash, you should do the following: Submitting a Patch: - This section has been moved to the file README.patches + Once you have done some work that you would like to submit, you need + to send a patch. There are two ways to submit a patch. First, if + you're using SVN and only made changes to existing SVN files you + can generate the patch using: - Please consult that file for details on using the script provided to make - patches suitable for submitting to the GnuCash development team. + svn diff > /tmp/mypatch + and send /tmp/mypatch to gnucash-devel@gnucash.org with `[PATCH]' + prefixed to the Subject: of the email. Note that this + ONLY WORKS if you have NOT added any new files to the source tree. -Thank you. + If your patch adds new files, use the `-N' flag to diff between a + clean directory and your development directory. E.g. + + $ diff -urN {gnucash-pristine} {gnucash-mydevel} > /tmp/mypatch + +Thank you. diff --git a/README.patches b/README.patches deleted file mode 100644 index c69f49eb35..0000000000 --- a/README.patches +++ /dev/null @@ -1,244 +0,0 @@ -############################################################ - Gnucash 1.9.x README.patches file. - -NOTE: THIS IS A DEVELOPMENT RELEASE!!! THIS VERSION HAS NOT -BEEN TESTED PROPERLY AND MAY DO ABSOLUTELY ANYTHING! - -USE AT YOUR OWN RISK (AND KEEP *LOTS* OF BACKUPS) - -If you want something a bit more tested, please use the -1.8 stable series. ------------------------------------------------------------- - -Submitting a Patch: - - Once you have done some work that you would like to submit, you need - to send a patch. There are two ways to submit a patch. First, if - you're using SVN and only made changes to existing SVN files you - can generate the patch using: - - svn diff > /tmp/mypatch - - and send /tmp/mypatch to gnucash-devel@gnucash.org with `[PATCH]' - prefixed to the Subject: of the email. Note that this - ONLY WORKS if you have NOT added any new files to the source tree. - - If your patch adds new files, use the `-N' flag to diff between a - clean directory and your development directory. E.g. - - $ diff -urN {gnucash-pristine} {gnucash-mydevel} > /tmp/mypatch - -******************************************************************* -NOTE: The rest of this file describes an out-of-date utility that has -not been adapted to SVN. Don't use it. -******************************************************************* - - If you've added new files then you should use a script called - "make-gnucash-patch" to help you create the patch for submission. - - The script make-gnucash-patch is a perl script provided with the - gnucash distribution that you can use to create your patch. The - rest of this file explains how to use that perl script. - - This file comes in two parts: - - A quick summary of the common ways to use make-gnucash-patch; and - - A "users guide" style section giving detailed information on all - the options for make-gnucash-patch. - -COMMON USAGE - - There are two methods. - - 1) Run ./make-gnucash-patch in your source directory. The script - will then create two directories ../diff and ../tmp. In ../tmp - it will then do a checkout of the cvs sources. If gnucash has - already been checked out into this directory then only an update - will occur. As a consequence of this you should make sure you - are merged with current CVS before running make-gnucash-patch or - you will find parts of the patch are reversing recent changes in - CVS. - - make-gnucash-patch will then use makepatch to create a patch - between the original directory and ../tmp/gnucash. makepatch - will ask you for a description of the patch. And then the diff - will be written to the diff file - ../diffs/gnucash-YYYYMMDD-hhmmss-.diff.gz where Y=year, - M=month, D=day, h=hour, m=minute, and s=second. - - make-gnucash-patch will then uuencode the diff to - ../diffs/.uue. - - There are three vars you can set in a ~/.gnucash-patch.rc file. - The file should look like this - ----------------------------------------------------------------------- -# -*- perl -*- - -$::should_uuencode = 0; -$::ask_description = 0; -$::diffcmd = "diff -up"; - -1; ----------------------------------------------------------------------- - This is basically a perl file that is sourced by the script. If - you don't want the diff to be uuencoded (say you'll send the - patch in email using mime and don't need it double encoded). Set - $::should_uuencode to 0. If you don't want makepatch to ask you - for the patch description (so the process is more automated - possibly) set $::ask_description to 0. If you want to use a - different diff command (not recommended for most) set $::diffcmd - to something else (say, "gdiff -up"). - - 2) The second method is basically described below but it also - includes the vars you can set from above. This method gives you - more control over which directories are used. - - First, set up your development directories as follows: - - < GnuCash home development directory > - | - |---- < directory containing original GnuCash sources > - | - |---- < directory containing your modified GnuCash sources > - - A concrete example of those directories might be: - - /home/me/gnucash - | - |---- /home/me/gnucash/gnucash.pristine (original sources) - | - |---- /home/me/gnucash/gnucash.mywork (original sources + my edits) - - Copy the make-gnucash-patch script to the home development - directory (/home/me/gnucash above). Now set three environment - variables to reflect the names of your directories. Given the - names above, you would use: - - export GNC_MAKEPATCH_OLD_DIR=gnucash.pristine - export GNC_MAKEPATCH_NEW_DIR=gnucash.mywork - export GNC_MAKEPATCH_HOME_DIR=/home/me/gnucash - - Right before you make your patch, make sure *both* your working - and your pristine directories are in sync with cvs. Run 'cvs -z3 - update -dP' in both directories to ensure that is the - case. Updating from cvs in your working directory may cause - conficts in a file. You must resolve those conficts before making - a patch. - - Now run the script. Note that this script requires the programs - 'makepatch', 'gzip', a 'diff' work-a-like, and 'uuencode' (and, of - course, 'perl') to run. - - The same files will be generated for this method as the last - (../diffs/*.diff.gz and ../diffs/*.diff.gz.uue). - -USERS GUIDE - - make-gnucash-patch supports a number of ways of providing required - information. Some information can be provided through the use of - environment variables or in the .gnucash-patch.rc file in your - home directory. All information can be provided by command-line - options. - - In all cases, the options given on the command-line override the - information in both environment variables and the .gnucash-patch.rc - file. - Environment variables (where permitted) will override the - .gnucash-patch.rc file. - - The general format for using make-gnucash-patch is: - ./make-gnucash-patch - - where valid options are (in arbitrary order): - --help, --h Display a short help message explaining available - options. - - --prefix "homedir" Specifies the home directory path to use. This path is - prepended to both the new and old directory names to - give the full path for those directories. - Defaults to: the parent directory. - Environment variable: GNC_MAKEPATCH_HOME_DIR - - --old "olddir" The name of the directory containing the "pristine" or - unmodified copy of the gnucash CVS tree. - The directory path as determined by --prefix is prepended - to this name to give the full directory path. - Defaults to: ../tmp and will create if it doesn't exist. - Environment variable: GNC_MAKEPATCH_OLD_DIR - - --new "newdir" The name of the directory containing the modified copy of - the gnucash CVS tree. - The directory path as determined by --prefix is prepended - to this name to give the full directory path. - Defaults to: the current directory. - Environment variable: GNC_MAKEPATCH_NEW_DIR - - --diff "diffname" The name to give to the output ("diff") file containing - the patch code. - Defaults to: gnucash-YYYYMMDD-HHmmSS-XXXX.diff - where: YYYY = current year (4 digit form) - MM = current month (2 digit form) - DD = current date (2 digit form) - HH = current hour (24-hour 2 digit form) - mm = current minutes (2 digit form) - SS = current seconds (2 digit form) - XXXX = userid of current user (arbitrary length) - - --diffcmd "command" The command to give to makepatch to generate the - differences between two files. - *NOT* Recommended for most users, only for those whom - diff -up is non-functional. - Defaults to: diff -up - - --file "filename" Generate a patch for ONLY this file. The path within - the CVS tree must be specified (eg. src/MultiLedger.c) or - the file cannot be matched. You can specify multiple files - by seperating them by commas. You can also include this - option multiple times. - You *CANNOT* use this option with wildcards, regexps, or - partial matches. - Defaults to: none. - See Also: --manifest - - --manifest "file" Use "file" as a manifest file (file that contains a list - of all files to be compared in the making of the diff). - Manifest files must contain one filename per line. Lines - starting with # are ignored. - ---ignore "igname" Name of the file in the parent directory which contains - regular expressions matching files which are to be excluded - from the patch. This is in addition to a number of files - which are automatically excluded by the script. - Defaults to: none. - - --uuencode Specifies whether the resultant diff file should be - --nouuencode uuencoded or not. uuencoding is a way of encrypting the file - so that it is less likely to be corrupted during transmission - over the internet. You should generally use it. - Defaults to: On. - .gnucash-patch.rc file: Yes - ("$::should_uuencode = 0;" to override default). - - --zip Specifies whether the resultant diff file should be - --nozip compressed or not. This is not always necessary when the - patch is a small one. - Defaults to: On. - - --ask Controls whether makepatch should ask for a description of - --noask this patch or not. - Defaults to: On. - .gnucash-patch.rc file: Yes - ("$::ask_description = 0;" to override default). - - -THINGS TO NOTE - - the script assumes (when using defaults) that it is being executed in the - top directory of the modified CVS tree. This can be overridden by specifying - prefix, old, and new directories. - - the script assumes that both the "pristine" and modified copy are children - of the same parent directory. - - the script will check out a "pristine" copy of the CVS tree automatically if - it cannot find the old directory you specify. - - - Thanks in advance for your contribution! diff --git a/make-gnucash-patch.in b/make-gnucash-patch.in deleted file mode 100644 index b6cc3f102d..0000000000 --- a/make-gnucash-patch.in +++ /dev/null @@ -1,312 +0,0 @@ -#!@-PERL-@ -w -# -*- perl -*- -# -# This perl script is used to make a patch for your GnuCash -# development work. All patches should be submitted to the -# mailing list gnucash-devel@gnucash.org. For more info -# consult README.patches -# -# WARNING: By default, this script will checkout an entire -# up to date copy of the source tree in ../tmp/gnucash/. -# -# In order to prevent patches which reverse recent changes -# made in CVS, make sure to "cvs update" in both -# directories before running make-gnucash-patch. -# -# This script requires the programs 'makepatch', 'gzip', -# a 'diff' work-a-like, and 'uuencode'. -# -# Author: Dave Peticolas - -use strict; - -use File::Basename; -use Getopt::Long; - -$::ask_description = 1; -$::should_uuencode = 1; -$::diffcmd = "diff -up"; - -die "This utility has not been updated to use SVN. Sorry, just use diff(1)."; - -my $rcfile = $ENV{"HOME"} . "/.gnucash-patch.rc"; - -if (-f $rcfile) { - require $rcfile; -} - -########################################################### -# This section must be configured for your own setup. # -########################################################### - -# The directory with the original gnucash sources -my $old = undef; - -chomp(my $cwd = `pwd`); - -my ($new, $gnc_home) = fileparse($cwd); - -########################################################### -# This section should not need to be modified. # -########################################################### - -# Allow the user to override the defaults with evnt vars. - -if($ENV{'GNC_MAKEPATCH_OLD_DIR'}) { - $old = $ENV{'GNC_MAKEPATCH_OLD_DIR'}; -} - -if($ENV{'GNC_MAKEPATCH_NEW_DIR'}) { - $new = $ENV{'GNC_MAKEPATCH_NEW_DIR'}; -} - -if($ENV{'GNC_MAKEPATCH_HOME_DIR'}) { - $gnc_home = $ENV{'GNC_MAKEPATCH_HOME_DIR'}; -} - -########################################################### -# Make sure makepatch exists before going on # -########################################################### - -open(OLDOUT, ">&STDOUT"); -open(OLDERR, ">&STDERR"); -open(STDOUT, "> /dev/null") || die "Can't redirect stdout"; -open(STDERR, "> /dev/null") || die "Can't redirect stderr"; -my $test = system('makepatch', "-help"); -close(STDOUT); -close(STDERR); -open(STDOUT, ">&OLDOUT"); -open(STDERR, ">&OLDERR"); -close(OLDOUT); -close(OLDERR); - -if($test == -1) { - print "No makepatch installed. Exiting\n"; - exit(10); -} - - -########################################################### -# Now, check if anything specified on command line # -########################################################### - -my $result; -my $help; -my $zip = 1; # defaults to on -my $diffname = undef; -my $ignorename = undef; -my @filename = (); -my $manifest = undef; - -$result = GetOptions("old=s" => \$old, "new=s" => \$new, - "prefix=s" => \$gnc_home, "help" => \$help, - "file=s" => \@filename, "ask!" => \$::ask_description, - "diff=s" => \$diffname, "uuencode!" => \$::should_uuencode, - "diffcmd!" => \$::diffcmd, "zip!" => \$zip, - "ignore=s" => \$ignorename, "manifest=s" => \$manifest); - -if ($help or $result == 0) { - printf "Help information\n\n"; - printf "make-gnucash-patch accepts the following arguments:\n"; - printf "--old \"olddir\" Directory of \"pristine\" copy\n"; - printf "--new \"newdir\" Directory with modified copy\n"; - printf "--prefex \"homedir\" Full path of parent directory\n"; - printf "--diff \"diffname\" Output name for diff file\n"; - printf "--diffcmd \"cmd\" Command to compare two files\n"; - printf "--file \"filename\" Make patch for filename ONLY\n"; - printf "--manifest \"file\" Use file as a manifest file\n"; - printf "--ignore \"igname\" File containing file matches to ignore\n"; - printf "--(no)uuencode Enable or disable uuencoded output\n"; - printf " (Defaults to enabled)\n"; - printf "--(no)zip Enable or disable gzipped output\n"; - printf " (Defaults to enabled)\n"; - printf "--(no)ask Enable or disable prompting for description\n"; - printf " (Defaults to enabled)\n"; - printf "and of course:\n"; - printf "--help Displays this text\n"; - printf "\nAll options can be abbreviated to their shortest unique\n"; - printf " form: --o, --ne, --p, --d, --diffc, --f, --m, --i,\n"; - printf " --u/--nou, --z/--noz, --a/--noa, and --h\n"; - printf "\n"; - exit 1; -} - -# if explicit filename given, build required MANIFEST file - -@filename = split(/,/,join(',',@filename)); - -if (@filename) { - open (FN, ">$gnc_home/tmp.MANIFEST") or die "Couldn't create MANIFEST file"; - printf (FN "# Temporary manifest file for make-gnucash-patch -f option\n"); - printf (FN "\n"); - foreach my $part (@filename) { - printf (FN "%s\n", $part); - } - close (FN); -} - -# Switch to the home directory -print "Changing directory to $gnc_home\n"; -chdir $gnc_home or die "Can't cd!\n"; - -if (not defined($old)) { - if (not -f "$new/CVS/Root") { - print "Source not checked out of CVS and no \$old set. Quitting...\n"; - exit(1); - } - if (not -d "tmp") { - mkdir "tmp", 0755; - } - chdir "tmp"; - system("cvs -d `cat ../$new/CVS/Root` co gnucash"); - chdir ".."; - $old = "tmp/gnucash"; -} - -chdir $gnc_home . "/" . $new or die "Can't cd!\n"; -# Start out with our basic makepatch arguments -my @args = ('-verbose', '-exclude-vc'); - -# Push the diff command value -push(@args, '-diff', "$::diffcmd"); - -if (not $::ask_description) { - push(@args, '-description', ''); -} - -# If -f options given, use generated manifest file -# otherwise, add exclusions and proceed as normal -if (@filename) { - push(@args, '-manifest', "$gnc_home/tmp.MANIFEST"); -} -elsif (defined($manifest)) { - if (not $manifest =~ m#/#) { - $manifest = "$cwd/$manifest"; - } - push(@args, '-manifest', "$manifest"); -} -else { - # Add in the exclude patterns from the __DATA__ section - push_exclusions(\@args); -} - -sub push_exclusions { - my $args = shift; - foreach my $pat () { - chomp($pat); - push(@{$args}, '-exclude', $pat) if $pat; - } - if (defined ($ignorename)) { - $ignorename = "../" . $ignorename; - if (-e $ignorename) { - open (IG, $ignorename) or die "Couldn't open $ignorename"; - foreach my $igf () { - chomp ($igf); - push(@{$args}, '-exclude', $igf) if $igf; - } - close (IG); - } - } - my @cvsignores = `find . -name '.cvsignore'`; - foreach my $one_ignore (@cvsignores) { - my ($name, $path) = fileparse($one_ignore); - open (IG, $one_ignore); - foreach my $fl () { - chomp $fl; - $path =~ s/^\.\///; - push(@{$args}, '-exclude', $path . $fl) if $fl; - } - close (IG); - } -} -# Add the from and to directories for makepatch -push(@args, $old, $new); -print "Arguments are: " . join("; ", @args) . "\n"; - -chdir $gnc_home or die "Can't cd!\n"; - -# Erase the old files -#unlink('gnc.diff', 'gnucash.diff.gz', 'gnucash.diff.gz.uue'); - -if (not -d "diffs") { - mkdir "diffs", 0755; -} - -my $outfilename; - -if (not defined($diffname)) { - my $date = `date '+%Y%m%d-%H%M%S'`; - chomp($date); - my $who = `whoami`; - chomp($who); - - $outfilename = "gnucash-$date-$who.diff"; -} -else { - $outfilename = $diffname; -} - -# Invoke makepatch with standard out redirected to 'gnucash.diff' -open(OLDOUT, ">&STDOUT"); -open(STDOUT, "> diffs/$outfilename") || die "Can't redirect stdout"; -system('makepatch', @args); -close(STDOUT); -open(STDOUT, ">&OLDOUT"); -close(OLDOUT); -print "makepatch done\n"; - -# Compress the patch if required -if ($zip) { - if (-f "diffs/$outfilename") { - system("gzip", "-9vf", "diffs/$outfilename"); - } -} - -# UU encode the patch if required - -# if $zip is true, then -# 'gnucash.diff.gz.uue' is the file you send. -if ($zip and -f "diffs/$outfilename.gz" and $::should_uuencode) { - system("uuencode diffs/$outfilename.gz $outfilename.gz > diffs/$outfilename.gz.uue"); - print "diffs/$outfilename.gz.uue\n"; -} -else { - if (not $zip and -f "diffs/$outfilename" and $::should_uuencode) { - system("uuencode diffs/$outfilename $outfilename > diffs/$outfilename.uue"); - print "diffs/$outfilename.uue\n"; - } -} - - -exit(0); - -__DATA__ - -#*# -*.P -*.pp -*.a -*.bak -*.bin -*.diff -*.diffs -*.gmo -*.la -*.lai -*.lo -*.loT -*.log -*.mo -*.moc -*.o -*.orig -*.ignmgp -*.patch -*.rej -*.tar.gz -*.wrap -*.xac.*.xac -*~ -.#* -doc/gnc-prices.1 -doc/gnucash.1 diff --git a/packaging/win32/install.sh b/packaging/win32/install.sh index 644bd165e9..fe226fff35 100755 --- a/packaging/win32/install.sh +++ b/packaging/win32/install.sh @@ -45,7 +45,7 @@ function prepare() { level1=$(basename ${_REPOS_UDIR}) level2=$(basename $(dirname ${_REPOS_UDIR}))"/"$level1 for mydir in $level0 $level1 $level2; do - if [ -f $mydir/make-gnucash-patch.in ]; then + if [ -f $mydir/make-gnucash-potfiles.in ]; then die "Do not save install.sh in the repository or one its parent directories" fi done