A user on the French forum teaches FreeCAD to his students, and all the PCs are running Ubuntu. He asked me today to include hamish's Assembly2 module in the Daily Builds PPA. I replied that I could not do that for the following reasons:
- Assembly2 is not part of the FreeCAD project, and as such is not supported
- FreeCAD installs over all platforms should be exactly the same on Windows, MacOS X or Linux. The different OCC versions we had for 0.14 binaries was a major headache for those of us who support users.
- Licensing issue: Assembly2 is GPLv3.
What's great about the Launchpad infrastructure is:
- We can create as many PPA repos as we want
- We can import Git branches from anywhere and they will synchronize every 6 hours or upon request
- Build recipes allow us to automate package building (that's what we use on the Daily Builds)
After some thought (and I was also inspired by issue #857), I believe this could be a useful project, to facilitate installation and maintenance of community modules. I also see this as a way to make the Ubuntu platform even more attractive (a secondary goal of mine ).
Here's what I propose: create a new PPA dedicated to packaging community modules. I'm not sure if it should be managed by the
FreeCAD Maintainers Team, or be managed by a new team more open to the community (by choice, membership to FreeCAD Maintainers is restricted).
I did a test tonight, I was able to create a .deb package of the Assembly2 workbench.
You can download it here : (2015-04-23) link deleted, please see this post for the last version: viewtopic.php?f=8&t=10658&p=85940#p85940
This package is compatible with any Ubuntu version, and is surely compatible with Debian and Debian/Ubuntu-based distros (after all it's mostly a bunch of python scripts and svg files). There's a hard dependency to freecad >= 0.15.4671 which currently makes it incompatible with the Daily Builds... The next update should fix it.
The current problems with my package: it basically just writes the files in /usr/lib/freecad/Mod/. I quickly tested it and it seems to work, but with the Daily Builds, will the files be deleted when the freecad package next updates? Secondly, copying the files into the freecad directory may cause a license conflict.
Could the module files be written to a separate directory (/usr/lib/freecad-plugins/?) without having to change anything in the source code?
The external modules I'm thinking could be packaged would first be:
- Assembly2 (in progress)
- Drawing Dimensioning (add dimensions to views in the Drawing workbench) (in progress)
- BOLTS (parts library)
- Cura Engine Plugin
- EaglePCB importer
- Animation toolkit
- full list in Additional modules and related projects (wiki)
If we go ahead, this time I would like to get help with packaging.