Hello kamel! On Mon, Aug 11, 2008 at 10:13:45AM -0700, kamel derouiche wrote: > hi,, > > how to write patch for pkgsrc ? > using pkgvi, mkpatches, patch? I need an example This is pretty simple, for example: $ export PKGSRCDIR="/usr/pkgsrc" $ cd ${PKGSRCDIR}/pkgtools/pkgdiff $ make install [...] $ cd ../../misc/dvtm $ make extract [...] $ pkgvi $(make show-var VARNAME=WRKSRC)/ [...] [hey, it's our friend, vi(1) (or the ${PKGEDITOR} or ${EDITOR} variable)! :-)] :888 [o] /* Why dvtm doesn't like getopt(3)? */ [ESC] :wq [...] pkgvi: File was modified. For a diff, type: pkgdiff /usr/pkgsrc/misc/dvtm/work/dvtm-0.4.1/dvtm.c $ pkgdiff /usr/pkgsrc/misc/dvtm/work/dvtm-0.4.1/dvtm.c # we'd like to see our patch [...] $NetBSD$ --- /usr/pkgsrc/misc/dvtm/work/dvtm-0.4.1/dvtm.c.orig 2008-05-10 18:39:01.000000000 +0200 [...] $ mkpatches $ cp $(make show-var VARNAME=WRKDIR)/.newpatches/* patches $ cat patches/patch-ab $NetBSD$ --- dvtm.c.orig 2008-05-10 18:39:01.000000000 +0200 However, this is the MAINTAINER-way, if you'd like to patch it with the pkgsrc-user way (for example on dvtm we need to adjust the config.h file for the customization): $ cd ${PKGSRCDIR/misc/dvtm $ mkdir -p ${PKGSRCDIR}/localpatches/misc/dvtm $ echo "LOCALPATCHES = /usr/pkgsrc/localpatches" >> /etc/mk.conf $ cp $(make show-var VARNAME=WRKSRC)/config.h \ > $(make show-var VARNAME=LOCALPATCHES)/misc/dvtm/config.h.orig $ cd $(make show-var VARNAME=LOCALPATCHES)/misc/dvtm $ vi config.h.orig [...] :24 :s/RED/CYAN/ :wq config.h [...] $ diff -u config.h.orig config.h > patch-co $ cd ${PKGSRCDIR}/misc/dvtm $ make install # Finally we can enjoy dvtm with the cyan borders :-) The "magic" variable in this example is LOCALPATCHES, the LOCALPATCHES is like category/package/patches directory. However, the first is for the MAINTAINER and MAINTAINERs usually patch the source only for portability or security, the latter is for the pkgsrc user, that for example would like a cyan border. :-) For more information please read ``The pkgsrc guide''... ...and happy (pkg)diff(1)ing! :-) Ciao, Leonardo -- Leonardo Taccari (leot) | http://leot.netsons.org/
Attachment:
pgp32j_rGslhx.pgp
Description: PGP signature