[MacPorts] #59834: Boost: refactor and enhance
MacPorts
noreply at macports.org
Tue Jun 1 19:58:35 UTC 2021
#59834: Boost: refactor and enhance
--------------------------+----------------------
Reporter: michaelld | Owner: mascguy
Type: enhancement | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: boost |
--------------------------+----------------------
Comment (by RJVB):
Picking up on some criticism of the above idea, on PR 11185:
On Tuesday June 01 2021 06:00:23 Ken wrote:
>boost needs all it's headers installed. In many cases the headers are the
only thing needed. If people take a moment, they can see if only headers
are used in a given port, and if so, list boost as a build dep only.
>
>But installing boost without the headers would be very problematic.
>
>Creating a whole new system of boost lib-only installations is way too
confusing.
I think you and Chris are making an error one should never make: under
(and over!) estimating users.
Think of what port this is, and who is likely to install it, why, and how.
1 the majority of people will probably inherit it as a dependency of a
binary package. They probably couldn't care less what's in the port, aside
(maybe) from how much disk space it takes
2 the next biggest group probably consists of people who install it
because of a build dependency. They too probably don't care what's in it,
as long as their builds succeed. Here the boost PG comes in: any port that
declares a dependency on boost can automatically add a depends_build on
the -dev subport in addition to the (optional) depends_lib on the main
port, through the PG. Here a -dev *subport* (instead of a variant)
probably makes things easier.
3 and then there will be people who use boost in their own software, i.e.
developers. More likely than not they'll have at least some experience
with Linux (and -dev packages), but above all I assume they are savy
enough to realise that they have to install more than just the main port
(if they simply haven't already, or after they discover that the main port
installs just the shared libraries).
>if we were ever going to get into that on MP, I guess it would have
happened by now...too big of a project to ever undertake now, though,
IMHO.
I see 2 reasons to spring for -dev ports : 1) size of the developer
content and 2) making build conflicts a lot easier. About that: the 1st
ports in which I used my devport PG in my MacPorts adaptation for Linux
were gettext and openssl. They often caused conflict, gettext notably
because a number of the functions in its libintl are also provided in libc
but not all symbols that get referenced when you use gettext headers (or
something like that). I used conflicts_build for a while, but these ports
are ubiquitous enough that deactivating them makes a whole lot of
applications unusable. Not such problem with a -dev port - and forgetting
to reactivate it will only break subsequent builds (and even then only if
the port isn't listed as a build dependency).
I have never felt the need to use this approach in every single one of my
own ports, and I agree that the endeavour to apply it throughout the
entire ports tree would be an impossible one. But that doesn't mean one
cannot use it where it's justified - and in this instance it would be
easy. Ports that decide to use the new boost ports and PG will have to
make some changes anyway, but in this case that wouldn't even be required
(see point 2) above).
PS: I do use a -dev port with my personal port:acl, again because its
headers can cause problems (mask system headers IIRC) but disabling the
entire port would render lots of my KF5 applications inoperable. But I
remember having run into a few other ports where I would have appreciated
this level of control.
--
Ticket URL: <https://trac.macports.org/ticket/59834#comment:34>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list