[Golem] Compilazione libreria Python - pycups

Adm linuxloverstaff@gmail.com
Gio 21 Nov 2013 10:05:43 CET


SOLUZIONE:
Passi suggeriti:
1) installare uno storage USB come filesystem principale
http://wiki.openwrt.org/doc/howto/usb.storage
2) installare i pacchetti per la stampa e cups come consigliato da
Francisco Borges
https://github.com/FranciscoBorges/openwrt-printing-packages . Non è un
pacchetto ufficiale, ma è citato qui:
http://wiki.openwrt.org/doc/howto/cups.server
3) installare python sul router

Passi successivi:
3) scaricare sul PC l'ambiente di compilazione openwrt con mips. Seguire
questa guida
http://wiki.openwrt.org/doc/howto/buildroot.exigence
4) copiare le cartelle /usr/lib e /usr/include dal router alla propria
cartella di staging sul PC, all'interno dell'ambiente di compilazione
5) Sul computer, sostituire temporaneamente il file
/usr/include/python2.7/pyconfig.h con quello resente all'interno del router
6) scaricare il pacchetto pycups in una cartella sul PC
https://pypi.python.org/pypi/pycups
7) entrare nella cartella di pycups e lanciare make come indicato nella
procedura di cross compiling
8) la procedura si bloccherà per un errore nella fase di link dei file ".o"
(objects).

Errore "collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
make: *** [cups.so] Error 1"

Comando che ha generato l'errore:
"x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions
-Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
-Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security
/home/linuxlover/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib
/home/linuxlover/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include
build/temp.linux-x86_64-2.7/cupsmodule.o
build/temp.linux-x86_64-2.7/cupsconnection.o
build/temp.linux-x86_64-2.7/cupsppd.o build/temp.linux-x86_64-2.7/cupsipp.o
-lcups -o build/lib.linux-x86_64-2.7/cups.so
"

9) sostituire "x86_64-linux-gnu-gcc" (o simile) con
"mips-openwrt-linux-gcc" e rimuovere "-fstack-protector". Rimuovere anche i
percorsi relativi alle cartelle include e lib presenti nella staging_dir

10) lanciare "
mips-openwrt-linux-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions
-Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
-Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g --param=ssp-buffer-size=4
-Wformat -Werror=format-security  build/temp.linux-x86_64-2.7/cupsmodule.o
build/temp.linux-x86_64-2.7/cupsconnection.o
build/temp.linux-x86_64-2.7/cupsppd.o build/temp.linux-x86_64-2.7/cupsipp.o
-lcups -o build/lib.linux-x86_64-2.7/cups.so
"

11)  copiare la cartella pycup sul router
12)  sul router rinominare lib.linux-x86_64-2.7 e temp.linux-x86_64-2.7
con lib.linux-mips-2.7 e lib.linux-mips-2.7
13) sul router, lanciare python setup.py install


2013/10/31 Adm <linuxloverstaff@gmail.com>

> ho ancora bisogno di aiuto, intanto: tutti i passaggi che ho fatto
> https://forum.openwrt.org/viewtopic.php?id=47094
>
>
> 2013/10/31 Adm <linuxloverstaff@gmail.com>
>
>> quello che vi ho mandato ieri non era il vero errore di compilazione. Era
>> una stupidaggine.
>> Quello che vi mando ora è il vero problema:
>>
>> linuxlover@hide:~/openwrt_py/pycups-1.9.63$ echo $PATH
>>
>> /home/linuxlover/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/linuxlover/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/bin
>> linuxlover@hide:~/openwrt_py/pycups-1.9.63$ make clean
>> rm -rf build cups.so *.pyc *~
>> linuxlover@hide:~/openwrt_py/pycups-1.9.63$ make
>> CC=mips-openwrt-linux-uclibc-gcc LD=mips-openwrt-linux-uclibc-ld V=spython
>> setup.py build
>> running build
>> running build_ext
>> building 'cups' extension
>> creating build
>> creating build/temp.linux-x86_64-2.7
>> mips-openwrt-linux-uclibc-gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv
>> -O2 -Wall -Wstrict-prototypes -fPIC -DVERSION="1.9.63"
>> -I/usr/include/python2.7 -c cupsmodule.c -o
>> build/temp.linux-x86_64-2.7/cupsmodule.o
>> In file included from /usr/include/python2.7/Python.h:58:0,
>>                  from cupsmodule.c:22:
>> /usr/include/python2.7/pyport.h:873:2: error: #error "LONG_BIT definition
>> appears wrong for platform (bad gcc/glibc config?)."
>> cupsmodule.c:23:23: fatal error: cups/cups.h: No such file or directory
>> compilation terminated.
>> error: command 'mips-openwrt-linux-uclibc-gcc' failed with exit status 1
>> make: *** [cups.so] Error 1
>>
>>
>>
>> 2013/10/31 Adm <linuxloverstaff@gmail.com>
>>
>>> sto provando a compilare la libraria pycups per i dispositivi supportati
>>> da opewrt.
>>>
>>> Non ci riesco.
>>>
>>> Mi dareste una mano?
>>>
>>> Guida openwrt:
>>> http://wiki.openwrt.org/doc/devel/crosscompile
>>>
>>> La libreria:
>>> https://pypi.python.org/pypi/pycups
>>>
>>> Il mio output:
>>> make CC=mips-openwrt-linux-uclibc-gcc LD=mips-openwrt-linux-uclibc-ld V=s
>>> python setup.py build
>>> running build
>>> running build_ext
>>> building 'cups' extension
>>> mips-openwrt-linux-uclibc-gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv
>>> -O2 -Wall -Wstrict-prototypes -fPIC -DVERSION="1.9.63"
>>> -I/usr/include/python2.7 -c cupsmodule.c -o
>>> build/temp.linux-x86_64-2.7/cupsmodule.o
>>> unable to execute mips-openwrt-linux-uclibc-gcc: No such file or
>>> directory
>>> error: command 'mips-openwrt-linux-uclibc-gcc' failed with exit status 1
>>> make: *** [cups.so] Error 1
>>>
>>>
>>> grazie
>>> ADM
>>>
>>
>>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/golem/attachments/20131121/b4921284/attachment.html>


Maggiori informazioni sulla lista golem