Homebrew Tap, why not use core provided dependencies if possible?

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
doia
Posts: 251
Joined: Sat May 29, 2021 5:47 am
Location: Düsseldorf

Homebrew Tap, why not use core provided dependencies if possible?

Post by doia »

Hey, I'm curious why the FreeCAD Homebrew formulae uses so many self bottled dependencies instead of the Homebrew core provided dependencies.

E.g. it uses freecad/freecad/python@3.9.6 instead of the homebrew core provided python@3.9.

Code: Select all


➜  ~ brew search python
==> Formulae
app-engine-python                       gst-python                              python-tabulate                         reorder-python-imports
boost-python                            ipython ✔                               python-tk@3.9                           wxpython
boost-python3                           micropython                             python-yq                               pythran
bpython                                 ptpython                                python@3.7                              jython
freecad/freecad/boost-python3@1.75.0 ✔  python-launcher                         python@3.8                              cython
freecad/freecad/python@3.9.6 ✔          python-markdown                         python@3.9 ✔
==> Casks
homebrew/cask/awips-python                                                       homebrew/cask/mysql-connector-python

➜  ~ brew info python@3.9
python@3.9: stable 3.9.6 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@3.9/3.9.6 (3,100 files, 54.8MB) *
  Poured from bottle on 2021-08-05 at 12:18:01
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.9.rb
License: Python-2.0
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, mpdecimal ✔, openssl@1.1 ✔, readline ✔, sqlite ✔, xz ✔
==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python@3.9/libexec/bin

You can install Python packages with
  pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.9/site-packages

tkinter is no longer included with this formula, but it is available separately:
  brew install python-tk@3.9

See: https://docs.brew.sh/Homebrew-and-Python

➜  ~ brew info freecad/freecad/python@3.9.6
freecad/freecad/python@3.9.6: stable 3.9.6
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@3.9.6/3.9.0_5 (4,487 files, 72.7MB)
  Poured from bottle on 2021-08-08 at 09:28:54
/usr/local/Cellar/python3.9/3.9.0_5 (4,487 files, 72.7MB)
  Poured from bottle on 2021-08-08 at 09:28:54
/usr/local/Cellar/python@3.9.6/3.9.6_3 (7,822 files, 118.5MB)
  Built from source on 2021-08-27 at 11:33:08
/usr/local/Cellar/python3.9/3.9.6_3 (7,822 files, 118.5MB)
  Built from source on 2021-08-27 at 11:33:08
From: https://github.com/freecad/homebrew-freecad/blob/HEAD/Formula/python@3.9.6.rb
License: Python-2.0
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, mpdecimal ✔, openssl@1.1 ✔, readline ✔, sqlite ✔, xz ✔
==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python@3.9.6/libexec/bin

You can install Python packages with
  pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.9/site-packages

tkinter is no longer included with this formula, but it is available separately:
  brew install python-tk@3.9

See: https://docs.brew.sh/Homebrew-and-Python
Both bottles are noted to be the last stable version @ 3.9.6., though the freecad version has a tiny patch included: https://github.com/FreeCAD/homebrew-fre ... rb#L69-L72.

I build FreeCAD from master using python@3.9 and did not encounter any problems. Are there any references to issues or bugs or any other explanation on these? Wouldn't it make more sense to mostly rely on the homebrew core provided bottles to reduce points of necessary maintenance?

Maybe someone can help me in understanding. I ping @ipatch here as well, as he has written the latest commits on the freecad-homebrew repo.
ipath wrote: Ping
My system: macOS Big Sur on Intel chip
Post Reply