macOS build instructions - outdated?

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Chamfer036
Posts: 8
Joined: Sat May 04, 2019 8:08 pm
Location: France

Re: macOS build instructions - outdated?

Post by Chamfer036 »

I've just updated the wiki to remove the outdated instructions, and it builds 8-)
jia
Posts: 6
Joined: Tue Feb 11, 2020 11:05 am

Re: macOS build instructions - outdated?

Post by jia »

Chamfer036 wrote: Sat May 18, 2019 9:57 am I've just updated the wiki to remove the outdated instructions, and it builds 8-)
Hi Chamfer036,

It is outdated, again.

I'm building FreeCAD git master on macOS Catalina, when I run

Code: Select all

brew install --only-dependencies freecad
I got that
python@2 was deleted from homebrew/core
And the FreeCAD version is 0.17 in the Homebrew 'tap'.

May you please let me know how to build the least FreeCAD on least macOS?

Thank you.
chrisb
Veteran
Posts: 54166
Joined: Tue Mar 17, 2015 9:14 am

Re: macOS build instructions - outdated?

Post by chrisb »

looo is the expert in compiling on MacOS.
looo wrote:ping
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: macOS build instructions - outdated?

Post by looo »

jia wrote: Tue Feb 11, 2020 11:52 am brew install --only-dependencies freecad
Sry I have no idea how brew works. The brew specialist is @pertel94.
jia
Posts: 6
Joined: Tue Feb 11, 2020 11:05 am

Re: macOS build instructions - outdated?

Post by jia »

looo wrote: Wed Feb 12, 2020 8:37 am
jia wrote: Tue Feb 11, 2020 11:52 am brew install --only-dependencies freecad
Sry I have no idea how brew works. The brew specialist is @pertel94.

Hi looo,

May you please give me the manual build steps on macOS?

We hope @pertel94 will update the home-brew repo and the macOS build wiki page.

Thank you.
peterl94
Veteran
Posts: 1001
Joined: Thu May 23, 2013 7:31 pm
Location: United States

Re: macOS build instructions - outdated?

Post by peterl94 »

jia wrote: Thu Feb 13, 2020 1:58 am We hope @pertel94 will update the home-brew repo
Sorry, that is not likely. I consider Conda to be the official way to install dependencies for FreeCAD now. I have been away from FreeCAD development for too long to contribute anything useful to this discussion, sorry.
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: macOS build instructions - outdated?

Post by looo »

jia wrote: Thu Feb 13, 2020 1:58 am
looo wrote: Wed Feb 12, 2020 8:37 am
jia wrote: Tue Feb 11, 2020 11:52 am brew install --only-dependencies freecad
Sry I have no idea how brew works. The brew specialist is @pertel94.

Hi looo,

May you please give me the manual build steps on macOS?
https://github.com/FreeCAD/FreeCAD_Cond ... y-sans-cis
jia
Posts: 6
Joined: Tue Feb 11, 2020 11:05 am

Re: macOS build instructions - outdated?

Post by jia »

Hi looo,

I read you instructions and still have some questions.

This is what I did:
Step1, install miniconda.

Step2, run

Code: Select all

conda install conda-build
to install conda-build for Miniconda didn't offer conda-build.

Step3,

Code: Select all

conda config --add channels conda-forge
and

Code: Select all

conda config --add channels freecad/label/dev
to add channels.

Step4, download MacOSX10.12.sdk, extract and put it under /opt/MacOSX10.12.sdk.

Step5, create ~/conda_build_config.yaml and copy this into it.

Code: Select all

CONDA_BUILD_SYSROOT:  
      - /opt/MacOSX10.12.sdk        # [osx]
Step6, get into the FreeCAD source directory.

Step7,

Code: Select all

conda build . --python=3.7
then I get a error

Code: Select all

conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {'toolchain'}
Step8, edit package/conda/meta.yaml, remove all win/linux lines, and the `toolchain` line.

Step9,

Code: Select all

conda build . --python=3.7
again, and get lots of conflicts

Code: Select all

Package expat conflicts for:
cmake -> libarchive -> expat[version='>=2.2.4,<3.0a0']
git -> expat[version='2.2.*|>=2.2.5,<2.3.0a0|>=2.2.9,<2.3.0a0|>=2.2.6,<3.0a0|>=2.2.5,<3.0a0']
coin3d -> expat[version='>=2.2.5,<2.3.0a0']
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> expat[version='2.2.*|>=2.2.5,<2.3.0a0|>=2.2.6,<3.0a0|>=2.2.5,<3.0a0']
vtk=8.1 -> expat[version='2.2.*|>=2.2.5,<2.3.0a0|>=2.2.6,<3.0a0|>=2.2.5,<3.0a0']
cmake -> expat[version='2.2.*|>=2.2.5,<2.3.0a0|>=2.2.6,<3.0a0|>=2.2.5,<3.0a0']
pivy -> coin3d -> expat[version='>=2.2.5,<2.3.0a0']

Package freetype conflicts for:
occt=7.2.0 -> freetype=2.8
smesh -> occt[version='>=7.4.0,<7.5.0a0'] -> freetype[version='2.8.*|2.8.1.*|>=2.8.1,<2.9.0a0|>=2.9.1,<3.0a0|>=2.8,<2.9.0a0']
netgen -> occt[version='>=7.4.0,<7.5.0a0'] -> freetype[version='2.8.*|>=2.8.1,<2.9.0a0|>=2.9.1,<3.0a0']
matplotlib -> freetype[version='2.6.*|>=2.9.1,<3.0a0|>=2.8,<2.9.0a0']
vtk=8.1 -> freetype[version='2.8.*|2.8.1.*|>=2.8.1,<2.9.0a0|>=2.9.1,<3.0a0|>=2.8,<2.9.0a0']

Package libcxxabi conflicts for:
python=3.7 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
pivy -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
ninja -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
doxygen -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
smesh -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
eigen -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
pyside2=5.6 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
hdf5 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
swig -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
matplotlib -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
qt=5.6 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
cmake -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
vtk=8.1 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
xerces-c=3.2 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
coin3d -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
netgen -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']
pybind11 -> libcxx[version='>=4.0.1'] -> libcxxabi[version='4.0.1|4.0.1|8.0.0|8.0.0|8.0.0|8.0.0|8.0.1',build='hebd6815_0|1|3|4|0|2|hcfea43d_1']

Package zlib conflicts for:
occt=7.2.0 -> freetype=2.8 -> zlib[version='1.2.11|>=1.2.11,<1.3.0a0']
swig -> boost-cpp=1.64 -> zlib[version='1.2.*|>=1.2.11,<1.3.0a0|1.2.11']
cmake -> zlib[version='1.2.*|1.2.11|1.2.11.*|>=1.2.11,<1.3.0a0']
smesh -> python[version='>=3.6,<3.7.0a0'] -> zlib[version='1.2.*|1.2.11|1.2.8|1.2.11.*']
netgen -> zlib[version='>=1.2.11,<1.3.0a0']
coin3d -> boost-cpp[version='>=1.70.0,<1.70.1.0a0'] -> zlib[version='1.2.11|>=1.2.11,<1.3.0a0']
qt=5.6 -> libpng[version='>=1.6.34,<1.7.0a0'] -> zlib==1.2.11
matplotlib -> zlib[version='>=1.2.11,<1.3.0a0']
netgen -> python[version='>=3.6,<3.7.0a0'] -> zlib[version='1.2.*|1.2.11|1.2.8']
matplotlib -> python[version='>=3.6,<3.7.0a0'] -> zlib[version='1.2.*|1.2.11|1.2.8|1.2.11.*']
git -> zlib[version='1.2.*|1.2.11|1.2.11.*|>=1.2.11,<1.3.0a0|1.2.8']
vtk=8.1 -> zlib[version='1.2.*|1.2.11.*|>=1.2.11,<1.3.0a0']
smesh -> zlib[version='>=1.2.11,<1.3.0a0']
qt=5.6 -> zlib[version='>=1.2.11,<1.3.0a0']
python=3.7 -> zlib[version='>=1.2.11,<1.3.0a0']
ninja -> python[version='>=3.8,<3.9.0a0'] -> zlib[version='1.2.*|1.2.11|>=1.2.11,<1.3.0a0|1.2.8|1.2.11.*']
vtk=8.1 -> python[version='>=2.7,<2.8.0a0'] -> zlib[version='1.2.11|1.2.8']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> zlib[version='1.2.*|1.2.11|>=1.2.11,<1.3.0a0|1.2.8|1.2.11.*']
pivy -> python[version='>=3.8,<3.9.0a0'] -> zlib[version='1.2.*|1.2.11|1.2.11.*|>=1.2.11,<1.3.0a0|1.2.8']
pyside2=5.6 -> libxml2[version='>=2.9.9,<2.10.0a0'] -> zlib[version='1.2.*|1.2.11|>=1.2.11,<1.3.0a0|1.2.8|1.2.11.*']
zlib=1.2
hdf5 -> zlib[version='1.2.*|1.2.11|>=1.2.11,<1.3.0a0|1.2.8']

Package libcxx conflicts for:
coin3d -> libcxx[version='>=4.0.1|>=9.0.1']
python=3.7 -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
swig -> libcxx[version='>=4.0.1']
cmake -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
vtk=8.1 -> expat[version='>=2.2.5,<2.3.0a0'] -> libcxx[version='>=9.0.0|>=9.0.1']
coin3d -> expat[version='>=2.2.5,<2.3.0a0'] -> libcxx[version='>=9.0.0']
pybind11 -> python[version='>=3.6,<3.7.0a0'] -> libcxx
smesh -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
swig -> pcre[version='>=8.41,<9.0a0'] -> libcxx[version='>=9.0.0|>=9.0.1']
ninja -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
occt=7.2.0 -> freeimage -> libcxx[version='>=4.0.1|>=9.0.0']
smesh -> python[version='>=3.6,<3.7.0a0'] -> libcxx
pivy -> python[version='>=3.6,<3.7.0a0'] -> libcxx
hdf5 -> libcxx[version='>=4.0.1|>=9.0.0']
vtk=8.1 -> libcxx[version='>=4.0.1']
pivy -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
xerces-c=3.2 -> libcxx[version='>=4.0.1|>=9.0.1']
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> libcxx[version='>=9.0.0|>=9.0.1']
gcc -> gmp[version='>=4.3.2'] -> libcxx[version='>=4.0.1|>=9.0.1']
netgen -> python[version='>=3.8,<3.9.0a0'] -> libcxx[version='>=9.0.1']
matplotlib -> matplotlib-base==3.1.3=py38h11da6c2_0 -> libcxx[version='>=9.0.0|>=9.0.1']
pyside2=5.6 -> libcxx[version='>=4.0.1']
netgen -> libcxx[version='>=4.0.1|>=9.0.0']
eigen -> libcxx[version='>=4.0.1|>=9.0.0']
hdf5 -> openmpi[version='>=4.0,<4.1.0a0'] -> libcxx[version='>=9.0.1']
git -> expat[version='>=2.2.9,<2.3.0a0'] -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
doxygen -> libcxx[version='>=4.0.1|>=9.0.0']
ninja -> python[version='>=3.6,<3.7.0a0'] -> libcxx
pybind11 -> libcxx[version='>=4.0.1|>=9.0.0|>=9.0.1']
qt=5.6 -> libcxx[version='>=4.0.1']
matplotlib -> libcxx[version='>=4.0.1']
boost-cpp=1.66.0 -> icu=58 -> libcxx[version='>=4.0.1']

Package openssl conflicts for:
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a|>=1.1.1b,<1.1.2a']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a']
pivy -> python[version='>=3.8,<3.9.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.0.2l,<1.0.3a']
smesh -> python[version='>=3.6,<3.7.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a|>=1.1.1b,<1.1.2a']
vtk=8.1 -> python[version='>=3.7,<3.8.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a']
git -> libcurl[version='>=7.65.3,<8.0a0'] -> openssl[version='>=1.1.1b,<1.1.2a|>=1.1.1c,<1.1.2a']
git -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a']
matplotlib -> python[version='>=3.8,<3.9.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a|>=1.1.1b,<1.1.2a']
python=3.7 -> openssl[version='>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a']
netgen -> python[version='>=3.8,<3.9.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a|>=1.1.1b,<1.1.2a']
cmake -> libcurl[version='>=7.64.1,<8.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.0.2p,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a']
ninja -> python[version='>=3.8,<3.9.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2p,<1.0.3a|>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.0.2n,<1.0.3a|>=1.0.2m,<1.0.3a|>=1.0.2l,<1.0.3a']

Package libblas conflicts for:
matplotlib -> numpy=1.11 -> libblas[version='>=3.8.0,<4.0a0']
nomkl -> blas=[build=openblas] -> libblas==3.8.0[build='4_openblas|6_openblas|13_openblas|14_openblas|12_openblas|11_openblas|10_openblas|9_openblas|8_openblas|7_openblas|5_openblas']

Package hdf5 conflicts for:
hdf5
vtk=8.1 -> hdf5[version='1.10.1.*|>=1.10.4,<1.10.5.0a0|1.8.18|1.8.18.*|>=1.10.2,<1.10.3.0a0|>=1.8.20,<1.9.0a0|>=1.8.18,<1.8.19.0a0|>=1.10.1,<1.10.2.0a0']
vtk=8.1 -> libnetcdf[version='>=4.6.2,<4.7.0a0'] -> hdf5[version='*|*|*|1.10.1|1.10.2.*|>=1.10.3,<1.10.4.0a0|>=1.10.5,<1.10.6.0a0|1.8.17|1.8.17.*|1.8.17.*|>=1.10.5,<1.10.6.0a0|>=1.10.5,<1.10.6.0a0',build='nompi_*|mpi_mpich_*|mpi_mpich_*|mpi_openmpi_*|mpi_openmpi_*']
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> hdf5[version='1.10.1.*|>=1.10.4,<1.10.5.0a0|>=1.10.5,<1.10.6.0a0|>=1.10.2,<1.10.3.0a0|>=1.8.20,<1.9.0a0|1.8.18|1.8.18.*|>=1.8.18,<1.8.19.0a0|>=1.10.1,<1.10.2.0a0']

Package libxml2 conflicts for:
pyside2=5.6 -> libxml2[version='>=2.9.8,<2.10.0a0|>=2.9.9,<2.10.0a0']
cmake -> libarchive -> libxml2[version='>=2.9.10,<2.10.0a0|>=2.9.9,<2.10.0a0|>=2.9.8,<2.10.0a0|>=2.9.7,<2.10.0a0|>=2.9.4,<2.10.0a0']
vtk=8.1 -> libxml2[version='2.9.*|>=2.9.8,<2.10.0a0|>=2.9.7,<2.10.0a0']
pyside2=5.6 -> libxslt[version='>=1.1.32,<2.0a0'] -> libxml2[version='2.9.*|>=2.9.7,<2.10.0a0|>=2.9.4,<2.10.0a0']
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> libxml2[version='2.9.*|>=2.9.10,<2.10.0a0|>=2.9.9,<2.10.0a0|>=2.9.8,<2.10.0a0|>=2.9.7,<2.10.0a0']
pivy -> pyside2 -> libxml2[version='>=2.9.10,<2.10.0a0|>=2.9.9,<2.10.0a0|>=2.9.8,<2.10.0a0']

Package libpng conflicts for:
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> libpng[version='>=1.6.23,<1.7|>=1.6.32,<1.6.35|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0|>=1.6.37,<1.7.0a0|>=1.6.36,<1.7.0a0']
occt=7.2.0 -> freetype=2.8 -> libpng[version='>=1.6.32,<1.6.35|>=1.6.34,<1.7.0a0|>=1.6.32,<1.7.0a0']
vtk=8.1 -> libpng[version='>=1.6.23,<1.7|>=1.6.32,<1.6.35|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0']
vtk=8.1 -> libtheora -> libpng[version='>=1.6.32,<1.7.0a0|>=1.6.37,<1.7.0a0']
matplotlib -> libpng[version='>=1.6.23,<1.7|>=1.6.37,<1.7.0a0|>=1.6.36,<1.7.0a0|>=1.6.35,<1.7.0a0|>=1.6.34,<1.7.0a0|>=1.6.32,<1.7.0a0']
qt=5.6 -> libpng[version='>=1.6.32,<1.7.0a0|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0']
matplotlib -> freetype=2.6 -> libpng[version='1.6.*|>=1.6.21,<1.7|>=1.6.32,<1.6.35']
pyside2=5.6 -> qt[version='>=5.6.2,<5.7.0a0'] -> libpng[version='>=1.6.32,<1.7.0a0|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0']
pivy -> qt[version='>=5.12.5,<5.13.0a0'] -> libpng[version='>=1.6.32,<1.7.0a0|>=1.6.34,<1.7.0a0|>=1.6.35,<1.7.0a0']

Package ca-certificates conflicts for:
vtk=8.1 -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
pyside2=5.6 -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
ninja -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
pivy -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
python=3.7 -> openssl[version='>=1.1.1a,<1.1.2a'] -> ca-certificates
git -> openssl[version='>=1.1.1a,<1.1.2a'] -> ca-certificates
matplotlib -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
pybind11 -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates

Package python conflicts for:
matplotlib -> python[version='2.7.*|3.4.*|3.5.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0']
pyside2=5.6 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0']
netgen -> python[version='3.5.*|3.6.*|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0']
smesh -> netgen -> python[version='3.5.*|3.6.*|>=2.7,<2.8.0a0']
smesh -> python[version='>=3.5,<3.6.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0']
matplotlib -> cycler -> python[version='3.6.*|<3']
vtk=8.1 -> future -> python[version='2.7.*|3.4.*|3.5.*|3.6.*|>=3.8,<3.9.0a0']
pybind11 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|3.4.*']
pivy -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']
python=3.7
swig -> boost -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.8,<3.9.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*']
vtk=8.1 -> python[version='>=2.7,<2.8.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']
ninja -> python[version='>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0']

Package boost-cpp conflicts for:
swig -> boost -> boost-cpp[version='1.63.0|1.64.0|1.65.0|1.65.1|1.66.0|1.67.0|1.67.0.*|1.68.0.*|1.69.0.*|1.70.0.*']
coin3d -> boost-cpp[version='1.66.0|>=1.66.0,<1.66.1.0a0|>=1.67.0,<1.67.1.0a0|>=1.68.0,<1.68.1.0a0|>=1.70.0,<1.70.1.0a0']
boost-cpp=1.66.0
swig -> boost-cpp=1.64
smesh -> boost-cpp[version='1.66.*|>=1.66.0,<1.67.0a0|>=1.67.0,<1.67.1.0a0|>=1.68.0,<1.68.1.0a0|>=1.70.0,<1.70.1.0a0']
pivy -> coin3d -> boost-cpp[version='1.66.0|>=1.66.0,<1.66.1.0a0|>=1.67.0,<1.67.1.0a0|>=1.68.0,<1.68.1.0a0|>=1.70.0,<1.70.1.0a0']

Package libiconv conflicts for:
cmake -> libarchive -> libiconv[version='>=1.15,<1.16.0a0|>=1.15,<2.0a0']
pyside2=5.6 -> libxml2[version='>=2.9.9,<2.10.0a0'] -> libiconv[version='1.15|>=1.15,<1.16.0a0|>=1.15,<2.0a0']
vtk=8.1 -> libxml2[version='>=2.9.8,<2.10.0a0'] -> libiconv[version='1.15|>=1.15,<1.16.0a0|>=1.15,<2.0a0']
git -> libiconv[version='1.15|1.15.*|>=1.15,<1.16.0a0|>=1.15,<2.0a0']
doxygen -> libiconv[version='>=1.15,<1.16.0a0']

Package icu conflicts for:
smesh -> boost-cpp[version='>=1.70.0,<1.70.1.0a0'] -> icu[version='58.*|>=58.2,<59.0a0|>=64.2,<65.0a0']
swig -> boost-cpp=1.64 -> icu[version='56.*|58.*|>=64.2,<65.0a0|>=58.2,<59.0a0']
qt=5.6 -> icu[version='>=58.2,<59.0a0']
boost-cpp=1.66.0 -> icu=58
xerces-c=3.2 -> icu[version='58.*|>=58.2,<59.0a0|>=64.2,<65.0a0']
pivy -> qt[version='>=5.12.5,<5.13.0a0'] -> icu[version='>=58.2,<59.0a0|>=64.2,<65.0a0']
vtk=8.1 -> libxml2[version='>=2.9.8,<2.10.0a0'] -> icu[version='56.*|58.*|>=58.2,<59.0a0|>=64.2,<65.0a0']
coin3d -> boost-cpp[version='>=1.70.0,<1.70.1.0a0'] -> icu[version='58.*|>=58.2,<59.0a0|>=64.2,<65.0a0']
pyside2=5.6 -> libxml2[version='>=2.9.9,<2.10.0a0'] -> icu[version='56.*|58.*|>=58.2,<59.0a0|>=64.2,<65.0a0']

Package vtk conflicts for:
smesh -> vtk[version='8.*|>=8.1.1,<8.1.2.0a0|>=8.1.2,<8.1.3.0a0|>=8.2.0,<8.2.1.0a0']
vtk=8.1

Package ncurses conflicts for:
pivy -> python[version='>=3.8,<3.9.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
python=3.7 -> ncurses[version='>=6.1,<7.0a0']
matplotlib -> python[version='>=3.8,<3.9.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
qt=5.6 -> sqlite[version='>=3.26.0,<4.0a0'] -> ncurses[version='5.9|5.9.*|>=6.1,<6.2.0a0']
ninja -> python[version='>=3.8,<3.9.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
cmake -> ncurses[version='5.9.*|>=6.1,<6.2.0a0|>=6.1,<7.0a0|6.*']
netgen -> python[version='>=3.8,<3.9.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
vtk=8.1 -> python[version='>=3.7,<3.8.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<7.0a0|>=6.1,<6.2.0a0']
smesh -> python[version='>=3.6,<3.7.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> ncurses[version='>=6.0,<7.0a0|>=6.1,<6.2.0a0|>=6.1,<7.0a0']
python=3.7 -> readline[version='>=8.0,<9.0a0'] -> ncurses[version='5.9.*|>=6.1,<6.2.0a0|>=6.0,<7.0a0|6.0.*']

Package curl conflicts for:
git -> curl[version='>=7.44.0,<8|>=7.59.0,<8.0a0|>=7.64.0,<8.0a0|>=7.64.1,<8.0a0']
cmake -> curl[version='>=7.44.0,<8|>=7.59.0,<8.0a0|>=7.61.1,<8.0a0']
vtk=8.1 -> libnetcdf[version='>=4.6.2,<4.7.0a0'] -> curl[version='>=7.44.0,<8|>=7.59.0,<8.0a0|>=7.64.1,<8.0a0|>=7.54.1,<8']

Package bzip2 conflicts for:
coin3d -> boost-cpp[version='>=1.70.0,<1.70.1.0a0'] -> bzip2[version='1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
smesh -> boost-cpp[version='>=1.70.0,<1.70.1.0a0'] -> bzip2[version='1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
ninja -> python[version='>=3.7,<3.8.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
boost-cpp=1.66.0 -> bzip2=1.0
cmake -> bzip2[version='1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
python=3.7 -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
matplotlib -> python[version='>=3.6,<3.7.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
swig -> boost-cpp=1.64 -> bzip2[version='1.0.*|>=1.0.8,<2.0a0|>=1.0.6,<2.0a0']
pivy -> python[version='>=3.7,<3.8.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
netgen -> python[version='>=3.6,<3.7.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']
vtk=8.1 -> libnetcdf[version='>=4.6.2,<4.7.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']

Package jpeg conflicts for:
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> jpeg[version='9.*|>=9b,<10a|>=9c,<10a']
vtk=8.1 -> jpeg[version='9.*|>=9b,<10a|>=9c,<10a']
pivy -> qt[version='>=5.12.5,<5.13.0a0'] -> jpeg[version='>=9b,<10a|>=9c,<10a']
pyside2=5.6 -> qt[version='>=5.6.2,<5.7.0a0'] -> jpeg[version='>=9b,<10a|>=9c,<10a']
qt=5.6 -> jpeg[version='>=9b,<10a|>=9c,<10a']

Package libgfortran conflicts for:
nomkl -> blas=[build=openblas] -> libgfortran[version='>=3.0.1,<4.0.0.a0|>=4.0.0,<5.0.0.a0']
hdf5 -> libgfortran[version='>=3.0,<4.0.0.a0|>=3.0.1,<4.0.0.a0|>=4.0.0,<5.0.0.a0']
pivy -> libgcc -> libgfortran==3.0.1
vtk=8.1 -> hdf5[version='>=1.10.4,<1.10.5.0a0'] -> libgfortran[version='>=3.0,<4.0.0.a0|>=3.0.1,<4.0.0.a0']
matplotlib -> numpy=1.11 -> libgfortran[version='>=3.0,<4.0.0.a0|>=3.0.1,<4.0.0.a0']

Package occt conflicts for:
netgen -> occt[version='7.2.*|>=7.3.0,<7.4.0a0|>=7.4.0,<7.5.0a0']
smesh -> occt[version='7.2.*|>=7.2.0,<7.3.0a0|>=7.3.0,<7.4.0a0|>=7.4.0,<7.5.0a0']
occt=7.2.0

Package tbb conflicts for:
occt=7.2.0 -> tbb
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> tbb[version='>=2019.0,<2020.0a0|>=2019.1|>=2019.2|>=2019.3']
netgen -> occt[version='>=7.4.0,<7.5.0a0'] -> tbb[version='>=2019.0,<2020.0a0|>=2019.0|>=2019.2|>=2019.4|>=2019.7|>=2019.9']
vtk=8.1 -> tbb[version='>=2019.0|>=2019.3|>=2019.1']
smesh -> tbb[version='>=2019.0|>=2019.4|>=2019.7|>=2019.9']

Package krb5 conflicts for:
git -> curl[version='>=7.64.1,<8.0a0'] -> krb5[version='1.14.*|>=1.14.6,<1.15.0a0|>=1.16.1,<1.17.0a0|>=1.16.3,<1.17.0a0|>=1.16.4,<1.17.0a0|>=1.17.1,<1.18.0a0|>=1.16.2,<1.17.0a0']
cmake -> libcurl[version='>=7.64.1,<8.0a0'] -> krb5[version='1.14.*|>=1.14.6,<1.15.0a0|>=1.16.1,<1.17.0a0|>=1.16.3,<1.17.0a0|>=1.16.4,<1.17.0a0|>=1.17.1,<1.18.0a0|>=1.16.2,<1.17.0a0']

Package qt conflicts for:
pivy -> qt[version='5.6.*|>=5.12.1,<5.13.0a0|>=5.12.5,<5.13.0a0|>=5.9.7,<5.10.0a0|>=5.6.2,<5.7.0a0|>=5.6,<5.7.0a0']
qt=5.6
pivy -> soqt -> qt=5
pyside2=5.6 -> qt[version='5.6.*|>=5.6.2,<5.7.0a0']

Package mpfr conflicts for:
gcc -> mpc[version='>=0.8.1'] -> mpfr[version='3.*|4.*|>=4.0.1,<5.0a0|>=4.0.2,<5.0a0']
gcc -> mpfr[version='>=2.4.2']

Package zstd conflicts for:
cmake -> libarchive -> zstd[version='>=1.3.3,<1.3.4.0a0|>=1.4.0,<1.4.1.0a0|>=1.4.4,<1.4.5.0a0|>=1.3.7,<1.3.8.0a0']
vtk=8.1 -> libtiff[version='>=4.0.9,<5.0a0'] -> zstd[version='>=1.3.3,<1.3.4.0a0|>=1.4.0,<1.4.1.0a0|>=1.4.3,<1.4.4.0a0|>=1.4.4,<1.4.5.0a0|>=1.3.7,<1.3.8.0a0']

Package libedit conflicts for:
qt=5.6 -> sqlite[version='>=3.26.0,<4.0a0'] -> libedit[version='>=3.1.20170329,<3.2.0a0|>=3.1.20181209,<3.2.0a0']
python=3.7 -> sqlite[version='>=3.30.1,<4.0a0'] -> libedit[version='>=3.1.20170329,<3.2.0a0|>=3.1.20181209,<3.2.0a0']

Package tk conflicts for:
vtk=8.1 -> python[version='>=3.7,<3.8.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
smesh -> python[version='>=3.6,<3.7.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.8,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.7,<8.7.0a0|>=8.6.10,<8.7.0a0']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
python=3.7 -> tk[version='>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.8,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.7,<8.7.0a0|>=8.6.10,<8.7.0a0']
pivy -> python[version='>=3.8,<3.9.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
netgen -> python[version='>=3.8,<3.9.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
matplotlib -> python[version='>=3.8,<3.9.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
git -> tk[version='8.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']
ninja -> python[version='>=3.8,<3.9.0a0'] -> tk[version='8.5.*|8.6.*|>=8.6.10,<8.7.0a0|>=8.6.9,<8.7.0a0|>=8.6.8,<8.7.0a0|>=8.6.7,<8.7.0a0']

Package pip conflicts for:
matplotlib -> python[version='>=3.8,<3.9.0a0'] -> pip
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> pip
netgen -> python[version='>=3.8,<3.9.0a0'] -> pip
smesh -> python[version='>=3.6,<3.7.0a0'] -> pip
python=3.7 -> pip
ninja -> python[version='>=3.8,<3.9.0a0'] -> pip
vtk=8.1 -> python[version='>=3.7,<3.8.0a0'] -> pip
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> pip
pivy -> python[version='>=3.8,<3.9.0a0'] -> pip

Package sqlite conflicts for:
qt=5.6 -> sqlite[version='>=3.20.1,<4.0a0|>=3.24.0,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0']
python=3.7 -> sqlite[version='>=3.24.0,<4.0a0|>=3.25.1,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.27.2,<4.0a0']
ninja -> python[version='>=3.8,<3.9.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.1,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.27.2,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|3.9.*']
pyside2=5.6 -> python[version='>=3.6,<3.7.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.25.1,<4.0a0|>=3.27.2,<4.0a0|>=3.30.0,<4.0a0|3.9.*']
vtk=8.1 -> python[version='>=3.7,<3.8.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.1,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.27.2,<4.0a0|>=3.30.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|3.9.*']
matplotlib -> python[version='>=3.8,<3.9.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.25.1,<4.0a0|>=3.27.2,<4.0a0|3.9.*']
pivy -> python[version='>=3.8,<3.9.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.29.0,<4.0a0|>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.27.2,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.25.1,<4.0a0|3.9.*']
netgen -> python[version='>=3.8,<3.9.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.25.1,<4.0a0|>=3.27.2,<4.0a0|3.9.*']
pybind11 -> python[version='>=3.7,<3.8.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.1,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.27.2,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.30.0,<4.0a0|3.9.*']
smesh -> python[version='>=3.6,<3.7.0a0'] -> sqlite[version='3.13.*|3.20.*|>=3.24.0,<4.0a0|>=3.25.2,<4.0a0|>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.28.0,<4.0a0|>=3.30.1,<4.0a0|>=3.29.0,<4.0a0|>=3.23.1,<4.0a0|>=3.22.0,<4.0a0|>=3.20.1,<4.0a0|>=3.30.0,<4.0a0|>=3.25.1,<4.0a0|>=3.27.2,<4.0a0|3.9.*']

Package jsoncpp conflicts for:
vtk=8.1 -> jsoncpp[version='1.8.1.*|>=1.8.1,<1.8.2.0a0|>=1.8.4,<1.8.5.0a0']
cmake -> jsoncpp
smesh -> vtk[version='>=8.2.0,<8.2.1.0a0'] -> jsoncpp[version='1.8.1.*|>=1.8.1,<1.8.2.0a0|>=1.8.4,<1.8.5.0a0']

Package numpy conflicts for:
matplotlib -> matplotlib-base==3.1.0=py36habd5b94_0 -> numpy[version='>=1.11.3,<2.0a0|>=1.9.3,<2.0a0']
swig -> boost -> numpy[version='1.11.*|1.12.*|1.13.*|>=1.11|>=1.14.6,<2.0a0|>=1.9.3,<2.0a0|>=1.8|>=1.9|>=1.7']
matplotlib -> numpy[version='1.10.*|1.11.*|>=1.14.6,<2.0a0']

Package setuptools conflicts for:
python=3.7 -> pip -> setuptools
matplotlib -> setuptools

Package pyside2 conflicts for:
pivy -> pyside2
pyside2=5.6

Package libboost conflicts for:
swig -> boost-cpp -> libboost[version='1.65.1|1.65.1|1.67.0',build='h8182a68_3|hcc95346_4|hebc422b_4']
coin3d -> boost-cpp[version='>=1.67.0,<1.67.1.0a0'] -> libboost==1.67.0=hebc422b_4
smesh -> boost-cpp[version='>=1.67.0,<1.67.1.0a0'] -> libboost==1.67.0=hebc422b_4

Package isl conflicts for:
gcc -> cloog==0.18.0 -> isl==0.12.2
gcc -> isl[version='>=0.10,<=0.14']

Package cloog conflicts for:
gcc -> cloog==0.18.0
pivy -> libgcc -> cloog==0.18.0

Package coin3d conflicts for:
pivy -> coin3d
coin3d

Package gmp conflicts for:
gcc -> cloog==0.18.0 -> gmp[version='5.1.2|>=6.1.2,<7.0a0|>=5.0.1,<7|>=6.1.2']
gcc -> gmp[version='>=4.3.2']

Package libcurl conflicts for:
cmake -> curl[version='>=7.61.1,<8.0a0'] -> libcurl[version='7.57.0|7.58.0|7.59.0|7.60.0|7.61.0|7.61.1|7.61.1|7.61.1|7.62.0|7.62.0|7.63.0|7.63.0|7.64.0|7.64.0|7.64.0|7.64.1|7.65.2|7.65.3|7.68.0|7.68.0|7.67.0|7.65.3|7.65.2|7.64.1|7.64.0|7.63.0|7.63.0|7.62.0',build='hf30b1f0_0|hf30b1f0_0|h051b688_2|h76de61e_1002|h76de61e_1000|h76de61e_0|he376013_2|h16faf7d_0|h16faf7d_0|h709d2b2_0|h16faf7d_0|h16faf7d_4|hbdb9355_0|h76de61e_1000|hbdb9355_0|hbdb9355_2|h051b688_0|h051b688_0|h051b688_0|h051b688_0|h051b688_0|h051b688_1000|h051b688_0|h051b688_0|hf30b1f0_0|hf30b1f0_0|hf30b1f0_0|hf30b1f0_0']
cmake -> libcurl[version='>=7.59.0,<8.0a0|>=7.61.0,<8.0a0|>=7.64.0,<8.0a0|>=7.64.1,<8.0a0']

Package openmpi conflicts for:
vtk=8.1 -> hdf5[version='>=1.10.4,<1.10.5.0a0'] -> openmpi[version='>=3.1,<3.2.0a0|>=4.0.2,<4.1.0a0|>=4.0.1,<4.1.0a0|>=4.0,<4.1.0a0']
hdf5 -> openmpi[version='>=3.1,<3.2.0a0|>=4.0,<4.1.0a0']

Package pcre conflicts for:
swig -> pcre[version='>=8.41,<9.0a0']
git -> pcre[version='>=8.41,<9.0a0|>=8.43,<9.0a0']

Package netgen conflicts for:
netgen
smesh -> netgen
So I guess I need a proper meta.yaml, or something missed? It is my first time using conda.

May you please give me a hand?

Thank you.
Last edited by jia on Thu Feb 13, 2020 10:15 pm, edited 1 time in total.
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: macOS build instructions - outdated?

Post by looo »

@jia which branch of the freecad-feedstock are you using?
Please use https://github.com/looooo/freecad-feedstock

Btw. please edit your post and use </> (code-display) instead of " (Quote text) for code.
jia
Posts: 6
Joined: Tue Feb 11, 2020 11:05 am

Re: macOS build instructions - outdated?

Post by jia »

looo wrote: Thu Feb 13, 2020 5:00 pm @jia which branch of the freecad-feedstock are you using?
Please use https://github.com/looooo/freecad-feedstock

Btw. please edit your post and use </> (code-display) instead of " (Quote text) for code.
edited.

And, thank you for your repo, I built it successfully.

but when I run it from bin/freecad, I found that I still need some libs.

Code: Select all

dyld: Library not loaded: @rpath/libpython3.8.dylib
  Referenced from: /Users/jia/miniconda3/conda-bld/osx-64/fcab/./bin/freecad
  Reason: image not found
[1]    12489 abort      ./bin/freecad

then I copied the libs from the miniconda3/pkgs/, when I run it again, and got

Code: Select all

During initialization the error "No module named 'freecad'" occurred
[1]    12876 abort      ./bin/freecad
Then I compared with the FreeCAD.dmg,
my build has only

Code: Select all

Ext   Mod   bin   info  lib   share
The release dmg has

Code: Select all

Ext              etc              mkspecs          sbin
Mod              freecad-doc.icns phrasebooks      share
bin              freecad.icns     plugins          ssl
cmake            lib              qml              translations
conda-meta       libexec          qt.conf          var
doc              man              resources
So, how can I make my build executable? or make a releasable dmg? I wanna test some change.

I noticed there is a FreeCAD/package/makepkg script, but it looks outdated too.

These are my meta.yaml and build.sh modified from your repo.

Code: Select all

package:
    name: freecad
    version: 0.19.pre

source:
    path: /Users/jia/Desktop/FreeCAD

build:
    number: 97
    skip: true  # [py<38]

requirements:
    build:
        - clang
        - cmake
        - ninja
        - git
    host:
        - boost-cpp
        - python
        - qt
        - occt
        - xerces-c
        - zlib
        - vtk
        - swig
        - eigen
        - pybind11
        - coin3d
        - pivy
        - pyside2
        - smesh
        - netgen
        - doxygen
        - hdf5
        - tbb-devel
        - blas * openblas
        - freetype
        - pcl
        - six
        - ply
    run:
        - pyside2
        - vtk
        - occt
        - qt
        - xerces-c
        - zlib
        - boost-cpp
        - hdf5
        - python
        - coin3d
        - pivy
        - smesh
        - netgen
        - freetype
        - numpy
        - six
        - pyyaml
        - pcl
        - ply
    run_constrained:
        - __osx >={{ MACOSX_DEPLOYMENT_TARGET|default("10.9") }}  # [osx]

#test:
#    commands:
#        - FreeCADCmd -t 0

about:
    home: https://www.freecadweb.org/
    license: LGPL2.1
    license_family: LGPL
    license_file: LICENSE
    summary: 'FreeCAD is a parametric 3D modeler made primarily to design real-life objects of any size. '
    description: |
        FreeCAD is a general purpose feature-based, parametric 3D modeler for
        CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering
        and product design but also fits a wider range of uses in engineering,
        such as architecture or other engineering specialties. It is 100% Open
        Source (LGPL2+ license) and extremely modular, allowing for very
        advanced extension and customization.
        FreeCAD is based on OpenCASCADE, a powerful geometry kernel, features an
        Open Inventor-compliant 3D scene representation model provided by the
        Coin 3D library, and a broad Python API. The interface is built with Qt.
        FreeCAD runs exactly the same way on Windows, Mac OSX, BSD and Linux
        platforms.
    doc_url: https://www.freecadweb.org/wiki/Main_Page
    dev_url: https://github.com/FreeCAD/FreeCAD

extra:
    recipe-maintainers:
        - looooo

Code: Select all

mkdir -p build
cd build

declare -a CMAKE_PLATFORM_FLAGS

if [[ ${HOST} =~ .*linux.* ]]; then
  echo "adding hacks for linux"
  # temporary workaround for vtk-cmake setup
  # should be applied @vtk-feedstock
  sed -i 's#/home/conda/feedstock_root/build_artifacts/vtk_.*_build_env/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib.*;##g' ${PREFIX}/lib/cmake/vtk-8.2/Modules/vtkhdf5.cmake
  # temporary workaround for qt-cmake:
  sed -i 's|_qt5gui_find_extra_libs(EGL.*)|_qt5gui_find_extra_libs(EGL "EGL" "" "")|g' $PREFIX/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
  sed -i 's|_qt5gui_find_extra_libs(OPENGL.*)|_qt5gui_find_extra_libs(OPENGL "GL" "" "")|g' $PREFIX/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
  CMAKE_PLATFORM_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE="${RECIPE_DIR}/cross-linux.cmake")
fi


if [[ ${HOST} =~ .*darwin.* ]]; then
  # add hacks for osx here!
  echo "adding hacks for osx"
  ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk

  # install space-mouse
  curl -o /tmp/3dFW.dmg -L 'http://www.3dconnexion.com/index.php?eID=sdl&ext=tx_iccsoftware&oid=a273bdbc-c289-e10d-816b-567043331c9e&filename=3DxWareMac_v10-4-1_r2428.dmg'
  hdiutil attach -readonly /tmp/3dFW.dmg
  sudo installer -package /Volumes/3Dconnexion\ Software/Install\ 3Dconnexion\ software.pkg -target /
  diskutil eject /Volumes/3Dconnexion\ Software
  CMAKE_PLATFORM_FLAGS+=(-DFREECAD_USE_3DCONNEXION:BOOL=ON)
  CMAKE_PLATFORM_FLAGS+=(-D3DCONNEXIONCLIENT_FRAMEWORK:FILEPATH="/Library/Frameworks/3DconnexionClient.framework")
fi

cmake -G "Ninja" \
      -D BUID_WITH_CONDA:BOOL=ON \
      -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX:FILEPATH=$PREFIX \
      -D CMAKE_PREFIX_PATH:FILEPATH=$PREFIX \
      -D CMAKE_LIBRARY_PATH:FILEPATH=$PREFIX/lib \
      -D CMAKE_INSTALL_LIBDIR:FILEPATH=$PREFIX/lib \
      -D CMAKE_INCLUDE_PATH:FILEPATH=$PREFIX/include \
      -D BUILD_QT5:BOOL=ON \
      -D FREECAD_USE_OCC_VARIANT="Official Version" \
      -D OCC_INCLUDE_DIR:FILEPATH=$PREFIX/include \
      -D USE_BOOST_PYTHON:BOOL=OFF \
      -D FREECAD_USE_PYBIND11:BOOL=ON \
      -D BUILD_ENABLE_CXX11:BOOL=ON \
      -D SMESH_INCLUDE_DIR:FILEPATH=$PREFIX/include/smesh \
      -D FREECAD_USE_EXTERNAL_SMESH=ON \
      -D BUILD_FLAT_MESH:BOOL=ON \
      -D BUILD_WITH_CONDA:BOOL=ON \
      -D PYTHON_EXECUTABLE:FILEPATH=$PREFIX/bin/python \
      -D BUILD_FEM_NETGEN:BOOL=ON \
      -D BUILD_PLOT:BOOL=OFF \
      -D BUILD_SHIP:BOOL=OFF \
      -D OCCT_CMAKE_FALLBACK:BOOL=OFF \
      -D FREECAD_USE_QT_DIALOG:BOOL=ON \
      -D BUILD_DYNAMIC_LINK_PYTHON:BOOL=OFF \
      -D Boost_NO_BOOST_CMAKE:BOOL=ON \
      -D FREECAD_USE_PCL:BOOL=ON \
      -D INSTALL_TO_SITEPACKAGES:BOOL=ON \
      ${CMAKE_PLATFORM_FLAGS[@]} \
      ..

echo "FREECAD_USE_3DCONNEXION=${FREECAD_USE_3DCONNEXION}"

ninja install
rm -r ${PREFIX}/share/doc/FreeCAD     # smaller size of package!
mv ${PREFIX}/bin/FreeCAD ${PREFIX}/bin/freecad
mv ${PREFIX}/bin/FreeCADCmd ${PREFIX}/bin/freecadcmd
Thank you.
Post Reply