[haiku-development] Re: Package Management - devel or not to devel?

  • From: Stephan Aßmus <superstippi@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 04 Sep 2013 10:16:16 +0200

Hi,

On 04.09.2013 06:09, scottmc wrote:
Your negative use case doesn't apply here.  If you are building
something and it has a specific build requirement, you simply define
those in the .recipe file as being required and then when it is built
using haikuporter the proper packages that "PROVIDE" those will be
installed into the chroot so that when you build the package it will
have everything in it that you define it to be needing, so that
configure or cmake or whichever build tool is used for that package can
then find everytihng we've defined it to use on Haiku.  The standard
"user" won't even see this side of things, it will just install the
package they requested plus any packages that it depends on.  The
developers and package builders on the other hand will have to make sure
they write proper .recipe files for haikuporter to do it's job.  I think
once we get past the initial learning curve, creating good quality
.recipe files won't be too hard.  From what I've noticed so far the
-devel packages are only needed during the builds and rarely a
requirement for an end user installed package.  Most of the exceptions
to this will probably be developer related packages.

You only have the use-case of compiling with haikuporter in mind. However compiling unpackaged stuff without a chroot environment would also still work and that is where John's argument would apply.

That being said, the pain in development packages that I experienced was due to inconsistent and unintuitive package naming. For example, I needed to target GTK and then I found out I could target either GTK 2 API or 3 API and it all wasn't straight forward. I think I even had to manually make headers visible to the system that were already installed. (All in Ubuntu.)

As for John's argument about the build system of some software not finding some optional stuff, I think this is not the complete picture. Often you have to tell that build system where to find the optional stuff, or you have to explicitely enable it, even when it is installed. Yes, there is also the case where it automatically configures based on what it finds. My point is, you have to know what you are doing anyway, since "it depends". You have to read build instructions and the configure options. Not having devel packages is not going to change that. And when you know what you want installed, and the naming is consistent and intuitive, it should not be a big deal.

I think the separation of development packages is wise. As others have pointed out, there would be simple ways to get an equivalent behavior (by always installing the devel package along-side the regular one as an option). But when Haiku is to be used in a constrained environment, I would welcome the option to not include unnecessary stuff. It saves (possibly precious) disk space and also CPU cycles when packages have to be parsed during boot.

Best regards,
-Stephan


Other related posts: