medusa
medusa copied to clipboard
Needed items for building into a package
- [ ] libraries should install under /usr/lib/medusa or /usr/lib/qmedusa
- [ ] Binaries should install under /usr/bin/
- [ ] Optionally set python to be python2 by default as it fails on ArchLinux, or allow python var to set
- [ ] Provide Cmake variable to set location of medusa modules
Hi archey and thanks for your message.
I'm not a Linux packaging guru, so may I ask you some questions to fulfill your need?
- Regarding the first two questions; I'm not confident about the location of shared libraries dependencies. The initial problem is that medusa needs libraries to work (e.g.: boost, ogdf, qt5, soci, and so on). Some of them are not packaged. Basically, I'm trying to get rid of these dependencies by linked them as a static libraries and using the project hunter (https://github.com/ruslo/hunter). But it's more tedious than I though since some libraries failed to compile/link as static libraries. The easiest solution would be to package these dependencies as shared library, but I've no clue how to force Linux to use .so files provided by medusa (, to tell the true I'm not even sure it's possible).
- I think pybind11 provides a solution to select the python version during the compilation, the thing is: which python version should be used by default? Is it possible to provide two different libraries for each version? I'll try to take a look.
- That's a good idea; at this time, the default module location is ., because it's easier to test module and debug medusa. I'll add an option to override this default value for packaged version. :)
@wisk in my opinion the external modules such as boost and ogdf and such its the pkgers responsability to get support for those. As in add them as a pkg or what not, we specifically had to pull in ogdf, but boost is a default library in most linux distributions. I think if you move it all to a static library setup, it might make it more difficult to pkg.
Python version, I used a sed line to just change the default to python2 as it finds python3 no problem.
sed -i 's|find_package(PythonLibs REQUIRED)|find_package(PythonLibs 2 REQUIRED)|' src/ui/python/CMakeLists.txt
To be FHS compliant most libraries will go into /usr/lib/ or /usr/lib/pkgname, and that is currently how my patch file works. It drops the libs and bins into the correct locations. I can provide it, if youd like