tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD-6 firefox requires gcc 4.6, why not build 4.8?



On 6 November 2014 13:00, Greg Troxel <gdt%ir.bbn.com@localhost> wrote:
>
> Jonathan Perkin <jperkin%joyent.com@localhost> writes:
>
>> If done correctly then I'd be in favour, i.e. it needs to not break
>> the existing use case where a user can set USE_PKGSRC_GCC and GCC_REQD
>> and have a specific version used unless a package sets GCC_REQD to a
>> higher version.
>
> I'm sympathetic to your use case but it seems there is in our current
> scheme semantic confusion between what a package needs and what a
> (pkgsrc admin) wants.
>
> There seems to be a notion built into GCC_REQD that any newer version of
> gcc will be ok also.  That might often be true, but seems unlikely to
> always be true.
>
> This issue doesn't seem to come up with clang.   That may be because
> there aren't really crufty clang versions in base systems (yet?).
>
> So, I'd like to see a more complete rototill, which might be easier than
> incremental fixes.  This is fuzzy and meant to be a basis for
> discussion, not an actual proposal, and I would well be missing
> something.
>
> * variables set by packages
>
> ** GCC_REQD
>
> the minimum gcc version needed, with the semantics that all higher
> versions are ok.  Does not imply anything at all about clang.
>
> ** GCC_INCOMPATIBLE
>
> gcc versions > $GCC_REQD that are known not to work for this package

Maybe make it more explicit with something like GCC_MIN_VERSION &
GCC_MAX_VERSION?

> ** CLANG_REQD/CLANG_INCOMPATIBLE
>
> (to be added if we really need it, omitted for now)
>
> * variables set in mk.conf
>
> ** PKGSRC_GCC_DESIRED (perhaps only if USE_PKGSRC_GCC)
>
> The version of gcc that should be used, assuming a package is ok with
> it.  This defaults to the base system's gcc version, or to some version
> in pkgsrc (highish).  Perhaps this really looks like base:41 or
> pkgsrc:49 and USE_PKGSRC_GCC goes away.

We seem to have a pattern of PREFER rather than DESIRE in making (I
make no comment regarding the complete lack of "DESIRE in pkgsrc/mk :)
I would have this value purely be of the form 41 or 49 without
reference to base: or pkgsrc:

> ** PKGSRC_GCC_HIGH
>
> The version of gcc that should be used if the base one isn't ok.  If
> this version isn't ok.
>
> * build rules for a package
>
> If PKGSRC_GCC_DESIRED satisfies GCC_REQD/GCC_INCOMPATIBLE, use it.
>
> Otherwise, if PKGSRC_GCC_HIGH satisfies, use it.
>
> Otherwise, search the list of gcc versions from high to low and use the
> first one that satisfies the rule.
> (If that's not ok, maybe PKGSRC_GCC_DESIRED should be a list, but that
> feels too complicated.)

Other than a mild view regarding the colour of the variable names,
what you have written matches what I would have put had I thought it
through and been able to articulate it clearly :)


Home | Main Index | Thread Index | Old Index