NNPDF / pineappl

PineAPPL is not an extension of APPLgrid
https://nnpdf.github.io/pineappl/
GNU General Public License v3.0
12 stars 3 forks source link

Upload libraries for Linux #229

Closed cschwan closed 1 year ago

cschwan commented 1 year ago
alecandido commented 1 year ago

In principle, you can add the compiled library also as an attachment to releases, from which it would be simpler to collect even for external users.

I.e. use something like gh release upload in make-release.sh.

cschwan commented 1 year ago

@AleCandido that's the idea, eventually.

I'm currently still experimenting a bit with the binaries to see whether they're really usable everywhere. I suspect they're not, depending on the (g)libc versions available during compilation/execution and some other paths and OS/distribution-specific things that I havent't figured out yet. Another problem is that the .pc file has its installation path hardcoded into it, meaning the user must change the prefix accordingly. For that we probably want some small installation script asking for the installation directory. I'm thinking of something similar to what rustup is using.

alecandido commented 1 year ago

I'm currently still experimenting a bit with the binaries to see whether they're really usable everywhere. I suspect they're not, depending on the (g)libc versions available during compilation/execution and some other paths and OS/distribution-specific things that I havent't figured out yet.

For this usually it should be sufficient to use an old enough Linux distribution. That's the goal of the manylinux wheel type of Python packages: support many Linux distributions, by compiling using only features available to all of them. You might consider using their containers https://github.com/pypa/manylinux https://quay.io/organization/pypa

Another problem is that the .pc file has its installation path hardcoded into it, meaning the user must change the prefix accordingly. For that we probably want some small installation script asking for the installation directory. I'm thinking of something similar to what rustup is using.

This I'm aware of, and usually distributions solve this problem by using system-wide paths (most commonly /usr). LHAPDF and other programs solve the problem only supporting installation from source. That's part of the pain of distributing C/C++ code. (the other option I'm aware of is giving up on pkg-config, and rely on user env vars, but I'm not sure is preferable)