On Mon, Apr 11, 2022 at 7:24 PM <jbo@insane.engineer> wrote: > > 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 > https://github.com/Dr-Noob/cpufetch#1-support > Makefile:39: If your architecture is supported but the compilation fails, > please open an issue in https://github.com/Dr-Noob/cpufetch/issues > 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?
When the Makefile checks the output of uname -m, it compares the result with a list of values that includes i686 but not i386. I think a simple REINPLACE_CMD would suffice here. Since I failed to detect this, do you want me to fix it in the repo? I will also send a patch upstream. Cheers. > > [1] https://github.com/dr-noob/cpufetch > [2] https://github.com/Dr-Noob/cpufetch/blob/master/Makefile#L14 > > > Best regards, > ~ Joel Bodenmann >