Bug 233972

Summary: net-p2p/linuxdcpp: Fails to build with OpenSSL 1.1.1 (on 12.0-RELEASE) error: member access into incomplete type 'dh_st'
Product: Ports & Packages Reporter: Marko Cupać <marko.cupac>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me CC: danfe
Priority: --- Keywords: needs-patch
Version: LatestFlags: koobs: merge-quarterly?
Hardware: amd64   
OS: Any   
URL: http://beefy11.nyi.freebsd.org/data/head-i386-default/p485718_s340864/logs/errors/linuxdcpp-1.1.0_11.log
See Also: https://launchpad.net/bugs/1808330
Bug Depends on:    
Bug Blocks: 231931    
Attachments:
Description Flags
linuxdcpp-1.1.0_13.log none

Description Marko Cupać 2018-12-13 06:26:37 UTC
Created attachment 200072 [details]
linuxdcpp-1.1.0_13.log

Poudriere build of net-p2p/linuxdcpp fails probably because of TLSv1 depreciation. I have attached relevant part of poudriere log.
Comment 1 Tobias Kortkamp freebsd_committer freebsd_triage 2018-12-13 07:16:09 UTC
The problem isn't the TLSv1 deprecation, but that OpenSSL 1.1.1 has made
many types (including DH) opaque, breaking API compatibility.

dcpp/CryptoManager.cpp:110:6: error: member access into incomplete type 'dh_st'
                        dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);

Port is unmaintained and upstream appears to be inactive since 2011.
This does not bode well for the future of this port.  Can you provide
a patch to add OpenSSL 1.1.1 support?
Comment 2 Marko Cupać 2018-12-13 12:35:24 UTC
(In reply to Tobias Kortkamp from comment #1)

Unfortunately I can't provide a patch as I don't understand the code.

I have reported this on linuxdc++'s launchpad:
https://bugs.launchpad.net/linuxdcpp/+bug/1808330

Hopefully they will patch it upstream, or some FreeBSD user will chime in with a patch. I'd be glad to help with testing.
Comment 3 commit-hook freebsd_committer freebsd_triage 2019-11-27 17:04:19 UTC
A commit references this bug:

Author: danfe
Date: Wed Nov 27 17:04:00 UTC 2019
New revision: 518512
URL: https://svnweb.freebsd.org/changeset/ports/518512

Log:
  - Allow to build against contemporary versions of OpenSSL and set
    missing INSTALLS_ICONS as reported by portlint(1)
  - Revert WITH_DEBUG part of the r512774 as explained by mat@:

    WITH_DEBUG means the port will be built with debugging symbols and
    will not be stripped.  So before, if WITH_DEBUG was set, it was built
    with all debugging bells and whistles.  Now, it only adds debug=1 to
    MAKE_ARGS, and it gets stripped in the end.  WITH_DEBUG must not be
    set by port options, it is a user-facing variable.

  PR:	233972

Changes:
  head/net-p2p/linuxdcpp/Makefile
  head/net-p2p/linuxdcpp/files/patch-dcpp_CryptoManager.cpp
Comment 4 Alexey Dokuchaev freebsd_committer freebsd_triage 2019-11-27 17:47:15 UTC
(In reply to Marko Cupać from comment #2)
> I'd be glad to help with testing.
It would be nice if you could update to ports r518512 and see if the port now works as intended.
Comment 5 Marko Cupać 2019-11-28 14:37:26 UTC
(In reply to Alexey Dokuchaev from comment #4)

It works! Thanks a lot, having dc++ client on FreeBSD means a lot to me.
Comment 6 Alexey Dokuchaev freebsd_committer freebsd_triage 2019-11-28 14:49:04 UTC
(In reply to Marko Cupać from comment #5)
> It works!
Good.  Please don't forget to update the bug report you've filled upstream (at Launchpad), you can either attach a patch or leave a link to our svnweb.

> Thanks a lot, having dc++ client on FreeBSD means a lot to me.
I've also recently unbroken Eiskaltdcpp as of ports r517674 (it had similar problems with newish OpenSSL), you might try that one as well.