Build issue with i386 port

From: <>
Date: Mon, 11 Apr 2022 17:23:16 UTC
Hello folks,

I'm fairly new to the porting game so please bear with me.

A few months ago, I created my first port: sysutils/cpufetch
Back then, I was only testing this on amd64 so ONLY_FOR_ARCHS was set to amd64.
In the meantime, I've spun up some i386 VMs (both FreeBSD 13 and 14) as upstream advertises to also support 32-bit FreeBSD.
In the VMs, if I just clone the upstream repository [1] and run gmake, the software compiles & runs fine.
After those successful tests I've updated the port's Makefile to also include i386 in ONLY_FOR_ARCHS.

Not long after, I was receiving my first pkg fallout message informing me that the official pkg builds are failing:

=======================<phase: build          >============================
===>  Building for cpufetch-1.00_1
gmake[1]: Entering directory '/wrkdirs/usr/ports/sysutils/cpufetch/work/cpufetch-1.00'
Makefile:38: Unsupported arch detected: i386. See
Makefile:39: If your architecture is supported but the compilation fails, please open an issue in
Makefile:40: *** Aborting compilation.  Stop.
gmake[1]: Leaving directory '/wrkdirs/usr/ports/sysutils/cpufetch/work/cpufetch-1.00'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Upstream's Makefile uses $(shell uname -m) to determine the architecture [2]. My VMs are successfully reporting this as
i386 which upstream's Makefile appears to support explicitly. After all, I'm also able to build this software
on those VMs if just cloning & running gmake manually.

I'm not really sure where to go from here. As I can build the software in FreeBSD i386 VMs I think
that the issue is related to my port and not upstream. But then again, the build fails "within" upstream's Makefile.

Could somebody help me out here?


Best regards,
~ Joel Bodenmann