Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: New port cad/nextpnr
To:
Thomas Dettbarn <dettus@dettus.net>
Cc:
ports@openbsd.org
Date:
Tue, 9 Jun 2026 00:20:53 +0100

Download raw body.

Thread
On 2026/06/09 00:53, Thomas Dettbarn wrote:
> For your consideration, please find the port for cad/nextpnr
> attached to this email.
> It is part of the yosys & nextpnr & openfpgaloader toolchain,
> which can be used for FPGA design and synthesis on OpenBSD.
> 
> Thomas
> 
> 

> diff --git a/cad/nextpnr/Makefile b/cad/nextpnr/Makefile
> new file mode 100644
> index 00000000000..eb31acf38fe
> --- /dev/null
> +++ b/cad/nextpnr/Makefile
> @@ -0,0 +1,34 @@
> +###############################################
> +## WARNING: This build requires a lot of RAM ##
> +## Please update /etc/login.conf and set     ##
> +## daemon:datasize=16384M                    ##
> +###############################################

erk. don't suppose it's possible to track down which compilation uses
so much ram and see if a lower optimisation level for that file would
help?

port builds are normally done with class 'pbuild' which on amd64 has
default ":datasize-cur=12G:" ...

> +
> +COMMENT=	Portable FPGA place and route tool

lowercase at start

> +CATEGORIES=	cad
> +V=		0.10a
> +REVISION=	0
> +DISTNAME=	nextpnr-${V}
> +
> +GH_ACCOUNT=	YosysHQ
> +GH_PROJECT=	nextpnr
> +GH_COMMIT=	32324500c4ae33670df429d2e8e2a83b51b062ab

same comment as before about version numbering

> +HOMEPAGE=	https://github.com/YosysHQ/nextpnr
> +MAINTAINER=	Thomas Dettbarn <dettus@dettus.net>
> +# ISC License
> +PERMIT_PACKAGE=	yes
> +
> +
> +MODULES=	devel/cmake

normally put a blank line before the license comment (and just one
blank line not two after)

> +NO_TEST=	Yes
> +
> +LIB_DEPENDS=	math/eigen3
> +BUILD_DEPENDS=	cad/prjpeppercorn
> +BUILD_DEPENDS+=	lang/python/3

don't add the python dep like this, add lang/python to MODULES instead
> +
> +CONFIGURE_ARGS=	-DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13

split onto lines i.e.

CONFIGURE_ARGS=	-DARCH="generic;himbaechel" \
		-DHIMBAECHEL_UARCH="gatemate" \
		...

do you really need the version number in the prjpeppercorn dir?
apart from being a pain because you'll need to touch multiple ports
after an update, there will also be churn in the PLIST files, and
pkg_add will need to remove/reinstall files even if there was no
change to the contents.

> +CONFIGURE_ARGS=	-DARCH="generic;himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/usr/local/share/prjpeppercorn-1.13
> +
> +
> +.include <bsd.port.mk>
> +
> diff --git a/cad/nextpnr/distinfo b/cad/nextpnr/distinfo
> new file mode 100644
> index 00000000000..6a0ca990755
> --- /dev/null
> +++ b/cad/nextpnr/distinfo
> @@ -0,0 +1,2 @@
> +SHA256 (nextpnr-0.10a-32324500.tar.gz) = Qu2EnnbMXCyPFmAJs+q1HF0lUCMNG7jmNbT3FB/TGGs=
> +SIZE (nextpnr-0.10a-32324500.tar.gz) = 3524943
> diff --git a/cad/nextpnr/pkg/DESCR b/cad/nextpnr/pkg/DESCR
> new file mode 100644
> index 00000000000..217791fd790
> --- /dev/null
> +++ b/cad/nextpnr/pkg/DESCR
> @@ -0,0 +1,2 @@
> +nextpnr aims to be a vendor neutral, timing driven, FOSS FPGA place and
> +route tool.
> diff --git a/cad/nextpnr/pkg/PLIST b/cad/nextpnr/pkg/PLIST
> new file mode 100644
> index 00000000000..63fd94f8a9c
> --- /dev/null
> +++ b/cad/nextpnr/pkg/PLIST
> @@ -0,0 +1,7 @@
> +@bin bin/nextpnr-generic
> +@bin bin/nextpnr-himbaechel
> +share/nextpnr/
> +share/nextpnr/himbaechel/
> +share/nextpnr/himbaechel/gatemate/
> +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A1.bin
> +share/nextpnr/himbaechel/gatemate/chipdb-CCGM1A2.bin
>