# [portage]come scoprire i pacchetti che generano USE

## Cazzantonio

Come posso scoprire quale paccheto mi genera una determinata use flag?

nella fattispecie sto cercando di eliminare xmms (a favore di beep-media-player) 

ho tolto xmms e tutti i pacchetti relativi (l'unico che non ho eliminato è xmms-themes perché viene usato anche da beep-media-player)

ho riemerso senza la use "xmms" tutti i pacchetti compilati con tale use, tuttavia ancora unclepine mi vede xmms tra le inherited use flags....

mi tocca mettere in make.conf "-xmms" per evitare che emerge -vDu world mi voglia riemergere xmms.... come posso scoprire quale pacchetto mi sta generando la use "xmms" ?

[EDIT]

le mie ricerche mi hanno condotto a questi dubbi:

potrebbe essere media-libs/flac che tiene su la use "xmms" ?? (anche se compilato senza tale use...)

questo perché contiene la riga

```
IUSE="sse xmms"
```

e

```
       IUSE   This should be a list of any and all USE flags that are leveraged

              within  your build script.  The only USE flags that should not be

              listed here are arch related flags (see KEYWORDS).
```

Che non significa che io abbia capito come funzionano le inherited use flags (so solo che esistono) ma l'unica variabile candidata a tirarle su in un ebuild mi pare questa....

Flac mi pare sia un codec per gli mp3 che viene usato anche da k3b, xine-lib e altre cose che vengono compilate con la use "flac"

Finora la mia politica sui codec è stata "installali tutti anche se non hai la minima idea di che codec siano"

Io non ho la minima idea se il codec flac sia indispensabile per la riproduzione di mp3, se venga usato da k3b per creare i cd audio dagli mp3 e soprattutto se se ne possa fare a meno in quanto ne esistono delle alternative....

Se davvero fosse xmms fosse tenuto su da flac posso toglierlo in tranquillità? E' utile o è uno dei tanti codec di cui si può fare a meno perché ne esistono altri che fanno la stessa cosa?

----------

## xchris

xmms stesso la setta

```

cat /usr/portage/profiles/base/use.defaults | grep xmms

xmms                            media-sound/xmms

```

ciao  :Smile: 

se fai emerge info | grep xmms viene fuori?

EDIT:urca... mica sara' un bug  :Laughing: 

----------

## Cazzantonio

senza mettere "-xmms" in make.conf

```
star_platinum root # emerge info | grep xmms

USE="x86 3dnow X aalib acpi alsa apm avi bash-completion berkdb bitmap-fonts cdr crypt cups curl directfb dvd dvdr emboss encode esd fam fbcon flac font-server foomaticdb fortran gdbm gif gpm gtk gtk2 imagemagick imlib ipv6 java jikes jpeg junit ldap libg++ libwww mad mikmod mmx motif mozilla mp3 mpeg ncurses nls nptl offensive oggvorbis opengl pam pdflib perl png ppds python quicktime readline sdl slang speex spell sse ssl svg svga tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts unicode usb wmf xml2 xmms xv xvid zlib linguas_it"
```

e per quanto riguarda unclepine

```
>>> Inherited Useflags excluding make.conf ones : aalib bash-completion berkdb cups curl emboss esd fam foomaticdb gdbm gpm imagemagick imlib junit ldap libwww mad mikmod motif ncurses nls oggvorbis opengl pam pdflib perl png python readline sdl slang speex ssl svga tcltk tcpd tetex X xml2 xmms zlib
```

mentre se metto "-xmms" sia emerge che unclepine non vedono più la use (che suppongo sia inherited) "xmms"

quindi se è un bug non è certo colpa di unclepine  :Wink: 

[edit]

ho editato il primo post e aggiunto altre informazioni...

----------

## xchris

IUSE e' l'elenco delle useflag supportate

Con un confronto dei file IUSE e USE comprendi con quali useflag e' stato compilato un pacchetto.

(e' il sistema usato da unclepine e usetool.... e tutti gli altri immagino)

Direi che non c'entrano con il tuo problema.

L'unico posto che fa "nascere" le useflag sono quel file che ti ho indicato.

Ti restituisce solo "xmms" ?

Non e' che ti sei dimenticato di "smergiarlo"?  :Laughing: 

ciao  :Wink: 

----------

## ares

Ho giusto fatto un programmino in perl in questi giorni che visualizza tutti i pacchetti che utilizzano una determinata USE

Funziona alquanto bene ma nn Ã¨ una versione definitiva

Richiede il modulo perl File::Find che si trova in portage

perl genuse.pl -u xmms

```

#!/usr/bin/perl -w

use POSIX;

use File::Find;

use Term::ANSIColor qw(:constants);

use Getopt::Long;

use File::Basename;

my $programname = basename($0);

sub usage() {

      print "Usage: \n",

      BOLD CYAN

      (" (-h short option)"),

      ("   --help   \n"),

      ("   This is prompt\n\n"),

      ("(-v short option)"),

      ("   --version \n"),

      ("   Version program\n\n"),

      ("(-u short option)"),

      ("   --use \n"),

      ("   Search USE in all ebuild\n\n"), RESET;

      exit 0;

}

sub version() {

      print BOLD WHITE("This is $programname version 0.1\n");

      print BOLD WHITE("This code is copyright by Mario Trombino <ares\@genbuild.org>\n");

      print BOLD RED("This is program comes with ABSOLUTELY NO WARRANTY\n");

      print BOLD RED("You are free to redistribute this code under the terms of the GNU General Public License, version 2 or later.\n");

}

my $portage = ('/usr/portage');

my ($opt_help, $opt_version, $opt_use);

my $count = 1;

Getopt::Long::Configure('bundling');

   GetOptions("help|h" => \$opt_help,

         "version|v" => \$opt_version,

         "use|u" => \$opt_use,

   )

         or die "Run genuse --help or -h for more details\n";

if ($opt_help) { usage; exit 0; }

if ($opt_version) { version; exit 0;}

sub search_use() {

my $USE =$ARGV[0];

      if ($File::Find::name=~ /\.ebuild$/i) {

         if (! open(E, "$File::Find::name")) {

               warn "Cannot search $File::Find::name: $!" unless open(E, "$File::Find::name");

               next;

         }

         while (<E>) {

               $_= /^IUSE.*$USE/;

      if ($_) {

            $File::Find::name =~ s#/usr/portage/##g;

               $File::Find::name =~ s#(?<=\/)\w+.*\/##g;

            print BOLD WHITE "$count\) ", RESET;

            print BOLD GREEN "$File::Find::name \n", RESET;

            $count++;

      }

}

close (E);

            }

}

if ($opt_use) {

   print BOLD RED"Search......\n",RESET;

      finddepth \&search_use, $portage;

exit 0;

}

```

Posto il codice se puÃ² interessare a qualcuno, e se qualcuno ha consigli per migliorarlo li accetto molto volentieri visto che nn Ã¨ una versione finale

----------

## xchris

ho letto male i post precedenti...

non e' un problema di inherited useflags!!

se ho capito bene il problema .... e' che vuole sempre rimettere xmms.

La useflag xmms dovrebbe essere settata solo quando xmms e' intallato (oppure e' in make.conf)

2 strade:

xmms non installato: emerge -Dupt world

xmms installato: unclepine -db xmms

ciauz

EDIT:ares... comodo come script.So che era stato gia' implementato pero'.Cmq lo provero' di sicuro  :Wink:  (magari rendilo disponibile in download se puoi)

----------

## Cazzantonio

no... il mio problema è proprio che la use xmms non se ne vuole andare...

questo mi dice unclepine:

```
>>> Inherited Useflags excluding make.conf ones : aalib bash-completion berkdb cups curl emboss esd fam foomaticdb gdbm gpm imagemagick imlib junit ldap libwww mad mikmod motif ncurses nls oggvorbis opengl pam pdflib perl png python readline sdl slang speex ssl svga tcltk tcpd tetex X xml2 xmms zlib
```

senza che la use xmms sia settata in make.conf e senza che xmms sia installato (sono sicuro di averlo rimosso... sempre che emerge -C sia sufficiente  :Wink:  )

```
star_platinum root # emerge -pC xmms

>>> These are the packages that I would unmerge:

--- Couldn't find xmms to unmerge.

>>> unmerge: No packages selected for removal.
```

come mai?

in /usr/portage/profiles/base/use.defaults 'è solo media-sound/xmms che tira su la use xmms... ma non è installato!  :Shocked: 

L'unico modo per purgare la use xmms sembra quello di disabilitarla specificatamente (ovvero mettere "-xmms" in make.conf)

solo che più che essere una soluzione è una patch momentanea... voglio capire come mai portage si comporta in modo così strano....

[EDIT]

posto anche questo per informazioni aggiuntive:

```
star_platinum root # emerge -pvDut world

These are the packages that I would merge, in reverse order:

Calculating world dependencies ...done!

[ebuild  N    ] media-plugins/xmms-alsa-1.2.10  0 kB 

[ebuild  N    ] media-plugins/xmms-esd-1.2.10-r1  -oss 0 kB 

[ebuild  N    ] media-plugins/xmms-mad-0.8  0 kB 

[ebuild  N    ] media-plugins/xmms-vorbis-1.2.10-r1  +ipv6 +ssl 0 kB 

[ebuild  N    ] media-plugins/xmms-mikmod-1.2.10  0 kB 

[nomerge      ]  media-libs/sdl-sound-1.0.1-r1  +flac +mikmod +oggvorbis -physfs +speex 

[nomerge      ]   media-libs/flac-1.1.0-r2  -debug +sse +xmms* 

[ebuild  N    ]    media-sound/xmms-1.2.10-r13  +3dnow +alsa -arts -debug +directfb +esd +flac -jack -lirc +mad +mikmod +mmx +mp3 +nls +oggvorbis -oss -sndfile 0 kB 

```

----------

## xchris

a occhio senza ragionarci troppo mi sa che ti sei dimenticato qualche cosa in world file che ti tira su xmms...

e' possibile?

e credo che a quel punto la flag xmms viene attivata...

cosi'...

magari se sei alla frutta prova un emerge -Dup world --debug > inspect

ciao

----------

## Cazzantonio

ho spulciato world più volte (servendomi soprattutto di unclepine -sw) e controllato tramite usetool se ci fossero ancora pacchetti compilati con la use "xmms"

purtoppo non ho trovato niente che mi richieda xmms.... ora provo a togliere queste flac che mi indica emerge -pvDut e guardo che succede....

----------

## xchris

fammi sapere...

pero' ricorda che unclepine funziona "~bene" con i pacchetti Installati.

Se delle dipendenze non sono soddisfatte lo ziopino non ti dira' nulla!

(in unclepine NG potremo fare anche queste cose per controllare l'integrita' del sistema)

ciao

----------

## Cazzantonio

ho ricompilato tutte le applicazioni emerse con la use "flac" e ho disinstallato le librerie flac....

quello che è cambiato è questo:

```
star_platinum root # emerge -pvDut world

These are the packages that I would merge, in reverse order:

Calculating world dependencies ...done!

[ebuild  N    ] media-plugins/xmms-mad-0.8  0 kB 

[ebuild  N    ] media-plugins/xmms-vorbis-1.2.10-r1  +ipv6 +ssl 0 kB 

[ebuild  N    ] media-plugins/xmms-esd-1.2.10-r1  -oss 0 kB 

[ebuild  N    ] media-plugins/xmms-alsa-1.2.10  0 kB 

[ebuild  N    ] media-plugins/xmms-mikmod-1.2.10  0 kB 

[ebuild  N    ]   media-libs/flac-1.1.0-r2  -debug +sse +xmms 0 kB 

[ebuild  N    ]    media-sound/xmms-1.2.10-r13  +3dnow +alsa -arts -debug +directfb +esd -flac -jack -lirc +mad +mikmod +mmx +mp3 +nls +oggvorbis -oss -sndfile 0 kB 

```

ovvero praticamente niente  :Wink: 

che fare?

idee?

[EDIT]

aggiungo che flac era richiesta da xine lib... quindi il fatto che mi rivoglia indietro flac è ragionevole... meno che mi rivoglia indietro xmms

----------

## xchris

2 soluzioni

1 - con emerge --debug

2 - emergi il primo xmms-mad e controlli con unclepine -dc

ciao

----------

## Cazzantonio

emerge -Dup world --debug > inspect  mi rende un output di circa 8000 righe.... mi sapresti dire cosa devo cercare là dentro? non sono ferratissimo sul funzionamento "interno" di portage....  :Confused: 

per quanto riguarda il secondo modo cosa mai dovrebbe dirmi unclepine -dc?

mi da il suo output normale (segnalandomi pochi pacchetti le cui dipendenze sono cambiate dal tempo in cui sono stati compilati) ma niente di anormale.... di sicuro niente di quello che è lì elencato ha niente a che vedere con xmms....

[EDIT]

xmms-mad viene emerso da xmms perchè c'è la use "mad".... cos' per tutti gli altri plugin

se faccio emerge -vDu world e gli consento di installarmi xmms unclepine -db non me lo segna come dipendenza di niente (se non dei suoi plugin...)

----------

## xchris

uhm

per il primo metodo salva l'output e cerca xmms li dentro...

forse qualche indicazione si riesce a trovarla. 

per il secondo..

mah ...mi sa che ti fatto fare una prova del piffero. sorry 

la cosa migliore e' se ci sentiamo...

non so se riesco ora..

devo riuscire a scappare  :Smile: 

ciao

----------

## Cazzantonio

Ho scoperto l'arcano! Scusate tutti se non ci ho guardato prima ma proprio non mi era venuto in mente che nel profilo ci fosse di default la use "xmms".... cavolo che schifezza di roba c'è dentro...troppa direi.... :Shocked: 

ok, il problema è risolto: basta passare al profilo 2005.0 dove non esiste proprio il file make.defaults....

mi chiedo come mai esista questo file e chi cavolo abbia pensato di infilarci dentro tutta questa roba... e se uno volesse un'installazione minimale deve mettere tutte queste USE "negate" in make.conf?  :Shocked:  Sarebbe più intelligente il contrario....  :Shocked:   :Evil or Very Mad: 

```
star_platinum root # cat /etc/make.profile/make.defaults 

# Copyright 1999-2005 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/x86/2004.3/make.defaults,v 1.13 2005/03/09 00:35:07 vapier Exp $

GRP_STAGE23_USE="ipv6 pam tcpd readline nls ssl gpm perl python berkdb ncurses"

USE="oss apm arts avi berkdb bitmap-fonts crypt cups emboss encode fortran font-server foomaticdb gdbm gif gnome gpm gtk gtk2 imlib ipv6 jpeg kde libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib perl png python qt quicktime readline sdl spell ssl svga tcpd truetype truetype-fonts type1-fonts X xml2 xmms xv zlib"
```

Il mio make profile è un symlink a /usr/portage/profiles/default-linux/x86/2004.3/

[EDIT]

Come non detto... non è risolto passando al 2005.0

è vero che in tale profilo non esiste il make.defaults e che nelle directory parent non compare la use "xmms"... però tale use è ancora su... non capisco come mai  :Shocked: 

----------

## xchris

caspita...

era la cosa + ovvia!  :Neutral: 

concordo al 100% con te!

ciao

----------

## grentis

Scusa la mia ignoraza... :Embarassed: 

come si fa a cambiare profilo?

----------

## Cazzantonio

@ grentis

/etc/make.profile è un symlink ad un profilo.... rimuovi il vecchio sylmink e ne crei uno nuovo....

In ogni casocambiare il profilo non risolve questo problema visto che, anche se ancora non capisco come, la use xmms è ancora attiva  :Shocked: 

----------

## grentis

Io ho visto che la USE xmms è settata anche in

```
/etc/make.profile/make.defaults
```

però non so se viene usato questo file...  :Embarassed: 

----------

## xchris

prova a vedere

```

/usr/portage/profiles/base/packages

/usr/portage/profiles/default-linux/packages

/usr/portage/profiles/default-linux/x86/packages

/etc/make.profile/packages

```

io non la ho...

uhmmm

----------

## Sparker

Forse inutile, ma hai provato

USE="-xmms" emerge -av --newuse

?

P.S. flac serve per riprodurre i file in formato flac, un formato lossless open (credo).

----------

## xchris

 *xchris wrote:*   

> prova a vedere
> 
> ```
> 
> /usr/portage/profiles/base/packages
> ...

 

non so cosa mi sono fumato...sorry!

non c'entra assolutamente nulla!!!

mi sa che grentis ci ha preso  :Wink: 

----------

## grentis

sarebbe la prima volta che azzecco... :Laughing:   :Laughing:   :Laughing: 

----------

## Cazzantonio

 *grentis wrote:*   

> Io ho visto che la USE xmms è settata anche in
> 
> ```
> /etc/make.profile/make.defaults
> ```
> ...

 

Si, ma il file make.defaults (che contiene la use "xmms") esiste solo nel prifilo 2004.3... io ho appena upgradato al profilo 2005.0 dove tale file non esiste.... e non esiste nemmeno nelle parent directories un file make.defaults che contenga la use incriminata

@Sparker

Ho già emerso tutti i pacchetti compilati con la use "xmms" senza tale use... inoltre xmms non mi viene tirato su come dipendenza di qualcosa... viene tirato su solo dalla use xmms che non mi riesce di rimuovere dal sistema....

@xchris

non ci sono altri file oltre a make.conf, make.defaults e use.defaults dove si possono trovare delle use che influenzano in sistema?

----------

## xchris

tolgo xmms e vedo che dice a me...

 ciao

----------

## xchris

hai guardato "base"?

cmq perche' non lo metti semplicemente in make.conf? alla fine e' fatto per questo.

E' inutile modificare sotto /usr/portage

[assurdo]

ho eliminato /usr/portage/profiles

risyncato

la 2005 e' risultata senza flag xmms (mentre prima l'aveva)

la 2004.3 invece era settata in /etc/make.profile

[/assurdo]

ciao

----------

## Cazzantonio

 :Question:   :Shocked: 

non ho mica capito quello che ti è successo....

p.s. si, ho guardato anche in base... inoltre mettere -xmms in make.conf mi va benissimo solo non mi torna con un corretto funzionamento di portage...

----------

## sam75

quali altri player audio/video hai installato? (solo x curiosita')

ciao

----------

## Cazzantonio

beep-media-player, xine, gxine, mplayer

----------

## sam75

io sul forum ho trovato questo:

https://forums.gentoo.org/viewtopic-t-287571-highlight-remove+xmms.html

non so se c'entra....

ciao

----------

## Cazzantonio

purtroppo no... lì si stanno domandando se sia possibile emergere mplayer con supporto per beep-media-player al posto di xmms.... io sto cercando solo di togliere xmms senza ricorrere a soluzioni stravaganti  :Smile: 

----------

## sam75

sorry,  :Embarassed: 

----------

## xchris

 *Cazzantonio wrote:*   

>  
> 
> non ho mica capito quello che ti è successo....
> 
> 

 

eliminando i profiles e risyncando il 2005 si e' messo a posto...senza xmms  :Shocked: 

----------

## Cazzantonio

che dire.... proverò.... solo non riesco a capire il perché....  :Shocked: 

----------

## xchris

ah guarda...manco io...  :Surprised: 

----------

## Cazzantonio

beh.... giusto per confermare il comportamento casuale della faccenda... non mi è cambiato niente  :Laughing: 

Mi sa che ci rinuncio.... ero restio ad adottare la soluzione "-xmms" in make.conf ma ormai mi do per vinto!  :Confused: 

Anche perché col profilo 2005 non riesco nemmeno più a capire dove sia la use incriminata (il make.defaults non c'è nel mio profilo 2005....)  :Shocked: 

----------

