ana(conda) windows packaging

Having trouble installing or compiling FreeCAD? Get help here.
User avatar
looo
Posts: 3482
Joined: Mon Nov 11, 2013 5:29 pm

Re: ana(conda) windows packaging

Postby looo » Sat Mar 25, 2017 7:21 am

Maybe we should try to write a test for the xerces-c and zlib feedstocks.
User avatar
looo
Posts: 3482
Joined: Mon Nov 11, 2013 5:29 pm

Re: ana(conda) windows packaging

Postby looo » Sat Mar 25, 2017 8:49 pm

* libMed is now using the conda-forge hdf5. :issue solution
The libmed package had similar issues like we currently see with FreeCAD. This was solved by adding a library which the hedf5 library depends on. So maybe we have to something similar with freecad.

* added vc 14 as dependency for netgen, libmed, pivy and coin3d

* I had a look into the occt feedstock. There we are using tk8.5. Regarding this issue we should have taken 8.6 which is shipped with the python interpreter... But there are no headers available, so it's not possible to update the feedstock to tk8.6.
Maybe we can try to build occt without tk.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: ana(conda) windows packaging

Postby NormandC » Sat Mar 25, 2017 8:55 pm

looo wrote:Maybe we can try to build occt without tk.
This basically means disabling the DRAW test harness.
User avatar
DeepSOIC
Posts: 7829
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: ana(conda) windows packaging

Postby DeepSOIC » Sat Mar 25, 2017 9:02 pm

NormandC wrote:
looo wrote:Maybe we can try to build occt without tk.
This basically means disabling the DRAW test harness.
It was defunct for me anyway (and most likely for everyone else on Windows), so no big loss :mrgreen: Or maybe it works in sgrogan's OCC7 libpack, I haven't tried :oops: ...
User avatar
looo
Posts: 3482
Joined: Mon Nov 11, 2013 5:29 pm

Re: ana(conda) windows packaging

Postby looo » Sat Mar 25, 2017 9:10 pm

NormandC wrote:This basically means disabling the DRAW test harness.
doing this as long as there is no consistency with tk with anaconda.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: ana(conda) windows packaging

Postby NormandC » Sat Mar 25, 2017 10:19 pm

Just for the record, I was only stating fact, not voicing disapproval. :)

I have the very limited knowledge of OCCT that being an end user provides me, but it seems to be purely an OCC development tool. Apart from using DRAWEXE for reporting geometry bugs upstream, I can't see its use for FreeCAD.
User avatar
looo
Posts: 3482
Joined: Mon Nov 11, 2013 5:29 pm

Re: ana(conda) windows packaging

Postby looo » Sat Mar 25, 2017 10:44 pm

short question:

could it be that this https://github.com/looooo/FreeCAD/blob/ ... s.txt#L148 overwrites all library-paths and uses paths according to the libpack ???

and also this has potetential to be root of our linking problem:
https://github.com/looooo/FreeCAD/blob/ ... t#L973L999
NormandC wrote:Just for the record, I was only stating fact, not voicing disapproval. :)
sorry, I periodically loose the orientation in the dependency hell ;) good to have someone who has an overview.
peterl94
Posts: 1001
Joined: Thu May 23, 2013 7:31 pm
Location: United States

Re: ana(conda) windows packaging

Postby peterl94 » Sat Mar 25, 2017 11:00 pm

Yes! After finding that out this morning, I discovered this article that explained why.
If you link with the /nodefaultlib option, you will need to link several extra libraries when you link. For example, whereas you previously might have just linked msvcrt.lib in order to use the CRT DLL, you will now also need to link vcruntime.lib and ucrt.lib.
PR: https://github.com/looooo/FreeCAD_Conda/pull/5

Note that this only fixes the CRT linking errors. There are still others.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: ana(conda) windows packaging

Postby NormandC » Sat Mar 25, 2017 11:17 pm

looo wrote:good to have someone who has an overview.
I don't really :D but I've had my own dependency hell troubles with packaging OCCT 7.1 for the Ubuntu PPA (good thing I got great help too or I would still be stuck). A few months ago an OCCT developers signed in to the forum and posted some short but useful info regarding third-party dependencies in the OCCT Ubuntu packaging topic:

https://forum.freecadweb.org/viewtopic. ... 80#p142368

The opencascade.org website also has a set of Overview pages for their modules, here's the one for the DRAW Test Harness:
https://www.opencascade.com/content/draw-test-harness

I don't recall why we need to use tcl/tk 8.5 rather than 8.6 on Debian/Ubuntu.
User avatar
looo
Posts: 3482
Joined: Mon Nov 11, 2013 5:29 pm

Re: ana(conda) windows packaging

Postby looo » Sun Mar 26, 2017 5:59 am

wow thanks @peterl94 . This is a big step forward.

Next round:
building with everything disabled gives a linking problem with PyCXX:

Code: Select all

MaterialPyImp.cpp.obj : error LNK2001: Nicht aufgel÷stes externes Symbol ""void __cdecl Py::_XINCREF(struct _object *)" 
regarding this https://sourceforge.net/p/cxx/mailman/message/34599093/ something isn't linked correctly with src/CXX/IndirectPythonInterface.hxx .

building with everything enabled, smesh explains about a not possible conversation:

Code: Select all

C:\Users\fc-builder\Miniconda3\conda-bld\freecad_1490502689427\work\src\3rdParty\salomesmesh\src\StdMeshers\StdMeshers_QuadToTriaAdaptor.cpp(767): error C2664: "int StdMeshers_QuadToTriaAdaptor::Preparation(const SMDS_MeshElement *,Handle_TColgp_HArray1OfPnt &,Handle_TColgp_HArray1OfVec &,std::vector<const SMDS_MeshNode *,std::allocator<_Ty>> &,gp_Pnt &,gp_Vec &,const SMDS_MeshElement **)" : Konvertierung von Argument 2 von "opencascade::handle<TColgp_HArray1OfPnt>" in "Handle_TColgp_HArray1OfPnt &" nicht möglich
Is there a reason to pass a "handle" by reference? Isn't the handle like a smart-pointer?

seems like a long way to go ;)
Btw: deleted the occt build on the freecad-channel, so it now pulls from conda-forge again. There were some libraries missing with the occt build without tk (TKMeshVS).