home Forums # Technical Support Ubuntu Packages Reply To: Ubuntu Packages

#966

Fishwaldo
Participant

Hi Juan,
I’ve got RPM’s building so far. I’ve had to base this off the 4.0 code, as I noticed qtfuzzylite wasn’t building in the current repo.

You can see the results here https://build.opensuse.org/package/show/home:fishwaldo/FuzzyLite
(unfortunately the cmake version that comes with CentOS is too old (2.6.4) so I can’t build it there without some “ugly” hacks that I’ll describe later)

I’ve had to patch the CMakeLists.txt with some updates to make it cleanly install and adhear to packaging guidelines. The patch file is here: https://build.opensuse.org/source/home:fishwaldo/FuzzyLite/fuzzylite.patch?rev=0a9f019455fd2e2000009492c7a40837

The changes are:
* Setting the Library Path to “bin” ? Means that the libraries were installed into /usr/bin (but should be into /usr/lib[64]/ (or when we get to Ubuntu builds, into /usr/lib/amd64-*/ directories

So to handle this, update the library paths to use ${CMAKE_INSTALL_LIBDIR} and included the relevant GNUInstallPaths include in CMakeLists.txt

* Shared Libraries should use a SONAME, so set the SONAME to ${FL_VERSION}. Its not the best, but probably good enough. CMake will make a soft link from libfuzzylite.so to libfuzzylite.so.4.0.
This allows several versions of the shared library to exist on a install. So say a user compiled qtfuzzylite against 4.0 and then installed the fuzzylite 5.0 shared library (without updating qtfuzzylite to the latest version), the *old* qtfuzzylite can still find libfuzzylite.so.4.0 as well as libfuzzylite.5.0

* in qtfuzzylite, set the shared library “hint” to ${CMAKE_SOURCE_DIR}/../fuzzylite/ instead of ${CMAKE_SOURCE_DIR}/fuzzylite/bin/

I’m not sure how these changes might impact your development work though. At the moment, these changes are automatically patched into the source before building. If you take them into the official repo, then I can drop the patch.

I still want to add one more change as well – pkgconfig file for fuzzylite – So its easy for other compiling apps to find fuzzylite on the system. This is pretty straight forward. Will incorporate it into the next update.

Debian/Ubuntu packages will come shortly.

Let me know your thoughts.

(btw, you should also consider man pages for fuzzylite and qtfuzzylite – when we package it up, its complaining:
fuzzylite.x86_64: W: no-manual-page-for-binary fuzzylite
qtfuzzylite.x86_64: W: no-manual-page-for-binary qtfuzzylite