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

tlx headers in deb-package #23

Open
fabratu opened this issue Nov 14, 2019 · 14 comments
Open

tlx headers in deb-package #23

fabratu opened this issue Nov 14, 2019 · 14 comments

Comments

@fabratu
Copy link

fabratu commented Nov 14, 2019

Hi,

I'm currently working with @angriman and avdgrinten as NetworKit-maintainer (https://github.com/networkit/networkit). This involves the preperation to create binary-packages for debian-based OSes. The plan is to create a lib-, dev- and python-package. For the dev-package there exist a dependency on the tlx headers (not for the lib-package, since the static compiled tlx-library is directly linked inside the NetworKit-runtime-lib during creation).

Is there already some kind of header-package from tlx? If not, would it make sense to either backpack it with the NetworKit-dev package or create an seperate tlx-dev package (due to recommendation/requirements of debian also an tlx-lib package)?

Thanks in advance
Fabian

@bingmann
Copy link
Member

Hi Fabian, thanks for reaching out.
I think a debian package (both tlx-lib and tlx-dev) are the right way to go.
The algorithms and data structures in tlx are reusable and not found in any other library afaik. I also plan to work hard to never break the interfaces.
What do you think?
You probably need a versioned release tarball?

@lorenzhs
Copy link
Contributor

The proper names for such packages would be libtlx0 (for the dynamic library) and libtlx-dev (for the headers and static library), btw. The latter should also depend on the former.

@fabratu
Copy link
Author

fabratu commented Nov 15, 2019

Thanks for the swift reply.

Yes a versioned release tarball would be a good place to start. Based on @lorenzhs naming guidance: Since the plan is to never break the ABI, the major number "always" remains 0, but I guess both minor/release revisions are possible? The full name of the library would then be: libtlx.so.0.0.0, with two symlinks: libtlx.so.0 in the lib-package and libtlx.so in the dev-package.
Does the build system of tlx support setting the soname and versioning directly?

Based on your replies, libtlx0 will then provide a shared runtime-lib. Since NetworKit depends on the dev-package, which installs the lib-package as dependency, it would be cleaner for NetworKit to change from a static to a shared link against tlx.

@bingmann
Copy link
Member

Okay, I'm not too experienced with Debian packaging.
tlx uses cmake and builds shared libraries when -DTLX_BUILD_SHARED_LIBS=ON.
I just added SOVERSION and some install COMPONENTS.
What else is needed? I would then package 0.1.0 when all is added to the cmake.

@jamesjer
Copy link

I cannot speak to Debian packaging, but I am looking at adding a tlx package to Fedora (to be used by freetdi/gala, which is used by freetdi/tdlib, which sagemath wants). From my perspective, everything is ready to go. A versioned tarball would be much appreciated.

@bingmann
Copy link
Member

Done. I've tagged the first version as v0.5.20191212

@fabratu
Copy link
Author

fabratu commented Dec 13, 2019

Sry for the delay, this "project" was on hold for a while. Thanks also for the release - this should be sufficient for everything. Besides the deb-package, I am in parallel preparing conda and other package manager (brew, spack) release of Networkit. Are there any objections releasing a tlx package also via these channels?

@bingmann
Copy link
Member

No problem, please package it.
But tell me if you find any compilation warnings or error to fix.

@fabratu
Copy link
Author

fabratu commented Mar 10, 2020

Just as an update on the progress:
conda integration of tlx is done -> https://github.com/conda-forge/libtlx-feedstock

@fabratu
Copy link
Author

fabratu commented Mar 23, 2020

Integration in homebrew-core is done -> https://github.com/Homebrew/homebrew-core

@fabratu
Copy link
Author

fabratu commented Mar 27, 2020

Integration in spack is done -> https://github.com/spack/spack

@fabratu
Copy link
Author

fabratu commented Jun 10, 2020

The recent NetworKit release refers now to the latest commit in master. Is it possible to get a new release of tlx for integrating it with conda/etc. ?

@bingmann
Copy link
Member

Sorry for the delay. I tagged a new version v0.5.20200222

@fabratu
Copy link
Author

fabratu commented Jul 27, 2020

Thank you very much!

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

4 participants