I wanted to debug a bit into the native code to see if it's worth porting parts of assembly2 from python to C++, rather than making the python code statically typed in the current situation of having to support both Py2.7 and Py3.5.
To my surprise, getting FreeCAD 0.17 (same with 0.16) compiled on a recent Ubuntu is much more complicated than for example compiling blender.
I tried to
1. start with the launchpad PPA build definition (https://git.launchpad.net/freecad/tree/ ... 5fd3ade1a2), copy all its dependencies into a Dockerfile, but
Code: Select all
FROM ubuntu:16.04
2. Thus I changed my Dockerfile to
Code: Select all
FROM ubuntu:14.04
but then even much much more fails during compilation.
3. I tested https://github.com/FreeCAD/FreeCAD/blob ... travis.yml in my own repository's Travis integrations and after temporary manual modifications to populate an incremental build cache to work around the 50-minute build time limit of Travis that succeeds. But it does of course use its very own, weird environment, included Python2.7 and lots of dev libs and ruby hacks.
4. The next step was to reuse the dependencies from .travis.yml and get that compiled within a docker container as a reference. Then migrate the build within the container to Python3, and finally use its configuration outside docker in my development environment, but I noticed some security vulnerabilities which I am not willing to accept for my local machine.
Code: Select all
#Install Eigen 3.3.3 to reduce compiler warnings
curl -L "http://bitbucket.org/eigen/eigen/get/3.3.3.tar.gz" | tar xvz && cd eigen-*
mkdir build && cd build
cmake -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON ..
sudo make -j2 install
Code: Select all
hg clone https://bitbucket.org/eigen/eigen/
hg pull && hg update 3.3.3
Any suggestions or easier ways?
I guess what happened is, that most active developers recently run on Windows and Mac (brew/homebrew).
But my motivation for helping in your open source project would be to make CAD available to all people around the world, including poor nations, not only to people who have no money left for commercial software after they have spent all on gadgets in the Apple store
I think FreeCAD is great, maybe the only tool available to poor nations, who reuse and recycle our outdated phased-out industrial waste as their vital infrastructure. Enabling those people to repair essential spare parts of phased-out machinery is a nice motivation for personal open source activity.
My biggest respect and appreciation of NormandC's hard work at https://forum.freecadweb.org/viewtopic. ... 47#p164247 - of course I tried to find my solution in that thread but unfortunately not easily transferable to docker it seems.
p.s.:
maybe we can collect and exchange some Dockerfiles here as reference, for Mint, CentOS, Ubuntu, Debian openSuse, Fedora - whatever you have got - I would then setup some docker-based continuous integration pipes in the cloud to give you some reports