Delay Tolerant Network [ebuild]
Il mio primo ebuild (link) ha richiesto solo un paio d’ore; provo a descrivere quello che ho fatto. Ho sistemato l'header dell'ebuild # ========================================================================== # ***************** Sigmalab Portage Overlay (02/26/07) ***************** # ***************** For more info go to ***************** # ========================================================================== # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $inherit eutilsDESCRIPTION="Disruption Tolerant Networking (DTN)" HOMEPAGE="http://www.dtnrg.org" SRC_URI="http://www.dtnrg.org/docs/code/${PN}_${PV}.tgz"LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~x86" Le varie Keyword sono ben descritte sulla documentazione di gentoo. Ricordare di mettere ~x86 se lo si vuole ridistribuire in quanto indica l'instabilità dell'ebuild La seconda parte è data dalle dipendenze e dalle possibili use flag: IUSE="oasys" DEPEND=">=dev-lang/tcl-8.0.0 >=sys-libs/db-4.2.52_p4-r2" Anche qui nulla di nuovo, in depend la sintassi è la stessa dei package del portage; nel mio caso ho anche specificato la versione esatta, ma potrebbe non essere necessario. Da notare invece che alcune dipendenze possono essere necessarie solo se una specifica flag è attiva in quel caso guardate questo esempio: mysql? ( >=dev-db/mysql-3.23.49 ) Passiamo ora alle variabili globali INSTALLDIR="/usr/local/bin/" S=${WORKDIR}/${PN}_${PV} Attenzione solo alcune variabili sono modificabili, altre sono readonly! (vedi qui) come compilare il pacchetto src_compile() { cd ${S} ./configure -C --verbose || die "configure problem" emake || die "compile problem" } Questo codice è utile se usate gli autotools; e ora la parte difficile installare tutto secondo logica src_install() { emake DESTDIR={D} install || die "install problem"# il demone dobin daemon/dtnd keepdir /etc/dtn insinto /etc/dtn doins daemon/dtn.conf dtn/dtn.conf# per salvare i bundles e i db keepdir /var/tmp/dtn keepdir /var/tmp/dtn/bundles keepdir /var/tmp/dtn/db# installo le librerie base keepdir /usr/include/dtn insinto /usr/include/dtn doins applib/*.h if use oasys ; then keepdir /usr/include/dtn/oasys insinto /usr/include/dtn/oasys doins oasys/*.h fi ...