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

Unbottled Formulae on Monterey (Intel and ARM) #94212

Closed
30 tasks done
carlocab opened this issue Feb 1, 2022 · 20 comments
Closed
30 tasks done

Unbottled Formulae on Monterey (Intel and ARM) #94212

carlocab opened this issue Feb 1, 2022 · 20 comments
Labels
12-arm64 Monterey arm64 is specifically affected 12 Monterey is specifically affected help wanted Task(s) needing PRs from the community or maintainers outdated PR was locked due to age

Comments

@carlocab
Copy link
Member

carlocab commented Feb 1, 2022

Update from @danielnachun:
This is a final list of the formulae which remain unbottled on both Intel and ARM Monterey which are not deprecated, disabled, :all, or versioned formulae.

Build failure

  • apollo-cli - Error: Cannot find module 'graphql/validation/rules/KnownArgumentNamesRule' - apollo-cli: deprecate #116372
  • bluepill - ld: framework not found DVTiPhoneSimulatorRemoteClient - bluepill 5.12.1 #111554
  • cadaver - configure: incompatible neon library version 0.32.2: wanted 0.27 28 29 30 31 - cadaver: enable build with neon 0.32 #106403
  • chisel - error: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings. chisel: fix build and test #114379
  • drafter - version issue - happens in vendored copy of boost, and does not seem to allow use of system boost - drafter: work around bundled boost VERSION file #115518
  • hyperkit - src/lib/block_if.c:141:1: error: static declaration of 'preadv' follows non-static declaration - tries to build xhyve and fails in the same way. - hyperkit v0.20210107 #113251
  • idris2 - Exception: (while loading libidris2_support.dylib) dlopen(libidris2_support.dylib, 0x0002): tried: 'libidris2_support.dylib' (no such file), '/usr/local/lib/libidris2_support.dylib' (no such file), '/usr/lib/libidris2_support.dylib' (no such file), '/private/tmp/idris2-20220531-53452-um0fim/Idris2-0.5.1/libs/prelude/libidris2_support.dylib' (no such file) idris2: fix build on Apple Silicon #112065
  • mcrypt - checking for libmcrypt - version >= 2.5.0... configure: error: *** libmcrypt was not found - this fails because the conftest binary segfaults. mcrypt, rdup: deprecate #114108
  • needle - /private/tmp/needle-20220620-21368-lz0p9j/Generator/.build/checkouts/swift-syntax/Sources/SwiftSyntax/RawSyntax.swift:120:46: error: value of type 'CSyntaxNode' (aka 'swiftparse_syntax_node_t') has no member 'range' - needle 0.19.0 #109474
  • pgloader - Fatal COMPILE-FILE-ERROR: COMPILE-FILE-ERROR while compiling #<IRONCLAD-SOURCE-FILE "ironclad" "src" "opt" "sbcl" "x86oid-vm"> - pgloader 3.6.6 #104688
  • platypus - build seems to hang indefinitely: platypus 5.4.1 src.zip file: unzipping and symbolic link issue sveinbjornt/Platypus#240, platypus 5.4 #109580
  • psc-package - Couldn't match type ‘Text’ with ‘Data.Aeson.Key.Key’ Expected type: PackageName -> Data.Aeson.Key.Key Actual type: PackageName -> Text
  • winexe - ./configure: line 4695: syntax error near unexpected token 'fi' - same failure as linux, also unbottled on Big Sur. -- winexe: deprecate #106626
  • xhyve - src/block_if.c:125:1: error: static declaration of 'preadv' follows non-static declaration - actively developed but hasn't produced a tagged release since 2015 xhyve: deprecate #114741
  • xcprojectlint - /private/tmp/xcprojectlint-20220604-76893-1xewum3/.build/checkouts/swift-package-manager/Sources/Basic/Await.swift:18:28: error: value of type '(@escaping (Result<T, ErrorType>) -> Void) -> Void' has no member 'dematerialize' Compilation fails on macOS Monterey americanexpress/xcprojectlint#37

Test failure

Unbottled dependencies

Miscellaneous


Below is a list of the most-installed formulae (ranked according to install events in the last 90 days) that have no bottles on Monterey (both Intel and ARM).

We should try to get these bottled where we can. Some of these still have no Big Sur bottles -- if they don't, this should be reported upstream for assistance.

A number of these will have no bottles because they have unbottled dependencies. You can check with:

brew unbottled --tag=monterey octave
brew unbottled --tag=arm64_monterey octave
Both Intel and ARM

Formula                      Install Events (90d)
hyperkit                     18752
mcrypt                       8283
elasticsearch                6658
logstash                     1803
docker-machine-driver-xhyve  1624
truncate                     1241
ipmitool                     1233
pgloader                     1183
winexe                       1104
percona-toolkit              976
grace                        860
ddcctl                       856
infer                        853
xhyve                        823
mermaid-cli                  790
bluetoothconnector           704
libbs2b                      676
mlt                          654
hbase                        645
volatility                   643
libstfl                      638
rtorrent                     632
gsmartcontrol                617
chisel                       599
freeradius-server            562
pdf2htmlex                   549
multitail                    548
lilypond                     537
apollo-cli                   492
fakeroot                     489
httping                      487
glade                        483
audacious                    464
buildapp                     455
pdflib-lite                  440
ical-buddy                   437
gdcm                         428
ki                           408
easy-tag                     404
pgrouting                    398
gwyddion                     374
allegro                      373
questdb                      366
xctool                       348
modd                         328
suricata                     302
kamel                        300
idris2                       298
clair                        297
ecl                          296
termshark                    285
libfaketime                  278
rakudo-star                  257
tnftpd                       246
libdv                        246
nedit                        241
needle                       234
mpfi                         234
purescript                   231
subliminal                   229
clojure-lsp                  225
moc                          224
platypus                     222
subversion@1.8               200
latexml                      191
ddd                          186
balena-cli                   182
mysql++                      180
kotlin-language-server       177
mytop                        176
sonarqube-lts                171
cadaver                      162
singular                     160
gmt@5                        160
dynare                       157
paperkey                     156
insect                       146
osm2pgrouting                144
apache-archiva               143
xsane                        140
sf-pwgen                     136
itk                          136
pig                          134
pth                          133
innotop                      129
afsctool                     125
alot                         117
synfig                       116
jumanpp                      115
tcc                          113
lesstif                      112
vera++                       104
i2p                          102
openmodelica                 100
libzdb                       95
gtranslator                  93
druid                        90
virtualpg                    89
lanraragi                    88
carla                        82
healpix                      81
ocp                          80
dsh                          80
mmseqs2                      78
itpp                         78
eiffelstudio                 77
bluepill                     76
libdshconfig                 74
alluxio                      74
pulp                         70
mesos                        69
makepkg                      69
beast                        68
gabedit                      66
nvi                          65
juman                        63
json-fortran                 62
ringojs                      60
xcprojectlint                59
montage                      59
manticoresearch              59
ivtools                      59
inlets                       58
klee                         57
envoy@1.18                   56
qt-percona-server            55
pev                          55
inspectrum                   55
hatari                       55
libiptcdata                  54
drafter                      54
ompl                         52
nailgun                      52
gjs                          52
coreos-ct                    51
libtensorflow@1              50
e2tools                      50
libtecla                     48
pkcrack                      45
extract_url                  45
pushpin                      43
compface                     43
acl2                         43
minuit2                      40
aida-header                  39
xsd                          38
soci                         38
lightning                    38
stellar-core                 37
cassandra@2.1                37
bareos-client                37
ht                           36
libglademm                   35
aterm                        33
libmusicbrainz               32
plowshare                    30
gnuplot@4                    30
geomview                     30
ship                         29
libopennet                   29
cstore_fdw                   28
pcb                          27
libetonyek                   27
jing-trang                   27
flowgrind                    27
rsstail                      25
gssh                         25
qmmp                         24
trafficserver                23
pike                         23
libmrss                      23
huexpress                    23
flactag                      23
falcon                       23
rex                          22
ngircd                       22
libxdiff                     22
libgtop                      21
garmintools                  21
corectl                      20
classads                     20
cmusfm                       19
adplug                       19
voro++                       18
yamdi                        17
rlog                         17
libident                     17
docker2aci                   17
braid                        17
opentsdb                     15
metaproxy                    15
harbour                      15
vrpn                         14
tpp                          14
scrollkeeper                 14
liquigraph                   14
ibex                         14
flac123                      14
omega                        13
mikutter                     13
echoprint-codegen            13
c10t                         13
xlispstat                    12
sdf                          12
nmh                          12
ganglia                      12
ekhtml                       12
clipsafe                     12
yamcha                       11
xshogi                       10
xlslib                       10
sec                          10
psc-package                  10
glulxe                       10
ekg2                         10
tarsnap-gui                  9
mruby-cli                    9
libgetdata                   9
genstats                     9
eventql                      9
wv2                          8
udis86                       8
texapp                       8
solid                        8
pgdbf                        8
libodfgen                    8
git-remote-hg                8
gel                          8
couchdb-lucene               8
bas55                        8
ogmtools                     7
objfw                        7
mecab-unidic-extended        7
lib3ds                       7
fbi-servefiles               7
dbxml                        7
cubelib                      7
appscale-tools               7

@carlocab carlocab added help wanted Task(s) needing PRs from the community or maintainers 12 Monterey is specifically affected 12-arm64 Monterey arm64 is specifically affected labels Feb 1, 2022
@carlocab
Copy link
Member Author

carlocab commented Feb 1, 2022

These formulae are missing only ARM bottles on Monterey:

ARM only

Formula             Install Events (90d)
openjdk@8           48311
gdb                 38948
upx                 19486
mono                19335
node@10             12189
v8@3.15             6202
mysql@5.6           6110
git-annex           1837
chezscheme          1028
mit-scheme          1021
redis@4.0           601
sslyze              588
blast               572
redis@3.2           448
pympress            414
openttd             361
hmmer               354
joplin-cli          323
unicorn             314
acpica              275
appstream-glib      262
gnu-smalltalk       255
kibana@6            247
gdbgui              245
sqliteodbc          241
kite                237
scriptcs            235
ipmiutil            228
lepton              209
systemc             206
gexiv2              203
gegl                198
cryptol             179
cquery              176
ginac               167
datalad             164
librest             161
afl-fuzz            159
geocode-glib        153
ghc@9               149
mlton               147
clozure-cl          138
bigloo              138
cp2k                134
minizinc            130
gnome-recipes       124
hashlink            114
dar                 112
spades              104
nwchem              104
pjproject           97
io                  91
stella              89
mlkit               89
osm-gps-map         88
geogram             88
cucumber-ruby       86
cln                 85
dc3dd               83
fq                  82
rig                 75
hsd                 75
sigrok-cli          74
odin                74
efl                 71
raxml-ng            67
dvm                 67
box2d               66
luvit               65
julius              65
tracker             57
streamripper        52
openslp             48
nacl                48
mupen64plus         48
libgweather         48
openfast            47
libchamplain        47
grin-wallet         45
wput                44
libdbi              41
mercury             40
b2sum               40
jpeg-archive        39
speech-tools        38
abricate            37
xlearn              35
boringtun           35
cf-tool             33
blastem             33
valabind            32
agedu               32
nu                  31
mvtools             30
redex               29
picat               29
libpcl              29
cpu_features        29
blaze               29
clucene             27
ssdb                25
luaradio            25
tidyp               24
libcpuid            23
zydis               22
sdlpop              22
mongrel2            22
chakra              22
xplanet             20
biosig              20
awsweeper           20
teleconsole         19
snap7               19
rp                  17
lincity-ng          16
cmix                16
virgil              13
lcdproc             13
hyperestraier       13
libsquish           12
sgrep               11
s2geometry          11
mplayershell        11
fibjs               11
sagittarius-scheme  10
intercal            10
dnscrypt-wrapper    10
bde                 10
libsmf              9
gpsim               9
dgen                8
ctail               8
bic                 7

@carlocab
Copy link
Member Author

carlocab commented Feb 1, 2022

These formulae are missing only Intel bottles on Monterey:

Intel only

carlocab added a commit to carlocab/homebrew-core that referenced this issue Feb 1, 2022
None of our usual patches apply to their `configure` script, but,
conveniently, we don't need one if we set `MACOSX_DEPLOYMENT_TARGET`
appropriately.

Let's also pass `--without-x` on macOS to avoid opportunistic linkage
with X11 libraries.

This is needed for bottling on Monterey. See Homebrew#94212.
iMichka pushed a commit that referenced this issue Feb 1, 2022
None of our usual patches apply to their `configure` script, but,
conveniently, we don't need one if we set `MACOSX_DEPLOYMENT_TARGET`
appropriately.

Let's also pass `--without-x` on macOS to avoid opportunistic linkage
with X11 libraries.

This is needed for bottling on Monterey. See #94212.
carlocab added a commit to carlocab/homebrew-core that referenced this issue Feb 1, 2022
We need this to get rid of the bad `-flat_namespace` flag. None of our
usual patches apply.

This is needed for bottling on Monterey. See Homebrew#94212.

Also, update the `license`. Taken from Debian's copyright file.
BrewTestBot pushed a commit that referenced this issue Feb 1, 2022
We need this to get rid of the bad `-flat_namespace` flag. None of our
usual patches apply.

This is needed for bottling on Monterey. See #94212.

Also, update the `license`. Taken from Debian's copyright file.

Closes #94234.

Signed-off-by: Sean Molenaar <1484494+SMillerDev@users.noreply.github.com>
Signed-off-by: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com>
@luca-drf

This comment was marked as off-topic.

@SMillerDev

This comment was marked as off-topic.

@luca-drf

This comment was marked as off-topic.

@SMillerDev

This comment was marked as off-topic.

@carlocab

This comment was marked as resolved.

@danielnachun
Copy link
Member

I think we can update these lists now because we've bottled qt@5 for Intel Monterey and that was the main reason some bottles were missing for Intel Monterey but not ARM.

I can also see that a decent number of formulae missing bottles only on ARM are blocked by openjdk@8, which Azul has successfully built for ARM on macOS: https://www.azul.com/downloads/?package=jdk. I don't know if they'd be willing to help us fix our build but it might be worth reaching out.

I can also see some other formulae missing ARM bottles which are deprecated or should be deprecated because they are unmaintained.

It's also worth mentioning that the biggest blocker by far for Monterey bottling across both architectures is openjdk@11, which we haven't updated yet because the patch for ARM support is a lot of work to update. Once that is merged we'll be able to make a lot more progress on Monterey bottling in general.

@Bo98
Copy link
Member

Bo98 commented Mar 5, 2022

can also see that a decent number of formulae missing bottles only on ARM are blocked by openjdk@8, which Azul has successfully built for ARM on macOS: https://www.azul.com/downloads/?package=jdk. I don't know if they'd be willing to help us fix our build but it might be worth reaching out.

We're approaching the point where I'd like to see OpenJDK 8 phased out as a dependency. The amount of patches that would have to be backported for arm64 macOS is likely large - it already is for OpenJDK 11 and has shown to be a maintenance burden.

This is also not Monterey specific anyway.

@danielnachun
Copy link
Member

That's a very fair point. I did a cursory check of the dependents of openjdk@8, and of those which are not already deprecated or disabled, all but a handful appear to be unmaintained. We should probably start deprecating all openjdk@8 dependents unless they are actively maintained and there is a clear upstream plan to migrate at least to openjdk@11.

@MikeMcQuaid
Copy link
Member

We're approaching the point where I'd like to see OpenJDK 8 phased out as a dependency. The amount of patches that would have to be backported for arm64 macOS is likely large - it already is for OpenJDK 11 and has shown to be a maintenance burden.

Seems reasonable to me 👍🏻

@YinianFan

This comment was marked as off-topic.

@danielnachun
Copy link
Member

I'll start working on a "deprecate or update formulae that depend on openjdk@8" issue like I did for Python 2, which was quite successful.

@danielnachun
Copy link
Member

I think we should also give serious consideration to deprecating or updating formulae that depend on gtk+ (GTK2). GTK2 is EOL as of the release of GTK4: https://blog.gtk.org/2020/12/16/gtk-4-0/. The gtkglext formula is unbottled on Linux because pangox doesn't work with the X/OpenGL stack, and is heavily patched on macOS (it is unbottled on Monterey due to a flat_namespace audit failure).

A number of formulae that currently depend on gtk+ actually support GTK3 or even GTK4 and should be migrated. Those which do not support a newer GTK version should either have the GUI disabled if it is optional or be deprecated. I can make another tracking issue for this as well if desired.

@cho-m
Copy link
Member

cho-m commented Mar 13, 2022

It's also worth mentioning that the biggest blocker by far for Monterey bottling across both architectures is openjdk@11, which we haven't updated yet because the patch for ARM support is a lot of work to update. Once that is merged we'll be able to make a lot more progress on Monterey bottling in general.

openjdk@11 has backported ARM patch into development branch for upcoming 11.0.15. I've switched PR #87638 to use that version (11.0.15+5) for ARM and it successfully builds/tests.

@Bo98
Copy link
Member

Bo98 commented Mar 13, 2022

I think we should also give serious consideration to deprecating or updating formulae that depend on gtk+ (GTK2). GTK2 is EOL as of the release of GTK4: https://blog.gtk.org/2020/12/16/gtk-4-0/. The gtkglext formula is unbottled on Linux because pangox doesn't work with the X/OpenGL stack, and is heavily patched on macOS (it is unbottled on Monterey due to a flat_namespace audit failure).

A number of formulae that currently depend on gtk+ actually support GTK3 or even GTK4 and should be migrated. Those which do not support a newer GTK version should either have the GUI disabled if it is optional or be deprecated. I can make another tracking issue for this as well if desired.

In general yes: dependents of EOL/deprecated formulae should be migrated or deprecated too if there's no upstream activity. This also applies to PCRE1, but that's an example of something that can't really be rushed - I expect migration of dependents for that will not be completed this year.

For SDL 1.2, we have a migration path of sdl12_compat - though ideally we'd wait for a bug fix release or two first since that compat layer is very new.

OpenJDK 8 is a bit special as OpenJDK 8 itself is still supported for another 3 years - so the formula is not being deprecated anytime soon. It's just a bit of a personal desire that dependents should move on from this 8-year-old version of OpenJDK and allow us to reduce the dependency trees of x86_64-only formulae.

@SMillerDev SMillerDev added this to Help Wanted in Homebrew TODO via automation Mar 14, 2022
@SMillerDev SMillerDev moved this from Help Wanted to Work In Progress in Homebrew TODO Mar 14, 2022
@triallax
Copy link
Contributor

Note that insect does not depend on psc-package anymore, see #106311.

@triallax triallax mentioned this issue Jul 24, 2022
6 tasks
triallax added a commit to triallax/homebrew-core that referenced this issue Jul 24, 2022
BrewTestBot pushed a commit that referenced this issue Jul 26, 2022
Related to #94212.

Closes #106481.

Signed-off-by: Daniel Nachun <9205048+danielnachun@users.noreply.github.com>
Signed-off-by: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com>
@cho-m cho-m mentioned this issue Jul 27, 2022
6 tasks
@Bo98
Copy link
Member

Bo98 commented Oct 23, 2022

I strongly encourage deprecating mcrypt. It's abandonware security software, which is a very good reason for deprecation.

Unfortunately, rdup is still using it...

@SMillerDev
Copy link
Member

Rdup has 0 installs the last month, let's just deprecate that too. Last release was 6,5 years ago

@iMichka
Copy link
Member

iMichka commented Oct 27, 2022

rdup and mcrypt: #114108

@iMichka iMichka mentioned this issue Nov 21, 2022
6 tasks
chenrui333 pushed a commit that referenced this issue Nov 21, 2022
Does not build on Monterey, see #94212

Has been deprecated upstream, has a low download count, and could not be updated (#102444)
iMichka added a commit to iMichka/homebrew-core that referenced this issue Dec 28, 2022
Does not build on Montery: Homebrew#94212

Got no answer upstream sveinbjornt/Platypus#240

Download count is quite low:

==> Analytics
install: 58 (30 days), 275 (90 days), 941 (365 days)
install-on-request: 58 (30 days), 276 (90 days), 942 (365 days)
build-error: 0 (30 days)
@iMichka iMichka mentioned this issue Dec 28, 2022
6 tasks
BrewTestBot pushed a commit that referenced this issue Dec 28, 2022
Does not build on Montery: #94212

Got no answer upstream sveinbjornt/Platypus#240

Download count is quite low:

==> Analytics
install: 58 (30 days), 275 (90 days), 941 (365 days)
install-on-request: 58 (30 days), 276 (90 days), 942 (365 days)
build-error: 0 (30 days)

Closes #119259.

Signed-off-by: Sean Molenaar <1484494+SMillerDev@users.noreply.github.com>
Signed-off-by: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com>
@cho-m cho-m closed this as completed Dec 29, 2022
Homebrew TODO automation moved this from Work In Progress to Done Dec 29, 2022
@github-actions github-actions bot added the outdated PR was locked due to age label Jan 29, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
12-arm64 Monterey arm64 is specifically affected 12 Monterey is specifically affected help wanted Task(s) needing PRs from the community or maintainers outdated PR was locked due to age
Projects
Homebrew TODO
  
Done
Development

No branches or pull requests

10 participants