2015-09-07 18 views
7

Stiamo lottando per il controllo della versione della nostra applicazione, RFS, Uboot e kernelControllo versione Yocto

Abbiamo un programma mondiale Hello. Ogni volta che stiamo cambiando (patching) nuove funzionalità del programma, dobbiamo tenere traccia delle modifiche con l'aiuto della versione n. Abbiamo bisogno che la versione no di questo (ciao world package) debba essere incrementata automaticamente. Lo stesso che abbiamo a che fare con Linux e uboot.

Yocto può fare questo per noi? O abbiamo qualche altra opzione per raggiungere questo obiettivo. Per favore suggeriscici come siamo nuovi per tutte le capacità di yocto.

risposta

0

Per quanto ne sappia, non esiste una funzionalità integrata per questo in yocto. Tuttavia, puoi scrivere il tuo meccanismo di controllo e metterlo in do_fetch_prepend. Quindi imposta SRCREV in modo programmatico con d.setVar ('SRCREV', myshasum).

0

Un'opzione per gli aggiornamenti automatici è impostare SRCREV = "$ {AUTOREV}", quindi disporre di uno script che imposta PV e/o PR nella ricetta. Quando la ricetta viene cambiata, impone un recupero e AUTOREV significa che tira da HEAD.

+0

Non è necessario che lo script. tutto è già incluso nella nostra ricetta kernel facciamo la seguente:? '' ' LINUX_VERSION = "3.14" PR = "R0" PV = "$ {} LINUX_VERSION + git $ {} SRCPV" ' '' – graugans

2

Come già pointed out è necessario utilizzare SRCREV = "${AUTOREV}". Per avere un numero di versione che cambia su ciascun aggiornamento, è necessario modificare la variabile PV nella propria ricetta.

LINUX_VERSION ?= "3.14" 
PV = "${LINUX_VERSION}+git${SRCPV}" 

È possibile controllare lo OpenEmbedded kernel recipe come riferimento.

6

Un esempio completo di come si può fare questo:

La parte importante è SRCREV = "${AUTOREV}" e PV = "${BPV}+gitr${SRCPV}"

DESCRIPTION = "Hello World" 
SECTION = "examples" 
LICENSE = "CLOSED" 
LIC_FILES_CHKSUM = "file://README.md;md5=8386d486d9e820c480636608de5c2d98" 

SRCREV = "${AUTOREV}" 
BPV = "0.1.0" 
PV = "${BPV}+gitr${SRCPV}" 

S = "${WORKDIR}/git" 

SRC_URI = " git://example/hello_world.git;protocol=http \ 
" 

inherit autotools 

RDEPENDS_${PN} += " \ 
    hello-world-runtime-dependency \ 
"