[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Recommended way of installing system-wide python application and libraries



Thanks!! I'll answer to the last comment but I appreciate everyone's input!

Hello again Ivan (different neighborhood :)),
:)))

The "modern" way of building Python libraries/applications seems to be to
use a pyproject.toml.  The pyproject.toml specifies a backend build system
that knows how to build the library/application and produce a wheel.

Thanks for this pointer. I didn't know about this.

As far as how to do this within an existing cmake project, unfortunately,
there doesn't seem to be a clear/easy way.

For now, we ended up switching to venvs. I just published a release candidate.

https://github.com/NASA-SW-VnV/ikos/discussions/253

Following @salvo's comment, I'm going to try and begin the process of packaging this for debian. I suspect it may be a bit complicated because ikos is two things (a library in C++ and a set of tools in Python) under a trench coat.

This is by far not my domain. If anyone is willing to lend a hand, I could definitely use any help that I can get, but I understand that folks are busy and everybody wants help.

Cheers,

Ivan



On Thu, 7 Dec 2023 at 16:12, Scott Talbert <swt@techie.net> wrote:
On Tue, 5 Dec 2023, Ivan Perez wrote:

> Hi everyone!
>
> I'm currently trying to bring a tool we have at NASA Ames up to speed:
> https://github.com/NASA-SW-VnV/ikos
>
> IKOS is a static analyzer for C. I'm really hoping that IKOS can be included
> in Debian in the near future.
>
> IKOS is implemented as a  C++ library, and a number of python
> tools/wrappers. The tools call mains in modules defined in a python library
> `ikos`.
>
> As of right now, our CMakeFiles attempt to install everything (by default)
> under /opt/ikos/.
>
> I'm having lots of issues getting the python portions installed system-wide.
> I initially upgraded distutils to setuptools, but a recent update is now
> asking that I use a venv. More details and a link to a dockerfile can be
> found here: https://github.com/NASA-SW-VnV/ikos/discussions/241.
>
> While I can hack a solution that "works" (either by making a venv under the
> target dir or by means of break-system-packages), I'd prefer to use
> recommended practices, and also conform to the way that things are done in
> Debian/Ubuntu.
>
> What would be the recommended way of installing IKOS system-wide in Debian?

Hello again Ivan (different neighborhood :)),

The "modern" way of building Python libraries/applications seems to be to
use a pyproject.toml.  The pyproject.toml specifies a backend build system
that knows how to build the library/application and produce a wheel.

As far as how to do this within an existing cmake project, unfortunately,
there doesn't seem to be a clear/easy way.  The only cmake example I can
think off of the top of my head is cvc5.  It still uses setup.py though,
so not a great future-looking example (and I had to patch it to build the
Python bindings in Debian):
https://github.com/cvc5/cvc5/blob/main/src/api/python/CMakeLists.txt

If you're open to other options for building python libraries, meson might
be something to look into.  I haven't used it extensively, though.  It
does seem to have better support for building Python though.

Regards,
Scott

Reply to: