> Date: Fri, 20 Dec 2024 09:46:10 -0500 > From: Greg Troxel <g...@lexort.com> > > "Taylor R Campbell" <riastr...@netbsd.org> writes: > > > build.sh: Use X11_TYPE=modular for build.sh pkg=... by default. > > > > You can override it in your MAKECONF if you want to debug issues in > > pkgsrc with cross-building X11_TYPE=native, but let's try to make > > things work out of the box here if you don't go out of your way. > > I can sort of see where you are coming from, but this seems contrary to > doctrine, which as I understand it, is that the standard approach is to > use -x in build.sh if one wants X. > > Are you having problems with a build.sh without -x, when requesting > packages that need X? Or some other problem?
The problem is that none of the pkgsrc build infrastructure for X11_TYPE=native works for cross-builds, so before my change, if you tried to build any packages using X, it would simply barf up a spew of confusing build errors and/or unusably broken packages. (I had only tested the new build.sh command with non-graphical packages before.) I could invest a lot of effort into making X11_TYPE=native work in cross-builds -- I started a few patches which are waiting on the branch since they touch mk/ infrastructure, but there's a lot more to do for nontrivial things like splitting up X11BASE for the host and target systems. And that work is probably not worth doing anyway because the primary reason xsrc and X11_TYPE=native continue exist at all is to support cross-building X for ancient/tiny platforms too weak to do pkgsrc builds. In contrast, pkgsrc cross-builds of X packages do already generally work with X11_TYPE=modular -- that's what I put all my effort into in the past. Bear in mind that `build.sh pkg=...' is still an early-stage draft experiment. Absolutely nothing that matters relies on it, and I might rip it out and do something else instead (like maybe teach it to do pbulk with a limited_list instead or something, for better scripting). Feel free to try it out and tweak it as you need to make it work! If you want to make X11_TYPE=native cross-builds work and teach it to set X11_TYPE=native/modular depending on -x/MKX11=yes or not, go for it; it won't break anything important.