[Pkg-electronics-devel] Bug#1101325: nextpnr: New upstream release 0.8
Tarik Graba
tarik.graba at telecom-paris.fr
Fri Mar 28 12:54:42 GMT 2025
Hi Daniel,
On 26/03/2025 14:43, Daniel Gröber wrote:
> On Wed, Mar 26, 2025 at 02:03:18PM +0100, Tarik Graba wrote:
>>> I started packaging earlier today. Current blocker is that I'm undecided on
>>> is https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1101323.
>>>
>>> Upstream import and WIP packaging is already in salsa if you want to help:
>>>
>>> $ gbp clone https://salsa.debian.org/electronics-team/nextpnr
>>
>> Nice! I will take a look.
>
> Awesome. Remember we should try to get this done well before the Soft
> Freeze on April 15th to give nextpnr a chance to migrate to testing before
> that. I think the 5day delay applies to us so this or next week(end) would
> be a good time to work on it ;-)
>
Sorry here, but I will not be able to help you on this task.
I do not have a proper build environment for the moment and I will not
have the time.
>>> Right I've been mulling whether I should Conflict+Replaces nextpnr-gowin
>>> with nextpnr-himbaechel-gowin (symlinks) or not. Digging into what the
>>> cmdline differences are would be useful!
>>
>> Is it really useful to keep nextpnr-gowin or even have something called
>> nextpnr-himbaechel-gowin?
>
> Actually come to think of it stable never had nextpnr-gowin so it's not
> worth doing a package replacement here.
>
>> I see that upstream are completely removing references to nextpnr-gowin. For
>> example, for apicula examples:
>>
>> https://github.com/YosysHQ/apicula/commit/3225c57c53f380817250a01be17ec42283df5ca6
>>
>> They are just calling nextpnr-himbaechel the Makefile:
>>
>> https://github.com/YosysHQ/apicula/blob/master/examples/Makefile
>
> Right. I was going to enable SPLIT mode to get individual executables for
> each uARCH, but I suppose this could end up being a point of friction for
> users if other distros choose differently here. Hmm.
>
> I guess if the gowin -> himbaechel replacement doesn't make sense SPLIT
> isn't really super useful either.
I also think so.
>
> Except. Individualized chipdb package dependencies for each uarch might
> still make this appealing.
>
> Also being able to see if the particular uarch backend you need is
> abailable in the distro is a good thing for users. Installing himbaechel
> and then having your makefile throw errors because of a missing uarch is
> more annoying I think.
>
I think you are more aware of packaging constraints and how to organize
them.
> We might want to try to coordinate with other distros on this. LMK if you
> want to have a go at that or if I should handle it. See
> https://repology.org/project/nextpnr/versions
> for a list of who to email.
I did not contact the maintainers, but I have taken a look at what/how
packages are built.
1. Fedora: they only build for generic/ice40/ecp5
* specfile
https://src.fedoraproject.org/rpms/nextpnr/blob/rawhide/f/nextpnr.spec
* the last snapshot they are targeting is after the removal of the
gowin variant (#d8988e16827a4)
* plausibly, nextpnr-gowin will never be packaged here.
2. Arch/AUR they build the Himbaechel variant
* pkgbuild
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=nextpnr-git
* and they have just removed the Gowin arch
->
https://aur.archlinux.org/cgit/aur.git/commit/?h=nextpnr-git&id=e19e188a034a020b9332c5f5ae0eaf1e6867ea3a
3. BSD port has a 0.8 release, but they only build for ICE40 and ECP5
- https://cgit.freebsd.org/ports/tree/devel/nextpnr/Makefile
> I already reached out to the Fedora maintainer, somlo, who I already know
> on IRC. https://packages.fedoraproject.org/pkgs/nextpnr/nextpnr/
>
Upstream has already a packaging strategy with the oss-cad-suite-build
(https://github.com/YosysHQ/oss-cad-suite-build).
Shouldn't distributions do something similar?
The commit where they removed the Gowin variant:
https://github.com/YosysHQ/oss-cad-suite-build/commit/d9e0f11ca87ad90c10e1bacc45365137ac1ac01c
"default/rules/default.py" contains the targets list and
"default/scrips" the build scripts.
>> Regarding he cmdline, it looks also that some options are not passed
>> directly anymore but using the vopt option.
>> For example:
>>
>> $(NEXTPNR) --json $< --write $@ --device GW1NR-LV9QN88PC6/I5 --family
>> GW1N-9C --cst tangnano9k.cst
>>
>> becomes:
>>
>> $(NEXTPNR) --json $< --write $@ --device GW1NR-LV9QN88PC6/I5 --vopt
>> family=GW1N-9C --vopt cst=tangnano9k.cst
>
> Got it: it's incompatible. Thanks for looking.
>
> --Daniel
Thanks again for your commitment,
Tarik
More information about the Pkg-electronics-devel
mailing list