Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TOOL] Gestione pulita degli overlay con EMERGE-OVERLAY
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Fri Feb 16, 2007 11:35 pm    Post subject: [TOOL] Gestione pulita degli overlay con EMERGE-OVERLAY Reply with quote

Download: http://mouser.altervista.org/software/gentoo/emerge-overlay-0.1.1.tar.bz2

Installazione
Ok, per installare il pacchetto fate in questo modo:
Code:
# cd /tmp/
# wget http://mouser.altervista.org/software/gentoo/emerge-overlay-0.1.1.tar.bz2
# tar jxvf emerge-overlay-0.1.1.tar.bz2
# cd emerge-overlay-0.1.1
# ./eoinstall


Vi installerà emerge-overlay direttamente in /usr/bin

Descrizione

Che dire, dopo settimane di lavoro/test/problemi ecco finalmente in versione ALPHA emerge-overlay
ovvero "Come usare layman mantenendo il sistema pulito".

Per esempio perchè se devo installare xmms (ebuild nell'overlay zugaina di layman) di un totale di 5 ebuilds
necessari alla compilazione, mi devo tirare dietro 14M di files, directory, ecc?
Non sarebbe più logico avere in locale solo gli ebuild che mi permettono di compilare quel programma?

Questo è quello che fa emerge overlay.

Code:
# emerge-overlay -h
usage: ./emerge-overlay [-h|--help] [-V|--version] [-d|--debug]
                         [-s|--sync] [-P "<options>"]
                         [-f|--fetchonly] <software>

   -h|--help        This help

   -V|--version     Print version and informations

   -d|--debug       Activating debug mode

   -s|--search      Show package info and selected overlay

   --sync           Update eix overlay's database

   -P "<options>"   Options to pass to portage (example: "-av")

   -f|--fetchonly   Only create local overlay with directory and
                    ebuilds instead of install software


Quindi in pratica quando lancio
Code:
# emerge-overlay xmms

lo script esegue queste operazioni:
q
- controlla la presenza di un overlay locale; se non c'è chiede all'utente dove metterlo e si occupa di aggiornare il make.conf per far funzionare l'overlay locale

- controlla l'overlay di provenienza dell'ebuild e lo sincronizza con layman

- estrae la lista degli overlay di appartenenza di tutte le dipendenze e, mano a mano, sincronizza layman con eventuali overlay aggiuntivi

- copia tutti gli overlay necessari all'emerge nell'overlay locale, ricreando la stessa struttura di directory

- elimina tutti gli overlay di portage

- esegue l'emerge 8)

Di seguito riporto la ToDo List tradotta in italiano:

* Creare la possibilità (o modificare l'algoritmo di estrazione delle versioni
per selezionare qualsiasi pacchetto. Attualmente non funziona con tutti gli
ebuild (ad esempio, php non va :roll:)
* Testare il più grande numero possibile di ebuild da overlay per assicurarsi
che la regexp di sed che elimina le versioni dai nomi dei pacchetti funzioni
a dovere
* Includere il supporto all'update di software
* Ottimizzare il codice.

ah, premetto che questo script necessita sia di eix che di layman.
Nel mio sistema funziona perfettamente con
Code:
app-portage/eix
     Installed versions:  0.8.8(10:18:00 02/08/07)(-sqlite)

app-portage/layman
     Installed versions:  1.0.6


ed, ovviamente, la presenza di
Code:
source "/usr/portage/local/layman/make.conf"

nel /etc/make.conf (seguite comunque l'howto su layman che viene spiegato tutto benissimo)

Signori, quindi a noi il testing....... può essere utile come script quindi in caso di bug ecc.
Non esistate a segnalarlo che vedo di riuscire a fare qualcosina.

Ciriciao
mouser :wink:

Changelog
* 2007-02-25: Corretto bug all'interno dello script di installazione (eoinstall)
* 2007-02-21: Pacchetto ufficialmente aggiunto al Gechi Overlay; info su http://www.gechi.it
* 2007-02-21: Aggiunta informativa sulla licenza (GPLv2) - Aggiunto script di installazione.
* 2007-02-19: Eliminato il sed ed utilizzata l'opzione "--columns" di portege per estrarre i nomi dei pacchetti senza versione.


Last edited by mouser on Sun Feb 25, 2007 11:00 am; edited 6 times in total
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Fri Feb 16, 2007 11:45 pm    Post subject: Reply with quote

Wow, ti ringrazio oggi lo provo é proprio quello che cercavo, adesso tutte quelle operazioni le facevo a mano ma con uno script del genere la gestione degli overlay é notevolmente velocizzata.


Grazie ancora
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Sat Feb 17, 2007 12:03 am    Post subject: Reply with quote

Bionicle wrote:
Wow, ti ringrazio oggi lo provo é proprio quello che cercavo, adesso tutte quelle operazioni le facevo a mano ma con uno script del genere la gestione degli overlay é notevolmente velocizzata.


De nada 8)
Mi aspetto bug report a manetta da te :D

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
zolar czakl
Apprentice
Apprentice


Joined: 25 Sep 2004
Posts: 162
Location: UMRK

PostPosted: Sat Feb 17, 2007 1:43 pm    Post subject: Reply with quote

Non ho ancora provato ma leggendo lo script (entro i miei limiti :( ),
mi sorge un dubbio.

Come viene gestita la presenza di eclass custom?
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Sat Feb 17, 2007 6:01 pm    Post subject: Reply with quote

ciao ecco ho fatto un paio di test.

Non si può fare automaticamente l'update di eix? mettere un avviso Yes/No? lanciare il comando "update-eix-remote update" automaticamente?
Non per essere pignoli ma perché scrive 2 volte il messaggio?

Code:
Your database-file uses an obsolete format (17, current is 21).
Please run 'update-eix' and try again.
Your database-file uses an obsolete format (17, current is 21).
Please run 'update-eix' and try again.
[--] Package present only in current portage, not into any overlay.
[--] Sorry, today you can't break your gentoo :D


ho provato ad installare networkmanager e beryl, allora con networkmanager non riesce a trovarlo.
Code:

eix networkmanager:

[D] net-misc/networkmanager
     Available versions:  [M](~)0.6.4_pre20061028 [M](~)0.6.4_pre20061028-r1 [M](~)0.6.4_pre20061223[3] [M](~)0.6.4_pre20070122-r1[3] [M](~)0.6.4_pre20070122-r2[3] [M]*0.6.4_pre20070208[3] [M](~)0.6.4_pre20070213[3] [M](~)0.6.4[2] [M](~)0.6.4-r1[1] [M](~)0.6.4-r1[2]
     Installed versions:  0.6.4_pre20070213(14:35:06 14/02/2007)(crypt -debug -doc -gnome)
     Homepage:            http://people.redhat.com/dcbw/NetworkManager/
     Description:         Network configuration and management in an easy way. Desktop env independent


Code:
./emerge-overlay -s networkmanager
[--] Package present only in current portage, not into any overlay.
[--] Sorry, today you can't break your gentoo :D


EDIT debug:
Code:
./emerge-overlay -d networkmanager

[--] Creating local overlay with ebuilds...
[--] (local_overlay_build) Getting overlay from program name
[!!] (get_overlay) OVERLAY_NUMBER is empty. Returning -1
[!!] (local_overlay_build) Error during overlay extracting
[!!] Error during local overlay creation!


Mentre con beryl lo riconosce ma non riesce a copiare le cartelle e files:
Code:
./emerge-overlay -s beryl

[I] x11-wm/beryl
     Available versions:  (~)0.1.3 (~)0.1.3-r1[1] (~)0.1.4 (~)0.1.4[1] (~)0.1.99.2[1] (~)0.1.9999.1[1] (~)0.1.9999.1[2] (~)0.1.9999.2[1] (~)0.1.9999.2[2] (!)9999[2]
     Installed versions:  9999(11:44:07 10/02/2007)(-gnome kde)
     Homepage:            http://beryl-project.org
     Description:         Beryl window manager for AiGLX and XGL (meta)

[1] (layman/sabayon)
[2] (layman/xeffects)

[--] Overlay selected for package beryl - xeffects


se lo voglio installare:
Code:
./emerge-overlay  beryl

[--] Creating local overlay with ebuilds...
[!!] You don't have declared any local overlay into /etc/make.conf
[--] What directory do you want for local overlay [/usr/local/portage]?
[--] Overlay directory /usr/local/portage created and added variable to /etc/make.conf
[!!] (local_overlay_build) Error during ebuild directory copying
[!!] Error during local overlay creation!



EDIT aggiungo il debug:
Code:
./emerge-overlay -d beryl

[--] Creating local overlay with ebuilds...
[--] (local_overlay_build) Getting overlay from program name
[--] (local_overlay_build) Overlay getted xeffects
[--] (local_overlay_build) Check/Create for local overlay
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (local_overlay_build) Local overlay checked... OK
[--] (local_overlay_build) Getting remote overlay
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Overlay xeffects acquired!
[--] (local_overlay_build) Extracting dependency
[--] Program beryl require this dependency: x11-wm/beryl
[--] (local_overlay_build) Extraced dependency = "x11-wm/beryl "
[--] (local_overlay_build) Extracing dependency's (beryl) overlay name
[--] (local_overlay_build) Overlay for dependency beryl is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency beryl overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl ebuild dir into local overlay /usr/local/portage
[!!] (copy_ebuild_dir) Error during extraction of software name
[!!] (local_overlay_build) Error during ebuild directory copying
[!!] Error during local overlay creation!



mi dispiace ma purtroppo ti posso solo segnalare eventuali problemi perché non me ne intendo molto di bash (ho guardato il codice e non ho capito molto)

un'altra cosa quando parli di "- elimina tutti gli overlay di portage " cosa intendi?

Ciao e grazie ancora!

[ADD] se do il comando con -P mi da sempre questo
Code:
./emerge-overlay -d -P xmms

[--] Creating local overlay with ebuilds...
[!!] (local_overlay_build) Error... haven't passed any argument
[!!] Error during local overlay creation!

_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sat Feb 17, 2007 11:09 pm    Post subject: Reply with quote

Piccola idea:

Perchè invece di scaricare e poi rimuovere gli overlay di layman, non si scaricano tutti quelli che servono e poi si creano dei link simbolici solo per alcuni pacchetti in un overlay locale? Non so se mi sono spiegato bene, però potrebbe essere una buona idea, in questa maniera basta aggiornare layman e tutti gli ebuild sono aggiornati. Per meglio capire vi faccio uno schema di directory:

/usr/portage/local/layman/sunrise/sys-apps/portage/
/usr/portage/local/layman/sunrise/net-misc/foo/
/usr/portage/local/my/sys-apps/portage/ -> symlink to ../../../layman/sunrise/sys-apps/portage/

PORTDIR_OVERLAY="/usr/portage/local/my" e portage vede solo un pacchetto dell'overlay sunrise anziché tutti. :)
_________________
Running Fast!
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Sun Feb 18, 2007 10:13 am    Post subject: Reply with quote

L'idea é veramente geniale.
Ho provato questa mattina e funziona alla perfezione!

Quello che si dovrebbe fare:

  • cercare le dipendenze del pacchetto
  • creare la cartella corretta in locale /usr/local/portage
  • creare i symlink


Con questo sistema posso semplicemente aggiornare gli overly con layman ed é tutto ok, dunque si risolve anche il ToDO
"* Includere il supporto all'update di software "

Ciao
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Sun Feb 18, 2007 4:13 pm    Post subject: Reply with quote

ciao,
ho provato ad implementare il sistema dei symlink e sembra che funziona (l'ho testato)
ho fatto in modo che gli overlay alla fine non si cancellano (ho commentato il codice)
e poi ho notato la cartella principale di layman non si trova sotto /usr/portage/local ma su /usr/local/ ... non so se é possibile che la riconosca automaticamente

ti lascio qui le modifiche.

I miglioramenti che restano sono quelli sulla ricerca delle dipendenze... vedo cosa riesco a fare

emerge-overlay-diff.diff

CIao
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Mon Feb 19, 2007 8:45 am    Post subject: Reply with quote

Il fatto che gli overlay alla fine non si cancellino e che vengano creati i symlink va proprio contro a quello che vuole fare questo script :roll: :roll:

Questo script è fatto per non doversi, sempre facendo l'esempio di xmms, tenersi 14M di ebuild in un'overlay per usarne semplicemente 4 (ebuilds, non mega :D). Il fatto che vengano mantenuti gli overlay e creati i symlink, quindi, non verrà implementato poichè va proprio contro a quello che intendevo fare..... Tra l'altro quello che avete proposto è una ridondanza immesa. Se già ho gli overlay di layman, tanto vale che mi tengo quelli.... creare i symlink è abbastanza inutile.

Per gli altri problemi......

Mi sono dimenticato di specificare il file di conf.
E' possibile creare un file in /etc/portage/package.overlay.keywords in cui specificare la versione del pacchetto che si intende creare. Questo script va ad estrarre l'ultima versione stabile del programma. Se non esistono versioni stabili, allora dirà che il programma non ha ebuild in nessun overlay.
Se si desidera installare la versione in tilde, basterà inserire
Code:
# echo "x11-wm/beryl ~x86" >> /etc/portage/package.overlay.keywords

se si desidera la versione mascherata, invece
Code:
# echo "x11-wm/beryl [M]" >> /etc/portage/package.overlay.keywords

nel caso si voglia installare da cvs
Code:
# echo "x11-wm/beryl -*" >> /etc/portage/package.overlay.keywords

inoltre, è possibile forzare l'installazione di una particolare versione tramite
Code:
# echo "x11-wm/beryl versione" >> /etc/portage/package.overlay.keywords
.
Ovviamente queste entry sono mutue esclusive :wink:

Per l'opzione "-P".
Dall'help:
Code:
# ./emerge-overlay -h
...
 -P "<options>"   Options to pass to portage (example: "-av")
...

Quindi inserire il '-P' e basta non ha significato. Si pùo fare
Code:
# ./emerge-overlay -P "-Dv" xmms

per, una volta costruito l'overlay locale, fargli eseguire un
Code:
# emerge -Dv xmms
.

Ora cerco di guardare un'attimino i bachi segnalati e di correggere :D
In ogni caso, grazie mille per i test

Ciriciao
mouser :wink:

edit: Dimenticavo un'ultima cosa...... Questo script, attualmente ho avuto modo di testarlo solo su x86. Nel caso abbiate un'altra architettura (ex. amd64), dovrete modificare la variabile ARCH nelle prime righe del programma con la vostra arch.

riedit: Ah, per il sync, è possibile lanciare
Code:
# ./emerge-overlay --sync
per syncare eix. L'ho aggiunta come opzione perchè si potrebbe anche non voler aggiornare eix :D
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Mon Feb 19, 2007 10:41 am    Post subject: Reply with quote

Guardavo il problema con networkmanager.
E' dovuto alla strana nomenclatura che hanno le versioni dei pacchetti:
La doppia keyword richiesta fa incasinare lo script:
Code:
# eix -e networkmanager
 net-misc/networkmanager
     Available versions:  {M}(~)0.6.4_pre20061028 {M}(~)0.6.4_pre20061028-r1 {M}(~)0.6.4_pre20061223[3] {M}(~)0.6.4_pre20070122-r1[3] {M}(~)0.6.4_pre20070122-r2[3] {M}*0.6.4_pre20070208[3] {M}(~)0.6.4_pre20070213[3] {M}(~)0.6.4[2] {M}(~)0.6.4-r1[1] {M}(~)0.6.4-r1[2]
...

Ma di solito la flag masked non è tra parentesi quadre??? :?

E poi??? sia masked che in tilde.... uff che sbatti!!!
Comunque aggiungo questo programma alla lista dei casi particolari

Per quanto riguarda la posizione degli overlay di layman, io ho usato e tutt'ora uso layman e i suoi overlay sono sempre stati in /usr/portage/local/layman/. non so se il tuo è un caso particolare o hanno spostato gli overlay.... bah

Thanxxxx
Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Mon Feb 19, 2007 11:11 am    Post subject: Reply with quote

grazie per averi chiarito come usarie i pacchetti ;).

ho fatto ancora altri test su beryl e knetworkmanager.

con knetworkmanager: funziona tutto solo che cerca di installare non l'ultima versione presente su sabayon la 0.1-r2
Code:
eix -e knetworkmanager
* kde-misc/knetworkmanager [1]
     Available versions:  ~0.1 ~0.1_p20061029
     Homepage:            http://en.opensuse.org/Projects/KNetworkManager
     Description:         A NetworkManager front-end for KDE

[I] net-misc/knetworkmanager [2]
     Available versions:  (~)0.1-r2
     Installed versions:  0.1-r2(13:47:29 07/02/2007)(arts -debug -elibc_FreeBSD -xinerama)
     Homepage:            http://en.opensuse.org/Projects/KNetworkManager
     Description:         A NetworkManager front-end for KDE

[1] (layman/gentopia)
[2] (layman/sabayon)


ecco come si presenta:
Code:
./emerge-overlay-2  -d -s knetworkmanager

* kde-misc/knetworkmanager [1]
     Available versions:  ~0.1 ~0.1_p20061029
     Homepage:            http://en.opensuse.org/Projects/KNetworkManager
     Description:         A NetworkManager front-end for KDE

[I] net-misc/knetworkmanager [2]
     Available versions:  (~)0.1-r2
     Installed versions:  0.1-r2(13:47:29 07/02/2007)(arts -debug -elibc_FreeBSD -xinerama)
     Homepage:            http://en.opensuse.org/Projects/KNetworkManager
     Description:         A NetworkManager front-end for KDE

[1] (layman/gentopia)
[2] (layman/sabayon)

Found 2 matches.

[--] Overlay selected for package knetworkmanager - gentopia


ho notato una cosa che si ripercuote sull'installazione di beryl, ed é questa:
alcuni pacchetti con eix riportano la * mentre altri la [I]
Code:
* kde-misc/knetworkmanager [1]
o
[I] net-misc/knetworkmanager [2]


nel codice dello script fa questo controllo ma non vede i pacchetti che sono come [I] (ho cercato nel man di eix e non ho trovato cosa significa)
Code:

copy_ebuild_dir ()
{
...
# Extracting package name
   PACKAGE_NAME="`eix -e $1 | grep '*' | head -1 | awk '{print $2}'`"


con beryl non funziona perché c'é solo il pacchetto con l'impostazione [I], il pacchetto lo strova se faccio un -s ma poi si blocca durante la risoluzione del nome.

OK ho provato a modificare il grep ed il risultato é questo:
Code:
./emerge-overlay-2  -d beryl

[--] Creating local overlay with ebuilds...
[--] (local_overlay_build) Getting overlay from program name
[--] (local_overlay_build) Overlay getted sabayon
[--] (local_overlay_build) Check/Create for local overlay
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (local_overlay_build) Local overlay checked... OK
[--] (local_overlay_build) Getting remote overlay
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Overlay sabayon acquired!
[--] (local_overlay_build) Extracting dependency
[--] Program beryl require this dependency: x11-wm/beryl-core x11-misc/beryl-manager x11-wm/emerald x11-plugins/beryl-plugins x11-misc/beryl-settings x11-wm/beryl x11-plugins/beryl-dbus x11-themes/emerald-themes
[--] (local_overlay_build) Extraced dependency = "x11-wm/beryl-core x11-misc/beryl-manager x11-wm/emerald x11-plugins/beryl-plugins x11-misc/beryl-settings x11-wm/beryl x11-plugins/beryl-dbus x11-themes/emerald-themes "
[--] (local_overlay_build) Extracing dependency's (beryl-core) overlay name
[--] (local_overlay_build) Overlay for dependency beryl-core is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency beryl-core overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl-core ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of beryl-core from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency beryl-core directory copied!
[--] (local_overlay_build) Extracing dependency's (beryl-manager) overlay name
[--] (local_overlay_build) Overlay for dependency beryl-manager is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency beryl-manager overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl-manager ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of beryl-manager from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency beryl-manager directory copied!
[--] (local_overlay_build) Extracing dependency's (emerald) overlay name
[--] (local_overlay_build) Overlay for dependency emerald is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency emerald overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's emerald ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of emerald from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency emerald directory copied!
[--] (local_overlay_build) Extracing dependency's (beryl-plugins) overlay name
[--] (local_overlay_build) Overlay for dependency beryl-plugins is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency beryl-plugins overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl-plugins ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of beryl-plugins from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency beryl-plugins directory copied!
[--] (local_overlay_build) Extracing dependency's (beryl-settings) overlay name
[--] (local_overlay_build) Overlay for dependency beryl-settings is xeffects
[--] (local_overlay_build) Checking if dependency's remote overlay xeffects it's syncronized
[--] Checking xeffects into syncronized overlays...
[--] Overlay xeffects not yet syncronized!
[--] (local_overlay_build) Dependency beryl-settings overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl-settings ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of beryl-settings from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency beryl-settings directory copied!
[--] (local_overlay_build) Extracing dependency's (beryl) overlay name
[--] (local_overlay_build) Overlay for dependency beryl is sabayon
[--] (local_overlay_build) Checking if dependency's remote overlay sabayon it's syncronized
[--] Checking sabayon into syncronized overlays...
[--] Overlay sabayon not yet syncronized!
[--] (local_overlay_build) Dependency beryl overlay not synched. Syncing...
[--] (sync_remote_overlay) Retrieving list of overlay from layman...
[--] (sync_remote_overlay) Overlay list retrieved by layman
[--] (sync_remote_overlay) Getting remote overlay...
[--] (sync_remote_overlay) Remote overlay acquired
[--] (local_overlay_build) Copying dependency's beryl ebuild dir into local overlay /usr/local/portage
[--] (check_local_overlay) Extracting overlay from /etc/make.conf...
[--] (check_local_overlay) Found current local overlay at /usr/local/portage
[--] (check_local_overlay) Overlay directory selected /usr/local/portage
[--] (copy_ebuild_dir) Moving ebuild directory of beryl from layman overlay to local... OK[0m]
[--] (local_overlay_build) Dependency beryl directory copied!
[--] (local_overlay_build) Extracing dependency's (beryl-dbus) overlay name
[!!] (get_overlay) OVERLAY_NUMBER is empty. Returning -1
[!!] (get_overlay) OVERLAY_NUMBER is empty. Returning -1
[!!] (local_overlay_build) Error during dependency's overlay name extracting
[!!] Error during local overlay creation!



in package.overlay.keywords ho inserito x11-wm/beryl 9999, ho provato con ** e -* ma non funzionava mi ritornava questo:
Code:
[!!] (get_overlay) OVERLAY_NUMBER is empty. Returning -1
[--] Package present only in current portage, not into any overlay.
[--] Sorry, today you can't break your gentoo :D


la cosa strana é che ha trovato come dipendenza beryl-dbus ma questa non esiste più nelle nuove versioni ed é per quello che si blocca visto che nel overly non c'é.

Ciao, e scusa delle mia ignoranza nel campo, molto probabilmente sono io ad avere sbagliato qualche cosa
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Mon Feb 19, 2007 1:43 pm    Post subject: Reply with quote

Il problema sta nel fatto che, invece che avere segnato la ~ come versione di test, beryl utilizza il (~), quindi probabilmente lo fa un pò scazzare con i campi... hai provato ad inserire
Code:
# echo "x11-wm/beryl !9999" >> /etc/portage/package.overlay.keywords

???

Le versioni di quel pacchetto fanno un pò impazzire lo scrippete..... magari stasera (quando, da casa, potrò usare layman) vedo di fare anch'io un pò di test.

Bionicle wrote:
... scusa delle mia ignoranza nel campo ...

Non preoccuparti, siamo tutti ignoranti finchè non si impara :D
Comunque stai facendo molto test, e questo è mooolto importantissimo (se mi passi lo stravolgimento della linga :P)

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Tue Feb 20, 2007 7:03 pm    Post subject: Reply with quote

ciao,
ho visto che la versione é passata alla 0.1.1

ho notato una cosa se voglio installare beryl da overly non deve andare a cercare le dipendenze usando emerge, infatti trova le dimendenze della versione 0.1.4 quella in portage e non quelle della 9999.

ho visto che hai modificato la riga:
Code:
#for SOFTWARE in `emerge --pretend $1 | cut -d']' -f2 | awk '{print $1}' | grep '/' | sed -re 's|-[0-9]+[^-]*(-r[0-9]+)?$||'`; do
   for SOFTWARE in `emerge --pretend --columns $1 2> /dev/null | awk '{print $2}'`; do


secondo me andava meglio prima ;)
Code:
emerge --pretend --columns beryl

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     UD] x11-wm/beryl-core                                      [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-misc/beryl-manager                                 [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-wm/emerald                                         [0.1.4]                      [9999]
[ebuild     UD] x11-plugins/beryl-plugins                              [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-misc/beryl-settings                                [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-wm/beryl                                           [0.1.4]                      [9999]
[ebuild  N    ] x11-plugins/beryl-dbus                                 [0.1.4] 
[ebuild     UD] x11-themes/emerald-themes                              [0.1.4]                      [9999]


ecco cosa trova:
Code:
emerge --pretend --columns beryl 2> /dev/null | awk '{print $2}'

are

dependencies
UD]
UD]
UD]
UD]


anche modificando con print $3 non va:
Code:
emerge --pretend --columns beryl 2> /dev/null | awk '{print $3}'

the

.....
x11-wm/beryl-core
x11-misc/beryl-manager
x11-wm/emerald
x11-plugins/beryl-plugins
x11-misc/beryl-settings
x11-wm/beryl
]
x11-themes/emerald-themes
UD]
UD]
N
UD]


ciao
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Feb 21, 2007 8:18 am    Post subject: Reply with quote

Bionicle wrote:
secondo me andava meglio prima ;)
Code:
emerge --pretend --columns beryl

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     UD] x11-wm/beryl-core                                      [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-misc/beryl-manager                                 [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-wm/emerald                                         [0.1.4]                      [9999]
[ebuild     UD] x11-plugins/beryl-plugins                              [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-misc/beryl-settings                                [0.1.4]                      [9999]  USE="-debug%"
[ebuild     UD] x11-wm/beryl                                           [0.1.4]                      [9999]
[ebuild  N    ] x11-plugins/beryl-dbus                                 [0.1.4] 
[ebuild     UD] x11-themes/emerald-themes                              [0.1.4]                      [9999]


ecco cosa trova:
Code:
emerge --pretend --columns beryl 2> /dev/null | awk '{print $2}'

are

dependencies
UD]
UD]
UD]
UD]


anche modificando con print $3 non va:
Code:
emerge --pretend --columns beryl 2> /dev/null | awk '{print $3}'

the

.....
x11-wm/beryl-core
x11-misc/beryl-manager
x11-wm/emerald
x11-plugins/beryl-plugins
x11-misc/beryl-settings
x11-wm/beryl
]
x11-themes/emerald-themes
UD]
UD]
N
UD]



Ma si può essere più stupidi di me!!!! :cry:
Mapporca, in effetti in questo modo cambiano i campi..... bon, allora tornerò alla ver. precedente!

Ciriciao e grazie mille!
mouser :wink:

[edit]
Questo script è stato ufficialmente aggiunto al gechi-overlay 8)
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Feb 21, 2007 9:00 am    Post subject: Reply with quote

zolar czakl wrote:
Come viene gestita la presenza di eclass custom?

Mi potresti spiegare meglio il dubbio che hai???
Se il tuo dubbio è riguardo la compilazione, lo script utilizza portage, quindi una volta lanciato l'emerge dell'ebuild, viene fatto riferimento a quello (e alle eclass che richiama);

Per caso intendevi per quanto riguarda le eclass custom degli overlay?

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
drizztbsd
Retired Dev
Retired Dev


Joined: 21 Nov 2004
Posts: 278
Location: Cesano Maderno

PostPosted: Wed Feb 21, 2007 10:00 am    Post subject: Reply with quote

ehm io ti avevo consigliato di usare emerge --quiet --columns 2>/dev/null (senza spazio), hai dimenticato il --quiet che è sicuramente meglio della regexp nel sed

Code:
drizzt@janeway ~ $ emerge --pretend --quiet --columns beryl 2>/dev/null | awk '{print $2}'
x11-wm/beryl-core
x11-misc/beryl-manager
x11-wm/emerald
x11-plugins/beryl-plugins
x11-misc/beryl-settings
x11-wm/beryl
x11-plugins/beryl-dbus
x11-themes/emerald-themes
drizzt@janeway ~ $       

_________________
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Feb 21, 2007 10:08 am    Post subject: Reply with quote

Drizzt Do` Urden wrote:
ehm io ti avevo consigliato di usare emerge --quiet --columns 2>/dev/null (senza spazio), hai dimenticato il --quiet che è sicuramente meglio della regexp nel sed


Ok, ho ufficialmente bisogno di sonno :roll:

Nel frattempo, ho cambiato la disposizione del software. Leggete il primo post per info sull'installazione

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
Bionicle
Apprentice
Apprentice


Joined: 06 Nov 2004
Posts: 172
Location: TI, svizzera

PostPosted: Wed Feb 21, 2007 3:41 pm    Post subject: Reply with quote

Riformulo quello che ho notato visto che é passato inosservato: :D
se voglio emergere beryl lo script cerca le dipendenze ma il problema principale é che le cerca nel portage "stabile" (non ci sono ancora gli ebuild copiati in locale) e quindi trova le dipendenze della versine 0.1.4 che sono differenti da quelle della SVN!!, questo penso che abbia anche influsso con altri pacchetti.

Non saprei come si potrebbe risolvere ma bisognerebbe leggere le dipendenze all'interno del ebuild nel overlay e creare una struttura ad albero, alla fine controllare quelle che bisogna ancora installare.

CIao
_________________
::::. www.almack.ch .::::
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Feb 21, 2007 8:07 pm    Post subject: Reply with quote

Bionicle wrote:
Riformulo quello che ho notato visto che é passato inosservato: :D
se voglio emergere beryl lo script cerca le dipendenze ma il problema principale é che le cerca nel portage "stabile" (non ci sono ancora gli ebuild copiati in locale) e quindi trova le dipendenze della versine 0.1.4 che sono differenti da quelle della SVN!!, questo penso che abbia anche influsso con altri pacchetti.


Questo viene fatto per mantenere la compatibilità di quegli ebuild in overlay che hanno come dipendenze software presenti anche nel portage stabile.
Questo script, per estrarre le dipendenze prende l'output di eix (alla voce "Available version") ed estrae, come dicevo, l'ultima stabile e così via.

Questo prevede che portage sia già configurato per installare la versione che risulta presente nell'overlay esterno; inoltre il /etc/make.conf deve essere configurato per accedere ad eventuali ebuild presenti negli overlay scaricati da layman; esattamente ci deve essere questa riga

Code:
# cat /etc/make.conf | grep -1 layman
# Source for layman overlay
source "/usr/portage/local/layman/make.conf"


E, nel caso particolare di beryl, visto che vuoi installare la versione da CVS dovrai avere anche:
Code:
# echo "=x11-wm/beryl-9999" >> /etc/portage/package.keywords


In modo che l'eventuale comando emerge --pretend beryl cerchi di installare proprio la versione !9999.

Facendo così lo script funzionerà poichè:
Code:
# emerge --quit --pretend beryl 2> /dev/null | awk '{print $2}'

andrà ad estrarre le dipendenze della versione !9999

Dopodichè, se queste dipendenze sono presenti nello stesso overlay bon, altrimenti le scarica e va avanti così.

Spero di essermi spiegato abbastanza bene..... è molto più semplice farlo che spiegarlo :roll:

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Wed Feb 21, 2007 10:54 pm    Post subject: Reply with quote

Per quanto riguarda le eclass custom attualmente in molti overlay sono presenti anche le eclass che vanno a sostituire quelle di portage. quindi nel momento in cui vai ad utilizzare layman per aggiungere un ebuild dovresti tener presente che potrebbe esserci un eclass custom che viene importata in portage al posto di quella standard.
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Thu Feb 22, 2007 8:35 am    Post subject: Reply with quote

Ic3M4n wrote:
...


Argh, non ne avevo proprio tenuto conto........
Adesso vedo di studiarmi qualcosa :D

Grazie

edit:
Ho guardato un pò gli ebuild in giro e volevo fare una domandina, visto che non mi sono chiare alcune cose...
1) Come vengono gestite le eclass custom??? Si trovano riferimenti direttamente all'interno degli ebuild o è portage che si occupa di controllare se sono presenti?
2) Come vengono gestiti? Ovvero, se un ebuild utilizza eclass custom, semplicemente all'interno dell'overlay si troverà la directory eclass/ con all'interno file file <nomesw>.eclass?
3) Nel caso può capitare che uno di questi file .eclass fa riferimeno ad altri file .eclass? Se si, come si trova questo riferimento?

Grazie a chiunque mi illumini

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
zolar czakl
Apprentice
Apprentice


Joined: 25 Sep 2004
Posts: 162
Location: UMRK

PostPosted: Thu Feb 22, 2007 7:43 pm    Post subject: Reply with quote

mouser wrote:
1) Come vengono gestite le eclass custom??? Si trovano riferimenti direttamente all'interno degli ebuild o � portage che si occupa di controllare se sono presenti?
Il riferimento nell'ebuild e' inherit
Da man 5 ebuild
Code:
inherit
              Inherit  is  portage’s  maintenance of extra classes of functions that are external to ebuilds and provided as inheritable
              capabilities and data. They define functions and set data types as drop-in replacements, expanded, and simplified routines
              for extremely common tasks to streamline the build process.  Inherit may only be called once in an ebuild and it may never
              be wrapped within any conditionals of any kind.  Specification of the eclasses  contains  only  their  name  and  not  the
              .eclass extension.  Also note that the inherit statement must come before other variable declarations.



mouser wrote:
2) Come vengono gestiti? Ovvero, se un ebuild utilizza eclass custom, semplicemente all'interno dell'overlay si trover� la directory eclass/ con all'interno file file <nomesw>.eclass?
La prima che hai detto. Ovvero anche nella classica /usr/local/portage.


mouser wrote:
3) Nel caso pu� capitare che uno di questi file .eclass fa riferimeno ad altri file .eclass? Se si, come si trova questo riferimento?
Esempio pratico
Code:
grep inherit /usr/portage/eclass/gnome2.eclass
inherit fdo-mime libtool gnome.org gnome2-utils
Praticamente una matriosca :)
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Fri Feb 23, 2007 7:00 pm    Post subject: Reply with quote

zolar czakl wrote:
...
Praticamente una matriosca :)


Ma che bello!!! Come sono felice :roll:

Comunque, a parte questo, credo che con una funzioncina che funzioni come quella per la gestione della copia degli ebuild dovrebbe essere risolta.
Ora sto combattendo contro alcuni bachetti minori (lo script si incazza se nel /etc/portage/package.overlay.keywords trova due match per pacchetto).... appena risolvo questo vedo di occuparmi delle eclass.

Grazie mille :D

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
richard77
Apprentice
Apprentice


Joined: 21 Apr 2004
Posts: 281

PostPosted: Sat Feb 24, 2007 6:00 pm    Post subject: Re: [TOOL] Gestione pulita degli overlay con EMERGE-OVERLAY Reply with quote

mouser wrote:

Installazione
Ok, per installare il pacchetto fate in questo modo:
Code:
# cd /tmp/
# wget http://mouser.altervista.org/software/gentoo/emerge-overlay-0.1.1.tar.bz2
# tar jxvf emerge-overlay-0.1.1
# cd emerge-overlay-0.1.1
# ./eoinstall


Vi installerà emerge-overlay direttamente in /usr/bin



Ci sono un paio di errori: il comando è

Code:
# tar jxvf emerge-overlay-0.1.1.tar.bz2

(manca .tar.bz2)

Inoltre lo script eoinstall cerca di copiare ~/emerge-overlay in /usr/bin/ invece di ./emerge-overlay.
_________________
Fletto i muscoli e sono nel vuoto


Last edited by richard77 on Tue Apr 10, 2007 3:01 pm; edited 1 time in total
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Sun Feb 25, 2007 11:02 am    Post subject: Re: [TOOL] Gestione pulita degli overlay con EMERGE-OVERLAY Reply with quote

Grazie mille richard77 per la segnalazione. Ho corretto il bug nello script di installazione e modificato il primo post :D

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum