cvs commit: src/secure/lib/libssh Makefile config.h openbsd-compat,port-tun.c.patch version.h src/secure/usr.bin/ssh ssh_config.5.no_obj.patch src/secure/usr.sbin/sshd Makefile auth-passwd-freebsd.c auth2.c.patch servconf.c.patch ...

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Thu Sep 28 12:09:50 PDT 2006


Simon Schubert wrote:
corecode    2006/09/28 11:42:50 PDT

DragonFly src repository

  Modified files:
    secure/lib/libssh    Makefile config.h 
                         openbsd-compat,port-tun.c.patch version.h 
    secure/usr.bin/ssh   ssh_config.5.no_obj.patch 
    secure/usr.sbin/sshd Makefile auth-passwd-freebsd.c 
                         auth2.c.patch servconf.c.patch 
                         session.c.patch sshd.8.no_obj.patch 
                         sshd.c.patch sshd_config.5.no_obj.patch 
  Log:
  Update build infrastructure for openssh-4.4p1
I have to say that this patch framework is continually becoming a major pain in the ass.  Using vendor branches directly would allow me to resolve conflicts much faster than it is now.

I'm getting patch rejects which i have to fix manually, then i have to extract a diff again, update the copy in the source dir, try make depend or make all again, resolve the next patch, etc.  Updating the sources is complicated as well, because I don't have context in the .rej files, in comparison to conflict markers in CVS.

This system has to go, it is simply inefficient.  The argument "you directly see which patches are in our tree" doesn't hold true, because a cvs diff -r VENDORTAG for sure is less obscure than having to read Makefiles to find out which patch files even get used.

Patching headers produces another problem (like Peter Avalos noticed with libarchive):  When  sources include the header with #include "header.h", they will continue to use the unpatched header, because the patched one hangs around somewhere in /usr/obj and is by no means in the search path of cpp.  To circumvent this, you need to specify  CFLAGS+= -I${.OBJDIR} -I. -I-  and suff like this.

All in all, it is a loss in productivity.  CVS *does* have a feature for exactly this, called vendor branches, and it works flawlessly, the only thing you can't do is remove a patch and put the file back on the vendor branch, but this could be hacked in somehow, and even if, it is no big hassle.

cheers
 simon
--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \
Attachment:
signature.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00007.pgp
Type: application/octet-stream
Size: 252 bytes
Desc: "Description: OpenPGP digital signature"
URL: <http://lists.dragonflybsd.org/pipermail/commits/attachments/20060928/5561751a/attachment-0016.obj>


More information about the Commits mailing list