I'm creating a package for a group of libraries, and I have a few questions about where to install some files.
1. The project creates its own folder in /usr/lib called /usr/lib/projectname, and installs its shared libraries there. What's the policy on doing this vs. putting all of the libraries into /usr/lib?
1a. The project also puts a few .cmake files in its libdir folder. Upstream informed me that some other projects use these files during their own build process, so moving these cmake files could be problematic. I think that putting .cmake files in /usr/lib might be a violation of linux filesystem rules, but doing a "yum provides *lib/*.cmake" shows that some other projects do this exact thing (install their libraries and cmake files into their own directory under /usr/lib). This leads me to believe that this practice is ok?
2. The project installs a bunch of other assorted cmake macros, which are also used by other projects. These don't take the form of FindProject.cmake though, so I don't think they belong in the system-wide cmake module path. I should put those in /usr/share/projectname/cmake?
Thanks for the help,
Rich
I found a link from the cmake people that suggests creating a /usr/lib/projectname folder for libraries and cmake files is suggested practice to allow other projects to import yours: http://www.itk.org/Wiki/CMake_2.6_Notes#Exporting_from_an_Installation_Tree
Is this compatible with Fedora packaging, or should pacakges install all of their shared libs in %{_libdir}? If the libs do go right into the libdir, should the project-config.cmake files go somewhere like /usr/share/projectname/cmake?
Rich
On Tue, Nov 3, 2009 at 1:00 PM, Rich Mattes richmattes@gmail.com wrote:
I'm creating a package for a group of libraries, and I have a few questions about where to install some files.
- The project creates its own folder in /usr/lib called
/usr/lib/projectname, and installs its shared libraries there. What's the policy on doing this vs. putting all of the libraries into /usr/lib?
1a. The project also puts a few .cmake files in its libdir folder. Upstream informed me that some other projects use these files during their own build process, so moving these cmake files could be problematic. I think that putting .cmake files in /usr/lib might be a violation of linux filesystem rules, but doing a "yum provides *lib/*.cmake" shows that some other projects do this exact thing (install their libraries and cmake files into their own directory under /usr/lib). This leads me to believe that this practice is ok?
- The project installs a bunch of other assorted cmake macros, which are
also used by other projects. These don't take the form of FindProject.cmake though, so I don't think they belong in the system-wide cmake module path. I should put those in /usr/share/projectname/cmake?
Thanks for the help,
Rich
I've scoured the packaging guidelines once more, there's no mention of when you should put libraries in %{_libdir} vs. when to create a subdirectory in %{_libdir}. I got a little bit of feedback in my package review request[1], but I'd appreciate more formal clarification.
Anyone? [1]: https://bugzilla.redhat.com/show_bug.cgi?id=530251 On Tue, Nov 10, 2009 at 10:09 AM, Rich Mattes richmattes@gmail.com wrote:
I found a link from the cmake people that suggests creating a /usr/lib/projectname folder for libraries and cmake files is suggested practice to allow other projects to import yours: http://www.itk.org/Wiki/CMake_2.6_Notes#Exporting_from_an_Installation_Tree
Is this compatible with Fedora packaging, or should pacakges install all of their shared libs in %{_libdir}? If the libs do go right into the libdir, should the project-config.cmake files go somewhere like /usr/share/projectname/cmake?
Rich
On Tue, Nov 3, 2009 at 1:00 PM, Rich Mattes richmattes@gmail.comwrote:
I'm creating a package for a group of libraries, and I have a few questions about where to install some files.
- The project creates its own folder in /usr/lib called
/usr/lib/projectname, and installs its shared libraries there. What's the policy on doing this vs. putting all of the libraries into /usr/lib?
1a. The project also puts a few .cmake files in its libdir folder. Upstream informed me that some other projects use these files during their own build process, so moving these cmake files could be problematic. I think that putting .cmake files in /usr/lib might be a violation of linux filesystem rules, but doing a "yum provides *lib/*.cmake" shows that some other projects do this exact thing (install their libraries and cmake files into their own directory under /usr/lib). This leads me to believe that this practice is ok?
- The project installs a bunch of other assorted cmake macros, which are
also used by other projects. These don't take the form of FindProject.cmake though, so I don't think they belong in the system-wide cmake module path. I should put those in /usr/share/projectname/cmake?
Thanks for the help,
Rich
On Wed, 2009-11-11 at 14:42 -0500, Rich Mattes wrote:
I've scoured the packaging guidelines once more, there's no mention of when you should put libraries in %{_libdir} vs. when to create a subdirectory in %{_libdir}. I got a little bit of feedback in my package review request[1], but I'd appreciate more formal clarification.
Anyone?
My understanding is that generally subdirectories of libdir are created for things that are dlopen'd. Otherwise, putting the .so in libdir is appropriate.
packaging@lists.fedoraproject.org