creating "local" ports (fwd)

Lowell Gilbert freebsd-ports-local at be-well.ilk.org
Fri Nov 3 21:10:22 UTC 2006


You've got a bunch of misconceptions. In this case, that turns out to
be good, because the solutions are a lot simpler than you think.

Charles Sprickman <spork at bway.net> writes:

> 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

Yes, you can look at category creation in the porters' handbook, but
there is an easier approach: just put your own patches in the files
directory of the port.  This lets you take advantage of changes to the
official port.

> 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.

See /usr/ports/Mk/bsd.local.mk; it is the hook that will let you do
your category customization without needing to actually modify any
official files.

> 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. 

Not true.  cvsup will only touch files that it thinks *it* originally
put in the tree.  I haven't used portsnap, but it looks as though the
same applies.  Therefore...

>                                                       How can this be
> dealt with in a way that none of the current/future port update
> methods will not clobber our local tree?

it's not a problem.

> -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?

I don't know a way to do exactly this.  My advice would be to finesse
the problem: either by using portupgrade, or by using the "real" port
(e.g., qmail rather than local-qmail) with your own patches, as I
explained earlier.

I hope that helps.


More information about the freebsd-ports mailing list