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

General tips for improving cross-satisfiability when interpreted languages are involved



Hi,

Most of my programming experience is with C, and it's personally hard
for me to grasp the concerns involved when building modules for
interpreted languages. I haven't managed to find a wiki page discussing
the issues for the uninitiated and so am asking for advice here.

My latest example is trying to get zbar to be able to have its cross
dependencies resolved, then trying to get it to cross build. In
addition to C and C++ libs, it builds Perl and Python modules.

Here's my (probably faulty) thinking, from throwing stuff at the wall
to see what sticks, that seems to've worked out for me:

* zbar explicitly build-depends on perl, which is a Multi-Arch: allowed
package. This dependency seems possibly superfluous to me (perl is in
Build-Essential), so I delete it.

* zbar explicitly build-depends on python3-dev, which is cross-
unfriendly since it cannot be installed for multiple architectures at
the same time and provides the arch-ambiguous python3-config binary.
I switch it out for libpython3-dev and hope that the build system is
robust enough to use pkg-config or otherwise find the Python libraries
(it seems this is the case).

* When building the Perl module failed, Debhelper gave me a hint that I
probably needed a build-dep on perl-xs-dev (what's xs mean anyway?). I
added this.

After making these changes, the package now seems to cross build. The
problem is I can't explain why and am in no good position to propose
this to the package maintainer. Could someone direct me to a detailed
discussion of these issues, or otherwise help me understand how and why
these interpreter packages have been split up, and what I should be
looking for when?

Thanks,
John

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: