[MacPorts] #63419: ccache: use "configure.ccache no" (was: The ccache port should have "configure.ccache no")
MacPorts
noreply at macports.org
Sun Aug 29 16:09:09 UTC 2021
#63419: ccache: use "configure.ccache no"
-----------------------+------------------------
Reporter: szhorvat | Owner: ryandesign
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: ccache |
-----------------------+------------------------
Changes (by ryandesign):
* owner: (none) => ryandesign
* cc: ryandesign (removed)
* cc: cjones051073 (added)
* status: new => assigned
Old description:
> After the last update (just a rev bump, https://github.com/macports
> /macports-ports/commit/d6844634ee354f5e7709903b16f44312c28316ee),
> `ccache` failed to build for me. It turns out that this happened because
> I had `configureccache yes` in my MacPorts configuration, so building
> `ccache` tried to use `ccache` itself. However, entire reason `ccache`
> had to be updated (actually just rebuilt) was that it became broken due
> to a library update. The error was:
>
> {{{
> dyld: Library not loaded: /opt/local/lib/libhiredis.0.14.dylib
> }}}
>
> Suggestion:
>
> Please disable using ccache when building ccache itself, to avoid this
> kind of trouble in the future.
New description:
After the last update (just a rev bump,
[d6844634ee354f5e7709903b16f44312c28316ee/macports-ports]), `ccache`
failed to build for me. It turns out that this happened because I had
`configureccache yes` in my MacPorts configuration, so building `ccache`
tried to use `ccache` itself. However, entire reason `ccache` had to be
updated (actually just rebuilt) was that it became broken due to a library
update. The error was:
{{{
dyld: Library not loaded: /opt/local/lib/libhiredis.0.14.dylib
}}}
Suggestion:
Please disable using ccache when building ccache itself, to avoid this
kind of trouble in the future.
--
Comment:
There hasn't been any problem using ccache when building ccache before.
The only reason the problem now arose is that when the port was
[changeset:5f657dfd78cf566aeee30f571bc9afe2bd6c4da7/macports-ports updated
to version 4.4] 6 days ago a dependency on the optional hiredis library
was added and then when
[changeset:1b199f0068917e5ecf7f9979206ba320e1cdd9d9/macports-ports hiredis
was updated to version 1.0.0] 3 days ago its library version changed so
[changeset:d6844634ee354f5e7709903b16f44312c28316ee/macports-ports ccache
had to have its revision increased].
Using `configure.ccache no` in the ccache port ensures that the ccache
port can be built if ccache is broken, and I suppose I'm not opposed to
doing so since the ccache port does not take long to build so there is not
a great benefit to using ccache when building it, but it does nothing to
solve the general problem: any other port would still fail to build if
ccache were broken. A user who has configured their MacPorts to use ccache
still needs to be aware of the consequences of doing that, needs to be
able to interpret the logs to discover that the reason for a build failure
is a broken ccache, and needs to manually rebuild ccache in that case.
MacPorts will not, for example, automatically try to rebuild ccache first
before building anything else.
So it should be our goal to keep ccache from breaking in the future.
Chris, any particular reason to add the hiredis dependency? And how likely
do we imagine it is that hiredis will change its library version again? If
we have no particular reason to add the hiredis dependency, or if it's
likely that the library version will increase again and cause this
breakage again, maybe we should backtrack and remove the hiredis
dependency again.
--
Ticket URL: <https://trac.macports.org/ticket/63419#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list