Opened 3 years ago

Closed 3 years ago

#63531 closed defect (duplicate)

ports in external non-default port trees can fail binary archivefetch

Reported by: fhgwright (Fred Wright) Owned by:
Priority: Normal Milestone:
Component: base Version: 2.7.1
Keywords: archivefetch Cc:
Port:

Description

I have no idea whether this is port-specific or not, but clang-7.0 is where it shows up.

I noticed that most of my VMs are taking a huge amount of time with upgrades, and it seems that a lot of this is due to building clang-7.0 from source, even though binary archives are available. Attempting one case in -b mode, I get the following error:

DEBUG: archivefetch phase started at Wed Sep 22 18:09:50 PDT 2021
Error: Failed to archivefetch clang-7.0: Binary-only mode requested with no usable archive sites configured
DEBUG: Error code: NONE
DEBUG: Backtrace: Binary-only mode requested with no usable archive sites configured
    while executing
"error "Binary-only mode requested with no usable archive sites configured""
    (procedure "portarchivefetch::archivefetch_start" line 11)
    invoked from within
"[ditem_key $ditem prerun] $targetname"

This is on 10.10, with archive_sites.conf having its default contents.

I can see the binary archives at https://packages.macports.org/clang-7.0/, and even if they were missing, I'd expect to see the fetch attempts. Running with -d provides no clues.

Attachments (1)

main.log (42.3 KB) - added by fhgwright (Fred Wright) 3 years ago.

Download all attachments as: .zip

Change History (5)

Changed 3 years ago by fhgwright (Fred Wright)

Attachment: main.log added

comment:1 Changed 3 years ago by jmroot (Joshua Root)

If it's all ports and not just this one, then most likely your configuration is not compatible with the build server's. See the second-last bullet point in wiki:FAQ#fromsource.

If clang-7.0 is in a separate ports tree, then it could be the same situation as #59463 (which is really a feature, not a bug). If you know it's safe to use the official archive sites with a custom ports tree, you can copy _resources/port1.0/fetch/archive_sites.tcl from the official ports tree to the custom one, as Rainer mentioned in the other ticket.

Or it could be something as simple as clang-7.0 being installed with variants other than the default ones.

Last edited 3 years ago by jmroot (Joshua Root) (previous) (diff)

comment:2 in reply to:  1 Changed 3 years ago by fhgwright (Fred Wright)

Replying to jmroot:

If it's all ports and not just this one, then most likely your configuration is not compatible with the build server's. See the second-last bullet point in wiki:FAQ#fromsource.

No, it's not that.

If clang-7.0 is in a separate ports tree, then it could be the same situation as #59463 (which is really a feature, not a bug). If you know it's safe to use the official archive sites with a custom ports tree, you can copy _resources/port1.0/fetch/archive_sites.tcl from the official ports tree to the custom one, as Rainer mentioned in the other ticket.

Bingo! But it had never occurred to me to create modified ports that aren't consistent with the published ones. I.e.:

1) If I've changed the installed content, I revbump it. Archives matching the version/revision won't exist.

2) If I've only fixed a broken build, I don't revbump it, but the archive won't exist since the buildbots couldn't build it either.

In short, this behavior definitely violates the principle of least surprise.

Or it could be something as simple as clang-7.0 being installed with variants other than the default ones.

Nope. As I said in the original description, that case has a different symptom, where it makes a few attempts to fetch an archive with the requested variants before falling back to building from source. Here, in the default case, it simply pretends not to know about installing from binaries, and with -b it gives an error message that doesn't explain the real issue.

Hence, the absence of suitably informative messages is certainly a bug, even if the underlying behavior isn't.

comment:3 Changed 3 years ago by kencu (Ken)

Port: clang-7.0 removed
Summary: clang-7.0 @7.1.0_1 fails archivefetchports in external non-default port trees can fail binary archivefetch

comment:4 Changed 3 years ago by jmroot (Joshua Root)

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.