[Buildroot] [PATCH 01/11 v4] package/python-lxml: new package

Yegor Yefremov yegorslists at googlemail.com
Sun Jan 18 19:14:45 UTC 2015


On Sun, Jan 18, 2015 at 7:03 PM, Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
> Yegor, All,
>
> On 2015-01-18 18:27 +0100, Yegor Yefremov spake thusly:
>> On Sun, Jan 18, 2015 at 1:11 PM, Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
>> > The lxml XML toolkit is a Pythonic binding for the C libraries libxml2
>> > and libxslt.
>> Trying to build lxml as normal package and get following error:
>
> You mean, as a target package?
>
> It can not work as-is, because I only declared the host variant.
> You'd have to add the target variant if you want the target package.

I've created needed files like Config.in etc.

>> running build_ext
>> building 'lxml.etree' extension
>> creating build/temp.linux-x86_64-2.7
>> creating build/temp.linux-x86_64-2.7/src
>> creating build/temp.linux-x86_64-2.7/src/lxml
>> /home/user/Documents/versioned/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc
>> -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
>> -D_FILE_OFFSET_BITS=64 -Os -DNDEBUG -g -fwrapv -O3 -Wall
>> -Wstrict-prototypes -fPIC
>> -I/home/user/Documents/versioned/buildroot/output/build/python-lxml-3.4.1/src/lxml/includes
>> -I/home/user/Documents/versioned/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/python2.7
>> -c src/lxml/lxml.etree.c -o
>> build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w
>> In file included from src/lxml/lxml.etree.c:239:0:
>> /home/user/Documents/versioned/buildroot/output/build/python-lxml-3.4.1/src/lxml/includes/etree_defs.h:14:31:
>> fatal error: libxml/xmlversion.h: No such file or directory
>>  #include "libxml/xmlversion.h"
>>                                ^
>> compilation terminated.
>>
>> What should I pass to setup.py? Should I pass include path to
>> include/libxml2? How does it work for the host-package?
>
> Well, I just tried, and it builds fine, even when I remove the libxml2
> development files from my host:
>
> running build_ext
> building 'lxml.etree' extension
> creating build/temp.linux-x86_64-2.7
> creating build/temp.linux-x86_64-2.7/src
> creating build/temp.linux-x86_64-2.7/src/lxml
> /usr/bin/gcc -pthread -fno-strict-aliasing -O2
> -I/home/ymorin/dev/buildroot/O/host/usr/include -DNDEBUG -g -fwrapv -O3
> -Wall -Wstrict-prototypes -fPIC
> -I/home/ymorin/dev/buildroot/O/host/usr/include
> -I/home/ymorin/dev/buildroot/O/host/usr/include/libxml2
> -I/home/ymorin/dev/buildroot/O/build/host-python-lxml-3.4.1/src/lxml/includes
> -I/home/ymorin/dev/buildroot/O/host/usr/include/python2.7 -c
> src/lxml/lxml.etree.c -o
> build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w
> /usr/bin/gcc -pthread -shared -L/home/ymorin/dev/buildroot/O/host/lib
> -L/home/ymorin/dev/buildroot/O/host/usr/lib
> -Wl,-rpath,/home/ymorin/dev/buildroot/O/host/usr/lib
> -Wl,--enable-new-dtags build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o
> -L/home/ymorin/dev/buildroot/O/host/usr/lib
> -L/home/ymorin/dev/buildroot/O/host/usr/lib -lxslt -lexslt -lxml2 -lz
> -lm -lpython2.7 -o build/lib.linux-x86_64-2.7/lxml/etree.so
> building 'lxml.objectify' extension
> /usr/bin/gcc -pthread -fno-strict-aliasing -O2
> -I/home/ymorin/dev/buildroot/O/host/usr/include -DNDEBUG -g -fwrapv -O3
> -Wall -Wstrict-prototypes -fPIC
> -I/home/ymorin/dev/buildroot/O/host/usr/include
> -I/home/ymorin/dev/buildroot/O/host/usr/include/libxml2
> -I/home/ymorin/dev/buildroot/O/build/host-python-lxml-3.4.1/src/lxml/includes
> -I/home/ymorin/dev/buildroot/O/host/usr/include/python2.7 -c
> src/lxml/lxml.objectify.c -o
> build/temp.linux-x86_64-2.7/src/lxml/lxml.objectify.o -w
> /usr/bin/gcc -pthread -shared -L/home/ymorin/dev/buildroot/O/host/lib
> -L/home/ymorin/dev/buildroot/O/host/usr/lib
> -Wl,-rpath,/home/ymorin/dev/buildroot/O/host/usr/lib
> -Wl,--enable-new-dtags
> build/temp.linux-x86_64-2.7/src/lxml/lxml.objectify.o
> -L/home/ymorin/dev/buildroot/O/host/usr/lib
> -L/home/ymorin/dev/buildroot/O/host/usr/lib -lxslt -lexslt -lxml2 -lz
> -lm -lpython2.7 -o build/lib.linux-x86_64-2.7/lxml/objectify.so
>
> I don't know what would break for the target package. Maybe it includes
> unsafe paths (-I and/or -L) ?

Have you also installed libxslt-dev on your PC? After I've done this,
I could cross-compile lxml, but it is not very "legal" approach :-)

Yegor



More information about the buildroot mailing list