cvs commit: src/share/mk bsd.pkg.mk bsd.prog.mk

Paul Richards paul at originative.co.uk
Mon Dec 20 16:38:11 PST 2004


On Mon, Dec 20, 2004 at 11:28:38PM +0200, Ruslan Ermilov wrote:
> On Mon, Dec 20, 2004 at 03:52:00PM +0000, Paul Richards wrote:
> > On Mon, Dec 20, 2004 at 03:46:56PM +0000, Paul Richards wrote:
> > > paul        2004-12-20 15:46:56 UTC
> > > 
> > >   FreeBSD src repository
> > > 
> > >   Modified files:
> > >     share/mk             bsd.prog.mk 
> > >   Added files:
> > >     share/mk             bsd.pkg.mk 
> > >   Log:
> > >   If PORTNAME is set in a system Makefile then hook into the ports
> > >   mechanisms to allow a package to be created. This paves the way
> > >   for packaging the main tree.
> > 
> > This is 90% working, I can create packages in the src tree by adding the following:
> > 
> > e.g for cat
> > 
> > PROG=   cat
> > PORTNAME=cat
> > PORTVERSION=    1
> > PORTREVISION=   1
> > CATEGORIES=bin
> > 
> > There are some loose ends though that need tidying up, particularly
> > clashes with some main targets in the ports makefile. I could do
> > with some ports people to help clean things up but decided it was
> > time to commit it to get other people involved.  It's a non-intrusive
> > addition at the moment until it's switched on in a Makefile.
> > 
> I think 90% is overestimation.  This doesn't seem to handle FILES,
> SCRIPTS, etc., at all that are so common in BSD makefiles.  Or am
> I wrong?  I like the idea though...

You're probably right. I've got a plan to add an option to install
that takes a package name and generates the plist as it does the
install so that things work properly. My initial aim was to show that
it's actually pretty simple to integrate the ports makefile
infrastructure into the main BSD mk files.

I've discussed offline with Colin a little bit and his approach is
very different. My motivation is that I use the BSD mk files a lot in
third party code, since it's a really nice development infrastructure
and I wanted to be able to combine using the BSD mk files and also
having an easy way to create packages.

For that reason I wanted a solution that is not tied to the system
build mechanism, which Colin's proposal is, but instead allows you
to use the excellent build env that FreeBSD has for developing code
that is outside of the FreeBSD tree. This approach allows that but
I accept that there's a fair bit more to do before it's finished.

I'm hoping that someone who understands our mk files better than I
do, especially the ports side of things, can develop the concept
further so that it's more polished.

I'll be working on the install patches next since that's a piece of
the solution that needs doing, so if someone picks up the mk files
part of it I'd be very grateful.

Paul.


More information about the cvs-src mailing list