distfetch helps you to fetch all the distfiles you need to compile
your packages. Only the required distfiles are downloaded.
This commit is contained in:
parent
06308c9585
commit
e2a5a561e8
6 changed files with 322 additions and 0 deletions
2
pkgtools/distfetch/DESCR
Normal file
2
pkgtools/distfetch/DESCR
Normal file
|
@ -0,0 +1,2 @@
|
|||
distfetch helps you to fetch all the distfiles you need to compile
|
||||
your packages. Only the required distfiles are downloaded.
|
33
pkgtools/distfetch/Makefile
Normal file
33
pkgtools/distfetch/Makefile
Normal file
|
@ -0,0 +1,33 @@
|
|||
# $NetBSD: Makefile,v 1.1.1.1 2002/09/30 08:37:13 martti Exp $
|
||||
|
||||
DISTNAME= distfetch-20020930
|
||||
CATEGORIES= pkgtools
|
||||
MASTER_SITES= # empty
|
||||
DISTFILES= # empty
|
||||
|
||||
MAINTAINER= martti@netbsd.org
|
||||
HOMEPAGE= http://www.pkgsrc.org/
|
||||
COMMENT= Script to fetch only required distribution files
|
||||
|
||||
EXTRACT_ONLY= # defined
|
||||
WRKSRC= ${WRKDIR}
|
||||
NO_CHECKSUM= # defined
|
||||
NO_PATCH= # defined
|
||||
NO_CONFIGURE= # defined
|
||||
|
||||
.include "../../mk/bsd.prefs.mk"
|
||||
|
||||
do-build:
|
||||
.for i in distfetch distfetch.1 distfetch.conf
|
||||
${SED} "s+__PREFIX__+${PREFIX}+g" < ${FILESDIR}/${i} > ${WRKSRC}/${i}
|
||||
.endfor
|
||||
|
||||
do-install:
|
||||
${INSTALL_SCRIPT} ${WRKSRC}/distfetch ${PREFIX}/bin/distfetch
|
||||
${INSTALL_MAN} ${WRKSRC}/distfetch.1 ${PREFIX}/man/man1
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/distfetch
|
||||
${INSTALL_DATA} ${WRKSRC}/distfetch.conf \
|
||||
${PREFIX}/share/examples/distfetch/distfetch.conf
|
||||
|
||||
.include "../../mk/bsd.pkg.mk"
|
||||
|
5
pkgtools/distfetch/PLIST
Normal file
5
pkgtools/distfetch/PLIST
Normal file
|
@ -0,0 +1,5 @@
|
|||
@comment $NetBSD: PLIST,v 1.1.1.1 2002/09/30 08:37:13 martti Exp $
|
||||
bin/distfetch
|
||||
man/man1/distfetch.1
|
||||
share/examples/distfetch/distfetch.conf
|
||||
@dirrm share/examples/distfetch
|
161
pkgtools/distfetch/files/distfetch
Executable file
161
pkgtools/distfetch/files/distfetch
Executable file
|
@ -0,0 +1,161 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: distfetch,v 1.1.1.1 2002/09/30 08:37:14 martti Exp $
|
||||
#
|
||||
# Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This code is derived from software contributed to The NetBSD Foundation
|
||||
# by Martti Kuparinen.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the NetBSD
|
||||
# Foundation, Inc. and its contributors.
|
||||
# 4. Neither the name of The NetBSD Foundation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
#
|
||||
# This script helps you to fetch distfiles for packages.
|
||||
#
|
||||
# See also:
|
||||
#
|
||||
# - distfetch(1)
|
||||
# - __PREFIX__/share/examples/distfetch/distfetch.conf
|
||||
#
|
||||
PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PATH}"
|
||||
|
||||
# Default settings
|
||||
CONFIG="__PREFIX__/etc/distfetch.conf"
|
||||
PKGSRCDIR="${PKGSRCDIR:=/usr/pkgsrc}"
|
||||
DISTDIR="`cd ${PKGSRCDIR} && make -V DISTDIR`"
|
||||
TEMPFILE="/tmp/`basename $0`.$$"
|
||||
VERBOSE=
|
||||
|
||||
usage() {
|
||||
cat << EOF
|
||||
|
||||
Usage: `basename $0` [options]
|
||||
|
||||
Options:
|
||||
|
||||
-c filename Location of the configuration file
|
||||
-d directory Location of the distribution files
|
||||
-s directory Location of pkgsrc
|
||||
|
||||
-h This help text
|
||||
-v Be more verbose
|
||||
|
||||
Default settings:
|
||||
|
||||
-c ${CONFIG}
|
||||
-d ${DISTDIR}
|
||||
-s ${PKGSRCDIR}
|
||||
|
||||
Example:
|
||||
|
||||
# `basename $0` -c ~/.distfetchrc
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# main()
|
||||
#
|
||||
|
||||
# Read command line arguments
|
||||
ARGV=`getopt c:d:hs:v $*`
|
||||
[ $? != 0 ] && usage
|
||||
set -- ${ARGV}
|
||||
for i; do
|
||||
case "${i}" in
|
||||
-c)
|
||||
CONFIG="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-d)
|
||||
DISTDIR="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-h)
|
||||
usage
|
||||
;;
|
||||
-s)
|
||||
PKGSRCDIR="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-v)
|
||||
VERBOSE=YES
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check if DISTDIR could be set
|
||||
DIRECTORY="`cd ${PKGSRCDIR} && make -V DISTDIR DISTDIR=${DISTDIR}`"
|
||||
if [ "x${DIRECTORY}" != "x${DISTDIR}" ]; then
|
||||
echo "Error: you already have DISTDIR=${DIRECTORY} in /etc/mk.conf"
|
||||
exit 1
|
||||
fi
|
||||
DISTDIR="${DIRECTORY}"
|
||||
export DISTDIR
|
||||
|
||||
# Read the configuration file
|
||||
if [ ! -r "${CONFIG}" ]; then
|
||||
echo "`basename $0`: ${CONFIG} not found"
|
||||
exit 1
|
||||
fi
|
||||
echo "Reading package list from ${CONFIG}"
|
||||
PKGS=
|
||||
for i in `sed -e 's+#.*++' -e '/^$/d' < ${CONFIG} | tr '\n' ' '`
|
||||
do
|
||||
if [ ! -d "${PKGSRCDIR}/${i}" ]; then
|
||||
echo "Warning: unknown package ${i}"
|
||||
continue
|
||||
fi
|
||||
echo "===> ${i}"
|
||||
PKGS="${PKGS} ${i}"
|
||||
done
|
||||
|
||||
# Generate a list of missing files
|
||||
echo "Processing packages"
|
||||
(cd ${PKGSRCDIR} && make SITE_SPECIFIC_PKGS="${PKGS}" SPECIFIC_PKGS=1 \
|
||||
fetch-list) > "${TEMPFILE}"
|
||||
|
||||
# Fetch distfiles into ${DISTDIR}
|
||||
echo "Fetching missing distfiles into ${DISTDIR}"
|
||||
if [ -z "${VERBOSE}" ]; then
|
||||
sh "${TEMPFILE}" || exit 1
|
||||
else
|
||||
echo "Running \"sh -x ${TEMPFILE}\""
|
||||
sh -x "${TEMPFILE}" || exit 1
|
||||
fi
|
||||
|
||||
rm -f "${TEMPFILE}"
|
||||
echo "All done"
|
108
pkgtools/distfetch/files/distfetch.1
Normal file
108
pkgtools/distfetch/files/distfetch.1
Normal file
|
@ -0,0 +1,108 @@
|
|||
.\" $NetBSD: distfetch.1,v 1.1.1.1 2002/09/30 08:37:13 martti Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This code is derived from software contributed to The NetBSD Foundation
|
||||
.\" by Martti Kuparinen.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the NetBSD
|
||||
.\" Foundation, Inc. and its contributors.
|
||||
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
|
||||
.\" contributors may be used to endorse or promote products derived
|
||||
.\" from this software without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd September 30, 2002
|
||||
.Dt DISTFETCH 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm distfetch
|
||||
.Nd fetch distribution files for packages
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl c Ar filename
|
||||
.Op Fl d Ar destdir
|
||||
.Op Fl h
|
||||
.Op Fl s Ar srcdir
|
||||
.Op Fl v
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a tool to fetch only required distfiles for the packages you
|
||||
are going to install.
|
||||
The packages are defined in a configuration file.
|
||||
.Pp
|
||||
The distfiles are stored in
|
||||
.Pa /usr/pkgsrc/distfiles
|
||||
but this can be changed by using the
|
||||
.Fl d Ar destdir
|
||||
argument or by setting the
|
||||
.Pa DISTDIR
|
||||
variable in
|
||||
.Pa /etc/mk.conf .
|
||||
.Pp
|
||||
Usage information is shown with the
|
||||
.Fl h
|
||||
flag.
|
||||
To get a better idea what's going on, use the
|
||||
.Fl v
|
||||
flag.
|
||||
.Sh ENVIRONMENT
|
||||
.Bl -tag -width PKGSRCDIR
|
||||
.It Ev PKGSRCDIR
|
||||
Location of the
|
||||
.Nx
|
||||
Package System.
|
||||
By default this is
|
||||
.Pa /usr/pkgsrc
|
||||
but it can be changed either with the
|
||||
.Fl s Ar srcdir
|
||||
argument or by defining the
|
||||
.Ev PKGSRCDIR
|
||||
variable.
|
||||
.El
|
||||
.Sh FILES
|
||||
The default configuration file is
|
||||
.Pa __PREFIX__/etc/distfetch.conf
|
||||
but this can be changed with the
|
||||
.Fl c Ar filename
|
||||
argument.
|
||||
.Pp
|
||||
An example of the configuration file can be found in the
|
||||
.Pa __PREFIX__/share/examples/distfetch
|
||||
directory.
|
||||
.Sh AUTHORS
|
||||
This script was written by
|
||||
.An Martti Kuparinen Aq martti@netbsd.org
|
||||
and improved by several other
|
||||
.Nx
|
||||
users.
|
||||
.Sh BUGS
|
||||
It is not possible to use
|
||||
.Fl d Ar destdir
|
||||
if
|
||||
.Pa /etc/mk.conf
|
||||
has a
|
||||
.Pa DISTDIR
|
||||
setting.
|
13
pkgtools/distfetch/files/distfetch.conf
Normal file
13
pkgtools/distfetch/files/distfetch.conf
Normal file
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# $NetBSD: distfetch.conf,v 1.1.1.1 2002/09/30 08:37:13 martti Exp $
|
||||
#
|
||||
# Syntax:
|
||||
# =======
|
||||
#
|
||||
# <category>/<name>
|
||||
#
|
||||
|
||||
# Define your packages here
|
||||
shells/bash2
|
||||
shells/bash2-doc
|
||||
x11/kde3
|
Loading…
Reference in a new issue