On 14/04/2020 05:16, Jacek Caban wrote:
On 14.04.2020 03:35, Zebediah Figura wrote:
I don't work in distributions, but I don't particularly understand why 5 is any harder than 2-4, or what's gained from having 2-4 as an option.
The gain from 2-4 is simplicity that I mentioned earlier, which I think is crucial if we want wide adaptation. What's gained by 5?
Essentially, that it's the way things are already done.
I guess I'm also still not understanding why 2-4 is simpler, except I guess it doesn't require any packages to be installed as build dependencies—which doesn't seem like a huge advantage, since that's basically just the norm for package building.
Let's use an example. Suppose I want to bootstrap a fully working Wine on a distro with no Wine or Wine-specific packages (or I just don't want to use them). I don't want to use any binary blob, so I need to build all PE dependences myself. How would my experience look like with what you propose?
Well, in general, someone like me who's not interested in hacking on any PE libraries would retrieve precompiled libraries from WineHQ or distribution repositories—just like installing regular devel packages, just with a different architecture—and then build Wine the same way as is currently done (configure, make, make install).
So, well, binary blobs.
If one insists on compiling everything themself, they'd go through the same process as they would with any other package.
I guess that answers your question about why 2-4 is simpler. This is not as much about insisting as those are real challenges that may be potentially faced by forks like Proton, CrossOver or any other.
I don't see why wanting to manually compile every PE dependency would be any more likely with Wine than other software, or why it should be treated any differently.
We will have to agree to disagree on that. In my opinion expectation to provide SDL2 shared by thousands application is something different than Wine expecting distros to provide an independent cross compiled SDL2 package of acceptable version specifically for Wine.
Jacek
I agree. As an example, one of the nice things about the GCC build process—or even bootstrapping MinGW itself—is that it can actually build everything it needs if you just drop the required dependencies in their proper locations (very similar to submodules but slightly more manual if you just use their tarballs and no vcs).
Now, I'm totally fine if the dependencies were built as a separate step, as long as all of them are done in one step, though. That's the key here, to simplify the entire build process. At least, that's what I'd prefer.