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)
Change History (5)
Changed 3 years ago by fhgwright (Fred Wright)
comment:1 follow-up: 2 Changed 3 years ago by jmroot (Joshua Root)
comment:2 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 archivefetch → ports in external non-default port trees can fail binary archivefetch |
comment:4 Changed 3 years ago by jmroot (Joshua Root)
Resolution: | → duplicate |
---|---|
Status: | new → closed |
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.