pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk Add USE_PKG_ADMIN_DIGEST flag for switching between...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/450f251e2dd1
branches:  trunk
changeset: 408027:450f251e2dd1
user:      joerg <joerg%pkgsrc.org@localhost>
date:      Sun Jan 12 23:38:42 2020 +0000

description:
Add USE_PKG_ADMIN_DIGEST flag for switching between $NetBSD$ and SHA256
digests to identify file versions. Defaults to no for now. For digest
mode, recursive into FILESDIR, so that e.g. the majority of pkg_install
itself is recorded as well SMF manifests.

diffstat:

 mk/defaults/mk.conf                |   8 +++++-
 mk/pkgformat/pkg/metadata.mk       |  48 +++++++++++++++++++++++++++++++++++--
 mk/pkgformat/pkg/pkgformat-vars.mk |   7 +++-
 3 files changed, 57 insertions(+), 6 deletions(-)

diffs (120 lines):

diff -r f2e65923f67b -r 450f251e2dd1 mk/defaults/mk.conf
--- a/mk/defaults/mk.conf       Sun Jan 12 23:35:01 2020 +0000
+++ b/mk/defaults/mk.conf       Sun Jan 12 23:38:42 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mk.conf,v 1.305 2019/06/08 19:51:38 leot Exp $
+# $NetBSD: mk.conf,v 1.306 2020/01/12 23:38:42 joerg Exp $
 #
 
 # This file provides default values for variables that may be overridden
@@ -22,6 +22,12 @@
 # Possible: yes, no, auto
 # Default: auto (automatic detection, see above)
 
+USE_PKG_ADMIN_DIGEST=  no
+# Record file digests instead of extracing the NetBSD RCS ID from files.
+#
+# Possible: yes, no
+# Default: no
+
 #ALLOW_VULNERABLE_PACKAGES=
 # allow the user to build packages which are known to be vulnerable to
 # security exploits
diff -r f2e65923f67b -r 450f251e2dd1 mk/pkgformat/pkg/metadata.mk
--- a/mk/pkgformat/pkg/metadata.mk      Sun Jan 12 23:35:01 2020 +0000
+++ b/mk/pkgformat/pkg/metadata.mk      Sun Jan 12 23:38:42 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: metadata.mk,v 1.17 2019/10/01 13:01:02 jperkin Exp $
+# $NetBSD: metadata.mk,v 1.18 2020/01/12 23:38:42 joerg Exp $
 
 ######################################################################
 ### The targets below are all PRIVATE.
@@ -129,7 +129,46 @@
 ###
 _BUILD_VERSION_FILE=   ${PKG_DB_TMPDIR}/+BUILD_VERSION
 _METADATA_TARGETS+=    ${_BUILD_VERSION_FILE}
-
+.if !empty(USE_PKG_ADMIN_DIGEST:M[Yy][Ee][Ss])
+${_BUILD_VERSION_FILE}:
+       ${RUN}${MKDIR} ${.TARGET:H}
+       ${RUN}${RM} -f ${.TARGET}.tmp
+       ${RUN}                                                          \
+       exec 1>>${.TARGET}.tmp;                                         \
+       ${FIND} ${FILESDIR} -type f 2> /dev/null | while read f; do     \
+               ${TEST} ! -f "$$f" || ${ECHO} "$$f";                    \
+       done
+       for f in ${.CURDIR}/Makefile ${PKGDIR}/*; do                    \
+               ${TEST} ! -f "$$f" || ${ECHO} "$$f";                    \
+       done
+       ${RUN}                                                          \
+       exec 1>>${.TARGET}.tmp;                                         \
+       ${TEST} -f ${DISTINFO_FILE:Q} || exit 0;                        \
+       ${CAT} ${DISTINFO_FILE} |                                       \
+       ${AWK} 'NF == 4 && $$3 == "=" { gsub("[()]", "", $$2); print $$2 }' | \
+       while read file; do                                             \
+               ${TEST} ! -f "${PATCHDIR}/$$file" ||                    \
+                       ${ECHO} "${PATCHDIR}/$$file";                   \
+       done
+       ${RUN}                                                          \
+       exec 1>>${.TARGET}.tmp;                                         \
+       ${TEST} -d ${PATCHDIR} || exit 0;                               \
+       cd ${PATCHDIR}; for f in *; do                                  \
+               case "$$f" in                                           \
+               "*"|*.orig|*.rej|*~)    ;;                              \
+               patch-*)                ${ECHO} "${PATCHDIR}/$$f" ;;    \
+               esac;                                                   \
+       done
+       ${RUN}                                                          \
+       ${CAT} ${.TARGET}.tmp |                                         \
+       ${AWK} '{ t=$$0; sub("^${PKGSRCDIR}/", "");                     \
+                  printf "%s %s\n", t, $$0 }' |                        \
+       while read file relfile; do                                     \
+               printf "%s: " "$$relfile";                              \
+               ${PKG_ADMIN} digest "$$file";                           \
+       done |                                                          \
+       ${SORT} -u > ${.TARGET} && ${RM} -f ${.TARGET}.tmp
+.else
 ${_BUILD_VERSION_FILE}:
        ${RUN}${MKDIR} ${.TARGET:H}
        ${RUN}${RM} -f ${.TARGET}.tmp
@@ -158,7 +197,9 @@
        done
        ${RUN}                                                          \
        ${CAT} ${.TARGET}.tmp |                                         \
-       while read file; do                                             \
+       ${AWK} '{ t=$$0; sub("^${PKGSRCDIR}/", "");
+                  printf "%s %s\n"; t, $$0 }' | \
+       while read file relfile; do                                     \
                ${GREP} '\$$NetBSD' $$file 2>/dev/null |                \
                ${SED} -e "s|^|$$file:|;q";                             \
        done |                                                          \
@@ -167,6 +208,7 @@
                  sub("[$$][^$$]*$$", "$$");                            \
                  print; }' |                                           \
        ${SORT} -u > ${.TARGET} && ${RM} -f ${.TARGET}.tmp
+.endif
 
 ######################################################################
 ###
diff -r f2e65923f67b -r 450f251e2dd1 mk/pkgformat/pkg/pkgformat-vars.mk
--- a/mk/pkgformat/pkg/pkgformat-vars.mk        Sun Jan 12 23:35:01 2020 +0000
+++ b/mk/pkgformat/pkg/pkgformat-vars.mk        Sun Jan 12 23:38:42 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: pkgformat-vars.mk,v 1.7 2017/08/19 00:30:19 jlam Exp $
+# $NetBSD: pkgformat-vars.mk,v 1.8 2020/01/12 23:38:42 joerg Exp $
 #
 # This Makefile fragment is included indirectly by bsd.prefs.mk and
 # defines some variables which must be defined earlier than where
@@ -32,8 +32,11 @@
 LINKFARM_CMD?=         ${PKG_TOOLS_BIN}/linkfarm
 
 # Latest versions of tools required for correct pkgsrc operation.
+.if !empty(USE_PKG_ADMIN_DIGEST:M[Yy][Ee][Ss])
+PKGTOOLS_REQD=         20191008
+.else
 PKGTOOLS_REQD=         20100914
-
+.endif
 # Latest version of pkg_install required to extract packages
 PKGTOOLS_VERSION_REQD= 20091115
 



Home | Main Index | Thread Index | Old Index