From owner-freebsd-ports@FreeBSD.ORG Sat Jan 21 20:05:22 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACF7C106566B for ; Sat, 21 Jan 2012 20:05:22 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (smtp6.infracaninophile.co.uk [IPv6:2001:8b0:151:1:3cd3:cd67:fafa:3d78]) by mx1.freebsd.org (Postfix) with ESMTP id 23BC58FC13 for ; Sat, 21 Jan 2012 20:05:21 +0000 (UTC) Received: from seedling.black-earth.co.uk (seedling.black-earth.co.uk [IPv6:2001:8b0:151:1:fa1e:dfff:feda:c0bb]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.5/8.14.5) with ESMTP id q0LK5E9j001451 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sat, 21 Jan 2012 20:05:14 GMT (envelope-from m.seaman@infracaninophile.co.uk) X-DKIM: OpenDKIM Filter v2.4.2 smtp.infracaninophile.co.uk q0LK5E9j001451 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infracaninophile.co.uk; s=201001-infracaninophile; t=1327176314; bh=mF1IGrUgXXyPmd5PlIky1mejhehhUN9+Qnz+PRl7LVE=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type; b=rXm9+k6Eq/achDzZGV8O1KFlb1dY0EsWwUhTK5/K6B1Ue13jkAq5VWkobzC8JfgBR A2J775bIVUof0pxAc3L31/pntfyRSqkfQhiMQQolFteoRYUs3TEDLKPgIziW34kA3O pgTzJ4I93vM04z08loya2/4jNuhW/q8Ct+joFeBc= Message-ID: <4F1B1A72.9030506@infracaninophile.co.uk> Date: Sat, 21 Jan 2012 20:05:06 +0000 From: Matthew Seaman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Mark Linimon References: <4F177264.3090708@freebsd.org> <4F17DB1C.6080503@infracaninophile.co.uk> <20120121193347.GD4729@lonesome.com> In-Reply-To: <20120121193347.GD4729@lonesome.com> X-Enigmail-Version: 1.3.4 OpenPGP: id=60AE908C Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig843131F9CF898182E6954D1F" X-Virus-Scanned: clamav-milter 0.97.3 at lucid-nonsense.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lucid-nonsense.infracaninophile.co.uk Cc: freebsd-ports@freebsd.org Subject: Re: with the cvs history? trying to help INDEX builds. X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jan 2012 20:05:22 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig843131F9CF898182E6954D1F Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 21/01/2012 19:33, Mark Linimon wrote: > On Thu, Jan 19, 2012 at 08:58:04AM +0000, Matthew Seaman wrote: >> By my calculations there are 28 ports that set 'BROKEN' because of >> architecture incompatibility on my amd64 system >=20 > IMHO these Makefiles are broken and should be fixed. Actually, collecting the data by another method, it seems that there are 359 ports that set BROKEN with the reason mentioning ${ARCH}, i386, amd64, ia64, powerpc or sparc. Of course this doesn't pick up cases where there's no clue about the architecture in the BROKEN message. I have a patch adding a BROKEN_FOR_ARCHS variable, parallel to ONLY_FOR_ARCHS, but I haven't managed to test it properly yet. I thought I'd try applying it or {ONLY,NOT}_FOR_ARCHS (as I judge[*] appropriate) to the 79 of those ports which haven't got a maintainer, which should show well enough if it works properly. Cheers, Matthew [*] well, more like guess really. --------------------------------------------------- How I worked out those numbers: i) Used my portindexdb stuff to get a list of all the Makefiles under /usr/ports/*/*/: select path from makefile where path ~ '^/usr/ports/[^/]+/[^/]+/' ii) Grep through those makefiles for lines starting BROKEN=3D and mentioning something to do with CPU architecture: < /tmp/ports-makefiles xargs grep -l '^BROKEN=3D.*\(${ARCH}\|i386\|amd64\|ia64\|powerpc\|sparc\)' > /tmp/ports-BROKEN-for-arch -- results in 359 matches iii) Then grep through those 359 makefiles for ones containing ports@FreeBSD.org % < /tmp/ports-BROKEN-for-arch xargs grep -l 'ports@FreeBSD.org' > /tmp/ports-BROKEN-for-arch-unmaintained -- results in 79 matches. MK/bsd.ports.mk patch: cvs diff: Diffing . Index: bsd.port.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.702 diff -u -u -r1.702 bsd.port.mk --- bsd.port.mk 15 Jan 2012 22:13:42 -0000 1.702 +++ bsd.port.mk 21 Jan 2012 19:36:50 -0000 @@ -222,6 +222,18 @@ # - Set this instead of ONLY_FOR_ARCHS if the given port # fetches and installs compiled i386 binaries. # +# Set these if your port temporarily does not work on certain +# architectures due to programming errors, broken dependencies +# etc. Values are lists of architecture names as above. (Defaults: not +# set) +# +# BROKEN_FOR_ARCHS +# - Declare port broken on ${ARCH} if the port is temporar= ily +# unusable there +# BROKEN_FOR_ARCHS_REASON +# BROKEN_FOR_ARCHS_REASON_${ARCH} +# - Reason why the port is broken on ${ARCH} +# # Dependency checking. Use these if your port requires another port # not in the list below. (Default: empty.) # @@ -3156,6 +3168,26 @@ .endif +.if defined(BROKEN_FOR_ARCHS) +.for __BARCH in ${BROKEN_FOR_ARCHS} +.if ${ARCH:M${__BARCH}} !=3D "" +__ARCH_BROKEN?=3D 1 +.endif +.endfor + +.if defined(__ARCH_BROKEN) +BROKEN=3D broken on ${BROKEN_FOR_ARCHS}, and you are running ${ARCH} + +.if defined(BROKEN_FOR_ARCHS_REASON_${ARCH}) +BROKEN+=3D (reason: ${BROKEN_FOR_ARCHS_REASON_${ARCH}) +.elif defined(BROKEN_FOR_ARCHS_REASON) +BROKEN+=3D (reason: ${BROKEN_FOR_ARCHS_REASON}) +.endif + +.endif + +.endif + # Check the user interaction and legal issues .if !defined(NO_IGNORE) .if (defined(IS_INTERACTIVE) && defined(BATCH)) As I said, not tested yet. I'll submit this and patches against those 79 ports as a PR once I've managed to do that. --=20 Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matthew@infracaninophile.co.uk Kent, CT11 9PW --------------enig843131F9CF898182E6954D1F Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.16 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk8bGnoACgkQ8Mjk52CukIx9cgCbBZ5HCYEjvqCik3JX50P2uGQ2 16QAnjS0s8h6Iq8AR7QkZPVoQ6+ZzoUj =sHpw -----END PGP SIGNATURE----- --------------enig843131F9CF898182E6954D1F--