diff options
Diffstat (limited to 'mk/fetch/fetch.mk')
-rw-r--r-- | mk/fetch/fetch.mk | 536 |
1 files changed, 199 insertions, 337 deletions
diff --git a/mk/fetch/fetch.mk b/mk/fetch/fetch.mk index eb8e72c2f77..f831a6ccc24 100644 --- a/mk/fetch/fetch.mk +++ b/mk/fetch/fetch.mk @@ -1,15 +1,4 @@ -# $NetBSD: fetch.mk,v 1.9 2006/07/17 02:13:11 schmonz Exp $ - -###################################################################### -### fetch (PUBLIC) -###################################################################### -### fetch is a public target to fetch all of the package distribution -### files. -### -.PHONY: fetch -.if !target(fetch) -fetch: bootstrap-depends check-vulnerable pre-fetch do-fetch post-fetch -.endif +# $NetBSD: fetch.mk,v 1.10 2006/07/18 22:41:06 jlam Exp $ # If this host is behind a filtering firewall, use passive ftp(1) FETCH_BEFORE_ARGS+= ${PASSIVE_FETCH:D-p} @@ -43,152 +32,6 @@ _ALLFILES?= ${_DISTFILES} ${_PATCHFILES} _BUILD_DEFS+= _DISTFILES _PATCHFILES -### -### _RESUME_TRANSFER: -### -### Macro to resume a previous transfer, needs to have defined -### the following options in mk.conf: -### -### PKG_RESUME_TRANSFERS -### FETCH_RESUME_ARGS (if FETCH_CMD != default) -### FETCH_OUTPUT_ARGS (if FETCH_CMD != default) -### -### For example if you want to use wget (pkgsrc/net/wget): -### -### FETCH_CMD=wget -### FETCH_RESUME_ARGS=-c -### FETCH_OUTPUT_ARGS=-O -### -### How does it work? -### -### FETCH_CMD downloads the file and saves it temporally into $$bfile.temp -### if the checksum match the correct one, $$bfile.temp is renamed to -### the original name. -### - -_RESUME_TRANSFER= \ - ofile="${DISTDIR}/${DIST_SUBDIR}/$$bfile"; \ - tfile="${DISTDIR}/${DIST_SUBDIR}/$$bfile.temp"; \ - tsize=`${AWK} '/^Size/ && $$2 == '"\"($$file)\""' { print $$4 }' ${DISTINFO_FILE}` || ${TRUE}; \ - osize=`${WC} -c < $$ofile`; \ - \ - case "$$tsize" in \ - "") ${ECHO_MSG} "No size in distinfo file (${DISTINFO_FILE})"; \ - break;; \ - esac; \ - \ - if [ "$$osize" -eq "$$tsize" ]; then \ - if [ -f "$$tfile" ]; then \ - ${RM} $$tfile; \ - fi; \ - need_fetch=no; \ - elif [ "$$osize" -lt "$$tsize" -a ! -f "$$tfile" ]; then \ - ${CP} $$ofile $$tfile; \ - dsize=`${WC} -c < $$tfile`; \ - need_fetch=yes; \ - elif [ -f "$$tfile" -a "$$dsize" -gt "$$ossize" ]; then \ - dsize=`${WC} -c < $$tfile`; \ - need_fetch=yes; \ - else \ - if [ -f "$$tfile" ]; then \ - dsize=`${WC} -c < $$tfile`; \ - fi; \ - need_fetch=yes; \ - fi; \ - if [ "$$need_fetch" = "no" ]; then \ - break; \ - elif [ -f "$$tfile" -a "$$dsize" -eq "$$tsize" ]; then \ - ${MV} $$tfile $$ofile; \ - break; \ - elif [ -n "$$ftp_proxy" -o -n "$$http_proxy" ]; then \ - ${ECHO_MSG} "===> Resume is not supported by ftp(1) using http/ftp proxies."; \ - break; \ - elif [ "$$need_fetch" = "yes" -a "$$dsize" -lt "$$tsize" ]; then \ - if [ "${FETCH_CMD:T}" != "ftp" -a -z "${FETCH_RESUME_ARGS}" ]; then \ - ${ECHO_MSG} "=> Resume transfers are not supported, FETCH_RESUME_ARGS is empty."; \ - break; \ - else \ - for res_site in $$sites; do \ - if [ -z "${FETCH_OUTPUT_ARGS}" ]; then \ - ${ECHO_MSG} "=> FETCH_OUTPUT_ARGS has to be defined."; \ - break; \ - fi; \ - ${ECHO_MSG} "=> $$bfile not completed, resuming:"; \ - ${ECHO_MSG} "=> Downloaded: $$dsize Total: $$tsize."; \ - ${ECHO_MSG}; \ - cd ${DISTDIR}; \ - ${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${FETCH_RESUME_ARGS} \ - ${FETCH_OUTPUT_ARGS} $${bfile}.temp $${res_site}$${bfile}; \ - if [ $$? -eq 0 ]; then \ - ndsize=`${WC} -c < $$tfile`; \ - if [ "$$tsize" -eq "$$ndsize" ]; then \ - ${MV} $$tfile $$ofile; \ - fi; \ - break; \ - fi; \ - done; \ - fi; \ - elif [ "$$dsize" -gt "$$tsize" ]; then \ - ${ECHO_MSG} "==> Downloaded file larger than the recorded size."; \ - break; \ - fi - -# -# Define the elementary fetch macros. -# -_FETCH_FILE= \ - if [ ! -f $$file -a ! -f $$bfile -a ! -h $$bfile ]; then \ - ${ECHO_MSG} "=> $$bfile doesn't seem to exist on this system."; \ - if [ ! -w ${_DISTDIR}/. ]; then \ - ${ECHO_MSG} "=> Can't download to ${_DISTDIR} (permission denied?)."; \ - exit 1; \ - fi; \ - for site in $$sites; do \ - ${ECHO_MSG} "=> Attempting to fetch $$bfile from $${site}."; \ - if [ -f ${DISTINFO_FILE} ]; then \ - ${AWK} 'NF == 5 && $$1 == "Size" && $$2 == "('$$bfile')" { printf("=> [%s %s]\n", $$4, $$5) }' ${DISTINFO_FILE}; \ - fi; \ - if ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}$${bfile} ${FETCH_AFTER_ARGS}; then \ - if [ -n ${FAILOVER_FETCH:Dyes}"" -a -f ${DISTINFO_FILE} -a -f ${_DISTDIR}/$$bfile ]; then \ - alg=`${AWK} 'NF == 4 && $$2 == "('$$file')" && $$3 == "=" {print $$1; exit}' ${DISTINFO_FILE}`; \ - if [ -z "$$alg" ]; then \ - alg=${PATCH_DIGEST_ALGORITHM};\ - fi; \ - CKSUM=`${TOOLS_DIGEST} $$alg < ${_DISTDIR}/$$bfile`; \ - CKSUM2=`${AWK} '$$1 == "'$$alg'" && $$2 == "('$$file')" {print $$4; exit}' <${DISTINFO_FILE}`; \ - if [ "$$CKSUM" = "$$CKSUM2" -o "$$CKSUM2" = "IGNORE" ]; then \ - break; \ - else \ - ${ECHO_MSG} "=> Checksum failure - trying next site."; \ - fi; \ - elif [ ! -f ${_DISTDIR}/$$bfile ]; then \ - ${ECHO_MSG} "=> FTP didn't fetch expected file, trying next site." ; \ - else \ - break; \ - fi; \ - fi \ - done; \ - if [ ! -f ${_DISTDIR}/$$bfile ]; then \ - ${ECHO_MSG} "=> Couldn't fetch $$bfile - please try to retrieve this";\ - ${ECHO_MSG} "=> file manually into ${_DISTDIR} and try again."; \ - exit 1; \ - fi; \ - fi - -_CHECK_DIST_PATH= \ - if [ "X${DIST_PATH}" != "X" ]; then \ - for d in "" ${DIST_PATH:S/:/ /g}; do \ - case $$d in "" | ${DISTDIR}) continue;; esac; \ - if [ -f $$d/${DIST_SUBDIR}/$$bfile ]; then \ - ${ECHO} "Using $$d/${DIST_SUBDIR}/$$bfile"; \ - ${RM} -f $$bfile; \ - ${LN} -s $$d/${DIST_SUBDIR}/$$bfile $$bfile; \ - break; \ - fi; \ - done; \ - fi - -# # Set up ORDERED_SITES to work out the exact list of sites for every file, # using the dynamic sites script, or sorting according to the master site # list or the patterns in MASTER_SORT or MASTER_SORT_REGEX as appropriate. @@ -233,204 +76,223 @@ SITES.${fetchfile:T:S/=/--/}?= ${SITES_${fetchfile:T:S/=/--/}} . endfor .endif -# This code is only called in a batch case, to check for the presence of -# the distfiles -.PHONY: batch-check-distfiles -batch-check-distfiles: - ${_PKG_SILENT}${_PKG_DEBUG} \ - gotfiles=yes; \ - for file in "" ${_ALLFILES}; do \ - case "$$file" in \ - "") continue ;; \ - *) if [ ! -f ${DISTDIR}/$$file ]; then \ - gotfiles=no; \ - fi ;; \ - esac; \ - done; \ - case "$$gotfiles" in \ - no) ${ECHO} "*** This package requires user intervention to download the distfiles"; \ - ${ECHO} "*** Please fetch the distfiles manually and place them in"; \ - ${ECHO} "*** ${DISTDIR}"; \ - [ ! -z "${MASTER_SITES}" ] && \ - ${ECHO} "*** The distfiles are available from ${MASTER_SITES}"; \ - [ ! -z "${HOMEPAGE}" ] && \ - ${ECHO} "*** See ${HOMEPAGE} for more details"; \ - ${ECHO}; \ - ${TOUCH} ${_INTERACTIVE_COOKIE}; \ - ${FALSE} ;; \ - esac +###################################################################### +### fetch (PUBLIC) +###################################################################### +### fetch is a public target to fetch all of the package distribution +### files. +### +_FETCH_TARGETS+= bootstrap-depends +_FETCH_TARGETS+= check-vulnerable +_FETCH_TARGETS+= pre-fetch +_FETCH_TARGETS+= do-fetch +_FETCH_TARGETS+= post-fetch -.PHONY: do-fetch -.if !target(do-fetch) -do-fetch: -. if !empty(_ALLFILES) - ${_PKG_SILENT}${_PKG_DEBUG} \ - ${TEST} -d ${_DISTDIR} || ${MKDIR} ${_DISTDIR} -. if !empty(INTERACTIVE_STAGE:Mfetch) && defined(BATCH) - ${_PKG_SILENT}${_PKG_DEBUG} \ - ${MAKE} ${MAKEFLAGS} batch-check-distfiles -. else -. for fetchfile in ${_ALLFILES} -. if defined(FETCH_MESSAGE) && !empty(FETCH_MESSAGE) - ${_PKG_SILENT}${_PKG_DEBUG} set -e; \ - ${TEST} -f ${DISTDIR:Q}/${fetchfile:Q} || { \ - h="==============="; h="$$h$$h$$h$$h$$h"; \ - ${ECHO} "$$h"; ${ECHO} ""; \ - for l in ${FETCH_MESSAGE}; do ${ECHO} "$$l"; done; \ - ${ECHO} ""; ${ECHO} "$$h"; \ - exit 1; \ - } -. elif defined(_FETCH_MESSAGE) - ${_PKG_SILENT}${_PKG_DEBUG} \ - file="${fetchfile}"; \ - if [ ! -f ${DISTDIR}/$$file ]; then \ - ${_FETCH_MESSAGE}; \ - fi -. else - ${_PKG_SILENT}${_PKG_DEBUG} \ - cd ${_DISTDIR}; \ - file="${fetchfile}"; \ - bfile="${fetchfile:T}"; \ - unsorted_sites="${SITES.${fetchfile:T:S/=/--/}} ${_MASTER_SITE_BACKUP}"; \ - sites="${ORDERED_SITES}"; \ - ${_CHECK_DIST_PATH}; \ - if ${TEST} "${PKG_RESUME_TRANSFERS:M[Yy][Ee][Ss]}" ; then \ - ${_FETCH_FILE}; ${_RESUME_TRANSFER}; \ - else \ - ${_FETCH_FILE}; \ - fi -. endif # defined(_FETCH_MESSAGE) -. endfor -. endif # INTERACTIVE_STAGE == fetch -. endif # !empty(_ALLFILES) +.PHONY: fetch +.if !target(fetch) +fetch: ${_FETCH_TARGETS} .endif -.PHONY: show-distfiles -.if !target(show-distfiles) -show-distfiles: -. if defined(PKG_FAIL_REASON) - ${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA} -. else - ${_PKG_SILENT}${_PKG_DEBUG} \ - for file in "" ${_CKSUMFILES}; do \ - if [ "X$$file" = "X" ]; then continue; fi; \ - ${ECHO} $$file; \ - done -. endif +###################################################################### +### pre-fetch, do-fetch, post-fetch (PUBLIC, override) +###################################################################### +### {pre,do,post}-fetch are the heart of the package-customizable +### fetch targets, and may be overridden within a package Makefile. +### +.PHONY: pre-fetch do-fetch post-fetch + +.if !target(do-fetch) +do-fetch: ${_ALLFILES:S/^/${DISTDIR}\//} + @${DO_NADA} .endif .if !target(pre-fetch) pre-fetch: @${DO_NADA} .endif + .if !target(post-fetch) post-fetch: @${DO_NADA} .endif -# This is for the use of sites which store distfiles which others may -# fetch - only fetch the distfile if it is allowed to be -# re-distributed freely -.PHONY: mirror-distfiles -mirror-distfiles: -.if !defined(NO_SRC_ON_FTP) - @${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} fetch NO_SKIP=yes +.for _file_ in ${_ALLFILES} +. if empty(PKG_RESUME_TRANSFERS:M[yY][eE][sS]) && \ + exists(${DISTDIR}/${_file_}) +${DISTDIR}/${_file_}: + @${DO_NADA} +. else +${DISTDIR}/${_file_}: fetch-check-interactive do-fetch-file error-check +. endif +.endfor + +###################################################################### +### fetch-check-interactive (PRIVATE) +###################################################################### +### fetch-check-interactive is a macro target that is inserted at the +### head of a target's command list, and will check whether the fetch +### stage for this package requires user interaction to proceed. +### +.PHONY: fetch-check-interactive +fetch-check-interactive: .USEBEFORE +.if !empty(INTERACTIVE_STAGE:Mfetch) && defined(BATCH) + @${TEST} ! -f ${.TARGET} || exit 0; \ + ${ERROR_MSG} "The fetch stage of this package requires user interaction to download"; \ + ${ERROR_MSG} "the distfiles. Please fetch the distfiles manually and place them in:"; \ + ${ERROR_MSG} " ${_DISTDIR}"; \ + if ${TEST} -n ${MASTER_SITES:Q}""; then \ + ${ERROR_MSG} "The distfiles are available from:"; \ + for site in ${MASTER_SITES}; do \ + ${ERROR_MSG} " $$site"; \ + done; \ + fi; \ + if ${TEST} -n ${HOMEPAGE:Q}""; then \ + ${ERROR_MSG} "See the following URL for more details:"; \ + ${ERROR_MSG} " "${HOMEPAGE:Q}; \ + fi; \ + ${TOUCH} ${_INTERACTIVE_COOKIE}; \ + exit 1 +.elif defined(FETCH_MESSAGE) && !empty(FETCH_MESSAGE) + @${TEST} ! -f ${.TARGET} || exit 0; \ + ${ERROR_MSG} "======================================================================"; \ + ${ERROR_MSG} ""; \ + for line in ${FETCH_MESSAGE}; do ${ERROR_MSG} "$$line"; done; \ + ${ERROR_MSG} ""; \ + ${ERROR_MSG} "======================================================================"; \ + exit 1 +.elif defined(_FETCH_MESSAGE) + @${TEST} ! -f ${.TARGET} || exit 0; \ + ${_FETCH_MESSAGE} +.else + @${DO_NADA} .endif -# Prints out a script to fetch all needed files (no checksumming). -.PHONY: fetch-list -.if !target(fetch-list) +###################################################################### +### do-fetch-file (PRIVATE) +###################################################################### +### do-fetch-file is a macro target that runs the "fetch" script to +### transfer the files from the appropriate sites if needed. +### +# +# FETCH_CMD is the program used to fetch files. It must understand +# fetching files located via URLs, e.g. NetBSD's ftp, net/tnftp, +# etc. The default value is set in pkgsrc/mk/defaults/mk.conf. +# +# The following variables are all lists of options to pass to he command +# used to do the actual fetching of the file. +# +# FETCH_BEFORE_ARGS appear before all other options on the command line. +# +# FETCH_AFTER_ARGS appear after all other options on the command line. +# +# FETCH_RESUME_ARGS appears just after FETCH_BEFORE_ARGS and is the set +# of options for causing the command to resume a previous transfer. +# +# FETCH_OUTPUT_ARGS is a set of options for specifying the name of the +# local file that will hold the contents of the fetched file. +# +# FAILOVER_FETCH, if defined, will cause a checksum to be performed during +# a fetch to verify the transferred file is correct; if the checksum +# is incorrect, then the next site will be tried. +# +# PKG_RESUME_TRANSFERS is a yes/no variable that causes the fetch script +# to try to resume interrupted file transfers to avoid downloading +# the whole file. The default is set in pkgsrc/mk/defaults/mk.conf. +# +#FETCH_CMD?= ftp # default is set by pkgsrc/mk/defaults/mk.conf +FETCH_BEFORE_ARGS?= ${_FETCH_BEFORE_ARGS.${FETCH_CMD:T}} +FETCH_AFTER_ARGS?= ${_FETCH_AFTER_ARGS.${FETCH_CMD:T}} +FETCH_RESUME_ARGS?= ${_FETCH_RESUME_ARGS.${FETCH_CMD:T}} +FETCH_OUTPUT_ARGS?= ${_FETCH_OUTPUT_ARGS.${FETCH_CMD:T}} + +_FETCH_BEFORE_ARGS.ftp= # empty +_FETCH_AFTER_ARGS.ftp= # empty +_FETCH_RESUME_ARGS.ftp= -R +_FETCH_OUTPUT_ARGS.ftp= -o -fetch-list: - @${ECHO} '#!/bin/sh' - @${ECHO} '#' - @${ECHO} '# This is an auto-generated script, the result of running' - @${ECHO} '# `${MAKE} fetch-list'"'"' in directory "'"`${PWD_CMD}`"'"' - @${ECHO} '# on host "'"`${UNAME} -n`"'" on "'"`date`"'".' - @${ECHO} '#' - @${MAKE} ${MAKEFLAGS} fetch-list-recursive -.endif # !target(fetch-list) +_FETCH_CMD= ${SETENV} CHECKSUM=${_CHECKSUM_CMD:Q} \ + CP=${TOOLS_CP:Q} \ + ECHO=${TOOLS_ECHO:Q} \ + FETCH_CMD=${FETCH_CMD:Q} \ + FETCH_BEFORE_ARGS=${FETCH_BEFORE_ARGS:Q} \ + FETCH_AFTER_ARGS=${FETCH_AFTER_ARGS:Q} \ + FETCH_RESUME_ARGS=${FETCH_RESUME_ARGS:Q} \ + FETCH_OUTPUT_ARGS=${FETCH_OUTPUT_ARGS:Q} \ + MKDIR=${TOOLS_MKDIR:Q} MV=${TOOLS_MV:Q} \ + TEST=${TOOLS_TEST:Q} TOUCH=${TOOLS_TOUCH:Q} \ + WC=${TOOLS_WC:Q} \ + ${SH} ${PKGSRCDIR}/mk/fetch/fetch -.PHONY: fetch-list-recursive -.if !target(fetch-list-recursive) +_FETCH_ARGS+= ${FAILOVER_FETCH:D-c} +.if exists(${DISTINFO_FILE}) +_FETCH_ARGS+= -f ${DISTINFO_FILE:Q} +.endif +.if !empty(PKG_RESUME_TRANSFERS:M[yY][eE][sS]) +_FETCH_ARGS+= -r +.endif +_FETCH_ARGS+= -d ${DIST_SUBDIR:U.} -fetch-list-recursive: +.PHONY: do-fetch-file +do-fetch-file: .USE + @${STEP_MSG} "Fetching ${.TARGET:T}" + ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG} \ - for dir in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs`; do \ - (cd ../../$$dir && \ - ${MAKE} ${MAKEFLAGS} fetch-list-one-pkg \ - | ${AWK} ' \ - /^[^#]/ { FoundSomething = 1 } \ - /^unsorted/ { gsub(/[[:space:]]+/, " \\\n\t") } \ - /^echo/ { gsub(/;[[:space:]]+/, "\n") } \ - { block[line_c++] = $$0 } \ - END { if (FoundSomething) \ - for (line = 0; line < line_c; line++) \ - print block[line] } \ - ') \ - done -.endif # !target(fetch-list-recursive) + if ${TEST} -n {DIST_PATH:Q}""; then \ + for d in "" ${DIST_PATH:S/:/ /g}; do \ + case $$d in \ + ""|${DISTDIR}) continue ;; \ + esac; \ + file="$$d/${DIST_SUBDIR}/${TARGET:T}"; \ + if ${TEST} -f $$file; then \ + ${ECHO} "Using $$file"; \ + ${RM} -f ${TARGET}; \ + ${LN} -s $$file ${.TARGET}; \ + fi; \ + done; \ + fi + ${_PKG_SILENT}${_PKG_DEBUG}set -e; \ + unsorted_sites="${SITES.${.TARGET:T:S/=/--/}} ${_MASTER_SITE_BACKUP}"; \ + cd ${.TARGET:H:S/\/${DIST_SUBDIR}$//} && \ + ${_FETCH_CMD} ${_FETCH_ARGS} ${.TARGET:T} ${ORDERED_SITES} + ${_PKG_SILENT}${_PKG_DEBUG} \ + if ${TEST} ! -f ${.TARGET}; then \ + ${ERROR_MSG} "Could not fetch the following file:"; \ + ${ERROR_MSG} " ${.TARGET:T}"; \ + ${ERROR_MSG} ""; \ + ${ERROR_MSG} "Please retrieve this file manually into:"; \ + ${ERROR_MSG} " ${.TARGET:H}"; \ + exit 1; \ + fi -.PHONY: fetch-list-one-pkg -.if !target(fetch-list-one-pkg) +###################################################################### +### mirror-distfiles (PUBLIC) +###################################################################### +### mirror-distfiles is a public target that is mostly of use only to +### sites that wish to provide distfiles that others may fetch. It +### only fetches distfiles that are freely re-distributable by setting +### NO_SKIP (see bsd.fetch-vars.mk). +### +.PHONY: mirror-distfiles +.if defined(NO_SRC_ON_FTP) +mirror-distfiles: + @${DO_NADA} +.else +mirror-distfiles: fetch +.endif -fetch-list-one-pkg: -. if !empty(_ALLFILES) - @${ECHO} - @${ECHO} '#' - @location=`${PWD_CMD} | ${AWK} -F / '{ print $$(NF-1) "/" $$NF }'`; \ - ${ECHO} '# Need additional files for ${PKGNAME} ('$$location')...' -. for fetchfile in ${_ALLFILES} -. if defined(_FETCH_MESSAGE) - @(if [ ! -f ${_DISTDIR}/${fetchfile:T} ]; then \ - ${ECHO}; \ - filesize=`${AWK} ' \ - /^Size/ && $$2 == "(${fetchfile})" { print $$4 } \ - ' ${DISTINFO_FILE}` || true; \ - ${ECHO} '# Prompt user to get ${fetchfile} ('$${filesize-???}' bytes) manually:'; \ - ${ECHO} '#'; \ - ${ECHO} ${_FETCH_MESSAGE:Q}; \ - fi) -. elif defined(DYNAMIC_MASTER_SITES) - @(if [ ! -f ${_DISTDIR}/${fetchfile:T} ]; then \ - ${ECHO}; \ - filesize=`${AWK} ' \ - /^Size/ && $$2 == "(${fetchfile})" { print $$4 } \ - ' ${DISTINFO_FILE}` || true; \ - ${ECHO} '# Fetch ${fetchfile} ('$${filesize-???}' bytes):'; \ - ${ECHO} '#'; \ - ${ECHO} '${SH} -s ${fetchfile:T} <<"EOF" |('; \ - ${CAT} ${FILESDIR}/getsite.sh; \ - ${ECHO} EOF; \ - ${ECHO} read unsorted_sites; \ - ${ECHO} 'unsorted_sites="$${unsorted_sites} ${_MASTER_SITE_BACKUP}"'; \ - ${ECHO} sites='"'${ORDERED_SITES:Q}'"'; \ - ${ECHO} "${MKDIR} ${_DISTDIR}"; \ - ${ECHO} 'cd ${_DISTDIR} && [ -f ${fetchfile} -o -f ${fetchfile:T} ] ||'; \ - ${ECHO} 'for site in $$sites; do'; \ - ${ECHO} ' ${FETCH_CMD} ${FETCH_BEFORE_ARGS} "$${site}${fetchfile:T}" ${FETCH_AFTER_ARGS} && break ||'; \ - ${ECHO} ' ${ECHO} ${fetchfile:T} not fetched'; \ - ${ECHO} done; \ - ${ECHO} ')'; \ - fi) -. else - @(if [ ! -f ${_DISTDIR}/${fetchfile:T} ]; then \ - ${ECHO}; \ - filesize=`${AWK} ' \ - /^Size/ && $$2 == "(${fetchfile})" { print $$4 } \ - ' ${DISTINFO_FILE}` || true; \ - ${ECHO} '# Fetch ${fetchfile} ('$${filesize-???}' bytes):'; \ - ${ECHO} '#'; \ - ${ECHO} 'unsorted_sites="${SITES.${fetchfile:T:S/=/--/}} ${_MASTER_SITE_BACKUP}"'; \ - ${ECHO} sites='"'${ORDERED_SITES:Q}'"'; \ - ${ECHO} "${MKDIR} ${_DISTDIR}"; \ - ${ECHO} 'cd ${_DISTDIR} && [ -f ${fetchfile} -o -f ${fetchfile:T} ] ||'; \ - ${ECHO} 'for site in $$sites; do'; \ - ${ECHO} ' ${FETCH_CMD} ${FETCH_BEFORE_ARGS} "$${site}${fetchfile:T}" ${FETCH_AFTER_ARGS} && break ||'; \ - ${ECHO} ' ${ECHO} ${fetchfile:T} not fetched'; \ - ${ECHO} done; \ - fi) -. endif # defined(_FETCH_MESSAGE) || defined(DYNAMIC_MASTER_SITES) -. endfor -. endif # !empty(_ALLFILES) -.endif # !target(fetch-list-one-pkg) +# XXX +# XXX Is this target actually used? (jlam 20060718) +# XXX +.PHONY: show-distfiles +.if !target(show-distfiles) +show-distfiles: +. if defined(PKG_FAIL_REASON) + ${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA} +. else + ${_PKG_SILENT}${_PKG_DEBUG} \ + for file in "" ${_CKSUMFILES}; do \ + if [ "X$$file" = "X" ]; then continue; fi; \ + ${ECHO} $$file; \ + done +. endif +.endif |