Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packaging for Inclusion in Fedora Linux #12

Closed
5 tasks
cottsay opened this issue Aug 30, 2017 · 2 comments
Closed
5 tasks

Packaging for Inclusion in Fedora Linux #12

cottsay opened this issue Aug 30, 2017 · 2 comments

Comments

@cottsay
Copy link

cottsay commented Aug 30, 2017

Hi!

This package is a candidate for inclusion as an official package in Fedora Linux! Per Fedora packaging guidelines, there are some issues that should be addressed before the package can be officially reviewed, built, and made available in the Fedora RPM repositories.

Since this package is part of a group of packages, I have been prototyping the packages in a Fedora Copr repository [1]. The preliminary sources for this package can be accessed in a Git repository [2].

Here are the initial issues which should be addressed:

  • Upstream package(s)
    Since this package needs libpotassco, we should prioritize addressing issues with that package first [3].
  • .SO Name Versioning
    Fedora guidelines strongly suggest that the version be included in any shared object libraries distributed in the package [4]. Some packages in this collection appear to be setting the SONAME value, though the value doesn't match the version of the package.
  • Installation Directory Override
    Any files installed by the packages must conform to Fedora's filesystem hierarchy. In order for this package to install the files as such, it must not override CMake's default install locations without any mechanism to change them. I have sketched out a preliminary patch to address this [5]. Please feel free to use those changes as you see fit.
  • Header Installation Bug
    It looks like there is a bug the header installation procedure which causes the directory structure to be lost. This will block downstream packages from consuming the headers properly. I've made a preliminary patch which addresses this [6].
  • Implicit Dependencies
    In order to consume this package through CMake, the implicit dependencies of this package should be resolved. This package always depends on libpotassco, and if built with threads, also depends on Threads::Threads. It would be much easier for consuming packages to build against this package if they didn't need to explicitly resolve this package's dependencies on their own. I've made a preliminary patch which addresses this [7].

Once we have at least acknowledged each of the above issues, I'll initiate the review. If there is a valid reason that any of the issues can't be addressed, please let me know and we'll talk about an FPC exemption. If you have any further questions, or if there is anything I can do to help, please reach out.

Thanks very much!

--scott

[1] https://copr.fedorainfracloud.org/coprs/cottsay/potassco
[2] http://copr-dist-git.fedorainfracloud.org/cgit/cottsay/potassco/clasp.git/tree/
[3] potassco/libpotassco#1
[4] https://fedoraproject.org/wiki/Packaging:Guidelines#Downstream_.so_name_versioning
[5] http://copr-dist-git.fedorainfracloud.org/cgit/cottsay/potassco/clasp.git/tree/clasp-3.3.2-install_dir.patch
[6] http://copr-dist-git.fedorainfracloud.org/cgit/cottsay/potassco/clasp.git/tree/clasp-3.3.2-header_install.patch
[7] http://copr-dist-git.fedorainfracloud.org/cgit/cottsay/potassco/clasp.git/tree/clasp-3.3.2-cmake-deps.patch

BenKaufmann added a commit that referenced this issue Sep 3, 2017
  * use GNUInstallDirs to enable fine-grained control of install dirs
  * set version property for clasp library
  * fix clasp header installation
  * add dependencies to cmake/clasp-config.cmake
@BenKaufmann
Copy link
Contributor

Hi Scott.
Thank you for your report. I tried to address your points in commit f139715 to dev.
However, at the moment I think the easiest and best thing to do would be to focus on clingo and to
forgo separate packages for libpotassco/clasp.

The clingo source releases (e.g. https://github.com/potassco/clingo/archive/v5.2.1.zip) already contain (and build) clasp and lpconvert. They also (by default) limit library installation to libclingo, which currently is the only library that is intended to be build and used as a shared library.

@cottsay
Copy link
Author

cottsay commented Sep 7, 2017

Awesome, thanks @BenKaufmann. I'll take a look as soon as I get back from vacation next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants