# [eselect news] Plus de news lisibles (Résolu)

## lefoid

Bonjour à tous,

Depuis quelques temps, j'ai le message suivant qui apparait lors d'une mise à jour :

 *Quote:*   

> * IMPORTANT: 2 news items need reading for repository 'gentoo'.
> 
> * Use eselect news to read news items.

 

Jusqu'à présent, je faisais un :

```
eselect news read all
```

et j'avais les messages souhaités.

Or, depuis un mois environ, j'ai droit à :

```
eselect news list

News items:

  (none found) 
```

J'ai tenté un :

```
eselect news purge all
```

et :

```
eselect news unread all
```

mais j'ai toujours le même résultat : impossible de lire la moindre news.

J'aimerais que ça fonctionne à nouveau mais je ne sais quel fichier "bidouiller"

pour ça.

Merci par avance de votre aide.

PS : j'arrive à lire les messages avec :

```
cat /usr/portage/metadata/news/...
```

mais, ce n'est pas le but d'eselect news !

----------

## mrpouet

```

$ eselect news list

```

et 

```

$ eselect news read 1

```

par exemple, çà donne quoi ?

----------

## lefoid

 *mrpouet wrote:*   

> 
> 
> ```
> 
> $ eselect news list
> ...

 

Ca donne comme sur mon message précédent   :Wink: 

 *Quote:*   

> 
> 
> ```
> 
> $ eselect news read 1
> ...

 

Là, ça donne :

```
eselect news read 1

!!! Warning: Bad item number: 1
```

A + ...

----------

## brubru

eselect gère le status des news avec le dossier: /var/lib/gentoo/news, moi j'ai:

```

% tree /var/lib/gentoo/news

/var/lib/gentoo/news

|-- news-gentoo.read

|-- news-gentoo.skip

|-- news-gentoo.unread

|-- news-paludis-extras.read

|-- news-paludis-extras.skip

`-- news-paludis-extras.unread

```

avec :

```

% cat news-gentoo.read

2007-05-04-paludis-0.24

2009-04-18-java-config-wrapper-0.16

2009-07-02-kdeprefix+monolithics

2009-07-12-xorg-74-alpha

2009-09-27-qt_use_changes

2009-10-02-xorg-server-1-6-libxcb-1.4

2009-11-02-kde-3

2009-12-21-kdebuild

2010-02-21-mysql-upgrade

```

Et toi ?

----------

## lefoid

Salut brubru,

Je n'ai pas la commande tree, mais le cat donne :

 *Quote:*   

> cat /var/lib/gentoo/news/news-gentoo.unread 
> 
> 2007-05-04-paludis-0.24
> 
> 2009-12-21-kdebuild
> ...

 

Je n'ai pas d'autre fichier que news-gentoo.unread.

----------

## bivittatus

Salut!

 *lefoid wrote:*   

> Salut brubru,
> 
> Je n'ai pas la commande tree, ...

 

Un petit:

```
# emerge app-text/tree
```

devrait solutionner ton problème de "tree"...

----------

## netfab

Hello,

Un problème de droits ? quelle version de eselect ? Ton user est bien dans le groupe portage ?

Que donne :

```

$ ls -l /usr/portage/metadata/news

$ ls -l /usr/portage/metadata

$ ls -l /var/lib/gentoo/news

$ ls -l /var/lib/gentoo

```

----------

## lefoid

Salut,

Le résultat des "ls" :

 *Quote:*   

> ls -l /usr/portage/metadata/news
> 
> total 64
> 
> drwxr-xr-x 2 root root 4096 févr. 22 12:26 2007-05-04-paludis-0.24
> ...

 

 *Quote:*   

> ls -l /usr/portage/metadata
> 
> total 168
> 
> drwxrwxr-x 157 root root  4096 avril  9  2009 cache
> ...

 

 *Quote:*   

> ls -l /var/lib/gentoo/news
> 
> total 8
> 
> -rw-rw-r-- 1 root portage  61 févr. 24 23:41 news-gentoo.skip
> ...

 

 *Quote:*   

> ls -l /var/lib/gentoo
> 
> total 4
> 
> drwxrwxr-x 2 root portage 4096 févr. 25 10:33 news
> ...

 

La version de eselect est :

 *Quote:*   

> eix eselect
> 
> [I] app-admin/eselect
> 
>      Available versions:  1.2.8 1.2.9 ~1.2.10 {bash-completion doc}
> ...

 

Et pour finir :

 *Quote:*   

> groups patrice
> 
> wheel floppy audio cdrom video cdrw usb users portage plugdev games pulse-access pulse scanner vboxusers patrice
> 
> 

 

----------

## boozo

 *Quote:*   

> ls -l /var/lib/gentoo/news
> 
> total 8
> 
> -rw-rw-r-- 1 root portage 61 févr. 24 23:41 news-gentoo.skip
> ...

 

déjà là j'ai une différence chez-moi :

```
 ls -l /var/lib/gentoo/news

total 8

-rw-rw-r-- 1 root portage 250 févr. 23 20:07 news-gentoo.read

-rw-rw-r-- 1 root portage 250 févr. 23 19:46 news-gentoo.skip

-rw-rw-r-- 1 root portage   0 févr. 23 20:07 news-gentoo.unread

```

Essaie de faire un #chown root:portage /var/lib/gentoo/news/news-gentoo.unread && chmod 664 /var/lib/gentoo/news/news-gentoo.unread et retente ensuite le #eselect news read et si çà colle il devrait te créer news-gentoo.read avec les bons droits

btw, tu n'aurais pas fait un chown et chmod -R de portée hasardeuse récemment ? ou mis une option particulière sur cette partition si elle est dédiée ?

----------

## lefoid

Salut,

J'ai effectué la manip que tu m'as indiquée mais ça ne

fonctionne toujours pas.

Bizarrement, et alors que je n'ai pas touché ou supprimé

de fichier, c'est 15 messages que j'ai à lire maintenant   :Confused: 

```
eselect news list
```

me renvoie quand même (none found).

Quant aux chown ou chmod récents, la réponse est non, je

n'ai rien fait. La partition n'a rien non plus de spécial.

Cependant, j'ai ceci dans mon make.conf :

 *Quote:*   

> PORTAGE_TMPDIR="/home/portage"

 

Serait-il possible que le problème vienne de là ?

Je viens de voir que dans cette partition dédiée, il n'y avait pas de

dossier metadata/gentoo/news ...

Mais, mon système est comme ça depuis le départ et jusqu'à il

n'y a pas si longtemps, ça allait.

Bref, mystère et boule de gomme !

----------

## boozo

je ne pense pas... cela affecte seulement le repertoire de build temp pour portage mais ceci dit je ne comprends pas bien l'usage que tu en as

Est-ce que par hasard tu n'aurais pas des traces de l'ancien package "eselect-news" et qui pourrait causer un brin ?

----------

## lefoid

Pour ce qui est du :

 *Quote:*   

> PORTAGE_TMPDIR="/home/portage"

 

Je l'ai fait au départ en raison de quelques paquets qui bloquaient lors

de la compilation (wxpython de mémoire).

Depuis, comme ça fonctionne, je ne touche à rien !

Concernant des "résidus" d'ancien paquet, comment savoir ?

----------

## boozo

Ben sauf avoir fait des edits sauvage de world et si la base eix est à jour il devrait te l'indiquer sinon un emerge -pv --depclean devrait le proposer (/!\ attention avec le depclean toujours le pretend au préalable - là c'est juste pour voir)

Mis à part, je ne vois plus trop ce qui pourrais clocher... as-tu tenté de reconstruire eselect des fois que ?

----------

## netfab

Fais voir ton emerge --info.

----------

## lefoid

Voici :

```
emerge --info

Portage 2.1.7.16 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 x86_64)

=================================================================

System uname: Linux-2.6.31-gentoo-r6-x86_64-AMD_Athlon-tm-_64_Processor_3800+-with-gentoo-1.12.13

Timestamp of tree: Fri, 26 Feb 2010 06:15:01 +0000

ccache version 2.4 [disabled]

app-shells/bash:     4.0_p35

dev-java/java-config: 2.1.10

dev-lang/python:     2.6.4

dev-python/pycrypto: 2.1.0_beta1

dev-util/ccache:     2.4-r7

dev-util/cmake:      2.6.4-r3

sys-apps/baselayout: 1.12.13

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.13, 2.63-r1

sys-devel/automake:  1.8.5-r3, 1.9.6-r2, 1.10.2

sys-devel/binutils:  2.18-r3

sys-devel/gcc:       4.3.4

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.30-r1

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -msse3 -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"

CXXFLAGS="-march=k8 -msse3 -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="fr_FR.UTF-8"

LC_ALL="fr_FR.UTF-8"

LDFLAGS="-Wl,-O1"

LINGUAS="fr de"

MAKEOPTS="-j1"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/home/portage"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X a52 aac aalib acl acpi additions aim alsa amd64 apache2 audiofile autoipd avahi bcmath berkdb bogofilter bonjour bonobo branding brasero bzip2 cairo calendar cdda cddax cddb cdio cdparanoia cdr cdrkit clamav cli consolekit cracklib crypt css cups curl curlwrappers cxx daap dbus dga disk-partition divx dri dts dv dvd dvdr dvdread eds emboss encode esd evo exif expat extras fam fbcon ffmpeg firefox firefox3 flac fontconfig foomaticdb fortran ftp fts3 gcj gd gdbm gif gimp glut gmp gnome gnome-keyring gnuplot gnustep gnutls gphoto2 gpm graphviz gsl gstreamer gtk gtk2 gtkhtml guile hal hddtemp iconv icq idn iee1394 imagemagick imlib ipv6 jabber jack java java5 java6 javascript jingle jpeg jpeg2k lame latex lcms ldap libburn libcaca libgda libnotify libwww lm_sensors lzo mad maildir mailwrapper matroska mbox mdnsresponder-compat memlimit mhash mikmod mime mjpeg mmap mmx mng modplug modules motif mozilla mp3 mp4 mpeg mplayer msn mudflap multilib musepack musicbrainz mysql ncurses networking networkmanager nls nowrapper nptl nptlonly nsplugin ogg openal openexr opengl openmp osc oscar oss pam pcre pdf perl php png posix ppds pppd print pulseaudio python quicktime radius raw readline realmedia reflection rss samba sasl scanner sdk sdl session sndfile sockets source sox speex spell sqlite sqlite3 sse sse2 ssl startup-notification subversion svg sysfs syslog szip taglib tcl tcpd theora threads thunar thunderbird tiff timidity tk truetype unicode usb utempter v4l v4l2 vboxbfe vcd vditool vhosts vnc vorbis wavpack webkit wmf wmp wxwindows x264 xcomposite xface xine xinerama xml xorg xosd xpm xprint xscreensaver xulrunner xv xvid yahoo zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr de" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

Sinon, non, je n'ai pas tenté de reconstruire quoi que ce soit. Je n'ai touché à rien, mais vraiment à rien (ce qui est rare chez moi, je l'avoue).

Mes mises à jour sont faites avec la ligne suivante que je rappelle toutes les semaines environ :

```
eix-sync && emerge --with-bdeps y -uDNp world && emerge --with-bdeps y -uDN world && dispatch-conf && env-update && source /etc/profile && emerge --depclean && revdep-rebuild -i && exit
```

----------

## boozo

si tu fais #eselect news read 1 : vois tu le message et ensuite le fichier news-gentoo.read est-il bien crée ? si oui le #eselect news list donne-t-il ensuite qqch de différent ?

btw : sait-on jamais, tu ne risques rien à faire un #emerge -1v eselect ^^

----------

## lefoid

J'ai fait un :

```
emerge -1v eselect
```

et voici le résultat final avec les commandes à la suite :

 *Quote:*   

> ....................
> 
> --- replaced sym /usr/bin/rc-config
> 
> --- replaced sym /usr/bin/profile-config
> ...

 

Aaaargh .....   :Very Happy: 

----------

## boozo

Cette histoire est pour le moins cocasse   :Shocked: 

Si tu supprimes le fichier /var/lib/gentoo/news/news-gentoo.skip et que tu fais #eselect news list ?

Je pense que çà devrait marcher avec çà car le "eselect read bla" se base sur "news-gentoo.read" qui n'existe pas chez toi d'où le message que tout va bien et le "eselect news list" ne donne rien à cause du "news-gentoo.skip" qui contient tout ce que tu as lu avec un des précédents "eselect read all"

----------

## netfab

Hello,

J'arrive à reproduire ton problème, mais avec une condition bien particulière.

 *Quote:*   

> 
> 
> # eselect news list
> 
> News items:
> ...

 

Donc avant de donner l'eventuelle solution, j'aimerai voir le contenu de ton make.conf pour être sûr.

----------

## lefoid

Le make.conf :

 *Quote:*   

> # These settings were set by the catalyst build script that automatically
> 
> # built this stage.
> 
> # Please consult /etc/make.conf.example for a more detailed example.
> ...

 

Je viens d'essayer en "supprimant" le fichier news-gentoo.skip mais c'est sans succès.

----------

## netfab

Je peux voir le contenu de :

```

source /usr/portage/local/layman/make.conf 

```

Et le contenu de :

```

/usr/local/portage/profiles/repo_name

```

Si tout ceci existe ?

----------

## lefoid

Alors :

```
source /usr/portage/local/layman/make.conf
```

ne me renvoie rien.

Par contre :

```
nano -w /usr/portage/local/layman/make.conf
```

me donne :

 *Quote:*   

> PORTDIR_OVERLAY="
> 
> $PORTDIR_OVERLAY
> 
> "

 

Je n'ai rien comme dossier profiles :

```
ls /usr/local/portage/
```

donne :

 *Quote:*   

> layman/ net-im/

 

C'est grave docteur ?   :Very Happy: 

----------

## boozo

je pense que netfab voulait écrire $cat /usr/portage/profiles/repo_name

bien que le rep par défaut de layman ait changé il y a qq temps toi tu l'as dans /usr/portage/local/

edit: t'ain ! je m'y perds moi aussi avec ces chemins ambiguës   :Laughing: 

Edit 2: bon je commence à voir commen çà fonctionne et à reproduire pour partie le problème également : j'ai supprimé les fichiers news-gentoo.skip et news-gentoo.read qui contenaient toutes les précédentes news. Mon news-gentoo.unread étant donc vide. je suis dans le même cas de ficgure que toi.

En faisant un --sync : news-gentoo.unread est repeuplé de 3 nouvelles news (certaines hors d'âge   :Shocked:  ) et news-gentoo.skip est recréé avec le même contenu.

Reste à repeupler le gentoo read avec les anciennes news - probablement via les fichiers de news du rep metadata

----------

## netfab

Bon... Si tu désactives tous tes overlays, et que tu commentes la ligne suivante :

```

source /usr/portage/local/layman/make.conf

```

dans ton make.conf, et que tu réessayes, toujours pareil ?

Le message donné par portage est le suivant :

 *Quote:*   

> 
> 
> >>> No outdated packages were found on your system.
> 
> * GNU info directory index is up-to-date.
> ...

 

Ma théorie etait en fait qu'un de tes overlays etait nommé de la même manière que l'arbre officiel, et que quelque part dans un fichier de configuration de portage, la variable PORTAGE_REPO_DUPLICATE_WARN etait initialisée pour désactiver le warning qui en résulte lors de l'utilisation d'emerge.

Dans ces conditions eselect ne trouve plus aucune news étant donné qu'il doit se tromper de repository, ce qui correspond exactement à tes symptômes, mais je viens de m'apercevoir que dans ce cas, l'arbre portage officiel n'est plus du tout utilisable, puisqu'emerge ne trouve plus aucun ebuild. Donc retour à la case départ.

----------

## boozo

@netfab: je ne comprends pas j'ai le même message depuis toujours pour les news car la $ repo_name est positionnée à "gentoo" c'est normal ??!   :Shocked: 

Edit: bon ben en repeuplant le fichier news-gentoo.unread avec les items de /usr/portage/metadata/news à coup de grep et en faisant de même pour news-gentoo.skip je retrouve les 15 entrées lisibles avec #eselect news {list,read} et un fonctionnement normal de versement progressif dans news-gentoo.read et suppression des lignes dans le .unread   :Smile: 

----------

## lefoid

Je fais vite parce que dodo !

```
cat /usr/portage/profiles/repo_name
```

donne :

 *Quote:*   

> gentoo

 

J'ai commenté la ligne :

 *Quote:*   

> source /usr/portage/local/layman/make.conf

 

mais le résultat n'a pas changé   :Confused: 

(J'ai fait avant un :

```
etc-update && source /etc/profile
```

au cas où)

@boozo : je regarde ta manip demain !

----------

## lefoid

Salut,

bon, juste pour signaler que ça ne fonctionne toujours pas.

J'ai l'impression que eselect news ne lit pas les infos sur les bons fichiers.

Bref, pas grave, je vais lire tout ça à la main, avec un cat.

A moins qu'on m'explique comment tout effacer et remettre à zéro eselect.

Je laisse le topic ouvert au cas où ...

Merci à tous pour votre aide.

----------

## boozo

J'ai donné une méthode qui fonctionne pourtant se sont de simples fichiers de texte avec les entrées  :

rm des fichiers news-gentoo.skip ; news-gentoo.read ; news-gentoo.unread

touch news-gentoo.unread et news-gentoo.skip et les repeupler à l'identique avec les items de /usr/portage/metadata/news à coup de find, ls ou grep i.e. 

#eselect news {list,read} et on retrouve un fonctionnement normal de versement progressif dans news-gentoo.read et suppression des lignes dans le .unread

----------

## lefoid

Salut boozo,

Je viens d'appliquer ce que tu indiquais (copie des listes trouvées dans /usr/portage/metadata/news

vers /var/lib/gentoo/news-gentoo.unread et skip ... en enlevant les "/" et ordonnant le tout).

Et il n'y a aucun changement. Ou bien j'ai mal appliqué ce que tu expliques,

ou alors il s'agit d'un autre problème.

----------

## boozo

je ne sais pas une erreur de chemin ou de syntaxe ? - s'il y a éventuellement un problème sous-jacent je ne vois vraiment pas lequel ni comment le régler et je n'ai rien trouvé en bug de cet ordre - mais je peux re-détailler plus dès fois que :

Le contenu des fichiers /var/lib/gentoo/news/news-gentoo.unread et /var/lib/gentoo/news/news-gentoo.skip doivent être identique et contenir les lignes suivantes :

```
2007-05-04-paludis-0.24

2009-01-04-sparc-multilib

2009-04-06-tetex

2009-04-06-x_server-1_5

2009-04-18-java-config-wrapper-0.16

2009-07-02-kdeprefix+monolithics

2009-07-12-xorg-74-alpha

2009-09-27-qt_use_changes

2009-10-02-xorg-server-1-6-libxcb-1.4

2009-10-08-gnome-226

2009-10-22-default-linux

2009-11-02-kde-3

2009-12-21-kdebuild

2010-01-31-eselect-opengl

2010-02-21-mysql-upgrade
```

(cad le contenu de /usr/portage/metadata/news hormis la 16ème news que tu as du avoir depuis ton dernier emerge --sync et que tu peux rajouter)

Le fichier /var/lib/gentoo/news/news-gentoo.read peut exister mais il doit être vide.

Ces 3 fichiers ont des droits identiques cad -rw-rw-r-- root:portage

Ensuite en faisant le #eselect news list il doit/devrait te sortir la liste complète et à chaque #eselect news read <num> il supprime la ligne correspondante dans /var/lib/gentoo/news/news-gentoo.unread et l'ajoute dans /var/lib/gentoo/news/news-gentoo.read

----------

## lefoid

Salut boozo,

voila ce que ça me donne :

```
falcon patrice # ls -l /var/lib/gentoo/

total 12

drwxrwxr-x 2 root portage 4096 mars  10 15:36 news

-rw-rw-r-- 1 root portage    0 mars  10 22:48 news-gentoo.read

-rw-rw-r-- 1 root portage  448 mars  10 13:33 news-gentoo.skip

-rw-rw-r-- 1 root portage  448 mars  10 13:33 news-gentoo.unread

falcon patrice # eselect news list

News items:

  (none found)
```

Et mes fichiers sont bien comme tu me l'as expliqué.

Je ne comprends pas...

----------

## boozo

non comme je te l'ai indiqué le chemin n'est pas bon et c'est peut-être seulement çà qui cloche chez toi : les 3 fichiers news-gentoo.* doivent-être dans /var/lib/gentoo/news/

----------

## lefoid

Effectivement, le chemin n'était pas bon, mais ... :

```
falcon patrice # ls -l /var/lib/gentoo/news/

total 8

-rw-rw-r-- 1 root portage   0 mars  11 11:26 news-gentoo.read

-rw-rw-r-- 1 root portage 448 mars  11 11:26 news-gentoo.skip

-rw-rw-r-- 1 root portage 448 mars  11 11:26 news-gentoo.unread

falcon patrice # eselect news list

News items:

  (none found)
```

... résultat hélas identique   :Confused: 

----------

## boozo

C'est une histoire de fous   :Shocked: 

Peut avoir un $cat /etc/fstab stp ?

Je ne sais pas de quant il date mais refait un #emerge --sync maintenant que les fichiers sont corrects - sait-on jamais qu'il y ait un lock ou un cache qqpart qui se purge à cette étape...

----------

## lefoid

Voici :

```
cat /etc/fstab

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't 

# needed; notail increases performance of ReiserFS (at the expense of storage 

# efficiency).  It's safe to drop the noatime options if you want and to 

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>         <mountpoint>   <type>      <opts>      <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

UUID=0783592e-11c0-46f8-a3e0-d1954f9204fe   /boot      ext2      noauto,noatime         1 2

UUID=6f28552c-6f01-4976-b5d6-de7915eb392e   /      ext4      noatime            0 1

UUID=5aa719f1-6b98-4014-b1c4-d5950517aa49   none      swap      sw            0 0

#UUID=00e76ae4-a896-403c-9619-e0e50076837f   /media/DisqueExterne   ext4       rw,user,auto,nls=utf8      0 0     

#dev/fd0               /mnt/floppy   auto      noauto,user         0 0

none                             /var/tmp/portage   tmpfs  size=5000M,nr_inodes=1M         0 0

# NOTE: The next line is critical for boot!

proc         /proc      proc      defaults         0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for 

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm         /dev/shm   tmpfs      nodev,nosuid,noexec      0 0
```

----------

## boozo

Pfff... ! Je sèche très honnêtement   :Sad: 

Un dernier test si tu veux bien avant que je ne rende les armes : ne conserve que le fichier news-gentoo.unread tel que repeuplé et supprime les 2 autres.

J'espère qu'ensuite il verra enfin qqch ce #eselect news list 

 'rdel de mer**

----------

## Poussin

tu peux donner la sortie de 

```
cat /usr/share/eselect/modules/news.eselect
```

On va trouver, c'est pas possible ^^

----------

## lefoid

C'est un peu long mais here it is :

```
patrice@falcon ~ $ cat /usr/share/eselect/modules/news.eselect

# -*-eselect-*-  vim: ft=eselect

# Copyright 2005-2009 Gentoo Foundation

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

# $Id: news.eselect 750 2009-12-31 00:02:52Z ulm $

inherit package-manager

DESCRIPTION="Read Gentoo (\"GLEP 42\") news items"

MAINTAINER="ulm@gentoo.org"

SVN_DATE='$Date: 2009-12-31 01:02:52 +0100 (Thu, 31 Dec 2009) $'

VERSION=$(svn_date_to_version "${SVN_DATE}")

NEWS_DIR="${EPREFIX}/var/lib/gentoo/news"

# read list of news items

# list of parameters may contain "unread" or "read"

# returns one item per line: status/repository/name

# sort order: 1. "unread" before "read", 2. by repository

find_items() {

   local stat repos=$(get_repositories) repo item

   for stat in "$@"; do

      for repo in ${repos}; do

         file="${ROOT}${NEWS_DIR}/news-${repo}.${stat}"

         [[ -f ${file} ]] || continue

         for item in $(<"${file}"); do

            echo "${stat}/${repo}/${item}"

         done

      done

   done

}

# write list of items to file

# first parameter is "unread" or "read"

# second parameter is the repository

# list of items is expected in global array "items"

write_item_list() {

   local stat=$1 repo=$2 item update

   for item in "${items[@]}"; do

      [[ ${item%%/*} = ${stat} ]] || continue

      item=${item#*/}

      [[ ${item%%/*} = ${repo} ]] && update="${update} ${item#*/}"

   done

   file="${ROOT}${NEWS_DIR}/news-${repo}.${stat}"

   for item in ${update}; do

      echo "${item}"

   done >"${file}"

   if [[ $? -ne 0 ]]; then

      write_error_msg \

         "Cannot update list of news items for repository \"${repo}\""

      return 1

   fi

   # GLEP 42 says the file should be in the portage group and group writable

   chgrp portage "${file}" 2>/dev/null && chmod 664 "${file}" 2>/dev/null

   return 0

}

# read a given item

# first parameter is the directory

# second parameter is the item's name

# optional third parameter may be "header", "body", or "existsp"

read_item() {

   local dir=$1 item=$2 what=$3 file lang command=""

   for lang in $(accepted_languages); do

      file="${ROOT}${dir}/${item}/${item}.${lang}.txt"

      [[ -f "${file}" ]] || continue

      case "${what}" in

         header) command="/^$/Q" ;;

         body) command="0,/^$/d" ;;

         existsp) return 0 ;;

      esac

      sed -e "${command}" "${file}" || die "Error reading ${file}"

      return

   done

   return 1

}

# find directory for a given repository (and cache it)

# affects variable "dir" and arrays "repos" and "dirs" by side effect

find_repo_dir() {

   local repo=$1 i

   for (( i = 0; i < ${#repos[@]}; i++ )); do

      [[ ${repos[i]} = ${repo} ]] && break

   done

   if [[ ${i} -eq ${#repos[@]} ]]; then

      repos[i]=${repo}

      dirs[i]=$(get_repo_news_dir "${repo}")

   fi

   dir=${dirs[i]}

}

# return list of accepted languages

accepted_languages() {

   local lc=${LC_ALL:-${LANG}}

   lc=${lc%%[^[:alpha:]]*}

   [[ -n ${lc} && ${lc} != en ]] && echo ${lc}

   echo en

}

# calculate day of week for given year ($1), month ($2), and day ($3)

# using Chr. Zeller's formula for the new calendar

day_of_week() {

   local a=${1##*(0)} m=${2##*(0)} q=${3##*(0)}

   local -a wd=( Sat Sun Mon Tue Wed Thu Fri )

   [[ ${m} -le 2 ]] && (( a--, m += 12 ))

   echo ${wd[(q + (m+1)*13/5 + a + a/4 - a/100 + a/400) % 7]}

}

# encode header as quoted-printable

rfc2047_encode() {

   local s=$1 i c LC_ALL=C

   echo -n "=?UTF-8?Q?"

   for (( i=0; i<${#s}; i++ )); do

      c=${s:i:1}

      if [[ ${c} =~ [-A-Za-z0-9!*+/] ]]; then

         echo -n "${c}"

      elif [[ ${c} = ' ' ]]; then

         echo -n '_'

      else

         printf '=%02X' "'${c}"

      fi

   done

   echo "?="

}

# output message header in e-mail/mbox format

mail_header() {

   local item=$1 author=$2 title=$3 posted=$4

   local -a mname=( 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )

   local year=0001 month=01 day=01 time="00:00:00" wd addr="unknown" name

   # "date -d" is not portable, therefore we do manual processing

   if [[ ${posted} == +([0-9])-+([0-9])-+([0-9]) ]]; then

      year=${posted%%-*}

      month=${posted#*-}; month=${month%%-*}

      day=${posted##*-}

   fi

   wd=$(day_of_week "${year}" "${month}" "${day}")

   if [[ ${author} == *([^\<\>])\<+([^\<\>])\> ]]; then

      # GLEP 42 says this must look like "Real Name <email@address>"

      name=${author%%*( )<*}

      addr=${author##*<}; addr=${addr%%>*}

   elif [[ ${author} == +([^\<\>]) ]]; then

      addr=${author}

   fi

   [[ ${name} != *([[:ascii:]]) || ${name} =~ [\]\[()\<\>\",.:\;@\\] ]] \

      && name=$(rfc2047_encode "${name}")

   [[ ${title} != *([[:ascii:]]) ]] && title=$(rfc2047_encode "${title}")

   echo "From ${addr} ${wd} ${mname[${month##*(0)}]} ${day} ${time} ${year}"

   echo "From: ${name}${name+ }<${addr}>"

   #echo "Reply-To: DO NOT REPLY <devnull@localhost.invalid>"

   echo "Subject: ${title}"

   echo "Date: ${wd}, ${day} ${mname[${month##*(0)}]} ${year} ${time} +0000"

   echo "Message-Id: <glep42-${item}@gentoo.org>"

   echo "MIME-Version: 1.0"

   echo "Content-Type: text/plain; charset=UTF-8"

   echo "Content-Transfer-Encoding: 8bit"

}

### list action

describe_list() {

   echo "List news items"

}

do_list() {

   local item stat repo dir header line title posted i=1

   local ifs_save=${IFS-$' \t\n'}

   local -a repos dirs

   set -- $(find_items unread read)

   write_list_start "News items:"

   for item in "$@"; do

      stat=${item%%/*}; item=${item#*/}

      repo=${item%%/*}; item=${item#*/}

      find_repo_dir "${repo}"

      title="(${item} - no title)"

      posted=${item:0:10}

      [[ ${posted} == +([0-9])-+([0-9])-+([0-9]) ]] || posted="(no date) "

      header=$(read_item "${dir}" "${item}" header) \

         || title="(${item} - removed?)"

      IFS=$'\n'

      for line in ${header}; do

         case "${line%%:*}" in

            Title) title=${line##*([^:]):*([[:space:]])} ;;

            Posted) posted=${line##*([^:]):*([[:space:]])} ;;

         esac

      done

      IFS=${ifs_save}

      if [[ ${stat} = unread ]]; then

         write_numbered_list_entry $((i++)) "$(highlight \

            "unread  ${posted}$(space $((12 - ${#posted})))${title}")"

      else

         write_numbered_list_entry $((i++)) \

            "read    ${posted}$(space $((12 - ${#posted})))${title}"

      fi

   done

   [[ $# -eq 0 ]] && ! is_output_mode brief \

      && write_kv_list_entry "(none found)" ""

}

### count action

describe_count() {

   echo "Display number of news items"

}

describe_count_options() {

   echo "new : Count unread news items (default)"

   echo "all : Count all news items"

}

do_count() {

   local status

   [[ $1 = all ]] && status="unread read" || status="unread"

   set -- $(find_items ${status})

   echo $#

}

### read action

describe_read() {

   echo "Read news items"

}

describe_read_options() {

   echo "--mbox : Output in mbox format"

   echo "--raw : Output in raw format"

   echo "new : Read unread news items (default)"

   echo "all : Read all news items"

   echo "item : Number of item (from 'list' action)"

}

describe_read_parameters() {

   echo "<item>..."

}

do_read() {

   local -a items=( $(find_items unread read) ) repos dirs

   local n=${#items[@]} format=cooked ifs_save=${IFS-$' \t\n'}

   local item repo stat dir header line i seq repos_upd author title posted

   while [[ $# -gt 0 ]]; do

      case ${1##--} in

         mbox) format=mbox ;;

         raw) format=raw ;;

         *) break ;;

      esac

      shift

   done

   # expand special values "new" and "all"

   if [[ $# -eq 0 || $1 = new || $1 = all ]]; then

      for (( i = 1; i <= n; i++ )); do

         [[ $1 = all || ${items[i-1]%%/*} = unread ]] || break

         seq="${seq} ${i}"

      done

      set -- ${seq}

      [[ $# -eq 0 && ${format} = cooked ]] && ! is_output_mode brief \

         && echo "No news is good news."

   fi

   for i in "$@"; do

      if ! is_number "${i}" || [[ ${i} -lt 1 || ${i} -gt ${#items[@]} ]]

      then

         write_warning_msg "Bad item number: ${i}"

         continue

      fi

      item=${items[--i]}

      stat=${item%%/*}; item=${item#*/}

      repo=${item%%/*}; item=${item#*/}

      find_repo_dir "${repo}"

      case ${format} in

      raw)

         read_item "${dir}" "${item}"

         ;;

      cooked)

         write_list_start "${item}"

         header=$(read_item "${dir}" "${item}" header)

         IFS=$'\n'

         for line in ${header}; do

            case "${line%%:*}" in

               Title)

                  write_kv_list_entry "${line%%:*}" \

                     "$(highlight "${line##*([^:]):*([[:space:]])}")"

                  ;;

               Author|Translator|Posted|Revision)

                  write_kv_list_entry "${line%%:*}" \

                     "${line##*([^:]):*([[:space:]])}"

                  ;;

            esac

         done

         IFS=${ifs_save}

         echo

         read_item "${dir}" "${item}" body

         ;;

      mbox)

         if header=$(read_item "${dir}" "${item}" header); then

            author=""; title=""; posted=""

            IFS=$'\n'

            for line in ${header}; do

               case "${line%%:*}" in

                  Author) : ${author:=${line##*([^:]):*([[:space:]])}} ;;

                  Title) : ${title:=${line##*([^:]):*([[:space:]])}} ;;

                  Posted) : ${posted:=${line##*([^:]):*([[:space:]])}} ;;

               esac

            done

            mail_header "${item}" "${author}" "${title}" "${posted}"

            echo

            for line in ${header}; do

               case "${line%%:*}" in

                  Title|Author|Translator|Posted|Revision)

                     echo "${line}" ;;

               esac

            done

            IFS=${ifs_save}

            echo

            read_item "${dir}" "${item}" body | sed 's/^>*From />&/;$q'

         else

            false

         fi

         ;;

      esac

      [[ $? -ne 0 ]] \

         && write_warning_msg "News item \"${item}\" no longer exists"

      echo

      [[ ${stat} = unread ]] || continue

      # move from "unread" to "read"

      unset items[i]

      items[n++]=read/${repo}/${item}

      has ${repo} ${repos_upd} || repos_upd="${repos_upd} ${repo}"

   done

   # update lists of read/unread items

   for repo in ${repos_upd}; do

      write_item_list read ${repo} && write_item_list unread ${repo}

   done

}

### unread action

describe_unread() {

   echo "Mark read news items as unread again"

}

describe_unread_options() {

   echo "all : Mark all news items as unread"

   echo "item : Number of item (from 'list' action)"

}

describe_unread_parameters() {

   echo "<item>..."

}

do_unread() {

   local -a items=( $(find_items unread read) )

   local n=${#items[@]} item repo stat i seq repos_upd

   # expand special value "all"

   if [[ $1 = all ]]; then

      for (( i = 1; i <= n; i++ )); do

         seq="${seq} ${i}"

      done

      set -- ${seq}

   fi

   for i in "$@"; do

      if ! is_number "${i}" || [[ ${i} -lt 1 || ${i} -gt ${#items[@]} ]]

      then

         write_warning_msg "Bad item number: ${i}"

         continue

      fi

      item=${items[--i]}

      stat=${item%%/*}; item=${item#*/}

      repo=${item%%/*}; item=${item#*/}

      [[ ${stat} = read ]] || continue

      # move from "read" to "unread"

      unset items[i]

      items[n++]=unread/${repo}/${item}

      has ${repo} ${repos_upd} || repos_upd="${repos_upd} ${repo}"

   done

   # update lists of unread/read items

   for repo in ${repos_upd}; do

      write_item_list unread ${repo} && write_item_list read ${repo}

   done

}

### purge action

describe_purge() {

   echo "Purge read news"

}

do_purge() {

   local -a items=( $(find_items read) )

   local item i repos

   # find repos with nonempty lists

   for (( i = 0; i < ${#items[@]}; i++ )); do

      item=${items[i]#*/}

      has "${item%%/*}" ${repos} || repos="${repos} ${item%%/*}"

   done

   # purge list of read items

   items=()

   for repo in ${repos}; do

      write_item_list read ${repo}

   done

}
```

----------

## orionbelt

Bonjour lefoid,

Le même problème avec eselect m'a tourmenté pendant pas mal de temps...  Java ne tournait non plus parce  que les commandes Java exécutent eselect dans leurs scripts. En plus, d'autres commandes de portage (emerge, eix, equery) avaient des problèmes. Par exemple, equery n'arrivaient pas à trouver des packages qui étaient déjà installés.

Au moins dans mon cas, la cause s'est avérée être la variable d'environnement ROOT, que je définissais dans mon .cshrc car un de mes scripts en avait besoin... Or, portage utilise cette même variable, quand définie, pour signaler le root filesystem ("man emerge", lire sous "ENVIRONMENT OPTIONS") !

En pratique, fais:

```
 printenv ROOT 
```

Si la réponse n'est pas vide (càd, s'il te donne quelque chose), fais simplement:

```
 unsetenv ROOT 
```

et le problème devrait être résolu.

----------

## lefoid

Salut,

J'ai fait ce que tu m'as dit :

```
falcon patrice # printenv ROOT

falcon patrice # 
```

Comme il n'y a rien, j'en conclus que ça ne vient pas de là.

Néanmoins, par acquis de conscience, j'ai voulu faire un unsetenv,

mais je n'ai pas cette commande. J'ai unset tout court.

Bref, eselect ne fonctionne toujours pas normalement. (toujours pas la liste

des news et des profile)

Merci quand même.

----------

## orionbelt

 *lefoid wrote:*   

> J'ai fait ce que tu m'as dit :
> 
> ```
> falcon patrice # printenv ROOT
> 
> ...

 

En effet... Désolé que ça change rien...

 *lefoid wrote:*   

> Salut,
> 
> Néanmoins, par acquis de conscience, j'ai voulu faire un unsetenv,
> 
> mais je n'ai pas cette commande. J'ai unset tout court.

 

Les commandes setenv et unsetenv sont des commandes du C shell (csh). Si ton shell est le bash (echo $0), il faut effectivement utiliser unset ROOT. Mais, malheureusement, il n'y a pas de raison de le faire vu le résultat de printenv...

----------

## lefoid

Salut,

Bon, ça avance un peu ...

Je viens de faire un :

```
mkdir /profiles

cp -Rd /usr/portage/profiles/* /profiles
```

Et, j'ai récupéré la liste des profils !

Je sais, j'ai un peu triché. Du coup, j'ai setté le profil dont

j'avais besoin, et il me compile une vingtaine de paquets.

Je verrai à l'issue si ça a modifié quelque chose avec les

news. Peut-être vais-je devoir faire pareil ?

Problème : lors du prochain changement, je ne le verrai sans doute pas.

----------

## Poussin

fais plutot un

```

ln -s /usr/portage/profiles /profiles

```

mais ce n'est quand même pas normal :/

----------

## lefoid

Salut,

En faisant un :

```
emerge eselect
```

ce matin, j'obtiens au début de la compil, le message suivant :

 *Quote:*   

> !!! /etc/make.profile is not a symlink and will probably prevent most merges.
> 
> !!! It should point into a profile within /usr/portage/profiles/
> 
> !!! (You can safely ignore this message when syncing. It's harmless.)

 

Peut-être est ce là le problème ?

EDIT : je viens de créer le symlink et re emerger eselect mais ce n'est pas la solution.

----------

## boozo

amha c'est un bug (un peu dans ce goût-là d'ailleurs) mais le problème c'est pour le qualifier.

Depuis le départ avec eselect news on s'est focalisé sur lui mais ce problème de $env est peut-être sans lien direct juste une manifestation   :Sad: 

----------

## lefoid

Salut,

C'est vrai que ça ressemble bien au bug que tu indiques.

Comme j'ai du temps à perdre (mmmff), je viens de vérifier quels étaient les modules

qui ne fonctionnent pas. Et seuls profile et news semblent être concernés.

Et, après avoir "setté" le bon profil, je viens de lancer un nième :

```
emerge -e system && emerge -e world
```

Résultats lundi si tout va bien   :Smile: 

----------

## lefoid

Salut,

Oui, je sais, on est mardi !

Bref, rien n'a changé. Ah, si, je ne peux plus

accéder à mes disques durs (plus de montage automatique semble-t-il).

Mais ça, je vais trouver ...

Par contre, eselect ...

A bientôt !

----------

## lefoid

Salut,

Eh bien, suite à la mise à jour d'eselect ce jour, plus de problèmes   :Smile: 

Merci pour votre aide à tous.

A bientôt ...

----------

