Opened 3 years ago

Last modified 3 years ago

#62137 assigned defect

weechat @3.0+tls: path-style dependency for certsync/curl-ca-bundle doesn't work

Reported by: cooljeanius (Eric Gallager) Owned by: cardi (calvin ardi)
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: Cc:
Port: weechat

Description

weechat's +tls variant has a path-style dependency to allow either certsync or curl-ca-bundle to satisfy it:

    depends_run-append      path:etc/openssl/cert.pem:curl-ca-bundle

However, this doesn't work for me. I have certsync installed, and the file being checked for exists:

$ stat /opt/local/etc/openssl/cert.pem
16777221 86049698 -rw-r--r-- 1 root admin 0 260086 "Jan 23 19:16:07 2021" "Jan 23 19:15:38 2021" "Jan 23 19:15:38 2021" "Jan 23 19:15:38 2021" 4096 512 0 /opt/local/etc/openssl/cert.pem
$ port installed certsync
The following ports are currently installed:
  certsync @1.1.3_0 (active)
$

...and yet MacPorts still thinks the dependency is unsatisfied:

DEBUG: Starting logging for curl-ca-bundle
DEBUG: macOS 10.15 (darwin/19.6.0) arch i386
DEBUG: MacPorts 2.6.4
DEBUG: Xcode 12.3
DEBUG: SDK 10.15
DEBUG: MACOSX_DEPLOYMENT_TARGET: 10.15
DEBUG: Checking for conflicts against curl-ca-bundle
DEBUG: Searching for dependency: certsync
DEBUG: Found Dependency: receipt exists for certsync
Error: Can't install curl-ca-bundle because conflicting ports are active: certsync
DEBUG: conflicting ports
    while executing
"_mporterrorifconflictsinstalled $mport"
Error: Follow https://guide.macports.org/#project.tickets to report a bug.

I also have curl-ca-bundle installed, but it's not active, so that shouldn't be affecting anything:

$ port installed curl-ca-bundle
The following ports are currently installed:
  curl-ca-bundle @7.71.0_0
$ sudo port -udc deactivate curl-ca-bundle
Password:
DEBUG: Copying /Users/ericgallager/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences
DEBUG: Image error: port curl-ca-bundle is not active.
    invoked from within
"throw registry::image-error "Image error: port ${name} is not active.""
    (procedure "deactivate" line 25)
    invoked from within
"deactivate $name "" "" 0 $optionslist"
    (procedure "portimage::deactivate_composite" line 3)
    invoked from within
"portimage::deactivate_composite $portname $composite_version [array get options]"
Error: port deactivate failed: Image error: port curl-ca-bundle is not active.

Change History (6)

comment:1 Changed 3 years ago by mf2k (Frank Schima)

Cc: cardi removed
Owner: set to cardi
Status: newassigned

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

The actually relevant part of the log will be where it says something like this:

DEBUG: Searching for dependency: curl-ca-bundle
DEBUG: Didn't find receipt, going to depspec regex for: curl-ca-bundle

comment:3 Changed 3 years ago by cooljeanius (Eric Gallager)

This part?

DEBUG: Found Dependency: path: /opt/local/etc/openssl filename: cert.pem regex: ^cert.pem$
DEBUG: epoch: in tree: 0 installed: 0
DEBUG: curl-ca-bundle 7.74.0_0 exists in the ports tree
DEBUG: curl-ca-bundle 7.71.0_0  is the latest installed
DEBUG: no version of curl-ca-bundle is active
DEBUG: Merging existing variants '' into variants
DEBUG: new fully merged portvariants: 
DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/net/curl

comment:4 Changed 3 years ago by cooljeanius (Eric Gallager)

ok, so uninstalling curl-ca-bundle completely allows me to upgrade weechat. I'd still think that merely deactivating it and activating certsync should be sufficient, though.

comment:5 in reply to:  4 ; Changed 3 years ago by cardi (calvin ardi)

I've inherited this port recently, so I'm not very familiar with the decisions behind the path-style dependency. (I did see that the dependency was added/discussed in #44672.)

Is the issue here that when cert-ca-bundle is installed and inactive and certsync is installed and active, weechat @3.0_0+tls fails to install?

And when cert-ca-bundle is uninstalled and certsync is installed and active (?), weechat successfully installs?

comment:6 in reply to:  5 Changed 3 years ago by cooljeanius (Eric Gallager)

Replying to cardi:

I've inherited this port recently, so I'm not very familiar with the decisions behind the path-style dependency. (I did see that the dependency was added/discussed in #44672.)

Is the issue here that when cert-ca-bundle is installed and inactive and certsync is installed and active, weechat @3.0_0+tls fails to install?

And when cert-ca-bundle is uninstalled and certsync is installed and active (?), weechat successfully installs?

Yes, I think that's about it. To be fair, this might not actually be an issue with weechat specifically, it might be a general issue with MacPorts' handling of path-style dependencies overall. But I'm not sure.

Note: See TracTickets for help on using tickets.