Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#56086 closed defect (worksforme)

build of db 48-4.8.30_4 fails in MacPorts 2.4.2 on macOS Sierra 10.12.6

Reported by: emsisson Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: Cc:
Port: db48

Description

Attempted to build db 48-4.8.30_4 but received messages

--->  Attempting to fetch db48-4.8.30_4.darwin_16.x86_64.tbz2.rmd160 from https://packages.macports.org/db48
Warning: Failed to verify signature for archive!
Error: Failed to archivefetch db48: version @4.8.30_4
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_db48/db48/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port db48 failed

File main.log (attached) shows

:msg:archivefetch --->  Attempting to fetch db48-4.8.30_4.darwin_16.x86_64.tbz2.rmd160 from https://packages.macports.org/db48
:debug:archivefetch failed verification with key /opt/local/share/macports/macports-pubkey.pem
:debug:archivefetch openssl output: /opt/local/var/macports/incoming/db48-4.8.30_4.darwin_16.x86_64.tbz2.TMP: Permission denied

File macports-pubkey.pem is attached, also.

Permissions of output directory are as follows:

drwxr-xr-x   6 root      wheel  204 Mar 17 14:31 /opt
drwxr-xr-x  11 root      wheel  374 Mar 17 14:31 /opt/local
drwxr-xr-x   7 root      wheel  238 Oct  6 15:48 /opt/local/var
drwxr-xr-x@ 12 root      wheel  408 Mar 17 14:56 /opt/local/var/macports
drwxr-xr-x   3 macports  wheel  102 Mar 17 20:21 /opt/local/var/macports/incoming

I built several ports prior to this one. In fact, db48 was the tenth in a series of dependencies for another port; the nine dependencies preceding it worked without problems.

I checked the archives and found previous ticket #45534 closed defect (invalid), which suggested sudo port clean db48 and try again. I did try that, but I received the same result.

Attachments (2)

main.log (2.2 KB) - added by emsisson 7 years ago.
macports-pubkey.pem (800 bytes) - added by emsisson 7 years ago.

Download all attachments as: .zip

Change History (9)

Changed 7 years ago by emsisson

Attachment: main.log added

Changed 7 years ago by emsisson

Attachment: macports-pubkey.pem added

comment:1 Changed 7 years ago by raimue (Rainer Müller)

As indicated in the log file, your provider seems to tamper with your internet connection. See MisbehavingServers. This might also be related to corrupted downloads.

I am a bit puzzled by the Permission denied error. The log shows that the incoming directory should be owned by the macports user, so there should be no problem accessing the file.

In any case, a normal clean does not remove downloaded archives. Try clean --all to remove everything related to the build attempt of the port:

$ sudo port clean --all db48

comment:2 Changed 7 years ago by raimue (Rainer Müller)

Cc: jmr@… removed
Keywords: db48 failed verify signature removed
Owner: set to jmroot
Status: newassigned

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

Downloading the file and signature with a web browser and manually verifying with openssl works:

% openssl dgst -ripemd160 -verify /opt/local/share/macports/macports-pubkey.pem -signature ~/Downloads/db48-4.8.30_4.darwin_16.x86_64.tbz2.rmd160 ~/Downloads/db48-4.8.30_4.darwin_16.x86_64.tbz2
Verified OK

So either the file is being corrupted for you, or the issue is not related to the signature (perhaps something to do with permissions as the message suggests).

Did your successfully installed ports install from binary archives or did they all perhaps build from source?

comment:4 Changed 7 years ago by emsisson

Thank you for the quick reply; unfortunately, I had gone to bed for the night.

I tried

sudo port clean -all db48

and redoing the install, but I saw the same result.

Regarding whether previously-installed ports were binaries or from source, the earlier dependencies for the port I wanted (graphviz) appear to have been binaries. I looked at the saved output (from command script) of ports I installed earlier in the day, and most of them appear to have been binaries. However, two of them (wget, and its dependency gmp) appear to have been built from source because the saved output contains the following lines:

--->  Configuring gmp

--->  Building gmp

--->  Configuring wget

--->  Building wget

I did use that install of wget to retrieve the files and then used openssl to verify them; that succeeded:

$ cd ${HOME}/Downloads
$ wget https://packages.macports.org/db48/db48-4.8.30_4.darwin_16.x86_64.tbz2
$ wget https://packages.macports.org/db48/db48-4.8.30_4.darwin_16.x86_64.tbz2.rmd160
$ openssl dgst -ripemd160 -verify /opt/local/share/macports/macports-pubkey.pem -signature ~/Downloads/db48-4.8.30_4.darwin_16.x86_64.tbz2.rmd160 ~/Downloads/db48-4.8.30_4.darwin_16.x86_64.tbz2
Verified OK

I checked the page MisbehavingServers, and it suggests a problem with the ISP may be the cause. My ISP is a giant corporation, and I suspect that I will have little chance of suggesting that they reconfigure their DNS service.

Since I have downloaded the files with wget, I will try building locally.

comment:5 Changed 7 years ago by emsisson

The local build worked, but I had to find information at https://superuser.com/questions/189635/install-software-using-a-downloaded-port-file telling me to place the downloaded files (that I verified manually) into directory

/opt/local/var/macports/incoming/verified

before running command

sudo port install db48

Thanks for the help. You may close this ticket.

comment:6 Changed 7 years ago by kencu (Ken)

Resolution: worksforme
Status: assignedclosed

comment:7 Changed 7 years ago by jmroot (Joshua Root)

Even if your ISP won't fix their DNS, you can configure your system to use working DNS servers, e.g. Google's. Anyway, glad you got it working.

Note: See TracTickets for help on using tickets.