summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2008-05-22 16:27:22 +0000
committerjoerg <joerg@pkgsrc.org>2008-05-22 16:27:22 +0000
commit65244e1c328f2fc9719961a4ad9ebc2745f4b1e0 (patch)
tree7b37e655069e79fd739911e99f3b8294f9f482fc /mk
parent092743fd161b86fcbceba1beaaa9bcbf1d346374 (diff)
downloadpkgsrc-65244e1c328f2fc9719961a4ad9ebc2745f4b1e0.tar.gz
Move digest dependency into checksum and fetch part.
Make _ALL_FILES and in turn _CKSUMFILES available earlier. Use it to only depend on digest if _CKSUMFILES is non-empty. NO_CHECKSUM will now only skip the checksum and checksum-phase targets. FAILOVER_FETCH will independently check the sums on distfiles and depend on digest, fixing the remaining issues originally raised in PR 34914.
Diffstat (limited to 'mk')
-rw-r--r--mk/bsd.pkg.mk5
-rw-r--r--mk/checksum/bsd.checksum-vars.mk6
-rw-r--r--mk/checksum/bsd.checksum.mk13
-rw-r--r--mk/checksum/checksum.mk9
-rw-r--r--mk/fetch/bsd.fetch-vars.mk38
-rw-r--r--mk/fetch/fetch.mk26
6 files changed, 50 insertions, 47 deletions
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
index 939de298154..17f9b0d6131 100644
--- a/mk/bsd.pkg.mk
+++ b/mk/bsd.pkg.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.mk,v 1.1942 2008/05/21 19:53:59 tnn Exp $
+# $NetBSD: bsd.pkg.mk,v 1.1943 2008/05/22 16:27:22 joerg Exp $
#
# This file is in the public domain.
#
@@ -84,7 +84,6 @@ PKGVERSION_NOREV= ${PKGNAME_NOREV:C/^.*-//}
#
.if defined(META_PACKAGE)
PKG_DESTDIR_SUPPORT= user-destdir
-NO_CHECKSUM= yes
NO_CONFIGURE= yes
NO_BUILD= yes
DISTFILES= # none
@@ -404,8 +403,6 @@ USE_TOOLS+= \
mkdir mv pax printf pwd rm rmdir sed sh sort \
tail test touch tr true wc xargs
-USE_TOOLS+= ${NO_CHECKSUM:D:Udigest\:bootstrap}
-
# bsd.wrapper.mk
USE_TOOLS+= expr
diff --git a/mk/checksum/bsd.checksum-vars.mk b/mk/checksum/bsd.checksum-vars.mk
index 24d69faab5b..2aa278033b9 100644
--- a/mk/checksum/bsd.checksum-vars.mk
+++ b/mk/checksum/bsd.checksum-vars.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.checksum-vars.mk,v 1.1 2006/07/13 14:02:34 jlam Exp $
+# $NetBSD: bsd.checksum-vars.mk,v 1.2 2008/05/22 16:27:22 joerg Exp $
#
# This Makefile fragment is included separately by bsd.pkg.mk and
# defines some variables which must be defined earlier than where
@@ -10,3 +10,7 @@
#
DISTINFO_FILE?= ${PKGDIR}/distinfo
+
+.if !empty(_CKSUMFILES)
+USE_TOOLS+= digest:bootstrap
+.endif
diff --git a/mk/checksum/bsd.checksum.mk b/mk/checksum/bsd.checksum.mk
index a3e5e718d3a..62294c7e38c 100644
--- a/mk/checksum/bsd.checksum.mk
+++ b/mk/checksum/bsd.checksum.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.checksum.mk,v 1.8 2008/01/04 01:46:26 rillig Exp $
+# $NetBSD: bsd.checksum.mk,v 1.9 2008/05/22 16:27:22 joerg Exp $
#
# This Makefile fragment is included by bsd.pkg.mk and defines the
# relevant variables and targets for the "checksum" phase.
@@ -30,9 +30,11 @@
# Package-settable variables:
#
# NO_CHECKSUM
-# When defined, no checksums are generated for patches or
+# When defined, no checksums are validated for patches or
# distfiles.
#
+# Note: This does not alter the behaviour of FAILOVER_FETCH.
+#
# Default value: undefined
#
@@ -43,9 +45,4 @@ checksum checksum-phase distinfo makesum: fetch
makedistinfo mdi: distinfo
mps: makepatchsum
-.if defined(NO_CHECKSUM)
-checksum checksum-phase makesum makepatchsum mps mdi makedistinfo distinfo:
- @${DO_NADA}
-.else
-. include "checksum.mk"
-.endif
+.include "checksum.mk"
diff --git a/mk/checksum/checksum.mk b/mk/checksum/checksum.mk
index 5b6ec75e06e..8d809e8e5b7 100644
--- a/mk/checksum/checksum.mk
+++ b/mk/checksum/checksum.mk
@@ -1,4 +1,4 @@
-# $NetBSD: checksum.mk,v 1.12 2007/10/09 19:19:13 martti Exp $
+# $NetBSD: checksum.mk,v 1.13 2008/05/22 16:27:22 joerg Exp $
#
# See bsd.checksum.mk for helpful comments.
#
@@ -6,7 +6,7 @@
_DIGEST_ALGORITHMS?= SHA1 RMD160
_PATCH_DIGEST_ALGORITHMS?= SHA1
-# These variables are set by pkgsrc/mk/fetch/fetch.mk.
+# These variables are set by pkgsrc/mk/fetch/bsd.fetch-vars.mk.
#_CKSUMFILES?= # empty
#_IGNOREFILES?= # empty
@@ -32,6 +32,10 @@ _CHECKSUM_CMD= \
TEST=${TOOLS_TEST:Q} \
${SH} ${PKGSRCDIR}/mk/checksum/checksum \
+.if defined(NO_CHECKSUM)
+checksum checksum-phase:
+ @${DO_NADA}
+.else
checksum checksum-phase:
${RUN} set -e; \
case ${.TARGET:Q} in \
@@ -45,6 +49,7 @@ checksum checksum-phase:
${ERROR_MSG} "\"${MAKE} NO_CHECKSUM=yes [other args]\"."; \
exit 1; \
fi
+.endif
_DISTINFO_CMD= ${SETENV} DIGEST=${TOOLS_DIGEST:Q} SED=${TOOLS_SED:Q} \
TEST=${TOOLS_TEST:Q} WC=${TOOLS_WC:Q} \
diff --git a/mk/fetch/bsd.fetch-vars.mk b/mk/fetch/bsd.fetch-vars.mk
index 8bdf4117a3b..4dd9c0269e6 100644
--- a/mk/fetch/bsd.fetch-vars.mk
+++ b/mk/fetch/bsd.fetch-vars.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.fetch-vars.mk,v 1.9 2007/11/02 09:02:57 rillig Exp $
+# $NetBSD: bsd.fetch-vars.mk,v 1.10 2008/05/22 16:27:22 joerg Exp $
#
# This Makefile fragment is included separately by bsd.pkg.mk and
# defines some variables which must be defined earlier than where
@@ -39,13 +39,30 @@ _DISTDIR= ${DISTDIR}/${DIST_SUBDIR}
DEFAULT_DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
DISTFILES?= ${DEFAULT_DISTFILES}
-# "Failover" fetching requires the digest tool to compute checksums to
-# verify any fetched files. But if no checksumming is requested, don't
-# add it.
-#
-.if defined(FAILOVER_FETCH) && !defined(NO_CHECKSUM)
-USE_TOOLS+= ${FAILOVER_FETCH:Ddigest\:bootstrap}
+# File lists, defined early to allow tool dependencies.
+ALLFILES?= ${DISTFILES} ${PATCHFILES}
+ALLFILES:= ${ALLFILES:O:u} # remove duplicates
+CKSUMFILES?= ${ALLFILES}
+.for __tmp__ in ${IGNOREFILES}
+CKSUMFILES:= ${CKSUMFILES:N${__tmp__}}
+.endfor
+
+# List of all files, with ${DIST_SUBDIR} in front. Used for fetch and checksum.
+.if defined(DIST_SUBDIR) && !empty(DIST_SUBDIR)
+_CKSUMFILES?= ${CKSUMFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
+_DISTFILES?= ${DISTFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
+_IGNOREFILES?= ${IGNOREFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
+_PATCHFILES?= ${PATCHFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
+.else
+_CKSUMFILES?= ${CKSUMFILES}
+_DISTFILES?= ${DISTFILES}
+_IGNOREFILES?= ${IGNOREFILES}
+_PATCHFILES?= ${PATCHFILES}
.endif
+_ALLFILES?= ${_DISTFILES} ${_PATCHFILES}
+_ALLFILES:= ${_ALLFILES:O:u} # remove duplicates
+
+_BUILD_DEFS+= _DISTFILES _PATCHFILES
# When mirroring distfiles which others may fetch, only fetch the
# distfiles if it is allowed to be re-distributed freely. Also,
@@ -55,3 +72,10 @@ USE_TOOLS+= ${FAILOVER_FETCH:Ddigest\:bootstrap}
NO_SKIP= # defined
_BOOTSTRAP_VERBOSE= # defined
.endif
+
+.if !empty(_CKSUMFILES)
+#USE_TOOLS+= ftp:bootstrap
+. if defined(FAILOVER_FETCH)
+USE_TOOLS+= digest:bootstrap
+. endif
+.endif
diff --git a/mk/fetch/fetch.mk b/mk/fetch/fetch.mk
index f6eed5f5472..f3e0da99a50 100644
--- a/mk/fetch/fetch.mk
+++ b/mk/fetch/fetch.mk
@@ -1,4 +1,4 @@
-# $NetBSD: fetch.mk,v 1.33 2008/04/03 14:07:51 joerg Exp $
+# $NetBSD: fetch.mk,v 1.34 2008/05/22 16:27:22 joerg Exp $
_MASTER_SITE_BACKUP= ${MASTER_SITE_BACKUP:=${DIST_SUBDIR}${DIST_SUBDIR:D/}}
_MASTER_SITE_OVERRIDE= ${MASTER_SITE_OVERRIDE:=${DIST_SUBDIR}${DIST_SUBDIR:D/}}
@@ -6,30 +6,6 @@ _MASTER_SITE_OVERRIDE= ${MASTER_SITE_OVERRIDE:=${DIST_SUBDIR}${DIST_SUBDIR:D/}}
# Where to put distfiles that don't have any other master site
MASTER_SITE_LOCAL?= ${MASTER_SITE_BACKUP:=LOCAL_PORTS/}
-ALLFILES?= ${DISTFILES} ${PATCHFILES}
-ALLFILES:= ${ALLFILES:O:u} # remove duplicates
-CKSUMFILES?= ${ALLFILES}
-.for __tmp__ in ${IGNOREFILES}
-CKSUMFILES:= ${CKSUMFILES:N${__tmp__}}
-.endfor
-
-# List of all files, with ${DIST_SUBDIR} in front. Used for fetch and checksum.
-.if defined(DIST_SUBDIR) && !empty(DIST_SUBDIR)
-_CKSUMFILES?= ${CKSUMFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
-_DISTFILES?= ${DISTFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
-_IGNOREFILES?= ${IGNOREFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
-_PATCHFILES?= ${PATCHFILES:@.f.@${DIST_SUBDIR}/${.f.}@}
-.else
-_CKSUMFILES?= ${CKSUMFILES}
-_DISTFILES?= ${DISTFILES}
-_IGNOREFILES?= ${IGNOREFILES}
-_PATCHFILES?= ${PATCHFILES}
-.endif
-_ALLFILES?= ${_DISTFILES} ${_PATCHFILES}
-_ALLFILES:= ${_ALLFILES:O:u} # remove duplicates
-
-_BUILD_DEFS+= _DISTFILES _PATCHFILES
-
# Set up _ORDERED_SITES to work out the exact list of sites for every file,
# using the dynamic sites script, or ordering according to the master site
# list, MASTER_SORT_RANDOM randomization feature, or the patterns in