[nycbug-talk] creating "local" ports (fwd)

Bjorn Nelson o_sleep at belovedarctos.com
Sat Nov 4 02:10:01 UTC 2006


Charles,

On Nov 3, 2006, at 3:30 PM, Charles Sprickman wrote:

> Hello all,
>
> I'm finding that there are a number of ports that we need to patch  
> for some functionality that's unique to our business (qmail,  
> mailfront, etc.). Currently we just do "make patch" and then apply  
> our patches.  This works, but is a bit of a pain to maintain.
>
> Is there a way to create a "local" category?  ie: /usr/ports/LOCAL

I hate to keep referring to my article but I go over this here:
http://www.onlamp.com/pub/a/bsd/2006/04/13/freebsd-build-system.html? 
page=2

Basically, you can create a port with this in the Makefile:
CATEGORIES=local
VALID_CATEGORIES+= ${CATEGORIES}

I have an example port here:
http://www.onlamp.com/bsd/2006/04/13/examples/Makefile

Thanks goes to freebsd-ports.freebsd.org for this tip actually (which  
is where I originally found out about it).

>
> We might occasionally look at the real qmail/mailfront/djbdns or  
> other ports and see if there's anything we want to pull in, but  
> we'd most likely be doing more work with merging in more of our own  
> patches/software.
>
> Is there some mechanism that I'm missing to deal with a local  
> category? I've been googling without much luck, and I didn't see  
> this addressed in the porter's handbook.
>
> Beyond that, I have a few other questions:
>
> -By default cvsup and (I assume portsnap) would nuke anything in / 
> usr/ports that was not part of the main ports tree.  How can this  
> be dealt with in a way that none of the current/future port update  
> methods will not clobber our local tree?

Add "local" to /usr/ports/.cvsignore

> -How does one handle packages that depend on say, qmail, but I now  
> want to
> depend on local-qmail?  I know portupgrade can be tought this by  
> setting
> an alternate pkgdep, but is there any clever way of doing this so  
> that when you're not using portupgrade the deps are adjusted?

Not sure how to handle this one.  You may need to just either make  
dependent packages or patch the Makefiles after you do a cvsup.

Besides that, cool tip about the patches being able to put in the  
files dir and the bsd.local.mk file.

-Bjorn




More information about the freebsd-ports mailing list