You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My problem is that the data become invalid when the system library is updated or downgraded. Usually the version stops matching. (But it could be linker flags or any other ones.)
I package the Perl modules into RPM packages and I work around it by adding an RPM-level dependency on an exact library version into the Alien package. That way users need to update both the library and the Alien RPM package. This saves users, but creates headaches to package maintainers who need to rebuild Alien package whenever the library is rebased. However, this is a general problem not specific to RPM distributions.
Would it be possible to change Alien in a way in which system installations do to not store the data and instead retrieve them at run-time? Effectively rerunning the installed alienfile at run-time. At the end, all the data can be retrieved with pkg-config. Duplicating them doesn't seem the right way.
The text was updated successfully, but these errors were encountered:
Possibly, at least on an opt-in basis. We avoid re-running the alienfile at "runtime" because it brings in a lot of extra dependencies into your runtime process. This would primarily be a problem with FFI which if it uses an Alien it will use it at real runtime, but for XS "runtime" is usually actually build time for the XS module.
Thanks for the information. I have a related question: Now the alienfile is installed as _alien/alienfile. Is that file used for anything after the installation (in either system and shared modes of installation)?
Yes in either share or system install _alien/alienfile can be used to reinstall the alienized package without going through a cpan client or re-installing the Alien dist. This could be to switch from share or system install, or it could be used to upgrade a share install. In principal anything with write access to the share directory could do this, but in practice (so far) App::af is the only tool that does this.
System-type installation stores a library-specific data into a JSON document at build-time. The data are then returned at run-time. An example:
My problem is that the data become invalid when the system library is updated or downgraded. Usually the version stops matching. (But it could be linker flags or any other ones.)
I package the Perl modules into RPM packages and I work around it by adding an RPM-level dependency on an exact library version into the Alien package. That way users need to update both the library and the Alien RPM package. This saves users, but creates headaches to package maintainers who need to rebuild Alien package whenever the library is rebased. However, this is a general problem not specific to RPM distributions.
Would it be possible to change Alien in a way in which system installations do to not store the data and instead retrieve them at run-time? Effectively rerunning the installed alienfile at run-time. At the end, all the data can be retrieved with pkg-config. Duplicating them doesn't seem the right way.
The text was updated successfully, but these errors were encountered: