FreeCAD-Bundle icon indicating copy to clipboard operation
FreeCAD-Bundle copied to clipboard

Add `Conda` to FreeCAD About info dialog of macOS

Open luzpaz opened this issue 1 year ago • 8 comments

IMHO we avoid an extra layer of abstraction by adding 'Conda' to macOS About info. See usecase in https://github.com/FreeCAD/FreeCAD-Bundle/issues/180

Currently on the dev version:

OS: macOS 11.7.7
Word size of FreeCAD: 64-bit
Version: 0.21.0.33321 (Git)
Build type: Release
Branch: master

Proposal:

OS: macOS 11.7.7 (Conda)
Word size of FreeCAD: 64-bit
Version: 0.21.0.33321 (Git) 
Build type: Release
Branch: master

Edit: in the same spirit as https://github.com/flathub/org.freecadweb.FreeCAD/issues/119

luzpaz avatar May 30 '23 13:05 luzpaz

Is Conda vs. Other the real issue here, or is this specific to the automated weekly builds (via Conda) vs. potentially self-built versions, which could be Conda, Homebrew, etc?

JohnOCFII avatar May 30 '23 13:05 JohnOCFII

Good question, what are your thoughts on this ?

luzpaz avatar May 30 '23 13:05 luzpaz

Good question, what are your thoughts on this ?

I think the root question to be answered is, "how was this built?" For example, I'm using the build instructions from @oursland which uses Conda, to build locally https://github.com/oursland/FreeCAD-Build-Notes. I believe that @oursland also submitted his changes to be included in the weekly builds via @looooo but I'm not sure if they were completely sync'd or not. And I know there are various build instructions for using HomeBrew out there too. So the ideal spot (IMO) would be whatever controls the "master recipe" that drives each of the different build methods -- and I'm not sure where, exactly, that would be for the different options.

JohnOCFII avatar May 30 '23 14:05 JohnOCFII

@adrianinsaval do you mind weighing-in on this ?

luzpaz avatar May 30 '23 15:05 luzpaz

Yes this could be useful, there's already a cmake variable related to conda I think so we could use that to add this at compile time

adrianinsaval avatar May 30 '23 15:05 adrianinsaval

How would cmake 'know' where from/whom is compiling it (in scenarios where people are compiling FreeCAD from source)?

luzpaz avatar May 30 '23 15:05 luzpaz

Sorry I hadn't read all the comments, I think that we are hitting a point of diminishing returns on how much info we gather and output, if someone can compile themselves they probably can tell us that they did and using what. As for identifying conda builds, we set this cmake variable for our builds and most people building on conda would be doing this too: https://github.com/FreeCAD/FreeCAD/blob/ef70f2e53de65a49aa8e4077732353d4b4dcec02/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake#L13 https://github.com/conda-forge/freecad-feedstock/blob/b0af988408006e5b69e311d9af8f7cd1b50ae22a/recipe/build.sh#L48

adrianinsaval avatar May 30 '23 16:05 adrianinsaval

Having a Conda identifier is somewhat useful. Conda is different from other build systems in that it packages a custom set of frameworks and standard libraries that are likely incompatible with the ones on the host system. The reason is to provide a consistent set of base APIs independent of the macOS version.

I learned the hard way that if you somehow mix up linkage between a Conda library and a host library provided by macOS or some other package manager like brew, your binary will run but crash in unexpected ways. Having some indicator to identify if this is a possibility may be valuable for someone trying to read a bug report or crash logs.

oursland avatar May 30 '23 16:05 oursland