Archive-Libarchive
view release on metacpan or search on metacpan
maint/README.md view on Meta::CPAN
# Reference libarchive docker image
Because `libarchive` contains a large number of functions (400+ as of this writing),
and because maintaining individual function bindings is tedious and error-prone;
development for `Archive-Libarchive` uses code generation to generate bindings and
documentation for most methods. Only the methods that require Perl wrappers, or need
subtle type conversions are implemented manually. Files that are generated automatically
should have a comment indicating that they should not be updated directly.
To keep things consistent and reliable, we maintain a reference build of the oldest
and most recently supported versions of `libarchive` in a docker image. This means that
we can keep track of which functions are "optional", that is are available in at least
some versions that we support, but not the oldest version. We use `Const::Introspect::C`
and `Clang::CastXML` to extract constants and function signatures (respectively) from
`libarchive`. You do not need to install those modules locally, because they are
installed in the docker image. The introspection also loads the `Archive-Libarchive`
to keep track of which function bindings are implemented manaully, to ensure that
automatic bindings are not created for manually maintained bindings. CI also runs
( run in 0.240 second using v1.01-cache-2.11-cpan-2b0bae70ee8 )