Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update OpenSSL to 1.1.1c #3822

Merged
merged 6 commits into from
Sep 7, 2019
Merged

Update OpenSSL to 1.1.1c #3822

merged 6 commits into from
Sep 7, 2019

Conversation

yan12125
Copy link
Contributor

@yan12125 yan12125 commented Mar 8, 2019

Description

This is a WIP. The migration plan can be found at https://trac.macports.org/ticket/52101#comment:30.

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

Not tested

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL?
  • checked your Portfile with port lint?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?

TODOs:

  • Check whether openssl patches are really unneeded for 1.1.1 or not

@macportsbot
Copy link

Notifying maintainers:
@larryv for port openssl.
@jcvernaleo for port alpine.
@cssdev for port apg.
@ci42 for port fossil, git, nodejs4, nodejs5, nodejs6, nodejs7, nodejs8, nodejs9, erlang, ejabberd.
@kencu for port openrct2, stellarium-qt4.
@jerryyhom for port alpine.
@danielluke for port bind9, nmap, sysmon, clamav, ntp.
@aphor for port haproxy.
@Gminfly for port libssh2, medusa.
@markemer for port Io.
@kimuraw for port ruby, ruby186, ruby19, ruby20, ruby21, ruby22, ruby23, ruby24, ruby25, ruby26.
@cjones051073 for port davix, root5, root6, xrootd.
@Jakker for port softhsm.
@scantor for port xml-security-c.
@NicosPavlov for port kdelibs4, smokekde.
@ghosthound for port wireshark2, wireshark3.
@emaros for port lscsoft-deps.
@michaelld for port qt4-mac.
@l2dy for port getdns, irssi, pdns-recursor, libu2f-server.
@Veence for port qgis.
@Schamschula for port lftp, tcpdump, certbot-nginx, certbot, stunnel, apache2, goaccess, nghttp2, nginx.
@roederja for port mico.
@davidnich for port qore-asn1-module, qore-devel, qore-json-module, qore-xml-module, qore.
@jdberry for port dovecot.
@fhgwright for port libaes_siv, ntpsec.
@mklein-de for port cadaver.
@skymoo for port lscsoft-deps.
@bwalle for port crackpkcs12.
@ryandesign for port dar, freetds, mysql4, eet, libhsplasma, PlasmaClient, bahamut, php4, docsis, kerberos5, net-snmp, openvas-client, apache2, apache22, lighttpd.
@pmetzger for port libetpan.
@alfredh for port libre.
@mojca for port iAIDA, root6.
@lpsinger for port lscsoft-deps.
@tobypeterson for port epic4, epic5, mailx.
@drkp for port mit-scheme, ipmitool.
@slewsys for port mosquitto.
@scarface-one for port mtxclient.
@nerdling for port virtuoso-6, virtuoso-7, unbound, xml-security-c.
@xeron for port ngircd.
@jyrkiwahlstedt for port postgresql10, postgresql11, postgresql93, postgresql94, postgresql95, postgresql96.
@g5pw for port pev, radare2, esniper, lnav, socat.
@eborisch for port dcmtk.
@mohd-akram for port crystal, cpprestsdk.
@amake for port yubikey-manager.
@stromnov for port phantomjs.
@dbevans for port opusfile, telepathy-idle, podofo, deluge.
@easye for port bitcoin.
@kurthindenburg for port ssmtp, dokuwiki.
@Ionic for port libssh.
@blair for port thrift-devel, thrift, zeroc-ice33, zeroc-ice34, zeroc-ice35, serf0, serf1.
@mkhon for port tnftp.
@bgilbert for port tarsnap.
@raimue for port gmpc, hexchat.
@nareshov for port git-crypt.
@mattbishop for port tomcat-native.
@lbschenkel for port openpace, opensc.
@lpefferkorn for port borgbackup.
@schiebel for port mico.
@neverpanic for port openssl, nginx.
@jmroot for port python27, python34, python35, python36, python37, squid2, squid3, squid4.
@ecronin for port blackbag, boxbackup.

@macportsbot macportsbot added by: member Created by a member with commit rights maintainer: requires approval labels Mar 8, 2019
Copy link
Contributor

@xeron xeron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for ngircd if it builds.

@danielluke
Copy link
Member

revbumps for my ports are all OK

@Schamschula
Copy link
Contributor

As I don't yet have openssl 1.1.1 installed, I haven't tested all my ports. However, all ports other than certbot, have upstream documentation that current released are compatible with openssl 1.1.x.

certbot (and certbot-apache & certbot-nginx) don't directly use openssl. However, it is brought in via Python and py-openssl (which lists openssl 1.1.0 as supported).

@Schamschula
Copy link
Contributor

openssh will need to be updated to version 7.9p1, as prior versions don't support openssl 1.1.x.

@scantor
Copy link
Contributor

scantor commented Mar 8, 2019

xml-security-c is compatible with 1.1.1

@jcvernaleo
Copy link
Contributor

Pretty sure alpine uses that openssl on other platforms so as long as it builds, +1 from me.

@fhgwright
Copy link
Contributor

+1 for ntpsec and libaes_siv.

I verified that the current MacPorts source for those ports tests and builds with the new OpenSSL, albeit directly rather than via MacPorts. To do that, I temporarily installed the new OpenSSL port and rebuilt the curl and python27 ports to unbreak them (ignoring a zillion other temporarily broken ports).

@Schamschula
Copy link
Contributor

Looks like all my ports build correctly.

However, revision bumps on certbot and certbot-nginx are unneeded, while a revision bump for py-cryptography will be needed for certbot et al. to work.

@Schamschula
Copy link
Contributor

So far I have found:

broken
-ettercap @0.8.2+gtk+plugins
-gstreamer1-gst-plugins-bad @1.14.4+x11
-liboauth @1.0.3
-qt4-mac @4.8.7
-rtmpdump @2.4-20151223
-ruby @1.8.7-p374

missing from PR but building:
+gdal @2.3.2
+cargo @0.31.1
+dvisvgm @2.6.2
+libewf @20171104
+libevent @2.1.8
+py27-cryptography @2.5
+sane-backends @1.0.27+avahi
+w3m @0.5.3
+xar @1.6.1

nomaintainer in PR and building:
+afflib @3.7.18
+bro @2.6.1
+cyrus-sasl2 @2.1.27+kerberos
+httping @2.5
+mod_qos @11.62
+nagios-plugins @2.2.1
+neon @0.30.2
+openldap @2.4.47
+p5-net-ssleay @1.850.0
+pkcs11-helper @1.25.1
+proftpd @1.3.6+sqlite3
+snort @2.9.12+mysql57

@yan12125
Copy link
Contributor Author

yan12125 commented Sep 2, 2019 via email

@RJVB
Copy link
Contributor

RJVB commented Sep 2, 2019 via email

@pmetzger
Copy link
Member

pmetzger commented Sep 2, 2019

@mojca

With macOS it's quite a bit different. If you have an old PPC box lying around, or a 32-bit piece of Apple hardware, or ... well, simply some decently working 64-bit hardware that Apple decided to abandon, you can either throw it to trash bin, or install MacPorts on it, and still run the latest version of almost any opensource software you may need, and keep the box fully functional.

If we keep old PPC stuff functional at the expense of the bulk of the Mac user community (most of whom are on the latest operating system), we probably make a lot of people unhappy to make a small number of people happy. I think it's okay to keep the old stuff running to the extent that it doesn't interfere with users of current operating systems.

@kencu
Copy link
Contributor

kencu commented Sep 2, 2019

let's please not have more older systems debate here in this PR, os it is not the right forum. Feel free to start a thread on the mailing list if you care to.

@eirnym
Copy link

eirnym commented Sep 2, 2019

@yan12125 thanks, for the information, I don't use it, so I didn't know it.

@michaelld
Copy link
Contributor

qt4-mac done in facea54 .

@yan12125 yan12125 changed the title [WIP] Update OpenSSL to 1.1.1c Update OpenSSL to 1.1.1c Sep 6, 2019
@yan12125 yan12125 removed the wip Work in progress label Sep 6, 2019
@yan12125
Copy link
Contributor Author

yan12125 commented Sep 6, 2019

This pull request is now ready for merge. Any last-minute comments?

@eirnym
Copy link

eirnym commented Sep 6, 2019

I think it's better to merge this way and then proceed with updating packages when it's required.

@yan12125
Copy link
Contributor Author

yan12125 commented Sep 6, 2019

Oops I forgot about squid2 and squid3. Anyway, as those versions are no longer supported by upstream and there is only 1 user per statistics on ports.macports.org [1][2], I don't consider it a blocker.

[1] https://ports.macports.org/port/squid2/stats?days=30&days_ago=0
[2] https://ports.macports.org/port/squid3/stats?days=30&days_ago=0

@eirnym
Copy link

eirnym commented Sep 6, 2019

as we saw with some ports above, even 180 days with no downloads was blocked to drop the support.

@jmroot
Copy link
Member

jmroot commented Sep 6, 2019

It's fine, go ahead and merge and I'll fix the old squids shortly.

@jmroot
Copy link
Member

jmroot commented Sep 6, 2019

as we saw with some ports above, even 180 days with no downloads was blocked to drop the support.

Technically there is currently no way of determining that there were no downloads. We would have to parse the CDN logs, which isn't a bad idea to supplement the opt-in stats, it's just nobody has done it yet. (And even if there were no downloads, it doesn't necessarily follow that nobody is using the port.)

Anyway, the point is, don't over-extrapolate from the opt-in statistics, which only represent a sample of around 100 installations (compared to 300k downloads for some of our releases, not counting those who just selfupdated or downloaded from somewhere other than GitHub). There's a considerable "long tail" of less popular ports.

@eirnym
Copy link

eirnym commented Sep 6, 2019

It's fine, go ahead and merge and I'll fix the old squids shortly.

I'm fine with that and with the overall result.

Copy link
Member

@neverpanic neverpanic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three minor issues with the revision bumps, other than that this lg2m.

multimedia/mythtv.27/Portfile Outdated Show resolved Hide resolved
multimedia/mythtv.28/Portfile Outdated Show resolved Hide resolved
@@ -40,6 +40,7 @@ if {${subport} eq ${name}} {
subport ${name}-devel {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chances are the non-devel subport will also need a revbump for this port.

@yan12125
Copy link
Contributor Author

yan12125 commented Sep 7, 2019

@neverpanic Thank you very much! I added fixes for mythtv* in "openssl: Fix special cases manually" (3739a77657cb6de74a8ab47d1e62f4b3f5ecb7aa after the latest rebase). iperf3 and other ports with similar issues are fixed in "openssl: add missing revbumps for ports with some subports bumped but not all" (6dee32e597aca3762354c8312663157a4677cae9).

@eirnym
Copy link

eirnym commented Sep 7, 2019

and one more conflicting port

Copy link
Member

@neverpanic neverpanic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Now if people stop pushing new things, we can get this merged! ;-)

Chih-Hsuan Yen and others added 6 commits September 7, 2019 22:23
Generated with the following command:

rg -l -g Portfile ':openssl\b' ../macports-ports | grep -v '/lang/php/' | grep -v '/aqua/qt5' | xargs ./revbump-ports.sh

revbump-ports.sh is from https://github.com/yan12125/revbump-ports/tree/4a47ad53d5bc1553b86f48dfbf946bc9a466306c

Skipping lang/php and aqua/qt5 as only php*-{ftp,openssl} and
qt*-qtbase subports need revbumping, respectively.
1. False-positive version patterns

    $ git diff HEAD^ | nvim -R -

and search in nvim using:

    ^\s*version\s\+\S\+\s

2. False-positive (commented) openssl dependency declaration

Search using:

    $ rg ':openssl\b' | rg '#' | sed 's#:.*##'

Note that squid4 still depends on openssl.

3. Non-numeric revision strings

Search using:

rg 'revision\s+\$\{.+\}' $(rg -l -g Portfile ':openssl\b' | grep -v 'lang/php/' | grep -v 'aqua/qt5')

Only mythtv* is affected. mysql-like ports are already handled by
https://github.com/yan12125/revbump-ports/blob/master/increase-revision-mysql.sed
… not all

Thanks neverpanic for identifying such issues!

Approach:
1. git diff HEAD~4..HEAD~3 > diffs
2. Search pattern +\s\+revision from `diffs` with neovim and check
   relevant ports manually.
@yan12125
Copy link
Contributor Author

yan12125 commented Sep 7, 2019

I think there are already enough reviews and I cannot imagine any further issue other than build failures for a few uncommon ports, so let's get it done! Thanks everyone for testing, reviewing and sharing awesome ideas!

@yan12125 yan12125 merged commit 022f7da into macports:master Sep 7, 2019
@yan12125 yan12125 deleted the openssl11 branch September 7, 2019 17:16
@eborisch eborisch mentioned this pull request Sep 17, 2019
11 tasks
@yan12125 yan12125 mentioned this pull request Sep 21, 2019
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
by: member Created by a member with commit rights maintainer: requires approval
Development

Successfully merging this pull request may close these issues.