php-pear-DB
Adam Gołębiowski
adamg w biomerieux.pl
Śro, 10 Lis 2004, 19:20:24 CET
On Mon, Nov 01, 2004 at 11:09:57PM +0100, Paweł Gołaszewski wrote:
> On Mon, 1 Nov 2004, Adam [iso-8859-2] Gołębiowski wrote:
> > > Nie wiem czy tak powinno być, ale wydaje mi się że przydałoby się R:
> > > php-pear-PEAR w php-pear-DB skoro pierwsza linia to "require_once
> > > 'PEAR.php';". Dodatkowe zamieszanie wprowadza php-pear, który ma tylko
> > > katalogi, a ja przez trzy godziny myślałem że mam PEAR.php :-(
> > Bleeee... cały problem rozbija się o skrypty do generowania zależności,
> > które na chwilę obecną nie działają [1]. Zdaję sobię z tego sprawę, i
> > jeśli ktoś (tm) mi z nimi nie pomoże, trzeba będzie cofnąć się do
> > skryptów, które mieliśmy w Ra, a które nie zawsze działały (te, w
> > założeniu, miały działać).
>
> Tyle, że to będzie wymagało często poprawek typu "case sensitivity", choć
> tego da się łatwo uniknąć (wszystko na małe litery).
>
> > [1] cvs::PLD-doc/PLD_2.0_TODO - na samiuteńkim dole.
>
> Jaki jest powód, że nie parsuje tego pliku?
>
> Kopiowanie do wynikowego pakietu to nie jest problem przecież, można się z
> tym pogodzić nawet
Uhm, ale to takie nieeleganckie...
W każdym bądź razie, na chwilę obecną moja idea była (jest) następująca
Do makr /usr/lib/rpm/macros.php dodajemy na końcu:
%{_builddir}/%{name}-%{version}, co jak słusznie zauważyl qboosh już
samo w sobie jest brzydkie.
Przykład:
%define __php_provides /usr/lib/rpm/php.prov %{_builddir}/%{name}-%{version}
Zawartość przykładowego php.prov:
$ cat php.prov
-f "$ARGV[0]/package.xml" and open(F, "$ARGV[0]/package.xml") or die("$!\n");
/^\s+\<name\>([a-zA-Z0-9\_]+)\<\/name\>$/ and print "php-pear-$1\n" while (<F>);
$
Odpalone z palca, działa:
$ /usr/lib/rpm/php.prov ~builder/rpm/BUILD/php-pear-HTML_Common2-0.1.0/
php-pear-HTML_Common2
$
A przy próba odpalenia przez tę wielką machinę rpmem zwaną:
$ rpmbuild -bb php-pear-HTML_Common2.spec
[...]
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.50713
+ umask 022
+ cd /home/users/builder/rpm/BUILD
+ cd php-pear-HTML_Common2-0.1.0
+ DOCDIR=/home/users/builder/tmp/php-pear-HTML_Common2-0.1.0-root-builder/usr/share/doc/php-pear-HTML_Common2-0.1.0
+ export DOCDIR
+ rm -rf /home/users/builder/tmp/php-pear-HTML_Common2-0.1.0-root-builder/usr/share/doc/php-pear-HTML_Common2-0.1.0
+ /bin/mkdir -p /home/users/builder/tmp/php-pear-HTML_Common2-0.1.0-root-builder/usr/share/doc/php-pear-HTML_Common2-0.1.0
+ cp -pr HTML_Common2-0.1.0/tests /home/users/builder/tmp/php-pear-HTML_Common2-0.1.0-root-builder/usr/share/doc/php-pear-HTML_Common2-0.1.0
+ /usr/lib/rpm/compress-doc
Compressing documentation in /home/users/builder/tmp/php-pear-HTML_Common2-0.1.0-root-builder/usr/share/doc/php-pear-HTML_Common2-0.1.0...
./tests/HTML_Common2_Test.php
Documentation compressed.
+ exit 0
Parsing SELinux file contexts skipped: /etc/security/selinux/src/policy/file_contexts/file_contexts: No such file or directory
getOutputFrom(): Broken pipe
$
I na tym koniec. Być może jest to jakaś bzdura, ale ja nie wiem
jak się z tym uporać.
Plusy tego rozwiązania:
- porządek z R:
- automatyczna obsługa zależności zarówno pearów, jak i pecli
Minusy:
- działa tylko dla pearów/pecli - dla pozostałych phpowych paczek,
trzeba R: ustawiać ręcznie
Co jeszcze:
- można by zastanowić się nad wdrozeniem "pear makerpm"...
--
http://www.mysza.eu.org/ | Everybody needs someone sure, someone true,
PLD Linux developer | Everybody needs some solid rock, I know I do.
Więcej informacji o liście dyskusyjnej pld-devel-pl