I've been trying to get freecad working in any Puppy for a while now.
The program looks great-- but it was not an easy compile. I'm not sure if its complete yet (lots of testing to do).
As there is a lot of rapid development out there, the compile notes are going to help others a lot.
Hence this post.
Before you ask:
deb packages from other distros don't work (or at least on the puppy versions I've tried them on).
The pile of dependencies is huge and the compilation messy. So much is deeply interdependent. I guess using a binary from another distro
would have to have all libraries matching exactly (even the right matches on being compiled on each other) to even hope of working.
So -- I took on the task of trying to get all the dependencies together and seeing if it would go.
I've tried it in Lucid Puppy 5.28 (32Bit) and Fatdog 6.11 64 Bit.
I haven't got Lucid to work just yet -about 90% functionality there.
In Fatdog 611 I got further with a non error compile and make install. Given the amount of times I've tried I am reluctant to believe it.
Here is a list of what I have done. Perhaps someone following this might pick up on an error or tips for making it work better.
Before you start - make sure you have a devx-###.sfs for your Puppy version mounted, and preferably start with a clean pupsave file
where you only settings are the best drivers for your graphics card plus keyboard and the usual localizations. (e.g. I have the right Nvidia drivers installed).
BE PREPARED TO MESS UP YOUR PUPSAVE. Frugal installs are recommended. Make the pupsave BIG (like 1GB plus) so you have space for big bloated libraries.
Step 1 - You need a good full Qt system. Build in Lucid Puppy 5.28
I used qt4.7.4 developer build
Note: qt4.8.4 didn't seem to work in 32bit puppy with some dependencies not sure why
Note 2: If your building a newer version of freecad make this your first install and have no other qt versions in your system
(i.e. hunt down and kill all libs includes and binaries from other versions)
I turned both PETs into SFS files around--- 180MB.
Step 2. Python -- i've built all of this around python 2.7
Puppy Lucid was nicely linked to python 2.7 folders (phew). Can't be sure if I installed python there or not. Sorry
I had to compile Python 2.7.2 from sources in Fatdog, but all paths links were set for python 2.6 --- watch carefully in the later steps.
Important on compile was this configure command
sh configure --prefix=/usr --enable-shared
I still got some warnings like no libsqllite and such ---not sure if anything was relevant.
Seems to work though.
Doesn't live when installed from a pet - something in the make install command trains the fatdog to find python and it isn't in the environment variables.
Step 3 - Compile key dependencies including everything--docs-dev -- and then put them into an sfs file.
Step 3 a - start with all the ones that are binary units and don't need python ,but may need QT or not
mostly compiled using
sh configure --prefix=/usr
new2dir make install
---Question marked Dependencies---
--- qt web development kit--I compiled without it . cant see any issues yet
Step 3b - now get the python related dependencies going
For Lucid - I just used the default options as each module requires
To trick the python2.6 issue in Fatdog to look for python 2.7 I used this on a lot of python based cmake configures:
Step 3c -- not really essential (so says FreeCAD) but if present will be useful
Again the trick mentioned in 3b for Fatdog was somewhat helpful but I still edited the cmake cache file and changed references to the wrong python folders
ifcopenshell-0.30 (this won't compile beyond 93% and is unusable in this state for FreeCAD although it makes a binary)
I hint at some kind of python and swig incompatibility--on make I get:
[100%] Building CXX object ifcwrap/CMakeFiles/_IfcImport.dir/IfcPythonPYTHON_wrap.cxx.o
/aufs/devsave/pups64bit/0.3.0/cmake/ifcwrap/IfcPythonPYTHON_wrap.cxx:2850:13: error: 'ptrdiff_t' does not name a type
/aufs/devsave/pups64bit/0.3.0/cmake/ifcwrap/IfcPythonPYTHON_wrap.cxx:2887:21: error: expected ';' at end of member declaration
/aufs/devsave/pups64bit/0.3.0/cmake/ifcwrap/IfcPythonPYTHON_wrap.cxx:2887:39: error: expected ')' before 'n'
...and heaps more
Ifcomopenshell needs some of the above especially oce and:
---OS-X reputedly needs pcre I installed it just in case
tbb -- is also supposed to help
and really needs swig
I did not add the spnav things for 3d connexion devices
Now while compiling some of the above libraries there were (as always) warnings -- did I note them all down ---No.
Should I have? Maybe.