On 13.07.2019 01:26, Greg Troxel wrote: > zerous <zerous@nocebo.space> writes: > >> Hi, >> >> I have been trying to port Wine to amd64 which also happens to be a >> GSoC project. In order to do it, I have to crosscompile 32 bit wine on >> amd64. And as a side-effect of this endeavour, I have had to write >> certain packages which crosscompile programs for i386 on >> amd64. However, I am in a dilemma as to where to install such >> packages. As of right now, I have been ignoring all non-library files >> and installing libs to ${PREFIX}/usr/pkg/lib/32. Would they rather be >> installed to ${PREFIX}/emul/netbsd32/lib? > > I would like to take a step back and look at the bigger picture of what > you are doing. This seems hugely useful, but I'm not sure which way is > up. > > You are talking about packages "which crosscompile programs for i386 on > amd64". I would like to understand how that differs from > "crosscompiling a program for i386" separately from host architecture, > and if this is just a specific case of using generic crossbuild > infrastructure. > > I wonder if the packages that are created are in fact the same as the > package that would be built on i386, modulo timestamps and other things > people worry about during reproducible builds. And if not, why not. > > Given an i386 package and an amd64 system, it seems reasonable to > install it with a chroot of /emul/netbsd32, perhaps with a separaate > /emul/netbsd32/var/db/pkg. I would look at how Linux packages are > installed on NetBSD, and how their metadata is handled, to see how to do > this. > > While crosscompiling is good, it may be that it ends up that there are > packages that have to be built on i386 and are then just installed on an > amd64 system. > > I wonder if the wine you are building will be a 32-bit wine binary that > runs under netbsd32 emulation, and how that's different from the wine > built on i386. I get it that you will have to make the netbsd32 > emulation do a lot of complicated stuff that probably does not work now. > But I wonder how much of the 32-bit cross is about making wine work on > amd64, vs making it easy to build. > > > Please don't take this as discouraging or cranky; I'm writing fromm the > positiof of not really understanding what you are doing, and hoping to > make the mechanisms that are developed simpler and more > powerful/useful. Hence I'm asking a lot of questions, which I realize > may not now have crisp easy answers. > chroot or doubling ./bootstrap would be very impractical and we need compat32_* packages that are functional out of the box without any manual or superuser intervention. There are just a dozen of dependencies of wine for 32bit mode and the best (only?) reasonable approach is to build them as separate -m32 packages. End-user shall just type 'pkgin install wine' and be done.
Attachment:
signature.asc
Description: OpenPGP digital signature