FreeCAD 0.17 - is anyone using it?

Christoph Moench-Tegeder cmt at burggraben.net
Sat Feb 16 11:14:45 UTC 2019


## ajtiM via freebsd-ports (freebsd-ports at freebsd.org):

> Thank you but why FreeCAD need all this QT ports?

FreeCAD uses Qt for it's GUI (and a CAD system without GUI is
somewhat 1980ish). Formerly it used Qt4, but as that is going
away in four weeks, I switched it over to Qt5 - that's an option
with FreeCAD (and a little rough at the edges, see files/),
and there's really no benefit in preserving Qt4 compatibility
(remember, "going away in four weeks).
As FreeCAD is a funny mix of C++ and Python, it uses PySide2 and
friends for the Python-Qt5 bindings, and Pyside2 depends on
"most of Qt5" to provide bindings to all of that. Technically,
some dependencies are marked as "optional" in PySide2, but I
decided against OPTIONizing (or plainly not using) them, for the
following reasons:
- Not providing parts of the Qt5 bindings makes PySide2 less
  useful: some other port may just require some of the
  removed bindings.
- There's no official way for a port to depend on the OPTIONs of
  another port. Flavors do help somewhat, but not for all possible
  use cases.
- By default, the PySide2 build creates bindings for all the Qt5
  components it finds at build time: that creates a high risk of
  "contaminated" builds. Changing that is not trivial, but time
  consuming and error prone.
- Weighing my time against the cost of storage (< 15ct/GB on SSDs)
  and build time (minutes, not hours) for the extra dependencies, I
  opted for the hardware - that's one time cost, whereas making some
  of the dependencies optional would use much more of my time and
  create an ongoing maintenance burden.

Taking into account that my spare time is more likely to decrease than
increase over the next weeks (and there's FreeCAD 0.18 coming up, at
least that was their plan last time I checked), I consider this a
good tradeoff.

Regards,
Christoph

-- 
Spare Space


More information about the freebsd-ports mailing list