Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Aug 1997 17:49:09 -0600 (MDT)
From:      Bruce Gingery <bruce@home.gtcs.com>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   ports/4304: Recommendation re. Ports Collection
Message-ID:  <199708142349.RAA28160@home.gtcs.com>
Resent-Message-ID: <199708142350.QAA22011@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         4304
>Category:       ports
>Synopsis:       Recommendation re. Ports Collection
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 14 16:50:00 PDT 1997
>Last-Modified:
>Originator:     Bruce Gingery
>Organization:
Advanced Integrators, LC
>Release:        FreeBSD 2.2.1-RELEASE i386
>Environment:

		FreeBSD - all versions

>Description:

	  Currently, some ports are 20k, others are 8megs BEFORE
	extraction, and may require 20 megs to build and install.
	With varying net speeds, a 20k wonder is something that most
	people can just invoke a make on at any time, even if a fetch
	needs to be done before the make progresses. 

	   FreeBSD users are running systems with all kinds of 
	configurations, from massive servers like the ftp server at
	CDROM.com, to 4meg-RAM i486 wonders with a couple hundred
	megs of disk.

	   While the old standard of ``don't FTP during business hours''
	at the target site is far less observed today than it used to
	be, most people on modem connections don't really want to start
	an 8-meg download during Friday prime-time, unless they have
	a really primo connection to the net.

	   CDROM.com could also benefit from this change to port and
	package info when building new CD's.

	  Also why not an ``installed'' target?  This one is nearly there
	now.  Of course this one is easy as a shell alias.

>How-To-Repeat:

	N/A

>Fix:
	
     bsd.ports.mk target additions  (target / description)

	   fetch-size-get  (depends on fetch)
		creates a ${FILESDIR}/SIZES file equivalent to the md5 file
		with the size of each component.

	   size-of-fetch
		reverse-grep ${FILESDIR}/SIZES excluding pseudos below

	   make-size-get (depends on install)
		Well, if BUILD_SIZE is defined, merely uses it, else
		uses a ``just installed'' du -s ${WRKSRC} or ${WRKDIR}
		appends to ${FILESDIR}/SIZES with pseudo filename
		``size-of-make''

	   size-of-make
		Reports ${BUILD_SIZE} if defined, else
		grep's size-of-make from ${FILESDIR}/SIZES

	   install-size-get (depends on package)
		Uses ${INSTALL_SIZE} if defined, else
		runs wc -c piped from tar -xzf, appends to 
		${FILESDIR}/SIZES with pseudo filename ``size-of-install''

	   size-of-install
		Reports ${INSTALL_SIZE}, if defined, else
		greps size-of-install from ${FILESDIR}/SIZES

	   package-size-get (depends on package)
		Uses ${PACKAGE_SIZE}, if defined, else
		does a wc -c of the package tar-ball,
		inserts package distribution size into ${FILESDIR}/SIZES

	   size-of-package
		Reports ${PACKAGE_SIZE} if defined, else
		greps size-of-package from ${FILESDIR}/SIZES

	   port-size-get - depends on clean
		Uses ${PORT_SIZE} if defined, else
		does a du -s on ${.CURDIR}, replaces in ${FILESDIR}/SIZES
		hence with a couple of runs, will be accurate, even though
		it will change its own value.  puts in a psudo-filename
		``size-of-port''.  Perhaps it should automatically run
		twice.

	   size-of-port
		Reports ${PORT_SIZE} if defined, else
		greps size-of-port from ${FILESDIR}/SIZES - if compared
		with a current du gives a simple indication of possible
		modification of a port's content.

	   size
	   size-to-install-port
	   size-to-install-package
		cat ${FILESDIR}/SIZES, or better yet, invokes a Perl
		script that spits out the details with totals.  The
		``size'' target merely invokes the other two.

	   size-to-build
		check missing dependencies, include THEIR size-to-build's
		in a summary report.  This is the one to be used the most
		by end-users and administrators.  This one is the most
		work to implement, of course, and because of the target
		system state dependency, should't be aliased into a
		Makefile variable.

	   check-sizes
		Compares size values within the Makefile stated above
		with the sizes reported in the ${FILESDIR}/SIZES values.
		This is very like the ``checksum'' target, except that
		it would insure that the a make install, package, and
		clean have been executed.

	   installed:
		pkg_info `make package-name`

	   dwimnwis:
		Takes a bare directory and a URL and creates a completed
		port :))))


>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708142349.RAA28160>