ports/94675: [patch] bsd.port.mk - give reasons to ONLY_FOR_ARCH / NOT_FOR_ARCH
Edwin Groothuis
edwin at mavetju.org
Sun Mar 19 06:40:13 UTC 2006
>Number: 94675
>Category: ports
>Synopsis: [patch] bsd.port.mk - give reasons to ONLY_FOR_ARCH / NOT_FOR_ARCH
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Mar 19 06:40:12 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Edwin Groothuis
>Release: FreeBSD 6.0-RELEASE i386
>Organization:
-
>Environment:
System: FreeBSD k7.mavetju 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Thu Nov 3 09:36:13 UTC 2005 root at x64.samsco.home:/usr/obj/usr/src/sys/GENERIC i386
>Description:
During a brainstorm session with linimon@ (who was happily sipping
away his third beer), he mentioned that he wanted to have something
which gave the reason for NOT_FOR_ARCHS and ONLY_FOR_ARCHS.
Hereby the patch to add the following keywords:
ONLY_FOR_ARCHS_REASON
ONLY_FOR_ARCHS_REASON_${ARCH}
NOT_FOR_ARCHS_REASON
NOT_FOR_ARCHS_REASON_${ARCH}
Examples:
ONLY_FOR_ARCHS= z80
ONLY_FOR_ARCHS_REASON_i386= It does not exist yet.
ONLY_FOR_ARCHS_REASON_amd64= What are 64 bits?
[~/cvs/ports/net/bbsnet] edwin at k7>ARCH=z80 make checksum
===> Vulnerability check disabled, database not found
=> MD5 Checksum OK for bbsnet-2.8.tar.gz.
=> SHA256 Checksum OK for bbsnet-2.8.tar.gz.
[~/cvs/ports/net/bbsnet] edwin at k7>ARCH=i386 make checksum
===> bbsnet-2.8 is only for z80, and you are running i386. Reason: It does not exist yet.
*** Error code 1
Stop in /usr/home/edwin/cvs/ports/net/bbsnet.
[~/cvs/ports/net/bbsnet] edwin at k7>ARCH=amd64 make checksum
===> bbsnet-2.8 is only for z80, and you are running amd64. Reason: What are 64 bits?.
Same story with NOT_FOR_ARCHS.
>How-To-Repeat:
>Fix:
--- bsd.port.mk.orig Sun Mar 19 17:18:28 2006
+++ bsd.port.mk Sun Mar 19 17:29:42 2006
@@ -207,6 +207,12 @@
# ONLY_FOR_ARCHS
# - Only build ports if ${ARCH} matches one of these.
# NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these.
+# ONLY_FOR_ARCHS_REASON
+# ONLY_FOR_ARCHS_REASON_${ARCH}
+# - Reason why it's only for ${ONLY_FOR_ARCHS}s
+# NOT_FOR_ARCHS_REASON
+# NOT_FOR_ARCHS_REASON_${ARCH}
+# - Reason why it's not for ${NOT_FOR_ARCHS}s
#
# Dependency checking. Use these if your port requires another port
# not in the list below. (Default: empty.)
@@ -2799,6 +2805,7 @@
# Don't build a port if the system is too old.
################################################################
+# Check the machine architectures
.if defined(ONLY_FOR_ARCHS)
.for __ARCH in ${ONLY_FOR_ARCHS}
.if ${ARCH:M${__ARCH}} != ""
@@ -2821,11 +2828,25 @@
.if defined(ONLY_FOR_ARCHS)
IGNORE= is only for ${ONLY_FOR_ARCHS},
.else # defined(NOT_FOR_ARCHS)
-IGNORE= does not run on ${NOT_FOR_ARCHS},
+IGNORE= does not run on ${NOT_FOR_ARCHS}.
.endif
-IGNORE+= and you are running ${ARCH}
+IGNORE+= and you are running ${ARCH}.
+
+.if defined(ONLY_FOR_ARCHS_REASON_${ARCH})
+IGNORE+= Reason: ${ONLY_FOR_ARCHS_REASON_${ARCH}}
+.elif defined(ONLY_FOR_ARCHS_REASON)
+IGNORE+= Reason: ${ONLY_FOR_ARCHS_REASON}
+.endif
+
+.if defined(NOT_FOR_ARCHS_REASON_${ARCH})
+IGNORE+= Reason: ${NOT_FOR_ARCHS_REASON_${ARCH}}
+.elif defined(NOT_FOR_ARCHS_REASON)
+IGNORE+= Reason: ${NOT_FOR_ARCHS_REASON}
+.endif
+
.endif
+# Check the user interaction and legal issues
.if !defined(NO_IGNORE)
.if (defined(IS_INTERACTIVE) && defined(BATCH))
IGNORE= is an interactive port
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list