# [USE] Due domande...

## Keter

Ciao a tutti

Avrei due domande sulle variabili USE, una generale e una particolare:

1) Domanda generale: mi sembra di aver capito il loro effetto, solo che non capisco come funzionino. 

Spiego meglio il mio dubbio, che probabilmente deriva dalla mia scarsa esperienza nella programmazione in ambiente Linux: se io faccio un programma che utilizza le librerie Qt, nessuno riesce ad usarlo se non ha anche le suddette librerie, giusto?

Quindi già al momento dell'"emersione" si cercano le dipendenze e magari, vedendo che quel programma utilizza liberie non possedute, non lo si installa. Ma come funziona invece quando, con le variabili USE, si "toglie ad un programma il supporto per Qt" ? Insomma, come si fa a scrivere un programma che utilizza Gtk o Qt, o entrambi,a seconda della disponibilità dell'utente ? Ho lavorato con le Gtk e da quel che ne so le Qt sono tutta un'altra cosa!! come si fa a supportarle entrambe ? ed é comune nei programmi GUI avere questa possibilità ?

2) Domanda particolare: (questa penso che vi basti una riga per rispondere) ho il lettore DVD ma mi sono scordato  :Confused:  di inserire  la variabile USE dvd. Me ne sono accorto oggi, dopo aver compilato tutto quanto, KDE compreso. Devo ricompilare tutto per poter leggere i DVD ? e se un domani aggiungessi un masterizzatore DVD, dovrei di nuovo ricompilare tutto con l'opzione dvdr? non mi sembra un metodo molto efficace, ma forse é proprio perché non ho capito...

Grazie (della comprensione)

ciao!!

----------

## silian87

1) Ci sono pochi programmi che possono usare sia le gtk che le qt. Probabilmente hanno fatto del codice per la GUI e dell'altro separato per le azioni.

2)Basta che ricompili quelle parti di kde che leggono dvd e fanno cose del  genere, credo basti kde-multimedia.

----------

## fedeliallalinea

1) Ti consiglio di leggere qui che e' spiegato molto bene

----------

## fedeliallalinea

Per la domanda 2 ti rispondo cosi'

```
#!/bin/sh

# crea la lista dei pacchetti che contengono

# la use e la mette in /tmp

emerge -epv world | grep $1 > /tmp/list

# estrae la lista dei pacchetti da 

# riemergiare

list=`awk '/\// {print $4}' /tmp/list`

# setta la nuova use nel make.conf

euse -E $1

# riemergia i pacchetti in questione

for i in $list

do

  emerge =$i

done

#rimuove la lista dei pacchetti

rm /tmp/list
```

Non mi assumo nessuna responsabilita' se lo script fa casini. Magari per provarlo cambiate la linea

```
emerge =$i
```

con

```
emerge -p =$i
```

PS: richiede gentoolkit installato

----------

## fedeliallalinea

Dimenticavo di dire che lo script si lancia con

```
# ./nome_script nome_use_da_aggiungere
```

----------

## Cazzantonio

A parte il fatto che fedeliallalinea, oltre ad ascoltare buona musica, posta anche script molto ultli  :Very Happy:   , in generale secondo me ti conviene dare sempre un'occhio alle use settabili per ogni pacchetto aggiungendo un -v dopo il comando emerge.  In queto modo ti dice le use che vorrebbe usare per compilare il dato pacchetto: le use abilitate sono segnate in rosso, quelle che invece sarebbero disabilitate sono in blu; se vedi che una delle use disabilitate ti è invece utile in quel frangemte puoi dare davanti ad emerge un USE="xxx" volante o aggiungerlo stabilmente in make.conf, secondo il tuo gusto

In questo modo sei sempre certo di non esserti dimenticato qualche use per strada e pian piano capisci quali sono le use utili da mettere nel make.conf

Almeno io faccio così...

----------

## federico

 *Quote:*   

> Ma come funziona invece quando, con le variabili USE, si "toglie ad un programma il supporto per Qt" ? Insomma, come si fa a scrivere un programma che utilizza Gtk o Qt, o entrambi,a seconda della disponibilità dell'utente ? Ho lavorato con le Gtk e da quel che ne so le Qt sono tutta un'altra cosa!! come si fa a supportarle entrambe ? ed é comune nei programmi GUI avere questa possibilità ?
> 
> 

 

Questa cosa con le use flag centra poco. Se vuoi scrivere un software che giri sia in gtk sia in qt devi scrivere una applicazione shell o delle librerie di chiamate e poi scrivere DUE frontend, uno in gtk e uno in qt (e per me il "tutta un'altra cosa" delle qt e' in peggio...)

----------

