Re: porting a PHP extension to Debian-Interix
On Fri, 14 Oct 2011, Mike Newhall wrote:
I?m a new Interix user and list member, and kind of a *nix
newbie in general. (If you?re on the SUA community forums, I?ve posted a
related but more general question already.) I am trying to get a build
working under Interix that currently runs on CentOS and uses PHP. Right now
I?m keeping it simple by focusing on one single missing dependency; if I can
get past this one, maybe I?ll know enough to be able to solve the next one.
It?s an extension, mbstring or php5-mbstring, that apparently includes a
binary component, libmbfl. I?m willing to invest the effort to create a
port / package of this if necessary. I assume that even if this package is
available in some apt-compatible package repository, it will not work out of
the box on Interix. I know it is available at least as an rpm (along with
the other bits to perform a proper php install), not sure if it is packaged
elsewhere as well. So I guess my first step should be to get the C source
and try to compile it under Interix, then if it works, submit any necessary
changes to the project?s maintainers, and make a new Debian/Interix package
from there. Is this roughly correct? Any porting advice from those who?ve
done it before?
I don't know enough about php mbstring or libmbfl. A short google
search on libmbfl shows it's a lib written in C, so yes, you
definitely need to build it on Interix yourself to get an Interix
binary of it. Even if you find an Interix binary version of libmbfl at
Gentoo/Interix or at Rodney's tools site, you probably need to build
it again for Debian/Interix. Especially .so libraries are mostly not
binary compatible between package systems, e.g. because of library
search paths etc.
WRT multibyte support on Interix in general: if libmbfl implements
everyting on his own, you may be successful. If, on the other hand,
libmbfl requires multibyte support in the C library, e.g. wprintf()
function and others, you won't get it to work easily, because the
standard Interix C lib unfortunately doesn't have these functions.
So currently no program on Debian/Interix supports multibyte
A short look into the Debian archive shows that the package php5-dev
apparently contains at least parts of libmbfl, so you should start
with that package.
For the patches: First get it to work correctly, then yes, try to send
them to upstream maintainers for inclusion, but in parallel, they can
be included in the Debian/Interix source package, so they are applied
just before building, until they are accepted upstream, which
sometimes can take some time and sometimes never will happen,
depending on the patch.