Problem z %py_build przy próbie budowania calibre

Jacek Konieczny jajcus at jajcus.net
Thu Dec 31 20:23:09 CET 2015


On 2015-12-31 16:43, Łukasz Maśko wrote:
>> Jeśli jest to tylko budowane dla jednej wersji Pythona, to w %build
>> zapewne wystarczy tylko:
>>
>> %{__python} setup.py build
> 
> Tak przechodzi dalej, ale w %install jest dla odmiany użyte makro %py_install, 
> które też się wywraca, bo w swojej treści zawiera to samo --build-base=build-2

I to też musisz podmienić na '%{__python} setup.py install' plus
odpowiednie flagi wybierające katalog docelowy, o ile to cudo w ogóle ma
taką opcję.

> Obstawiam, że wiele aplikacji używających makr %py_build i %py_install się 
> teraz nie daje przebudować.

Nie ma obaw. Większośc się przebudowuje bez problemu. Ta jest inna, bo
te 'setup.py' nie jest normalne, tylko jakieś custom-cudo. O ile
pamiętam, to w Calibre wszystko było robione jakoś nienormalnie.

> Generalnie widać, że oba skrypty zawierają błędy: pierwszy dlatego, że 
> wprowadza to --build-base, a drugi dlatego:
> 
> + /usr/bin/python2 setup.py build '--build-base=build-2' install --skip-build 
> '--prefix=/usr' '--install-purelib=/usr/share/python2.7/site-packages' '--
> install-platlib=/usr/lib/python2.7/site-packages' '--optimize=2' '--
> root=/tmp/calibre-2.47.0-root-ed' install '--libdir=/usr/lib'
> 
> Jak widać - skoro install, to po cholerę jest tam "build" po setup.py?

Bo tak działają standardowe skrypty 'setup.py' standardowego pythonowego
distutils, albo alternatywnego setuptools. bez 'build' nie można podać
'--build-base', a bez '--build-base' install nie znalazło by plików
zbudowanych w %build i budowałoby jeszcze raz, mieszając pliki Pythona 2
i Pythona 3.

%py_build i %py_install są ok, tylko nie nadają się do calibre.spec, bo
'setup.py' od calibre to co innego niż 'setup.py' w >90% softu
pythonowego.

Jacek


More information about the pld-devel-pl mailing list