# [débat ?][USE]dans make.conf ou package.use ?

## xaviermiller

Hello,

J'espère que ce sujet n'a pas déjà été traité, sinon, enflammez-moi malgré qu'on ne soit pas vendredi   :Razz: 

Voici quelques tarabiscotages d'un geek en mal de configuration (son gentoo tourne trop bien, compile trop vite, faut s'occuper...  :Laughing: )

En lisant à gauche et à droite dans le forum et les docs Gentoo, je vois que plusieurs préconisent le positionnement de USE flags par ebuild (dans /etc/portage/package.use) plutôt qu'en global (dans /etc/make.conf).

Mais quand décider de mettre tel USE par ebuild ou globalement ?

- pour des configs spécifiques (le flag-de-la-mort-qui-tue-sa-race) : ok 

- pour des flags communs (genre utilisation de telle librairie graphique ou son) : quid ? parfois un ebuild plante sur un USE commun, parfois pas, faut-il alors mettre "-flag" sur l'ebuild qui plante et mettre "flag" en global ?

Quelles sont vos expériences à ce sujet ? Qu'est-ce qui est plus "propre" ? plus maintenable ? ...

Et quid des paquets installés automatiquement ? Amusez-vous à les revoir un à un pour vérifier que tel ou tel use flag vous plaît ?

----------

## Mickael

Ha trop tard   :Laughing:   sujet déjà traité  :Wink: 

Pour ma part je met les flags globaux dans le make.conf si ils sont définis comme globaux, et les autres dans paquage.use.

mon make.conf : 

```

#Enfin un make.conf bien ordonné

#sur une idée originale de Tchack

#avec l'analyse des répertoires :

#

#/usr/portage/profiles/use.desc.

#/usr/portage/profiles/use.local.desc

#

#et ce fabuleux outil tiré de portage-utlis      

#quse : quse <useflag> : find pkgs using useflags

#

# HARDWARE 

#

CPU="mmx nptl nptlonly smp sse sse2 threads"

PM="acpi lm_sensors"

VIDEO="dri dv v4l vcd"

AUDIO="alsa -arts esd oss"

BLK_DEV="cdr cdparanoia dvd dvdr encode"

NET="avahi ldap samba ssl wifi"

Imp="cups foomaticdb ppds "

OTHER="dbus gphoto2 hal ieee1394 usb"

#

HARDWARE="${CPU} ${PM} ${VIDEO} ${AUDIO} ${BLK_DEV} ${Imp} ${NET} ${OTHER}"

# SOFTWARE

#

#SYS_AUTH=""

X11="cairo gnome gtk gtk2 -kde -mono opengl -qt3 -qt4 truetype X" 

MMX_AUDIO="a52 aac ffmpeg flac mad mp3 musepack ogg oggvorbis openal vorbis"

MMX_VIDEO="gstreamer aalib matroska mpeg quicktime shorten speex theora xvid win32codecs"

MMX_GFX="exif gif imagemagick jbig jpeg jpeg2k lcms libcaca mng pdf png svg tiff xpm wmf"

WWW="firefox howl msn nsplugin nas xml"

#PROG=""

MISC="-beagle bzip2 eds emacs gcj imap libnotify maildir mbox nls spell tk"

#

SOFTWARE="${X11} ${MMX_AUDIO} ${MMX_VIDEO} ${MMX_GFX} ${WWW} ${MISC}"

# ALL 

#

USE="${HARDWARE} ${SOFTWARE}"
```

EDIt : un lien

----------

## kwenspc

Je me souviens pas que ce sujet ait été traité. 

Personellement, j'utilise généralement la configuration des USE flags via le make.conf

L'utilisation du package.use ne survient que dans certains cas précis: 

- un flag commun fait planter le soft

- un flag que je ne veux pas en commun mais qui me serait bien utile pour le soft

- un flag-test rapide sur le soft (donc plutôt temporaire)

Le fait de mettre un flag en commun et -flag sur tel ou tel soft juste parce que ce flag plante parfois, parfois pas sur tel ou tel soft est pas la bonne question à se poser à mon avis. En fait, la variable USE dans mon make.conf j'y touche plutôt rarement: lors de l'install je sais déjà à 99% à quoi va me servir la machine, donc je fixe une bonne fois pour toute les USE se rapportant à cette utilisation. Après, et seulement après, lors de l'utilisation si je remarque qu'un flag me manque cruellement alors je vais le rajouter dans cette variable. Mais la plupart du temps, je ne fais u'ajouter le flag dans package.use car c'ets un besoin local, temporaire souvent et qui ne justifie pas d'être mis en commun. Je pense avoir une utilisation prudente et réfléchie des USE comme cela. Mais ça m'empêche pas d'avoir des surprises parfois.

[edit]

J'édite au vues des réponses du dessous. Moins de 2 lignes de flags dans USE... houlà le mien à côté:

```

USE="

a52 aac -acl acpi alsa -apm -arts audiofile apache2 

background bash-completion bcmath berkdb bidi bonobo bzip2 

cdb cdparanoia cdr crypt cscope ctype cups 

dbus dga dio directfb -doc dri dts dvd dvdr dvdread 

encode esd exif 

fbcon ffmpeg flac flash ftp 

gd gif ggi glut gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml 

hal hddtemp 

imagemagick imap imlib 

jabber jack java javascript jikes jpeg jpeg2k 

-kde kdeenablefinal kerberos kqemu 

ldap -leim lm_sensors 

matroska mmap mmx mng modplug mp3 mpeg musepack musicbrainz mysql 

ncurses netboot nptonly nsplugin 

ogg openal opengl osc oss 

pam -pcmcia pda pdf png portaudio python 

qt qt3 -qt4 quicktime 

readline 

samba scanner slang slp ssockets sndfile sox speex spell sse sse2 svg svga 

theora tiff truetype 

unicode usb userlocales 

v4l v4l2 vcd vorbis 

win32codecs wma wxwindows 

X xface xine xinerama xml xml2 xmlrpc xmms xosd xv xvid 

zlib 

"

```

Lors d'une installe (j'utilise généralement le même make.conf, juste reconfiguré pour les CFLAGS etc...) je suis comme cela sûr de pas oublier un support quelquonque qui pourrait par la suite faire défaut. 

Mais comme les USE flags evoluent ça demande à vérifer de temps à autres si tel ou tel flag n'est pas obsolète/remplacé par un autre etc...

[/edit]

----------

## titoucha

Je me suis fixé une règle, si le flag concerne plusieurs paquets (+ de 5) et qu'il est intéressant pour tous les paquets je le met dans USE, sinon je le met dans package.use, je préfère ce mode de gestion des flags à l'option de tout mettre dans USE.

Mon USE 

```
USE="alsa -arts gif -gnome -gtk -ipv6 jpeg kde kdeenablefinal kdehiddenvisibility \

     -ldap mpeg opengl png qt3 tiff truetype unicode usb userlocales X"

```

----------

## _droop_

 *titoucha wrote:*   

> Je me suis fixé une règle, si le flag concerne plusieurs paquets (+ de 5) et qu'il est intéressant pour tous les paquets je le met dans USE, sinon je le met dans package.use, je préfère ce mode de gestion des flags à l'option de tout mettre dans USE.
> 
> Mon USE 
> 
> ```
> ...

 

Je fais la même chose. (merci equery hasuse)

J'aime pas avoir une variable USE de plus d'une ligne (2 grand maximun).

J'ajouterais que j'utilise le profil serveur sur machine de bureau (moins de flag par défaut) et que je desactive les auto USE (tu installe samba et le use samba s'active tout seul).

----------

## netfab

Salut,

Jusqu'à aujourd'hui j'utilise le make.conf pour la gestion globale, et le package.use pour les ajustements.

Et il est vrai que petit à petit, le package.use grossit, pas seulement pour activer des flags, mais aussi pour en désactiver.

Il y a quelque jours (je me faisais chi**  :Laughing:  ) l'idée m'est venue de mettre un bon gros USE="-*" dans le make.conf et de tout gérer dans le package.use, et au dernier moment j'ai laissé tomber, mais l'idée est toujours là, je pense que je le ferai un de ces 4. Mais dans ce cas, j'utiliserai la technique suivante plutôt qu'un simple fichier :

 *Quote:*   

> 
> 
> /etc/portage/
> 
>               Any file in this directory that begins with "package." can be more than just a flat file.  If it is a directory,
> ...

 

Reste à trouver la motivation.

----------

## kopp

On en avait effectivement déjà un peu parlé ici et là:

https://forums.gentoo.org/viewtopic-t-427711.html

https://forums.gentoo.org/viewtopic-t-399739.html

Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ?  :Smile: 

----------

## -KuRGaN-

Moi je suis pour l'utilisation du package.use, mais suivant l'utilisation de la machine, je fais plus ou moins joujou avec.

En effet, pour un serveur, mon make.conf ne contient quasiment que -X -gnome -kde -gtk -qt -alsa et ensuite je paufine avec le package.use.

Par contre, pour mon desktop, j'ai un gros make.conf et j'utilise seulement le package.use pour des use spécifiques à un paquet.

----------

## xaviermiller

ok, je vais (enfin) passer à package.use  :Wink: 

et sorry pour le sujet-doublon   :Embarassed: 

----------

## Mickael

 *XavierMiller wrote:*   

> ok, je vais (enfin) passer à package.use 
> 
> et sorry pour le sujet-doublon  

 

Ben en fait il n'est pas si doublon qu'il n'y paraît. Ne serait-ce que pour l'évolution des USE dans /etc/. D'ailleurs comment fait on pour gérer les USE automatiques : pour les désactiver?

Tu peux nous en dire plus droop s'il te plaît.

----------

## netfab

 *kopp wrote:*   

> Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ? 

 

D'ailleurs à ce propos : existe t'il une option qui permette de renvoyer un erreur si un useflag inexistant est activé sur un paquet ?

Par exemple, si j'active le useflag jpeg sur un paquet (en utilisant le package.use), et que cette version du paquet n'a aucun useflag jpeg, j'aimerai que portage me renvoie une erreur.

Est-ce possible ?

----------

## kwenspc

 *kopp wrote:*   

> 
> 
> Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ? 

 

Voilà un flag qui confirme que les use flags evoluent et qu'il faut checker la variable de temps en temps, merci de l'avoir noté  :Wink: 

----------

## Mickael

 *netfab wrote:*   

>  *kopp wrote:*   Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ?  
> 
> D'ailleurs à ce propos : existe t'il une option qui permette de renvoyer un erreur si un useflag inexistant est activé sur un paquet ?
> 
> Par exemple, si j'active le useflag jpeg sur un paquet (en utilisant le package.use), et que cette version du paquet n'a aucun useflag jpeg, j'aimerai que portage me renvoie une erreur.
> ...

 

Mise à part le emerge -N, on a pour l'instant que cette possiblité, enfin je crois....

EDIT je viens de faire un test et : 

```
emerge -Nptv world

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

Calculating world dependencies... done!

[ebuild   R   ] gnome-base/gnome-applets-2.16.2  USE="acpi gstreamer hal ipv6 -apm -debug (-doc%)" 6,961 kB 

[ebuild  N    ]  app-text/docbook-sgml-utils-0.6.14  USE="-tetex" 123 kB 

[ebuild  N    ]   app-text/openjade-1.3.2-r1  874 kB 

[ebuild  N    ]    app-text/opensp-1.5.2-r1  USE="nls -doc" 1,486 kB 

[ebuild  N    ]   app-text/docbook-sgml-dtd-4.1-r3  56 kB 

[ebuild  N    ]   app-text/docbook-sgml-dtd-4.0-r3  55 kB 

[ebuild  N    ]   dev-perl/SGMLSpm-1.03-r5  92 kB 

[ebuild  N    ]   app-text/docbook-dsssl-stylesheets-1.79  272 kB 

[ebuild  N    ]   app-text/docbook-sgml-dtd-3.0-r3  43 kB 

[ebuild  N    ]   app-text/docbook-sgml-dtd-3.1-r3  55 kB 

[ebuild  N    ]   app-text/docbook-xml-simple-dtd-4.1.2.4-r2  35 kB 

[ebuild  N    ]   app-text/docbook-xml-simple-dtd-1.0-r1  31 kB 

```

Le fautif est : (-doc%)

EDIT : Pour info je met les explications de man emerge : 

 *Quote:*   

> sys-devel/distcc-2.16 [2.13-r1] USE="ipv6* -gtk -qt%"
> 
>               Here  we  see  that  the make.conf variable USE affects how this package is built.  In this
> 
>               example, ipv6 optional support is enabled and both gtk and qt support  are  disabled.   The
> ...

 

Donc pour savoir si un USE à changé il faut faire un diff entre emerge -N et emerge -pv du dit paquet.

EDIT : Je vais regarder dans eix si on a une option qui va bien.

----------

## kopp

L'ajout automatique à la variable USE a normalement été retiré il y a bien longtemps suite aux nombreuses controverses qui ont suivi son introduction.

Si c'est toujours actif, je te renvois à la doc que j'avais faite à l'époque :

https://forums.gentoo.org/viewtopic-t-428121.html

C'est expliqué comment le retirer et je pense que le fonctionnement inverse est aussi d'actualité. A moins que le auto soit totalement retiré de portage.

----------

## Mickael

Bon un man portage montre que le auto à été décliné en force/mask/unmask etc. Ma version  : Portage 2.1.2-r9.

----------

## netfab

 *MickTux wrote:*   

> 
> 
> Mise à part le emerge -N, on a pour l'instant que cette possiblité, enfin je crois....
> 
> EDIT je viens de faire un test et : 
> ...

 

Oui, je connais ce comportement, mais cette syntaxe n'apparait qu'au moment de la recompilation lorsque qu'un useflag disparaît.

Je viens d'aller faire un tour dans mon package.use, et je trouve ceci :

```

app-text/evince nautilus

```

Cela fait belle lurette que le useflag nautilus à été remplacé par le useflag gnome, j'étais au courant, sauf que j'avais probablement oublié de retirer cette ligne à l'époque, et elle est là depuis. Si je met en pratique ce que j'ai dit plus haut (USE="-*"), une option de portage me signalant ce genre de choses serait plus que bienvenue  :Smile: 

----------

## Mickael

Je suis tout à fait d'accord avec toi, et je me doutais bien que tu connaissais ce comportement de portage. Je l'ai simplement rappelé puisque tu me tendais une perche. Par contre le man portage vient de montrer une grosse évolution de la gestion possible des variables USE dans /etc/... je devrais le lire plus souvent...  :Embarassed: 

----------

## _droop_

 *MickTux wrote:*   

> Tu peux nous en dire plus droop s'il te plaît.

 

Je peux   :Wink: 

Ca se modifie avec la variable USE_ORDER de make.conf.

Par défaut : USE_ORDER = "env:pkg:conf:auto:defaults" (voir man make.conf qui est un peu vague à ce sujet)

avec :

- env = variable d'environnement (USE='X' emerge z).

- pkg = /etc/portage/package.use (pas tout à fait sûr).

- conf = USE de make.conf

- auto = use automatique apporté par l'installation de paquets. xorg-x11 apporte USE="X", samba apporte USE="samba".

- defaults = use par defaut (profil par exemple).

Pour supprimer les use automatique, on met dans make.conf :

```
USE_ORDER = "env:pkg:conf:defaults"
```

Si on supprime defaults, on se retrouve avec l'équivalent de USE="-*".

Après une modification de ce genre : une vérification est GRANDEMENT conseillée :

```
emerge -pDNuv world
```

Si vous pensez que c'est utile, je peux remettre ce post dans la section appropriée...

----------

## Mickael

Auto à disparu du man make.conf.

----------

## geekounet

 *netfab wrote:*   

>  *kopp wrote:*   Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ?  
> 
> D'ailleurs à ce propos : existe t'il une option qui permette de renvoyer un erreur si un useflag inexistant est activé sur un paquet ?
> 
> Par exemple, si j'active le useflag jpeg sur un paquet (en utilisant le package.use), et que cette version du paquet n'a aucun useflag jpeg, j'aimerai que portage me renvoie une erreur.
> ...

 

Pour nettoyer le package.use (et les autres package.*), tu as eix-test-obsolete (dans app-portage/eix) et dep -E (dans app-portage/udept)  :Wink: 

----------

## titoucha

 *geekounet wrote:*   

> 
> 
> Pour nettoyer le package.use (et les autres package.*), tu as eix-test-obsolete (dans app-portage/eix) et dep -E (dans app-portage/udept) 

 

Et @geekounet arrive avec la solution   :Very Happy: 

----------

## kwenspc

[ultra off]

C'est moi ou bien kopp et geekounet avez mis vos avatars en négatifs?

[/ultra off]

----------

## Mickael

 *kwenspc wrote:*   

> [ultra off]
> 
> C'est moi ou bien kopp et geekounet avez mis vos avatars en négatifs?
> 
> [/ultra off]

 

C'est la mode k_s est aussi dans le coup. Étrange...

EDIT : regarde la signature de geekounet.

EDIT : pour en revenir à nos moutons, on a la commande eix-test-osolote de eix, comme nous le dit geekounet. Je vais voir avec un vieux USE xmms, car j'ai testé ce matin il ne m'a pas dit grand chose sur package.use.

----------

## netfab

 *geekounet wrote:*   

> 
> 
> Pour nettoyer le package.use (et les autres package.*), tu as eix-test-obsolete (dans app-portage/eix) et dep -E (dans app-portage/udept) 

 

Extra, je ne connaissais ni l'un ni l'autre  :Shocked: 

Une fois de plus, merci.

----------

## Mickael

Hum j'ai rajouté le flag beagle à nautilus dans package.use et eix-test-obsolete n'y a vu que du feu. Il ne doit travailler que sur les versions, dommage.

EDIT : Par contre dep, c'est pas mal du tout lorsque package.* est aussi bordelique que chez moi :

 *Quote:*   

> dep -E
> 
> Checking /etc/portage/package.use for redundant entries...
> 
> !!! flag redundant: sys-devel/gcc-3.4.6-r2 gcj
> ...

   :Laughing:   :Laughing: 

Wow,   :Razz:   et le diff!! excellent, merci geekounet

----------

## xaviermiller

faudra que quelqu'un se colle à introduire une entrée dans bgo  :Wink: 

----------

## CryoGen

Perso, tout est dans le... use.conf   :Laughing: 

Je tourne avec paludis

 */etc/paludis/use.conf wrote:*   

> 
> 
> #USE Globaux
> 
> * X nvidia alsa -oss dvd dvdr dvdread cdr opengl sdl v4l
> ...

 

----------

## Enlight

 *MickTux wrote:*   

> ...
> 
> EDIt : un lien

 

Antériorité revendiquée : https://forums.gentoo.org/viewtopic-t-295734-postdays-0-postorder-asc-highlight-make+conf-start-25.html

 :Razz: 

----------

## _droop_

 *MickTux wrote:*   

> Auto à disparu du man make.conf.

 

Ca existe peut être plus les auto use ?

----------

## d2_racing

Personnellement, j'aime mieux mettre mes USE FLAGS de base dans mon /etc/make.conf ou carrément mettre -gnome dans mon /etc/make.conf dans mon cas et utiliser /etc/portage/package.use pour un package en particulier.

----------

## GentooUser@Clubic

Moi je n'ai que -* (pour virer les uses du profil) plus quelques uses "vraiment" de base dans mon make.conf, tout le reste dans mon package.use.

Jamais de "-use" si je ne veut pas d'un use sur un paquet je le vire du make.conf et je le met pour tous les paquets qui l'utilisent dans mon package.use.

----------

## nemo13

Bonsoir,

USE="-*" et package.use pour tout le monde sont pil poil mais en contre-partie la gestion en est plus contaignante et un emerge -pvt est obligatoire à chaque nouvel arrivant pour gérer les paquets arrivant par dépendance.

merci à PierreG   :Wink:   pour eix-test-obsolete (dans app-portage/eix) et dep -E (dans app-portage/udept)

actuellement pour environ 700 paquets installés mon package.use fait environ 250 lignes

----------

## Temet

Perso je mets dans le make.conf le maximum pour tripoter le moins possible le package.use.

Voici mon USE:

```
USE="3dnow aac acpi alsa apache2 arts avi bash-completion berkdb bitmap-fonts browserplugin bzip2 cdparanoia cdr cups dbus divx4linux dvd dvdr dvdread encode ethereal foomaticdb ffmpeg gd gif gtk gtk2 hal imagemagick javascript jpeg joystick kde kdexdeltas lm_sensors logitech-mouse mad matroska md5sum mime mikmod mmx mng mozilla mp3 motif mpeg msn musicbrainz mysql ncurses net nfs nptl nptlonly nsplugin nvidia ogg oggvorbis opengl perl pdf pdflib php png ppds print posix python real qt3 qt4 quicktime ruby sdl spell sqlite sqlite3 sse svg tetex theora threads truetype truetype-fonts type1-fonts unicode usb userlocales v4l vorbis win32codecs X xcomposite xine xml xosd xv xvid -gnome -gstreamer -ipv6"
```

Et mon package.use

```
# Multimedia

media-sound/amarok              -real

media-video/vlc                 skins wxwindows vlm -nsplugin

media-video/kmplayer            mplayer

media-libs/xine-lib             asf

media-libs/libquicktime         lame

kde-misc/tellico                calendar cddb

games-emulation/xmame           dga ggi

media-gfx/gimp                  gimpprint tiff lcms

# Internet

www-client/links                -X -gpm -javascript -jpeg -png -sdl -ssl

net-www/apache                  mpm-threadpool

dev-db/mysql                    latin1

dev-lang/php                    calendar

kde-base/kopete                 addbookmarks alias autoreplace connectionstatus contactnotes highlight history latex sametime slp statistics texteffect translator webpresence winpopup

# Misc

x11-libs/qt                     doc glib qt3support

dev-util/kdevelop               ruby sql

app-editors/vim                 ruby

app-emulation/wine              glut

x11-plugins/beryl-plugins       -dbus
```

Tout ça sur le desktop  :Wink: 

----------

## d2_racing

J'utilise la même méthode que toi Temet.

C'est la première fois que je vois le nouveau /etc/make.conf de Paludis  :Smile: 

Ça l'air assez concentré comme fichier  :Smile: 

[OFF]

* screen pdf truetype bitmap-fonts truetype-fonts type1-fonts

* firefox nsplugin xfce-panel xfce bash-completion

* 3dnow 3dnowext mmx mmxext sse sse2 sse3

* gpl sndfile

#VAR

* LINGUAS: fr fr_FR

* INPUT_DEVICES: keyboard mouse evdev

* VIDEO_CARDS: -* apm v4l nv nvidia

* ALSA_CARDS: -* hda-intel 

Pourquoi des fois il y a un - devant un * ? Comme par exemple pour VIDEO_CARDS...

[/OFF]

----------

## CryoGen

 *d2_racing wrote:*   

> J'utilise la même méthode que toi Temet.
> 
> C'est la première fois que je vois le nouveau /etc/make.conf de Paludis 
> 
> Ça l'air assez concentré comme fichier 
> ...

 

Ca c'est juste le "use.conf", il y'a aussi le bashrc (CHOST...) , le keyword.conf, package_{unmask,mask}.conf 

 *d2_racing wrote:*   

> 
> 
> [OFF]
> 
> * screen pdf truetype bitmap-fonts truetype-fonts type1-fonts
> ...

 

Pour desactiver tout , et ensuite activer ce que je veux (sinon y a des video_cards/alsa_cards par defaut... c'etait peut-etre un bug ^^) -* desactive tout les flags

Les * en début de ligne = tout les packages

----------

## Mickael

 *netfab wrote:*   

>  *kopp wrote:*   Sinon, je remarque que tu as toujours "xmms" dans ton USE kwenspc ... un oubli ?  
> 
> D'ailleurs à ce propos : existe t'il une option qui permette de renvoyer un erreur si un useflag inexistant est activé sur un paquet ?
> 
> Par exemple, si j'active le useflag jpeg sur un paquet (en utilisant le package.use), et que cette version du paquet n'a aucun useflag jpeg, j'aimerai que portage me renvoie une erreur.
> ...

 

regarde portato : ici

----------

## d2_racing

Merci pour l'info CryoGen  :Smile: 

----------

