Tracking issue for OpenSSL 4.0 migration
openssl@3 to openssl@4 migration tracking
Staging branch process
- #282534
This migration is now being run through the openssl-4-migration-staging branch. New migration PRs should target that branch and use branches in Homebrew/homebrew-core rather than forks.
Work root-first, then trace down the dependent tree. This avoids the mixed openssl@3 / openssl@4 linkage seen when leaf formulae are migrated directly against main. Use brew deps --tree --include-build <formula> / brew deps --graph --dot --include-build <formula> to order follow-up work.
For staging PRs:
- use the labels
openssl-4-migration,staging-branch-pr, andCI-skip-recursive-dependents - skip routine local brew ops; staging CI is the validation path for this migration
- keep independent formulae split for quick review/merge
- group formulae only when they are small to build and tightly coupled
Depth 0 roots / prerequisites
-
cmakehttps://github.com/Homebrew/homebrew-core/pull/280820 -
apr-utilhttps://github.com/Homebrew/homebrew-core/pull/280827 -
asiohttps://github.com/Homebrew/homebrew-core/pull/280828 -
dotnethttps://github.com/Homebrew/homebrew-core/pull/280829 -
erlanghttps://github.com/Homebrew/homebrew-core/pull/280830 -
freetdshttps://github.com/Homebrew/homebrew-core/pull/280831 -
grpchttps://github.com/Homebrew/homebrew-core/pull/280832 -
hiredishttps://github.com/Homebrew/homebrew-core/pull/280833 -
krb5https://github.com/Homebrew/homebrew-core/pull/280834 -
libeventhttps://github.com/Homebrew/homebrew-core/pull/280835 -
libfido2https://github.com/Homebrew/homebrew-core/pull/280836 -
librdkafkahttps://github.com/Homebrew/homebrew-core/pull/280837 -
libsshhttps://github.com/Homebrew/homebrew-core/pull/280838 -
libssh2https://github.com/Homebrew/homebrew-core/pull/278658 (existing open PR) -
mariadb-connector-chttps://github.com/Homebrew/homebrew-core/pull/280839 -
openldaphttps://github.com/Homebrew/homebrew-core/pull/280840 -
opusfilehttps://github.com/Homebrew/homebrew-core/pull/280841 -
[email protected]https://github.com/Homebrew/homebrew-core/pull/280843 -
[email protected]https://github.com/Homebrew/homebrew-core/pull/280844 -
[email protected]https://github.com/Homebrew/homebrew-core/pull/280845 -
[email protected]https://github.com/Homebrew/homebrew-core/pull/280846 -
srthttps://github.com/Homebrew/homebrew-core/pull/280847 -
tcl-tkhttps://github.com/Homebrew/homebrew-core/pull/280848 -
tcl-tk@8https://github.com/Homebrew/homebrew-core/pull/280849 -
wgethttps://github.com/Homebrew/homebrew-core/pull/280850
Depth 1 dependents
-
apache-arrowhttps://github.com/Homebrew/homebrew-core/pull/280851 -
bindhttps://github.com/Homebrew/homebrew-core/pull/280852 -
curlhttps://github.com/Homebrew/homebrew-core/pull/280853 -
ffmpeghttps://github.com/Homebrew/homebrew-core/pull/280854 -
follyhttps://github.com/Homebrew/homebrew-core/pull/280855 -
httpdhttps://github.com/Homebrew/homebrew-core/pull/280856 -
libpqhttps://github.com/Homebrew/homebrew-core/pull/280857 -
nodehttps://github.com/Homebrew/homebrew-core/pull/280858 -
postgresql@17https://github.com/Homebrew/homebrew-core/pull/280859 -
postgresql@18https://github.com/Homebrew/homebrew-core/pull/280860 -
pulseaudiohttps://github.com/Homebrew/homebrew-core/pull/280861 -
qtbasehttps://github.com/Homebrew/homebrew-core/pull/280862 -
rusthttps://github.com/Homebrew/homebrew-core/pull/280863 -
systemdhttps://github.com/Homebrew/homebrew-core/pull/280864 -
unboundhttps://github.com/Homebrew/homebrew-core/pull/280865
Depth 2 dependents
-
cargo-chttps://github.com/Homebrew/homebrew-core/pull/280867 -
cryptographyhttps://github.com/Homebrew/homebrew-core/pull/280868 -
gdalhttps://github.com/Homebrew/homebrew-core/pull/280870 -
phphttps://github.com/Homebrew/homebrew-core/pull/280871 -
rubyhttps://github.com/Homebrew/homebrew-core/pull/280872
Depth 3 dependents
614 formulae depend on openssl@3 (including => :build / => :test deps).
Grouped by dependent count, then by build system. Migrate leaves first. If they break, blast radius is limited.
See OpenSSL 4.0 release notes for breaking changes. Common failure modes:
- C/C++:
ASN1_STRINGis now opaque; X509 getters now returnconstpointers. - Rust:
openssl-sys v0.10.78(released 2026-04-19) is the first release supporting OpenSSL 4. - Some formulae declare
depends_on "openssl@3"but do not actually link it. Verify if we can drop the dependency rather than migrate.
Rust (98)
-
ansible@10 -
ansible@9 -
aoe#281020 -
azure-cli -
bbot -
anchor#278367 -
btcli -
c2patool#282112 -
cargo-crev -
cargo-geiger -
cargo-instruments#282402 -
cargo-udeps -
clamav -
codanna -
code-cli#282525 -
code2prompt -
codeberg-cli -
codex-acp#282533 -
condure -
cookcli#280274 -
crunchy-cli -
datadog-static-analyzer -
durausesopenssl-sys 0.9.72 -
eureka -
feluda -
feroxbuster -
findomain -
forgejo-cli -
fw -
gerust -
git-series -
git-trim -
git-workspace -
git-xet -
gitlogue -
gitnr -
gittype -
gitui -
gurk -
icann-rdap#282665 -
icp-cli#282802 -
intelli-shell -
ironclaw -
keeper-commander -
lakekeeper -
leetcode-cli -
legba -
localstack -
lychee -
magika -
mavsdk -
meli -
netdata -
nushell -
pay -
pdfly -
pdnsrec -
pgrx -
pkgx#282586 -
projectable -
prowler -
proxelar#282582 -
prr -
pushpin -
rattler-build -
river -
rojo -
rover -
[email protected] -
[email protected] -
sapling -
scryer-prolog -
sem-cli -
sentry-cli -
sequoia-chameleon-gnupg -
sequoia-sq -
sh4d0wup -
sheldon -
sigstore -
sile -
sniffnet -
solana -
sprocket -
stellar-cli -
tabiew#282271 -
tectonic -
teleport -
termscp -
termusic -
text-embeddings-inference -
toml-bombadil -
trunk -
wally -
watchman#279297 -
weave -
yek -
yozefu -
zellij
Go (5)
-
aws-sam-cli -
gocryptfs#278464 -
mender-artifact#278466 -
mender-cli#278465 -
tt
C/C++ (CMake) (104)
-
adios2 -
amqp-cpp#284020 -
apib#280196 -
awscurl -
azure-storage-cpp -
bareos-client -
baresip#280198 -
bibtexconv -
brpc -
caf#280200 -
cassandra-cpp-driver -
clickhouse-cpp#280208 -
clickhouse-odbc -
clipboard#280215 -
cnats#281409 -
colmap -
cppcms -
csound -
dotnet@6 -
dwarfs -
dxpy -
ecflow-ui -
emqx -
encfs#280220 -
et#280221 -
ettercap -
fastnetmon -
fluent-bit#280227 -
freerdp -
h2o -
halide -
httping#279099 -
julia -
kcov -
lastpass-cli -
libcouchbase -
libdpp#280229 -
libjwt -
liboqs -
libpulsar -
libtins#280230 -
luvit -
manticoresearch -
mapnik -
mariadb -
mariadb-connector-odbc -
[email protected] -
[email protected] -
[email protected] -
[email protected] -
[email protected] -
monero#280652 -
monetdb -
mongo-c-driver@1 -
mosquitto -
musikcube -
mydumper -
[email protected] -
[email protected] -
mysql-connector-c++ -
nemu -
nmail -
ntopng -
nzbget -
openiked -
opentelemetry-cpp -
ortp#280231 -
osslsigncode -
[email protected] -
percona-xtrabackup -
[email protected] -
pgbackrest -
pistache -
podofo -
proxygen -
qca -
qxmpp -
recc -
retdec -
rizin -
root -
rtags -
rtl_433 -
sagittarius-scheme#280653 -
sipp#279100 -
snapcast#279107 -
snort -
ssldump -
stubby -
swi-prolog -
synergy-core -
tarantool -
tdlib#280655 -
thors-anvil -
trafficserver -
unshield#282543 -
uuu -
wdc#279102 -
weaviate-cli -
wownero -
xmrig -
yubico-piv-tool -
zeek -
znc
C/C++ (autotools) (147)
-
activemq-cpp -
alpine -
aqbanking -
aria2 -
axel#284019 -
bacula-fd -
bigloo -
bitchx#282103 -
btfs -
btpd#282107 -
burp#282400 -
cadaver#28140 -
cfengine -
citus -
conserver -
coturn -
couchdb -
dillo#281414 -
dnsdist#281417 -
dnsperf -
dovecot -
duo_unix -
dynomite#282128 -
ejabberd -
ekg2 -
epic5 -
erlang@25 -
erlang@27#281658 -
fetchmail -
[email protected] -
fossil#281418 -
freeradius-server -
freeswitch -
gambit-scheme -
gcli#281420 -
gerbil-scheme -
gloox -
gnupg-pkcs11-scd -
got -
gsoap -
gtmess -
heimdal -
httrack#279547 -
hydra -
icecast -
ike-scan -
iperf3#279551 -
ipmitool -
ircd-hybrid -
ircii -
isync -
john-jumbo -
lasso -
ldapvi -
lftp -
libcoap -
libdap -
libexosip -
libfreefare -
libmowgli -
libp11 -
libpq@16 -
libpq@17 -
libu2f-server -
lighttpd -
links#279545 -
lynx#279546 -
memtier_benchmark -
mfterm -
midnight-commander -
minimal-racket -
monit -
monitoring-plugins -
mutt -
nagios#279105 -
ncrack -
neomutt -
nghttp2 -
ngircd -
nmh -
nopoll -
nrpe -
nsd -
ntp -
nut -
objfw -
omniorb -
openfortivpn#279549 -
opensc -
openvpn -
ophcrack#282611 -
pam-u2f -
passenger -
pdns -
pgbouncer -
[email protected] -
[email protected] -
[email protected] -
pjproject -
pkcs11-tools -
postgresql@12 -
postgresql@13 -
postgresql@14 -
postgresql@15 -
postgresql@16 -
pure-ftpd -
pwsafe#279003 -
python-freethreading -
redwax-tool -
rethinkdb -
rpki-client -
[email protected] -
[email protected] -
s3-backer -
sblim-sfcc -
scamper#282348 -
scrypt#282346 -
shairport-sync -
shellinabox#282345 -
shibboleth-sp -
siege#282344 -
silk -
sipsak#279580 -
slowhttptest#282341 -
slrn#282340 -
sngrep#282050 -
snobol4#282336 -
snownews -
spice-server -
sqlcipher#279567 -
squid -
sstp-client -
strongswan -
stunnel -
sylpheed -
syslog-ng -
tcpdump#282259 -
tcpflow#279556 -
tinc#282251 -
tomcat-native -
urweb#282248 -
varnish -
virtuoso -
x3270 -
xaric#282090 -
yafc -
zabbix#282237
Other (90)
-
aircrack-ng#284021 -
amber -
argyll-cms -
arturo -
borgbackup -
bozohttpd#279137 -
chawan -
crystal-icr -
ctpv#284746 -
cvsync#284745 -
dmg2img#284744 -
dnsviz -
drogon -
easy-rsa#279129 -
edbrowse -
efl -
electric -
eralchemy -
exim -
fastd#284742 -
fb-client -
felinks -
flashrom -
forbidden -
getxbook -
git-crypt#284627 -
gitversion -
gkrellm -
haproxy -
[email protected] -
hashcash#279516 -
hcxtools -
hk -
http_load -
i2pd -
imap-uw -
imapfilter -
ios-webkit-debug-proxy -
irssi -
jose#284619 -
kea -
keydb -
kore#284622 -
lanraragi -
ldid -
ldid-procursus -
llgo -
mailcatcher -
makepkg -
megatools -
min-lang -
monkeysphere -
noir -
nvchecker -
openrtsp -
pdfalyzer -
pgloader -
picoruby -
proxytunnel#282581 -
pulledpork -
pypy3.10 -
pypy3.9 -
rails-mcp-server -
rakudo-star -
readpe#282351 -
redict#282355 -
[email protected] -
[email protected]#282399 -
rpmspectool -
s-nail -
s2geometry -
sgr -
spiped#282098 -
sslscan -
sslsplit -
swtpm -
teslamate -
testssl#278463 -
tsduck -
u-boot-tools -
uftp#279548 -
uwsgi -
vineyard -
vroom -
webfs#279093 -
wrk#278998 -
x11vnc#282036 -
xidel#279557 -
zchunk -
zsign
Go (1)
-
gensio(1 dependents)
C/C++ (CMake) (23)
-
apt(1 dependents) -
azure-storage-common-cpp(1 dependents) -
dcmtk(1 dependents) -
gdcm(1 dependents) -
getdns(1 dependents) -
libff(1 dependents) #278901 -
[email protected](1 dependents) -
libmsquic(1 dependents) -
libpaho-mqtt(1 dependents) -
libre(1 dependents) #282537 -
libvncserver(1 dependents) #282036 -
micromamba(1 dependents) -
mysql(1 dependents) -
[email protected](1 dependents) -
[email protected](1 dependents) -
nuraft(1 dependents) -
pdal(1 dependents) -
percona-server(1 dependents) -
poco(1 dependents) -
qpid-proton(1 dependents) -
signalwire-client-c(1 dependents) -
tiledb(1 dependents) -
xrootd(1 dependents)
C/C++ (autotools) (23)
-
cups(1 dependents) -
erlang@24(1 dependents) -
gwenhywfar(1 dependents) -
httperf(1 dependents) #279517 -
jimtcl(1 dependents) -
liboauth(1 dependents) #279578 -
libslax(1 dependents) -
libstrophe(1 dependents) -
libtorrent-rakshasa(1 dependents) -
md5sha1sum(1 dependents) #279011 -
memcached(1 dependents) #281660 -
nagios-plugins(1 dependents) -
nginx(1 dependents) -
node@18(1 dependents) -
node@20(1 dependents) -
oath-toolkit(1 dependents) -
opensaml(1 dependents) -
[email protected](1 dependents) -
sleuthkit(1 dependents) -
sofia-sip(1 dependents) -
softhsm(1 dependents) -
thrift(1 dependents) -
yara(1 dependents)
Other (11)
-
apache-serf(1 dependents) -
etcd-cpp-apiv3(1 dependents) -
karchive(1 dependents) -
kmod(1 dependents) -
libtpms(1 dependents) -
llama.cpp(1 dependents) -
mktorrent(1 dependents) #279081 -
pixiewps(1 dependents) -
redis(1 dependents) -
spice-gtk(1 dependents) -
zookeeper(1 dependents)
Rust (1)
-
[email protected](2 dependents)
C/C++ (CMake) (18)
-
awscli(3 dependents) -
azure-core-cpp(2 dependents) -
ccache(2 dependents) #281406 -
cpp-httplib(2 dependents) #278380 -
cpprestsdk(3 dependents) -
davix(2 dependents) -
dotnet@8(2 dependents) -
dotnet@9(5 dependents) -
libks(2 dependents) -
libtorrent-rasterbar(2 dependents) -
libwebsockets(3 dependents) -
mongo-c-driver(4 dependents) #281776 -
mysql-client(3 dependents) -
qpdf(5 dependents) #281769 -
rabbitmq-c(2 dependents) -
s2n(2 dependents) #280912 -
ttyd(2 dependents) -
wabt(3 dependents)
C/C++ (autotools) (34)
-
afflib(2 dependents) #281209 -
cyrus-sasl(2 dependents) #280924 -
erlang@26(2 dependents) #281659 -
gpac(2 dependents) -
ldns(4 dependents) -
libewf(2 dependents) -
libfixbuf(2 dependents) -
libimobiledevice(3 dependents) -
libngtcp2(4 dependents) -
libretls(3 dependents) -
libshout(4 dependents) #281400 -
libtrace(2 dependents) -
libxmlsec1(3 dependents) -
neon(5 dependents) -
net-snmp(5 dependents) #281292 -
nmap(3 dependents) -
node@22(5 dependents) -
node@24(3 dependents) -
openssh(2 dependents) -
[email protected](2 dependents) -
pkcs11-helper(4 dependents) -
[email protected](2 dependents) #281775 -
riemann-client(2 dependents) -
rsync(4 dependents) -
samba(2 dependents) -
socat(5 dependents) -
srtp(2 dependents) #281396 -
tarsnap(2 dependents) -
texlive(4 dependents) -
tor(3 dependents) -
w3m(5 dependents) -
xml-security-c(3 dependents) -
xml-tooling-c(2 dependents) -
xmlrpc-c(2 dependents)
Other (14)
-
berkeley-db(3 dependents) -
crystal(5 dependents) -
fbthrift(3 dependents) -
fizz(5 dependents) -
mupdf(3 dependents) -
mvfst(5 dependents) -
node-build(2 dependents) -
pipewire(2 dependents) -
pyenv(4 dependents) -
pypy(2 dependents) -
rtmpdump(5 dependents) #281398 -
ruby-build(2 dependents) -
valkey(3 dependents) -
wangle(3 dependents)
Rust (4)
-
cargo-c(10 dependents) #280867 -
cryptography(110 dependents) #280868 -
gstreamer(12 dependents) #280873 -
ruby(37 dependents) #280872
C/C++ (CMake) (9)
-
apache-arrow(7 dependents) #280851 -
aws-c-cal(7 dependents) #280911 -
dotnet(11 dependents) #280829 -
folly(9 dependents) #280855 -
gdal(9 dependents) #280870 -
grpc(8 dependents) #280832 -
libfido2(9 dependents) #280836 -
libgit2(36 dependents) #280914 -
libssh(14 dependents) #280838 -
mariadb-connector-c(15 dependents) #280839 -
srt(7 dependents) #280847
C/C++ (autotools) (28)
-
apr-util(15 dependents) #280827 -
asio(11 dependents) #280828 -
bind(11 dependents) #280852 -
curl(25 dependents) #280853 -
erlang(18 dependents) #280853 -
ffmpeg(75 dependents) #280854 -
freetds(7 dependents) #280831 -
httpd(9 dependents) #280856 -
krb5(22 dependents) #280834 -
libevent(56 dependents) #280835 -
libpq(51 dependents) #280857 -
librdkafka(6 dependents) #280837 -
libssh2(24 dependents) #278658 -
node(337 dependents) #280858 -
openldap(11 dependents) #280840 -
opusfile(10 dependents) #280841 -
php(22 dependents) #280871 -
postgresql@17(12 dependents) #280859 -
postgresql@18(22 dependents) #280860 -
[email protected]
Source: Homebrew/homebrew-core