[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Features.



On Tue, Aug 22, 2000 at 02:12:23AM +0200, Hubert Feyrer wrote:
> >   - make 'enhancements' (read: faster, more POSIX compliant, etc..)
> >     from Espie (I could not hope to list them all, he's quite intimate
> > with
> >     the make sources atm and has done some related cleanups as well)
> 
> Todd/Marc: can either of you comment on these in more detail?
> What changes do need to be made to make(1), ... ?

I'd like 
 
 
> >   - make-maker  (mirroring distfiles quickly)
> 
> Can you please comment what that means?
> 
> 
> >   - 'piecemeal' packages, aka one egcs compile & fake install
> >      becomes egcs-java*tgz, egcs-fortran*tgz, egcs-c++*tgz;
> >      kdegames is another example of this
> 
> Cool thing! How do you build these - building several times in
> ports/lang/egcs/stable with various combinations of MAKE_<language> set,
> or do you emit all these binary pkgs after one compile run?

In x11/kde/games/Makefile:

    MULTI_PACKAGES=-kabalone -kasteroids -kblackbox -kmahjongg -kmines\
    -konquest -kpat -kpoker -kreversi -ksame -kshisen -ksirtet -ksmiletris \
    -ksnake -ksokoban

In infrastructure/mk/bsd.port.mk:

    .if defined(MULTI_PACKAGES) && empty(SUBPACKAGE)
    .  for _sub in ${MULTI_PACKAGES}

    _SUBPACKAGE_COOKIES+= ${_PACKAGE_COOKIE}${_sub}
    .    if ${FAKE:U} == "YES"
    ${_PACKAGE_COOKIE}${_sub}: ${_FAKE_COOKIE}
    .    else
    ${_PACKAGE_COOKIE}${_sub}: ${_INSTALL_COOKIE}
    .    endif
            @cd ${.CURDIR} && exec ${MAKE} package SUBPACKAGE='${_sub}' \
		FLAVOR='${FLAVOR}'

    .  endfor
    .endif

I'm sure this is not all there is to it but it is the obvious pieces that
are the basic magic behind the scenes.  Other pieces from other parts of
the referenced files might be used as well.  In general, I'd look for
SUBPACKAGE/MULTI_PACKAGE/FAKE in bsd.port.mk and in Makefile's ..

> >From observing the ports' Makefile, the further seems to be the case.
> Plus it seems to be special to that port only, not a general feature
> available for all ports?

See above, I think what you are seeing is many options regarding what to
build and package for egcs .. and the ability to turn them all on and off
with the 'MAKE_XXXX=Yes' ..


> One thing I didn't see in the OpenBSD feature list is pkg signing. Is that
> still work in progress?

I believe so, but again, I hope when Espie is back from his vacation he will
be in a mood to comment.  I know there was something about gzip streams
allowing arbitrary data to be inserted, thus signing a package with a zero
byte signature, then putting the actual signature into the package instead
of having a separate file is possible.  Same technique ah uses in ipsec,
etc .. I know there are other things in the queue that would simlify some
of the pkg_* tools .. like libpax allowing for no temporary extraction area
and such .. again, not sure of the status.

As I was writing this I thought about another feature OpenBSD has recently
introduced as of the 2.7 release .. which is /usr/local for all x based
packages.  This requires a modification to the config/cf files similar
to NetBSD .. we just make it a part of x itself instead of a package to
add to x .. since x is not a package itself for us .. but similar concepts,
different implementations.  At the same time we made some modifications to
the cf files so that if a -Dports were passed to xmkmf, it would propogate
correctly (also requires an enhancement to xmkmf) to allow for doing a fake
install of an x app that is targeted at a different DESTDIR than what the
package is finally installed to.  This allowed most x ports to be fake'ed
quite easily.

-- 
Todd Fries .. todd@fries.net

To unsubscribe: send mail to <majordomo@unixathome.org>
with "unsubscribe bsdports" in the body of the message