pkgsrc-Users archive

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

Re: Set install_name to fix devel/mustach on macOS

Sijmen Mulder <> writes:

> Hi Greg,
>> Op 27 dec. 2019, om 15:42 heeft Greg Troxel <> het volgende geschreven:
>> Sijmen Mulder <> writes:
>>> devel/mustach builds are failing on macOS because no install_name is
>>> set. Attached patch should fix it (and does so on my machine) but
>>> I'd appreciate someone with macOS experience taking a look.
>>> Build failure:
>>> Upstream PR:
>>> ok?
>> I am having trouble following.  The diff upstream and this diff don't
>> look the same.
> The Makefile changes should be identical; in fact I generated the
> patch from the git commits. Note that the pull requests is a two parter
> since I made a mistake in the first commit and corrected it with the
> second.
>> Also, it seems like upstream does not require gmake, and the patch
>> introduces a gmake dependency.  It would seem our usual approach (beyond
>> an upstream-ok patch) would be  to SUBST something like
>> @installnameflags@ to either what macos needs or empty, depending on OS
>> in our Makefile.
> The gmake dependency is unfortunate but for the PR I saw no way (except
> switching build systems entirely) to have a Mac-only flag other than an
> if statement, and those aren't portable between make systems. GNU make
> then seemed like the safest choice.

If upstream merges your PR and documents gmake, that's how it is and
pkgsrc should of course adapt on next update.  It just seems a bit much
as a pkgsrc patch, especially as the freeze is nearing hte end.

> I’m not sure what you mean with the '@installnameflags@' thing (where
> would that be defined?) but a non-patch alternative would be to add a

I meant that pkgsrc has a way to substitute things in files, and the
usual plan is to use @foo@ in the file and then change it to the right
thing with SUBST_SED.

See net/ettercap-NG for an example, although it is not conditionalize by
OS.  There are a a lot of SUBST_

> post-install target on Darwin only that runs
>   install_name_tool -d ${PREFIX}/lib/ ${PREFIX}/lib/
> A quick grep for install_name_tool shows that many packages do this.

In freeze, I would really prefer that, especially given precedent.

Longer term, it would be nice to have some higher-level declarative
workaround.  I suppose this is either a bug in upstreams or a bug in
macos (is install_name covered by any standards?) depending on how you
look at it :-)

Home | Main Index | Thread Index | Old Index