Kurze Howto wie ich ebuilds teste:
naja, erstmal eins haben:
dann ins ebuild Verzeichnis wechseln
Beim ersten Test wird ein Digest (MD5, Size ect) der Sourcen erstellt, also
"ebuild vdr-xx.ebuild digest"
aufrufen. Danach
"ebuild vdr-xx.ebuild compile"
läd die sourcen und compiliert das programm. Ruft also die Funktionen src_unpack() und src_compile() aus dem Ebuild auf.
---
wenn das glatt geht folgt ein:
"ebuild vdr-xx.ebuild install"
Dies installiert noch NIX im System, sondern nur ein Image in der Sandbox.
Also z.B. "ebuild epm-0.8.ebuild compile" ->
----
>>> md5 epm-0.8.tar.gz
>>> Checking epm-0.8.tar.gz's mtime...
>>> WORKDIR is up-to-date, keeping...
>>> It appears that epm is already compiled; skipping.
>>> (clean to force compilation)
>>> Install epm-0.8 into /var/tmp/portage/epm-0.8/image/ category sys-apps
man:
strip:
>>> Completed installing into /var/tmp/portage/epm-0.8/image/
----
danach kann man mit "find /var/tmp/portage/epm-0.8/image/" überprüfen was alles ordendlich installiert wird.
Falls das alles ok ist, kann man mit:
"ebuild epm-0.8.ebuild merge"
das Prog ins System installieren.
---
Vorsicht vor Makefiles die z.B. ein
"cp xybin /sbin" oder ein su -c "mv /usr/bin/tosvcd /usr/bin/tosvcd.old"
enthalten, diese Files tauchen dann nicht in der PKG datenbank auf!!!! Und werden bei einem unmerge auch nicht entfernt! also dann lieber kein "make install" sondern die Ebuild-Funktionen "doins, doexe, dobin ect" benutzen! siehe http://www.gentoo.org/doc/en/gentoo-howto.xml#doc_chap4
Deswegen hab ich in allen vdr-plugin ebuilds ein:
sed -i "/cp.*LIBDIR/d" Makefile
damit der cp Befehl da raus kommt. Evt. sollte man mal allen Plugin Programmieren stecken das es den befehl install gibt und desweiteren in Makefiles Variablen wie DESTDIR und PREFIX sinnvoll sind.
gruss Mad