freebsd-ports/ports-mgmt/portmaster/Makefile
Doug Barton eef8da8289 Update to version 3.1. In addition to the features listed below there are
numerous internal reorganizations of various sections of code; and several
informative messages have been updated to be more informative. :)

If you're interested in all the details you can review the svn logs at
http://svn.freebsd.org/viewvc/base/user/dougb/portmaster/

Catch Up With Ports Infrastructure
==================================
1. Switch to using DISTINFO_FILE instead of MD5_FILE
2. Use the SHA256 line from distinfo instead of MD5
3. The BEFOREPORTMK trick no longer works to list MASTER_SITES for all ports
so switch to the slightly slower but more reliable pm_make without it. This
will solve the problem of portmaster not fetching all distfiles in the
background.
4. In the case statement to select the appropriate release for package
fetching glob 9.0-CURRENT to handle snapshots as well.

Various Improvements
====================
1. If we fail, offer a suggestion for a shortcut to restart
2. In messages that refer to the INDEX file, use the variable to make it
clear what we're working with.
3. In dependency_check() be clear when we're using the INDEX
4. Dramatic (9-10 times) speedup in iport_from_origin() by making an
intelligent guess about what director{y|ies] to search in based on
the origin directory name which means we're almost always
looking in either exactly the right directory the first time, or
at worst (such as the py-* ports) a dramatically smaller subset.
5. If using --index-only and neither INDEXDIR nor PORTSDIR are set, set
INDEXDIR to $TMPDIR so that we can proceed. That makes PACKAGES the
only variable the user has to set to use --index-only and --packages-only
with no $PORTSDIR and no ports directory.

Bug Fixes
=========
1. For the determination of LOCALBASE:
	a. Don't try to use INDEX if PM_INDEX is not set
	b. Give a more meaningful error message
2. Be more careful to check that there is a line for the port in the INDEX
when working --index-only.
3. In the package fetch routine use a better string match to see if we have
already downloaded the directory listing. The previous one worked but would
match too many files for net* and x11*, especially when installing a lot of
ports. So add a '.' to differentiate these.
4. The --clean-packages and --clean-packages-all features were added just
a little too hastily, so overhaul them.
2010-10-30 04:43:43 +00:00

64 lines
1.7 KiB
Makefile

# New ports collection makefile for: portmaster
# Date created: 20 February 2006
# Whom: Doug Barton <dougb@FreeBSD.org>
#
# $FreeBSD$
#
# This port is self contained in the files directory.
#
PORTNAME= portmaster
PORTVERSION= 3.1
CATEGORIES= ports-mgmt
MASTER_SITES= http://dougbarton.us/Downloads/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}${EXTRACT_SUFX}.asc
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= dougb@FreeBSD.org
COMMENT= Manage your ports without external databases or languages
LICENSE= BSD
OPTIONS= BASH "Install programmable completions for Bash" off \
ZSH "Install programmable completions for zsh" off
PLIST_FILES= sbin/portmaster etc/portmaster.rc.sample
MAN8= portmaster.8
.include <bsd.port.pre.mk>
.if defined(WITH_BASH)
PLIST_FILES+= share/portmaster/bash-completions
PLIST_DIRS+= share/portmaster
.endif
.if defined(WITH_ZSH)
PLIST_FILES+= share/zsh/site-functions/_portmaster
.endif
verify: checksum
gpg --verify ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}.asc
do-build:
.for file in portmaster.sh portmaster.rc.sample
${SED} -e 's#/usr/local#${LOCALBASE}#g' ${WRKSRC}/${file}.in \
> ${WRKDIR}/${file}
.endfor
do-install:
${INSTALL_SCRIPT} ${WRKDIR}/portmaster.sh ${PREFIX}/sbin/portmaster
${INSTALL_DATA} ${WRKDIR}/portmaster.rc.sample ${PREFIX}/etc
${INSTALL_MAN} ${WRKSRC}/portmaster.8 ${MAN8PREFIX}/man/man8
post-install:
.if defined(WITH_BASH)
${MKDIR} ${PREFIX}/share/portmaster
${INSTALL_DATA} ${WRKSRC}/bash-completions ${PREFIX}/share/portmaster
.endif
.if defined(WITH_ZSH)
${MKDIR} ${PREFIX}/share/zsh/site-functions
${INSTALL_DATA} ${WRKSRC}/zsh-completions \
${PREFIX}/share/zsh/site-functions/_portmaster
.endif
.include <bsd.port.post.mk>