Re: problems with building a patch
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
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
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]"