Zdrojove kody u SUSE - kompilace php

Matej Cepl mcepl na redhat.com
Čtvrtek Prosinec 6 14:12:23 CET 2007


On Thu, 06 Dec 2007 12:09:11 +0100, Katerina Bubenickova scripst:
> Problem je, ze nerozumim, jak funguje rpmbuild -bb *.spec Zdrojaky se mi

Což takhle proštudovat rpmbuild(8)? Nevím, jak na SuSE, ale na 
Fedoře mi to řekne toto:

-bb    Build  a  binary  package  (after  doing  the %prep, 
%build, and %install stages).

Při pohledu do .spec souboru zjistíte, že:

%prep prakticky rozbalí zdrojáky ze Source* do BUILD podadresáře 
      a aplikuje Patch*
%build spustí ./configure a make
%install spustí make install

(plus každá fáze může obsahovat ještě spoustu droboty kolem).


> Zdrojaky se mi rozbalily do SOURCES, je tam taky php-5.1.2.bz2,

To je rpm -i. Ty zdrojáky tam nechte (pokud možno ty původní ze 
src.rpm) a jediné změny, které uděláte budou v BUILD.

Vybalte si vše do BUILD adresáře (pomocí rpmbuild -bp) a udělejte 
si kopii BUILD/php-5.1.2 někam jinam (třeba do
BUILD/php-5.1.2.orig). Pak do toho BUILD/php-5.1.2 radostně 
vrtejte, dokud Vám neproběhne ./configure bez problémů 
(zkontrolujte ve .spec filu, jestli tam ještě před %configure 
neprovádí .spec nějaké další tanečky -- ty také proveďte, 
samozřejmě). Poté co to máte ve stavu v jakém to chcete mít, 
spusťte

    make distclean

a pak

    cd ..
    diff -u php-5.1.2{,.orig} >../SOURCES/php-5.1.2-KB-build.diff

Prohlédněte php-5.1.2-KB-build.diff v nějakém textovém editoru, 
jestli obsahuje jenom to, co chcete. Pak přidejte další řádek do 
.spec filu s novým Patch a do %prep další aplikování Vašeho 
patche.

Po dlouhodobém studiu výstupu BUILD/php-5.1.2/configure --help 
upravte příslušné volání %configure (nebo ./configure -- nevím, 
jestli SuSE používá toto makro).

> rozbalila jsem, oeditovala configure, zabalila, nahradila, 
> zkontrolovala.
> Nepomohlo to, jako bych nic neudelala.
> V BUILD jsem nasla adresar php-5.1.2, vevnitr configure, to nebylo
> oeditovane, opravila jsem, rpmbuild zase jako bych nic
> neudelala. A potom tohle configure bylo zase bez mych oprav, prepsane
> zpatky.

Samozřejmě, protože první krok %prep fáze (rpmbuild -bp 
SPEC/php.spec 2>&1 |less by Vám napovědělo) je

    rm -rf BUIILD/%{name}-%{version}

> Tak odkud se to bere, v SOURCES jsem nechala stare 
> php-5.1.2.bz2.bak,
> ale to prece nemuze mit zadny vliv?

Ne, to nemá.

> Nebo nejaky patch muze udelat uplne nove configure, a zrusit moje
> zaremovani?

Ne, vy si musíte udělat patch, kterým si nastavíte co potřeba.

> Kolega uz mi rika, abych toho nechala, ze nam to firma nainstaluje na M$
> win, s tim pry nejsou problemy :-(

Bez komentáře. Nebo (abych si neodpustil konkurenční rejpnutí) si 
pořiďte distribuci, která má nějaký suppport ;-).

Hezký den,

Matěj Cepl

-- 
The content of this message is licensed under a Creative Commons 
Attribution 3.0 License, Some Rights Reserved.
http://creativecommons.org/licenses/by/3.0/us/




Další informace o konferenci Linux