On Fri, 31 Oct 2014 19:56:21 +0100 Baptiste Daroussin <b...@freebsd.org> wrote:
> Hi all,
> 
> tijl@ spotted an interesting point, distinfo and pkg-descr files files
> convenient are taking a lot of space for "free", we can reduce the size of the
> while ports tree by a factor 2 by simply merging them into one of the other
> files (Makefile and/or pkg-plist) from my testing it really devides
> significantly the size of the tree.
> 
> Problem is how to merge them if we want to.
> 
> What we do not want to loose:
> - Easyness of parsing distinfo
> - Easyness to get informations about the description
> 
> so far I have not been able to figure out a user friendly way
> 
> Ideas I got so far only concerns pkg-descr:
> Adding an entry in the Makefile for the WWW:
> WWW= bla
> or an entry in the plist: @www http...
> 
> for the description the Makefile is not suitable as multi line entry in
> Makefiles are painful
> Maybe a new keyword:
> @descr <<EOD
> mydesc
> in 
> multiline
> EOD
> 
> which could easily be added to the plist parser in pkg. But I'm do not find 
> that
> very friendly in particular for make(1) to extract the data.
> 
> Concerning the distinfo I have no idea.
> 
> so this mail is a call of ideas :), if nothing nice ideas is found we will 
> just
> do nothing here :)

For distinfo I was thinking about something like this in the Makefile:

DIST_FILES=     FOO BAR

FOO_FILE=       foo-1.0
FOO_SITES=      http://www.example.com/foo/
FOO_SIZE=       12345
FOO_SHA256=     0123456789abcdef.....

BAR_FILE=       bar-2.0
BAR_SITES=      http://www.example.com/bar/
BAR_SIZE=       54321
BAR_SHA256=     .....fedcba9876543210

If bsd.port.mk then contained this:
DIST_FILES?=    DIST
DIST_FILE?=     
${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}

Then for ports with a single distfile named after PORTNAME (the large
majority), the above would reduce to:

DIST_SITES=     http://www.example.com/foo/
DIST_SIZE=      12345
DIST_SHA256=    0123456789abcdef.....

Also, if BAR_SITES is the same as FOO_SITES you can use somthing like
BAR_SITES=${FOO_SITES} of course.


pkg-descr and pkg-plist will be around for a while I think but maybe pkg
could support an alternative syntax that is similar to the manifest file
included in the package.  This file (named Manifest maybe?) would include
a comment, description, install/deinstall scripts and a list of files and 
directories like this (copied from https://github.com/freebsd/pkg):

comment: Short package description
desc: |-
  Long package description
  goes here
www: http:///www.example.com/
files: |-
  bin/foo
  lib/bar
dirs: |-
  some/dir
scripts:
  post-install: |-
    #!/bin/sh
    echo post-install
  pre-install: |-
    #!/bin/sh
    echo pre-install
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to