[MacPorts] #58934: 'stack' port does not build solely from a MacPorts mirror
MacPorts
noreply at macports.org
Wed Sep 25 00:11:23 UTC 2019
#58934: 'stack' port does not build solely from a MacPorts mirror
-----------------------+-----------------------
Reporter: greyhare | Owner: essandess
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.5.4
Resolution: | Keywords:
Port: stack |
-----------------------+-----------------------
Changes (by ryandesign):
* cc: ryandesign (added)
Comment:
Replying to [comment:4 greyhare]:
> I'm not entirely sure what the "MacPorts buildbot mirrored pandoc
binary" is. If you're referring to the prebuilt binary packages sometimes
available that MacPorts will install instead of downloading source
tarballs and running the whole build process for a port, it doesn't even
look for binaries of `pandoc` before deciding it must have `stack` as a
dependency, and doesn't look for binaries of `stack` either:
>
> {{{
> $ sudo port install pandoc
> ---> Computing dependencies for pandoc
> The following dependencies will be installed: stack
> Continue? [Y/n]:
> ---> Building stack
> Error: Failed to build stack: command execution failed
> Error: See
/opt/local/var/macports/logs/_opt_local_var_macports_sources_mirror.arlut.utexas.edu_macports_release_lang_stack/stack/main.log
for details.
> Error: Problem while installing stack
> Error: Follow https://guide.macports.org/#project.tickets to report a
bug.
> Error: processing of port pandoc failed
> }}}
>
> As for my mirror, it has a binary
`stack-2.1.3_0+bootstrap.darwin_18.x86_64.tbz2` (2019-08-25, 7.92MB) in
`/macports/packages/stack/` and `pandoc-2.7.3_0.darwin_18.x86_64.tbz2`
(2019-08-26, 11 MB) in `/macports/packages/pandoc/`.
>
> After doing a `sudo port clean pandoc stack`, then `sudo port install
pandoc` again tells me I need `stack` as a dependency, then I get the
error messages in my original report.
>
> It seems to be ignoring our mirror entirely: there's no attempt to fetch
the binary from `http://mirror.arlut.utexas.edu/macports/packages/stack`
despite `url http://mirror.arlut.utexas.edu/macports/packages/` being set
in my `/opt/local/etc/macports/archive_sites.conf`.
I'm pleased to hear ARLUT is using MacPorts! You may already know that UT
provides an official MacPorts mirror at
http://aus.us.packages.macports.org/macports/ (that's an alias for
http://marmot.tn.utexas.edu/macports/).
Your transcript above shows an unclean build attempt for stack: the first
phase shown in the output is the build phase; all the earlier phases,
including trying to fetch binary archives, were skipped because they were
completed on a previous attempt. If you want MacPorts to try again to get
a binary for stack, it should do so if you first run `sudo port clean
stack`. You say above that you did run that, and that it still failed, and
I see that in the main.log you attached.
Your log shows that MacPorts tried to get the binary from three different
servers and failed on each of them. The reason why it failed was "Could
not resolve host". This is not surprising since you're on an isolated
network, but MacPorts doesn't know that and it doesn't distinguish between
different types of failures. After three failed attempts, MacPorts gives
up, assuming the binary is not available anywhere, and tries to build from
source.
What is surprising though is that your ARLUT mirror server was not
contacted first. MacPorts tries to reach the best server first, which is
determined as the one with the lowest ping time. Is your server configured
to respond to pings? If not, that would explain it, and if ping support
can be enabled, that should fix it. If ping responses cannot be enabled on
the server, then MacPorts will consider the server to have a very high
ping time and will try it last.
Two changes to your settings will help alleviate that. First, you can set
`preferred_hosts mirror.arlut.utexas.edu` in macports.conf. This overrides
the ping time checks. Second, you can edit `host_blacklist` in
macports.conf to specify hosts that should never be contacted. For example
you might set `host_blacklist *distfiles.macports.org
*packages.macports.org`—I think that setting should prevent MacPorts from
trying to contact any of our official servers.
Is stack the only affected port? If MacPorts isn't checking for binaries
of any other ports on your server either, then check what you've entered
in archive_sites.conf. You mentioned entering the URL prefixed with `url`
but the prefix should be `urls`, and you'll need a `name` entry before
that.
--
Ticket URL: <https://trac.macports.org/ticket/58934#comment:6>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list