Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F133102473
D12577.id34675.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D12577.id34675.diff
View Options
Index: Mk/Scripts/qa.sh
===================================================================
--- Mk/Scripts/qa.sh
+++ Mk/Scripts/qa.sh
@@ -841,9 +841,26 @@
return $rc
}
+flavors()
+{
+ local rc pkgnames uniques
+ rc=0
+ if [ -n "${FLAVOR}" ]; then
+ pkgnames=$(make -C "${CURDIR}" flavors-package-names|sort)
+ uniques=$(echo "${pkgnames}"|uniq)
+ if [ "$pkgnames" != "${uniques}" ]; then
+ err "Package names are not uniques with flavors:"
+ make -C "${CURDIR}" pretty-flavors-package-names >&2
+ err "maybe use <flavor>_PKGNAMEPREFIX/SUFFIX".
+ rc=1
+ fi
+ fi
+ return ${rc}
+}
+
checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo"
checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo"
-checks="$checks proxydeps sonames perlcore no_arch gemdeps"
+checks="$checks proxydeps sonames perlcore no_arch gemdeps flavors"
ret=0
cd ${STAGEDIR}
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -1065,8 +1065,7 @@
.if !defined(_FLAVOR)
_FLAVOR:= ${FLAVOR}
.endif
-# XXX: We have no real FLAVORS support in ports or tools yet.
-#PORTS_FEATURES+= FLAVORS
+PORTS_FEATURES+= FLAVORS
MINIMAL_PKG_VERSION= 1.6.0
_PORTS_DIRECTORIES+= ${PKG_DBDIR} ${PREFIX} ${WRKDIR} ${EXTRACT_WRKDIR} \
@@ -1082,18 +1081,6 @@
.include "${PORTSDIR}/Mk/bsd.commands.mk"
-.if !empty(FLAVOR)
-. if empty(FLAVORS)
-IGNORE= FLAVOR is defined while this port does not have FLAVORS.
-. elif ! ${FLAVORS:M${FLAVOR}}
-IGNORE= Unknown flavor '${FLAVOR}', possible flavors: ${FLAVORS}.
-. endif
-.endif
-
-.if !empty(FLAVORS) && empty(FLAVOR)
-FLAVOR= ${FLAVORS:[1]}
-.endif
-
# Do not leak flavors to childs make
.MAKEOVERRIDES:= ${MAKEOVERRIDES:NFLAVOR=*}
@@ -1470,6 +1457,29 @@
.include "${USESDIR}/${f:C/\:.*//}.mk"
.endfor
+.if !empty(FLAVORS)
+. for f in ${FLAVORS}
+. if ${f:C/[[:lower:][:digit:]_]//g}
+_BAD_FLAVOR_NAMES+= ${f}
+. endif
+. endfor
+. if !empty(_BAD_FLAVOR_NAMES)
+DEV_ERROR+= "FLAVORS contains flavors that are not all [a-z0-9_]: ${_BAD_FLAVOR_NAMES}"
+. endif
+.endif
+
+.if !empty(FLAVOR)
+. if empty(FLAVORS)
+IGNORE= FLAVOR is defined (to ${FLAVOR}) while this port does not have FLAVORS.
+. elif ! ${FLAVORS:M${FLAVOR}}
+IGNORE= Unknown flavor '${FLAVOR}', possible flavors: ${FLAVORS}.
+. endif
+.endif
+
+.if !empty(FLAVORS) && empty(FLAVOR)
+FLAVOR= ${FLAVORS:[1]}
+.endif
+
EXTRACT_SUFX?= .tar.gz
.if defined(USE_LINUX_PREFIX)
@@ -1562,6 +1572,9 @@
LOCALBASE=${LOCALBASE} \
"STRIP=${STRIP}" \
TMPPLIST=${TMPPLIST} \
+ CURDIR='${.CURDIR}' \
+ FLAVOR=${FLAVOR} \
+ FLAVORS='${FLAVORS}' \
BUNDLE_LIBS=${BUNDLE_LIBS} \
LDCONFIG_DIR="${LDCONFIG_DIR}" \
PKGORIGIN=${PKGORIGIN} \
@@ -4025,11 +4038,17 @@
fetch-specials:
@${ECHO_MSG} "===> Fetching all distfiles required by ${PKGNAME} for building"
@for dir in ${_DEPEND_SPECIALS}; do \
+ case $${dir} in \
+ *@*) \
+ flavor=$${dir#*@}; \
+ dir=$${dir%@*}; \
+ ;; \
+ esac; \
case $$dir in \
/*) ;; \
*) dir=${PORTSDIR}/$$dir ;; \
esac; \
- (cd $$dir; ${MAKE} fetch); \
+ (cd $$dir; ${MAKE} FLAVOR=$${flavor} fetch); \
done
.endif
@@ -4323,6 +4342,7 @@
INDEX_OUT=/dev/stdout
. endif
+. if empty(FLAVORS) || defined(DESCRIBE_FLAVORED)
describe:
@(${ECHO_CMD} -n "${PKGNAME}|${.CURDIR}|${PREFIX}|"; \
${ECHO_CMD} -n ${COMMENT:Q}; \
@@ -4337,6 +4357,13 @@
;; \
esac; \
done < ${DESCR}; ${ECHO_CMD}) >>${INDEX_OUT}
+. else # empty(FLAVORS)
+describe: ${FLAVORS:S/^/describe-/}
+. for f in ${FLAVORS}
+describe-${f}:
+ @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -DDESCRIBE_FLAVORED describe
+. endfor
+. endif # empty(FLAVORS)
. endif
www-site:
@@ -4618,6 +4645,25 @@
.endif
.endif
+pretty-flavors-package-names:
+.if empty(FLAVORS)
+ @${ECHO_CMD} "no flavor: ${PKGNAME}"
+.else
+.for f in ${FLAVORS}
+ @${ECHO_CMD} -n "${f}: "
+ @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -V PKGNAME
+.endfor
+.endif
+
+flavors-package-names:
+.if empty(FLAVORS)
+ @${ECHO_CMD} "${PKGNAME}"
+.else
+.for f in ${FLAVORS}
+ @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -V PKGNAME
+.endfor
+.endif
+
# Fake installation of package so that user can pkg delete it later.
.if !target(fake-pkg)
STAGE_ARGS= -i ${STAGEDIR}
Index: Tools/scripts/MOVEDlint.awk
===================================================================
--- Tools/scripts/MOVEDlint.awk
+++ Tools/scripts/MOVEDlint.awk
@@ -86,10 +86,22 @@
resurrected[$1] = NR
if ($2) {
+ flavor=""
+ if ($2 ~ "@") {
+ flavor=$2
+ sub("@.*", "", $2)
+ sub(".*@", "", flavor)
+ }
+
if (system("test -f " portsdir "/" $2 "/Makefile"))
missing[$2] = NR
-# else
-# delete resurrected[$2]
+ else
+ if (flavor != "") {
+ if (system("test \"" flavor "\" = \"`make -C " portsdir "/" $2 " -VFLAVORS:M" flavor "`\"")) {
+ printf "%5d: %s does not have the %s flavor\n", NR, $2, flavor | sort
+ error[NR] = 1
+ }
+ }
}
# Produces too many false positives
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Oct 24, 12:11 AM (3 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24108973
Default Alt Text
D12577.id34675.diff (5 KB)
Attached To
Mode
D12577: Some more basic flavors work.
Attached
Detach File
Event Timeline
Log In to Comment