Re: problems with building a patch

2007-11-12 Thread Matthias Apitz
El día Sunday, November 11, 2007 a las 07:17:55PM +0200, Giorgos Keramidas 
escribió:

> On 2007-11-11 16:02, Matthias Apitz <[EMAIL PROTECTED]> wrote:
> >
> > Hello,
> >
> > I've build a patch for 'nn-6.7.3' to add support for RFC1522 to my
> > beloved news-reader. Before giving it away I was trying it on a fresh
> > workspace of the /usr/ports/news/nn and run into the problem that
> > new files which brings the patch to the tree are always created
> > in the current working dir, even if I create them before with touch(1),
> > existing files, like 'answer.c' in the example below, get patched
> > correctly:
> >
> > $ /usr/ports/news/nn/work
> > $ touch nn-6.7.3/PATCH.RFC1522
> > $ patch < ../myRFC1522.patch
> > Hmm...  Looks like a unified diff to me...
> > The text leading up to this was:
> > --
> > |diff -N -r -u -X exclude nn-6.7.3/PATCH.RFC1522 
> > nn-6.7.3.patched/PATCH.RFC1522
> > |--- nn-6.7.3/PATCH.RFC1522 Thu Jan  1 01:00:00 1970
> > |+++ nn-6.7.3.patched/PATCH.RFC1522 Sat Nov 10 11:04:58 2007
> > --
> 
> Here's the problem.
> 
> The patch files for ports should *not* include the `nn-6.7.3' part, like
> this one.  They should be relative to the toplevel directory of the
> unzipped/untarred port, i.e.:
> 
> diff -N -u PATCH.RFC1522.orig PATCH.RFC1522
> --- PATCH.RFC1522.orig Thu Jan  1 01:00:00 1970
> +++ PATCH.RFC1522 Sat Nov 10 11:04:58 2007

After a lot of tests I've found the solution:

I'm creating the patch with:

$ diff -Naur -X exclude nn-6.7.3 nn-6.7.3.patched > diff

while having in 'nn-6.7.3' a 'make clean' version of the original
tree and in 'nn-6.7.3.patched' a 'make clean' version of my modified
source tree; the exclude file just says:

$ cat exclude
*.orig

i.e. excludes the files *.orig which I also have in 'nn-6.7.3';

the trick is applying the patch as:

$ cd /usr/ports/news/nn/work
$ patch -p0 < ../.mywork/diff

i.e. using the -p0; without -p0 the new files end up in the current
directory, while with -p0 they get created in the right place. I've
read the man page of patch again and again; it explains the function
of -pN but not this effect :-(

matthias

-- 
Matthias Apitz
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: problems with building a patch

2007-11-12 Thread Matthias Apitz
El día Sunday, November 11, 2007 a las 07:17:55PM +0200, Giorgos Keramidas 
escribió:

> > Hmm...  Looks like a unified diff to me...
> > The text leading up to this was:
> > --
> > |diff -N -r -u -X exclude nn-6.7.3/PATCH.RFC1522 
> > nn-6.7.3.patched/PATCH.RFC1522
> > |--- nn-6.7.3/PATCH.RFC1522 Thu Jan  1 01:00:00 1970
> > |+++ nn-6.7.3.patched/PATCH.RFC1522 Sat Nov 10 11:04:58 2007
> > --
> 
> Here's the problem.
> 
> The patch files for ports should *not* include the `nn-6.7.3' part, like
> this one.  They should be relative to the toplevel directory of the
> unzipped/untarred port, i.e.:
> 
> diff -N -u PATCH.RFC1522.orig PATCH.RFC1522
> --- PATCH.RFC1522.orig Thu Jan  1 01:00:00 1970
> +++ PATCH.RFC1522 Sat Nov 10 11:04:58 2007

In this case what would be the best way to produce a recursive
patch file for this set of patched sources:

$ find . -name '*.orig' -print
./conf/s-linux.h.orig
./man/nn.1.nov.orig
./chset.c.orig
./aux.sh.orig
./answer.c.orig
./chset.h.orig
./news.c.orig
./xmakefile.orig
./db.c.orig
./global.c.orig
./global.h.orig
./more.c.orig
./news.h.orig
./pack_name.c.orig
./save.c.orig
./tables/applemacxiso.tab.orig
./tables/atarixiso.tab.orig
./tables/cp437xiso.tab.orig
./tables/cp850xiso.tab.orig
./tables/decxiso.tab.orig
./tables/isoxapplemac.tab.orig
./tables/isoxatari.tab.orig
./tables/isoxcp437.tab.orig
./tables/isoxcp850.tab.orig
./tables/isoxdec.tab.orig
./tables/isoxnext.tab.orig
./tables/nextxiso.tab.orig
./variable.c.orig
./nn.c.orig
./term.c.orig
./folder.c.orig

where the directory 'tables' and the files below this dir
are new files, i.e. their original files are just empty.

Thx

matthias
-- 
Matthias Apitz
b http://gurucubano.blogspot.com/
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: problems with building a patch

2007-11-11 Thread Giorgos Keramidas
On 2007-11-11 16:02, Matthias Apitz <[EMAIL PROTECTED]> wrote:
>
> Hello,
>
> I've build a patch for 'nn-6.7.3' to add support for RFC1522 to my
> beloved news-reader. Before giving it away I was trying it on a fresh
> workspace of the /usr/ports/news/nn and run into the problem that
> new files which brings the patch to the tree are always created
> in the current working dir, even if I create them before with touch(1),
> existing files, like 'answer.c' in the example below, get patched
> correctly:
>
> $ /usr/ports/news/nn/work
> $ touch nn-6.7.3/PATCH.RFC1522
> $ patch < ../myRFC1522.patch
> Hmm...  Looks like a unified diff to me...
> The text leading up to this was:
> --
> |diff -N -r -u -X exclude nn-6.7.3/PATCH.RFC1522 
> nn-6.7.3.patched/PATCH.RFC1522
> |--- nn-6.7.3/PATCH.RFC1522 Thu Jan  1 01:00:00 1970
> |+++ nn-6.7.3.patched/PATCH.RFC1522 Sat Nov 10 11:04:58 2007
> --

Here's the problem.

The patch files for ports should *not* include the `nn-6.7.3' part, like
this one.  They should be relative to the toplevel directory of the
unzipped/untarred port, i.e.:

diff -N -u PATCH.RFC1522.orig PATCH.RFC1522
--- PATCH.RFC1522.orig Thu Jan  1 01:00:00 1970
+++ PATCH.RFC1522 Sat Nov 10 11:04:58 2007

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"