This is a new variant of "not using the make system while testing a port". To reproduce: make -C ${PORTSDIR:-"/usr/ports"}/devel/arduino16 build Error: ===> arduino-builder-1.3.21_3 depends on executable: go - not found ===> go-1.7.3,1 is only for i386 amd64 armv6, while you are running x86_64. *** Error code 1 Caused by: .if ${ARCH} == "amd64" ARCH= x86_64 .endif Not exposed by poudriere because: - It builds dependency up in separate builds, discarding upstream make variables
It took me a while to figure out what is going on (specifically, the dependency on go, which comes in from arduino-build). But the easy answer is that it is never right for a port to redefine certain variables, and ARCH is one of them. I don't quickly see for a way to substitute ARCH in the port's build infrastructure, so I don't offer a patch. But this needs to be fixed in this port. The unsatisfactory workaround is to first build lang/go, and then build devel/arduino16.
Created attachment 177330 [details] svn(1) diff of devel/arduino16
Created attachment 177331 [details] svn(1) diff of devel/arduino-core
Hi, Ugh, sorry about this. =( If someone would be so kind as to apply the following patches to devel/arduino16 and devel/arduino-core. Also, looking into other ports that do this may also be necessary -- I actually stole the idea that this was OK from devel/dwarfdump.
Have you tested that it compiles this way? I am not set up to do so ATM. Yeah, I've found the other instances of this and have assigned myself the task of smashing them flat. Thanks for the quick response.
Hi, devel/arduino16 had it as a remnant from before I split devel/arduino-core out -- it wasn't actually being used anymore, and still continues to build. devel/arduino-core had it purely for using the proper tags in a file -- no actual building happens in this port.
I haven't looked into why this is done, but if the goal is to have ARCH set to a different value in during build, then you can try MAKE_ENV+=ARCH=foo. The ports infra structure could support this by looking if BUILD_ARCH is defined and export it to MAKE_ENV instead of ARCH.
(In reply to Melvyn Sopacua from comment #7) I can't speak much for the ports that aren't mine (i.e. not devel/arduino16, devel/arduino-core, comms/java-simple-serial-connector), but in my cases the intention was never to build with a modified ARCH -- simply for naming things or 'tagging' things in metadata files. =) The modified ARCH was actually an after-thought that I didn't consider the consequences of.
Take.
A commit references this bug: Author: bsam Date: Sat Dec 10 20:03:25 UTC 2016 New revision: 428319 URL: https://svnweb.freebsd.org/changeset/ports/428319 Log: devel/arduino16, devel/arduino-core: Do not rewrite system variable ARCH: rename ARCH -> ARDUINO_ARCH. PR: 214776 Submitted by: Melvyn Sopacua <m.r.sopacua@gmail.com> Patched by: Kyle Evans <bsdports@kyle-evans.net> (maintainer) Changes: head/devel/arduino-core/Makefile head/devel/arduino16/Makefile
The fix is committed, thanks!