FreeCAD / FreeCAD-Bundle

Stand-alone repo to Build and Deploy installable FreeCAD images. Do not open general FreeCAD issues here.
https://freecad.org
GNU Lesser General Public License v2.1
312 stars 63 forks source link

Add `Conda` to FreeCAD About info dialog of macOS #179

Open luzpaz opened 1 year ago

luzpaz commented 1 year ago

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

JohnOCFII commented 1 year ago

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?

luzpaz commented 1 year ago

Good question, what are your thoughts on this ?

JohnOCFII commented 1 year ago

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.

luzpaz commented 1 year ago

@adrianinsaval do you mind weighing-in on this ?

adrianinsaval commented 1 year ago

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

luzpaz commented 1 year ago

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

adrianinsaval commented 1 year ago

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

oursland commented 1 year ago

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.