CognitionGuidedSurgery / msml

The Medical Simulation Markup Language
GNU General Public License v3.0
14 stars 1 forks source link

"Easy" setup of msml for Windows (using a package manager) #197

Open dschauba opened 9 years ago

dschauba commented 9 years ago

By using chocolatey (https://chocolatey.org/), a package manager for Windows, it could be possible to provide easy setup of MSML for Windows. They (the developers of chocolately) state that it is just like apt-get, but for Windows.

oneget is similar (based on chocolately, i think): https://github.com/OneGet/oneget Apparently, oneget will be included in Windows 10/new powershell versions.

On your oppinion, would it be helpfull to maintain a repository, containing prebuild cgal, vtk, sofa, msml, ... so msml users could perform an easy installation of MSML?

wadoon commented 9 years ago

I think the first step would be CPack within cmake for generating an installer.

dschauba commented 9 years ago

Ok, this installer would contain all dependencies for msml (all libraries, like cgal)?

wadoon commented 9 years ago

You need to put it in the installer.

ssuwelack commented 9 years ago

A slighlty different direction would be to extend the superbuild function to (optionally) include other libraries such as Sofa and CGAL. From there it should be easy to build an installable package using CPack.

dschauba commented 9 years ago

Would it be acceptable to drop all files(binaries and stuff) from libraries like cgal, vtk, ... in msml binary folder? This would remove the need to correctly set environment variables.

wadoon commented 9 years ago

No.

An installable package on linux is this very simple. All libraries are installed under /lib, all Python modules under /lib/python2.7/site-packages/. If you want to install under the prefix /usr/local/ it is a little bit nasty, but nothing that can't be fixed with .bashrc. The open thing is to find a nice place for the alphabet, maybe /usr/share/msml/alphabet. Additionally, we adapt the msml.envconfig. No hard work, most things are done in CPack branch.

In my opinion it is not very wise to make a super installation package with all your dependency under Linux. If we gonna make a distribution package, we will use the distribution packages of VTK, cgal, etc…, and we should even pack ACVD as an own package. (and give it back to the authors).

On windows the world looks different, so different that an installation package could bring it's own Python. It depends on the user experience you want to achieve. In my opinion, it is simpler to create an windows installer, that automatically download install binary version of the needed software, as to create one big package with all DLLs.

Consider, one feature of MSML is the reusable C++ operators, if we compile and link MSML against own self compiled libs, we loose compatibility. Eventually, our users end up in the DLL hell.

I don't want to be Sofa Framework, that brings it's own libtinyxml.so and destroys your whole systems.

cpack_configure_downloads

dschauba commented 9 years ago

Windows side: Are there any sites providing prebuild vtk, cgal and so on? (or, user could select an already installed version of these libs in installer)

Packing everything together would provide some kind of plug-and-play experience, but could also let to nasty DLL Hell, of course ;).

wadoon commented 9 years ago

The problem is the compatibility with the user environment. We can encapsulate the MSML system, and do not offer C++ user extension.

For the out-of-box feeling, web services are in the planning phase, at least for the SFB.