Index: Mk/Uses/python.mk =================================================================== --- Mk/Uses/python.mk +++ Mk/Uses/python.mk @@ -468,6 +468,10 @@ EXPIRATION_DATE?= 2020-12-31 .endif +.if ${PYTHON_REL} < 3700 +NOT_REPRODUCIBLE= yes +.endif + .if !defined(PYTHONBASE) PYTHONBASE!= (${PYTHON_CMD} -c 'import sys; print(sys.prefix)' \ 2> /dev/null || ${ECHO_CMD} ${LOCALBASE}) | ${TAIL} -1 Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -2046,7 +2046,15 @@ CHECKSUM_ALGORITHMS?= sha256 DISTINFO_FILE?= ${MASTERDIR}/distinfo +_TIMESTAMP= 0 +.if !defined(NOT_REPRODUCIBLE) && exists(${DISTINFO_FILE}) +.if !defined(TIMESTAMP_CACHE) || empty(_TIMESTAMP_CACHE) +_TIMESTAMP_CACHE!= ${AWK} -F= -v ts=0 '/^TIMESTAMP/ { gsub(" ", "", $$2); ts=$$2 } END { print ts}' ${DISTINFO_FILE} +.endif +_TIMESTAMP=${_TIMESTAMP_CACHE} +.endif + MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_CMD?= ${BSDMAKE} @@ -2058,6 +2066,10 @@ CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \ MANPREFIX="${MANPREFIX}" +.if ${_TIMESTAMP} != 0 +MAKE_ENV+= SOURCE_DATE_EPOCH="${_TIMESTAMP}" +.endif + # Add -fno-strict-aliasing to CFLAGS with optimization level -O2 or higher. # gcc 4.x enable strict aliasing optimization with -O2 which is known to break # a lot of ports. @@ -3428,6 +3440,9 @@ .if !target(do-package) PKG_CREATE_ARGS= -r ${STAGEDIR} +.if ${_TIMESTAMP} != 0 +PKG_CREATE_ARGS+= -t ${_TIMESTAMP} +.endif . if defined(PKG_CREATE_VERBOSE) PKG_CREATE_ARGS+= -v . endif