From ffc6fb79b6b0ec36d319aaa8901a7697bfbb6c91 Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Tue, 1 Jul 2014 19:04:04 +0000 Subject: [PATCH] Merge ^/projects/release-debugdist into ^/head: r262491, r262493, r262516, r267345, r267397: r262491: Add DEBUG_DISTRIBUTIONS, and set it to include base and EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation distribution does not have corresponding debug information. Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld' and 'packageworld' targets, to reduce the number of occurances of excluding distributions that do not have .debug files. r262493: In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1 for dvdrom and cdrom targets. (Later reverted.) Exclude the *.debug.txz distributions from dvdrom and cdrom images, but include them for ftp distribution. r262516: Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the following output: eval: ${base....}: Bad substitution eval: ${doc....}: Bad substitution eval: ${games....}: Bad substitution eval: ${lib32....}: Bad substitution This also follows other naming conventions seen in the wild. r267345: Explicitly set MK_DEBUG_FILES=no, which overrides the WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions previously experienced. This change allows us to create the {base,kernel}_debug.txz distributions without accidentally installing the *.debug files on the medium itself. r267397: Remove evaluations of MK_DEBUG_FILES where not needed. If DEBUG_DISTRIBUTIONS is empty, which is true if MK_DEBUG_FILES evaluates to 'no' above, the loop does nothing. MFC after: 1 month Tested on: head@r267801 Reviewed by: brooks [1], emaste, imp [1] [1] earlier version Sponsored by: The FreeBSD Foundation --- Makefile.inc1 | 27 ++++++++++++++------------- release/Makefile | 15 ++++++++++----- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 2849cd35f54a..897732389836 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -782,6 +782,11 @@ EXTRA_DISTRIBUTIONS+= lib32 EXTRA_DISTRIBUTIONS+= tests .endif +DEBUG_DISTRIBUTIONS= +.if ${MK_DEBUG_FILES} != "no" +DEBUG_DISTRIBUTIONS+= base ${EXTRA_DISTRIBUTIONS:S,doc,,} +.endif + MTREE_MAGIC?= mtree 2.0 distributeworld installworld: _installcheck_world @@ -858,8 +863,7 @@ distributeworld installworld: _installcheck_world awk 'BEGIN { print "#${MTREE_MAGIC}" } !/ type=/ { file = $$1 } / type=/ { if ($$1 == file) { sub(/^\.\/${dist}\//, "./"); print } }' > \ ${DESTDIR}/${DISTDIR}/${dist}.meta .endfor -.if ${MK_DEBUG_FILES} != "no" -. for dist in base ${EXTRA_DISTRIBUTIONS} +.for dist in ${DEBUG_DISTRIBUTIONS} @# For each file that exists in this dist, print the corresponding @# line from the METALOG. This relies on the fact that @# a line containing only the filename will sort immediatly before @@ -868,8 +872,7 @@ distributeworld installworld: _installcheck_world find ./${dist}/usr/lib/debug | sort -u ${METALOG} - | \ awk 'BEGIN { print "#${MTREE_MAGIC}" } !/ type=/ { file = $$1 } / type=/ { if ($$1 == file) { sub(/^\.\/${dist}\//, "./"); print } }' > \ ${DESTDIR}/${DISTDIR}/${dist}.debug.meta -. endfor -.endif +.endfor .endif .endif @@ -887,19 +890,17 @@ packageworld: .endif .endfor -.if ${MK_DEBUG_FILES} != "no" -. for dist in base ${EXTRA_DISTRIBUTIONS} -. if defined(NO_ROOT) +.for dist in ${DEBUG_DISTRIBUTIONS} +. if defined(NO_ROOT) ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.debug.txz \ + tar cvJf ${DESTDIR}/${DISTDIR}/${dist}-dbg.txz \ @${DESTDIR}/${DISTDIR}/${dist}.debug.meta -. else +. else ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ - tar cvJfL ${DESTDIR}/${DISTDIR}/${dist}.debug.txz \ + tar cvJfL ${DESTDIR}/${DISTDIR}/${dist}-dbg.txz \ usr/lib/debug -. endif -. endfor -.endif +. endif +.endfor # # reinstall diff --git a/release/Makefile b/release/Makefile index 2fdaba9cc91c..6b4517dc4377 100644 --- a/release/Makefile +++ b/release/Makefile @@ -155,10 +155,13 @@ system: packagesystem mkdir -p release cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ DESTDIR=${.OBJDIR}/release MK_RESCUE=no MK_KERNEL_SYMBOLS=no \ - MK_PROFILE=no MK_SENDMAIL=no MK_TESTS=no MK_LIB32=no + MK_PROFILE=no MK_SENDMAIL=no MK_TESTS=no MK_LIB32=no \ + MK_DEBUG_FILES=no # Copy distfiles mkdir -p release/usr/freebsd-dist - cp *.txz MANIFEST release/usr/freebsd-dist + for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \ + do cp $${dist} release/usr/freebsd-dist; \ + done # Copy documentation, if generated .if !defined(NODOC) cp reldoc/* release @@ -180,7 +183,7 @@ bootonly: packagesystem MK_INSTALLLIB=no MK_LIB32=no MK_MAIL=no \ MK_NCP=no MK_TOOLCHAIN=no MK_PROFILE=no \ MK_INSTALLIB=no MK_RESCUE=no MK_DICT=no \ - MK_KERNEL_SYMBOLS=no MK_TESTS=no + MK_KERNEL_SYMBOLS=no MK_TESTS=no MK_DEBUG_FILES=no # Copy manifest only (no distfiles) to get checksums mkdir -p bootonly/usr/freebsd-dist cp MANIFEST bootonly/usr/freebsd-dist @@ -200,10 +203,12 @@ dvd: mkdir -p ${.TARGET} cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ DESTDIR=${.OBJDIR}/${.TARGET} MK_RESCUE=no MK_KERNEL_SYMBOLS=no \ - MK_TESTS=no + MK_TESTS=no MK_DEBUG_FILES=no # Copy distfiles mkdir -p ${.TARGET}/usr/freebsd-dist - cp *.txz MANIFEST ${.TARGET}/usr/freebsd-dist + for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \ + do cp $${dist} ${.TARGET}/usr/freebsd-dist; \ + done # Copy documentation, if generated .if !defined(NODOC) cp reldoc/* ${.TARGET}