# [portage] Update libjpeg (non résolu)

## prunkdump

Bonjour !

Voilà suite à un problème avec POV-Ray qui n'arrivait pas à gérer des image jpeg à cause d'une erreur de type :

```
Possible Parse Error: jpeglib: JPEG parameter struct mismatch: library thinks

 size is 484, caller expects 488
```

Je me suis sit qu'il devait y avoir un problème avec mes en-têtes jpeg. J'emerge alors (bêtement) le paquet jpeg et (il me semble ! je n'en suis pas sur ! ) jpeg-8a s'installe en mettant à jour ma bibliothèque jpeg (pas de NewSlot ! enfin il me semble !).

Dès que le paquet est installé tout le système plante. Au redémarrage tout ce qui utilise libjpeg ne marche plus. J'installe alors (encore bêtement) une libjpeg plus ancienne, jpeg-7-r1, en espérant retrouver celle qui était précédemment installé sur mon sytême. Celle-ci se met en NewSlot. Bien entendu aucun des programmes ne remarche.

Je lance alors :

```
revdep-rebuild -i -library libjpeg*.so.*
```

Qui m'installe 40 ebuild dont glibc et jpeg lui même   :Confused: 

Je relance revdep-rebuild avec le -i pour vérifier que tout c'est bien passé et il me revient de nouveau 35 paquets !   :Confused: 

POV-Ray en marche toujours pas   :Confused:  (il était dans la liste de revdep-rebuilt)

------------------------------------

Bilan 

```

prunkPC ~ $ equery list jpeg

[ Searching for package 'jpeg' in all categories among: ]

 * installed packages

[I--] [M~] media-libs/jpeg-7-r1 (7)

[I--] [  ] media-libs/jpeg-8a (0)

[I--] [  ] media-libs/openjpeg-1.3-r2 (0)

```

Que faut il faire pour obtenir un systême propre ? Enlever jpeg-7-r1 qui est instable et mettre jpeg-6b-r9 à la place ? Ne garder que jpeg-8a et relancer revdep-rebuild ? Je suis perdu   :Crying or Very sad: Last edited by prunkdump on Fri Jul 09, 2010 8:24 pm; edited 1 time in total

----------

## netfab

Hello,

 *prunkdump wrote:*   

> Que faut il faire pour obtenir un systême propre ?

 

Eviter d'emerger tout et n'importe quoi, n'importe comment, et dans le désordre. Ton système est t'il à jour ?

Fais voir ton emerge --info.

Ensuite, fais voir le contenu de ton /var/lib/portage/world.

La première chose à faire est de nettoyer ce fichier. En principe, il ne doit contenir aucune dépendance.

Ensuite il faut effectuer une mise à jour complète du système, puis, il faut suivre les éventuelles instructions de mise à jour données par portage.

Et seulement après, à la fin, lancer un revdep-rebuild pour vérifier que tout tourne rond.

Une fois que tout est ok, un petit --depclean --ask pour nettoyer le superflu.

----------

## prunkdump

Alors je commence par le emerge --info :

```

# emerge --info

Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.11.2-r0, 2.6.31.12-rt20 i686)

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

System uname: Linux-2.6.31.12-rt20-i686-AMD_Athlon-tm-_XP_2500+-with-gentoo-1.12.11.1

Timestamp of tree: Mon, 28 Jun 2010 11:45:02 +0000

app-shells/bash:     4.0_p28

dev-java/java-config: 2.1.8-r1

dev-lang/python:     2.4.4-r13, 2.5.2-r7, 2.6.5-r2, 3.1.2-r3

dev-util/cmake:      2.6.4

sys-apps/baselayout: 1.12.11.1

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.13, 2.63-r1

sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11.1

sys-devel/binutils:  2.18-r3

sys-devel/gcc:       4.1.2, 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="x86"

ACCEPT_LICENSE="*"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon-xp -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /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"

CXXFLAGS=""

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://91.121.124.139/gentoo-distfiles/ http://mirror.ovh.net/gentoo-distfiles/ ftp://mirror.ovh.net/gentoo-distfiles/ ftp://gentoo.imj.fr/pub/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ "

LANG="C"

LDFLAGS="-Wl,-O1"

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="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage/layman/pro-audio"

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

USE="3dnow 3dnowext X aac acl alsa berkdb bzip2 cairo cli consolekit cracklib crypt cups cxx dbus dri dssi exif flac fortran gdbm gnome gpm gtk hal iconv ipv6 jack jpeg jpeg2k lame midi mmx modules mp3 mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre perl png ppds pppd python readline reflection sdl session sndfile spl sse ssl sysfs tcpd tiff unicode vorbis vst x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa via vmware voodoo" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

Ensuite voici le contenu de mon /var/lib/portage/world, il est certain que beaucoup de ces ebuilds n'ont pas été explicitement installé par mes soins mais découle de l'installation de tel ou tel programmme ( je n'ai jamais fait de "emerge convmv" par exemple ) :

```

app-admin/eselect

app-admin/gamin

app-admin/syslog-ng

app-arch/unrar

app-cdr/cdrtools

app-editors/emacs

app-emulation/wine

app-office/openoffice

app-office/texmaker

app-pda/gtkpod

app-portage/gentoolkit

app-portage/layman

app-portage/mirrorselect

app-text/convmv

app-text/evince

app-text/gnome-doc-utils

dev-java/sun-jdk

dev-perl/sdl-perl

dev-python/gnome-python

dev-python/pycairo

dev-python/pygobject

dev-python/pygtk

dev-texlive/texlive-langfrench

dev-vcs/subversion

games-fps/quake3

games-fps/quake3-defrag

gnome-base/gdm

gnome-base/gnome

gnome-base/gnome-panel

gnome-base/nautilus

mail-client/thunderbird

media-gfx/blender

media-gfx/eog

media-gfx/gimp

media-gfx/hugin

media-gfx/imagemagick

media-gfx/povray

media-libs/dssi

media-libs/freeglut

media-libs/glew

media-libs/jpeg

media-libs/jpeg:7

media-libs/libexif-gtk

media-libs/libjackasyn

media-libs/libsdl

media-libs/libsoundtouch

media-plugins/alsa-plugins

media-plugins/caps-plugins

media-plugins/dssi-vst

media-plugins/swh-plugins

media-sound/alsa-utils

media-sound/audacity

media-sound/bristol

media-sound/grip

media-sound/gtkguitune

media-sound/hydrogen

media-sound/jack-audio-connection-kit

media-sound/jack-rack

media-sound/lash

media-sound/qjackctl

media-sound/qtractor

media-sound/rosegarden

media-sound/timidity++

media-sound/zynaddsubfx

media-video/avidemux

media-video/ffmpeg

media-video/mplayer

media-video/nvclock

media-video/vlc

media-video/vobcopy

media-video/xine-ui

net-analyzer/nmap

net-fs/mount-cifs

net-fs/samba

net-im/skype

net-misc/dhcpcd

net-p2p/vuze

net-print/cups

net-print/hplip

sci-libs/fftw

sci-libs/pgplot

sys-apps/ddcxinfo-knoppix

sys-apps/hdparm

sys-apps/pciutils

sys-boot/grub

sys-boot/syslinux

sys-devel/binutils-config

sys-devel/crossdev

sys-devel/gcc

sys-devel/gcc-config

sys-fs/dosfstools

sys-fs/fuse

sys-fs/ntfs3g

sys-fs/ntfsprogs

sys-kernel/gentoo-sources

sys-kernel/module-rebuild

sys-kernel/rt-sources

sys-libs/pam

virtual/jdk

www-client/mozilla-firefox

www-plugins/adobe-flash

x11-apps/mesa-progs

x11-apps/xdm

x11-base/xorg-drivers

x11-drivers/xf86-video-ati

x11-libs/cairo

x11-libs/gtk+

x11-misc/alacarte

```

Je ne sais pas ce que tu entend exactement par "une mise à jour complète du système". Si c'est le fait d'avoir tous les ebuilds à jour par un "emerge --update --deep world" c'est clair que ça n'a pas été fait au vu du nombre de programmes que j'ai installé et du peu d'intérêt qu'ont certain d'être à jours. Par contre si il s'agit simplement d'avoir portage à jour, oui, je l'ai mis à jour dès que les messages me le demandaient (par exemple après un "emerge --sync").

Je n'ai jamais utilisé revdep-rebuild avant ce problème.

Je n'ai jamais fait de "depclean".

Je donne la fin de la commande "emerge -pv --update --deep world" pour donner une idée du temps de compilation nécéssaire :

```

[ebuild     U ] mail-client/thunderbird-3.0.5 [2.0.0.23] USE="alsa%* crypt dbus%* gnome -bindist -custom-optimization% -ldap -lightning% -mozdom -startup-notification% -system-sqlite% (-debug%) (-ipv6%*) (-moznopango%) (-replytolist%) (-xinerama%)" LINGUAS="-af -ar% -be -bg -bn% -bn_BD% -ca -cs -da -de -el -en -en_GB -en_US -es -es_AR -es_ES -et% -eu -fi -fr -fy% -fy_NL% -ga -ga_IE -gl% -he -hu -id% -is% -it -ja -ka% -ko -lt -nb -nb_NO -nl -nn -nn_NO -pa -pa_IN -pl -pt -pt_BR -pt_PT -ro% -ru -si% -sk -sl -sq% -sr% -sv -sv_SE -ta% -ta_LK% -tr -uk -vi% -zh -zh_CN -zh_TW (-mk%)" 0 kB [0]

[ebuild     U ] x11-plugins/enigmail-1.0.1-r3 [0.95.7-r5] USE="dbus%* gnome%* -custom-optimization% -startup-notification% -system-sqlite%" LINGUAS="(-ar%) (-ca%) (-cs%) (-de%) (-el%) (-es%) (-es_ES%) (-fi%) (-fr%) (-hu%) (-it%) (-ja%) (-ko%) (-nb%) (-nb_NO%) (-pl%) (-pt%) (-pt_BR%) (-ro%) (-ru%) (-sk%) (-sl%) (-sv%) (-tr%) (-zh%) (-zh_CN%)" 0 kB [0]

[blocks b     ] >=mail-client/thunderbird-3 (">=mail-client/thunderbird-3" is blocking x11-plugins/enigmail-0.95.7-r5)

[blocks B     ] net-fs/mount-cifs ("net-fs/mount-cifs" is blocking net-fs/samba-3.4.6)

Total: 309 packages (287 upgrades, 4 downgrades, 15 new, 3 in new slots, 2 uninstalls), Size of downloads: 557,920 kB

Conflict: 23 blocks (1 unsatisfied)

Portage tree and overlays:

 [0] /usr/portage

 [1] /usr/local/portage/layman/pro-audio

 * Error: The above package list contains packages which cannot be

 * installed at the same time on the same system.

```

Merci encore pour ton aide !

----------

## Picani

En fait dans /var/lib/portage/world tu ne dois avoir que les paquets que tu as installé toi. Quand tu veux réinstallé une dépendance (comme jpeg) tu dois mettre --oneshot au emerge pour qu'il ne mette pas le paquet dans world. Donc pour commencer tu fait une copie  de ton /var/lib/portage/world dans ton /root par exemple et tu vires tous les paquets qui sont dans /var/lib/portage/world qui ne sont pas des logiciels ou des bibliothèques que tu n'as pas installé toi pour être utilisé par toi. Tous ce qui est dans le world comme dépendance dégage.

Ensuite tu fais emerge --sync && emerge --update --deep --newuse --ask --verbose world pour mettre ton système bien à jour puis emerge --depclean --ask et enfin revdep-rebuild et tout devrais remarcher.

Par exemple, je peux te dire que :

```
app-admin/eselect 

app-admin/gamin 

app-cdr/cdrtools 

app-text/convmv 

app-text/gnome-doc-utils 

dev-python/pycairo 

dev-python/pygobject 

dev-python/pygtk 

media-libs/jpeg 

media-libs/jpeg:7 

media-libs/libexif-gtk 

media-libs/libjackasyn 

media-libs/libsdl 

media-libs/libsoundtouch 

media-video/ffmpeg 

sys-boot/grub 

sys-boot/syslinux 

sys-devel/binutils-config 

sys-devel/gcc 

sys-devel/gcc-config 

x11-apps/xdm 

x11-libs/cairo 

x11-libs/gtk+ 

```

dégagent sur, pour les autres je ne connais pas, à toi de voir.

----------

## ghoti

Bien résumé !

J'ai juste un petit doute pour sys-boot/grub : à première vue, rien de ce qui est installé ne semble en dépendre. Sa place serait donc bien dans world  :Wink: 

----------

## Picani

En effet, j'ai laissé aller le copier-coller   :Laughing: 

----------

## prunkdump

Bon ça y est j'ai fait un peu le ménage dans mon /var/lib/portage/world :

```

app-admin/eselect

app-admin/syslog-ng

app-arch/unrar

app-editors/emacs

app-emulation/wine

app-office/openoffice

app-office/texmaker

app-pda/gtkpod

app-portage/gentoolkit

app-portage/layman

app-portage/mirrorselect

app-text/evince

dev-java/sun-jdk

dev-texlive/texlive-langfrench

dev-vcs/subversion

games-fps/quake3

games-fps/quake3-defrag

gnome-base/gnome

mail-client/thunderbird

media-gfx/blender

media-gfx/gimp

media-gfx/hugin

media-gfx/imagemagick

media-gfx/povray

media-libs/dssi

media-libs/freeglut

media-libs/glew

media-libs/libexif-gtk

media-libs/libjackasyn

media-libs/libsdl

media-plugins/caps-plugins

media-plugins/dssi-vst

media-plugins/swh-plugins

media-sound/alsa-utils

media-sound/audacity

media-sound/grip

media-sound/gtkguitune

media-sound/hydrogen

media-sound/jack-audio-connection-kit

media-sound/jack-rack

media-sound/lash

media-sound/qjackctl

media-sound/qtractor

media-sound/rosegarden

media-sound/zynaddsubfx

media-video/avidemux

media-video/ffmpeg

media-video/mplayer

media-video/nvclock

media-video/vlc

media-video/vobcopy

media-video/xine-ui

net-analyzer/nmap

net-fs/samba

net-im/skype

net-misc/dhcpcd

net-p2p/vuze

net-print/cups

net-print/hplip

sci-libs/fftw

sci-libs/pgplot

sys-apps/hdparm

sys-apps/pciutils

sys-boot/grub

sys-boot/syslinux

sys-devel/binutils-config

sys-devel/crossdev

sys-fs/dosfstools

sys-fs/fuse

sys-fs/ntfs3g

sys-fs/ntfsprogs

sys-kernel/gentoo-sources

sys-kernel/module-rebuild

sys-kernel/rt-sources

sys-libs/pam

virtual/jdk

www-client/mozilla-firefox

www-plugins/adobe-flash

x11-apps/mesa-progs

x11-base/xorg-drivers

x11-drivers/xf86-video-ati

```

Reste donc à mettre tout le sytème à jour. J'ai une question à ce propo :

J'ai pris l'habitude de jouer avec la variable USE indépendamment sur chaque paquet pour activer ou désactiver diverses fonctionnalités ( ex: j'ai besoin de qt pour rosegarden mais je ne veux pas un support de qt en général sur tout le systême ). Est-ce que c'est un mauvais comportement ? Dans le cas contraire comment faire pour maintenir ces paramètres USE spécifiques lors des mises à jours. En fait l'option --newuse à un caractère particulier pour moi puisque je n'utilise pas de paramètres USE globaux.

Vous allez dire que je ne sais pas trop maintenir une gentoo   :Rolling Eyes: 

 Merci en tout cas  :Very Happy: 

----------

## xaviermiller

Comment utilises-tu tes USE spécifiques ? lors de l'invocation d'emerge ou dans /etc/portage/package.use ?

le flag --newuse est utile même dans ton cas, car les use peuvent changer globalement. Donc à utiliser toujours en combinaison avec --update  :Wink: 

----------

## prunkdump

Oui lors de l'invocation d'emerge. Par exemple je fais :

```

USE="qt3support" emerge rosegarden

```

C'est dans /etc/portage/package.use que je peux mettre mes paramètres USE spécifiques ou c'est à éviter de toute façon ?

----------

## xaviermiller

oui, mets tes paramètres soit dans make.conf (en global), soit dans package.use

Sinon, tu perds ces USE à chaque mise à jour...

----------

## geekounet

Peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plait ? Merci  :Smile: 

----------

## prunkdump

Oui je fais cela dès que j'ai fini d'essayer ce qui est proposé ci-dessus.

----------

## Picani

Juste une question : ce que tu as posté c'est ce que tu as enlevé ou laissé dans ton world ? Parce que dans les 2 cas il y a à la fois des paquets que tu dois garder et d'autres que tu devrais enlever (eselect, evince, libexif-gtk, libjackasyn, libsdl, ffmpeg, etc ...)

Enfin tous ça pour te dire que tu devrais lire le manuel, particulièrement la section qui traite de Portage (USES et fichiers de configs) et que tu devrais renétoyer.

----------

## prunkdump

Bon je galère toujours.

Alors d'abord pour Picani. Les bibliothèques que tu vois dans mon world sont celles que j'utilise en programmation. Donc il est normal qu'il y ai :

```

media-gfx/imagemagick

media-libs/freeglut

media-libs/glew

media-libs/libexif-gtk 

media-libs/libsdl

media-video/ffmpeg

sci-libs/fftw

sci-libs/pgplot

```

Ensuite je suis d'accord que je pourrai encore enlever :

```

app-admin/eselect 

app-text/evince 

media-libs/libjackasyn

```

Et j'ai un doute sur :

```

dev-java/sun-jdk 

```

C'est pas l'environnement java tout simplement ?

----------

## prunkdump

Ensuite le emerge --update --newuse --deep --ask --verbose world marche très mal ! Il y à beaucoup trop d'erreurs !

Par exemple pour l'instant je suis bloqué au paquet dev-cpp/pangomm-2.26.0. On dirait que portage essaye de mettre ce paquet à jours sans mettre à jour en priorité les dépendances.

-> D'abord il y avait un problème au script configure qui m'a obligé à mettre à jour cairo manuellement : "emerge --oneshot cairo"

-> Maintenant il y a une erreur en pleine compilation !

(le problème est très bien décrit ici https://bugs.gentoo.org/show_bug.cgi?id=319029)

Je ne sais plus quoi faire. Il faut tenter un revdep-rebuild avant le "emerge world" ? On dirait que portage tente de mettre à jours des paquets obsoletes ou alors qu'il ne le fait pas dans le bon ordre ...

----------

## xaviermiller

ajoute 

```
--with-bdeps y
```

 dans ta commande, les dépendances seront ainsi aussi mises à jour.

----------

## prunkdump

Malheuresement, l'ordre des paquets a un peu changé mais quand ça à été le tour de pangomm, même erreur !   :Confused: 

Les dépendance apparaissants dans le script configure n'ont toujours pas été installé avant pongomm (gdk-pixbuf, libxml, pangoft2, pangocairo, cairo, cairo-png, ...)

C'est un peu désespérant...

----------

## Picani

Essaye emerge --oneshot --with-bdeps y -uDNav cairo qui est je crois une grosse dépendance et en a plein, puis de nouveau emerge -uDNav world et tout le reste.

----------

## geekounet

T'oublies pas le titre du topic stp ? Pas besoin d'attendre la résolution du problème pour ça...

----------

