# Verständnisfrage: python-updater

## tazinblack

Hallo zusammen,

wenn ich das richtig verstehe sollten doch updates bei python so ablaufen:

1. mit eselect python auf die neue Version umstellen (bei mir von 2.6 auf 2.7)

2. python-updater laufen lassen.

3. alte Version (also hier 2.6 unmergen)

4. fertig

In der Reihenfolge hab ich das gemacht. Jetzt hab ich das Problem, wenn ich hinterher nochmal den python-updater laufen lassen, will er immer die gleichen Pakete neu bauen.

```

Calculating dependencies... done!

[ebuild   R    ] dev-libs/libxml2-2.7.8-r4  USE="readline -debug -doc -examples -icu -ipv6 -python -static-libs -test" 0 kB

[ebuild   R    ] sys-apps/file-5.09  USE="zlib -python -static-libs" 0 kB

[ebuild   R    ] media-libs/lcms-1.19  USE="zlib -jpeg -python -static-libs -tiff" 0 kB

[ebuild   R    ] sys-libs/cracklib-2.8.16  USE="nls -python" 0 kB

[ebuild   R    ] dev-libs/libxslt-1.1.26-r2  USE="crypt -debug -python -static-libs" 0 kB

```

Was soll mir das jetzt sagen? 

In der manpage vom python-updater steht 

```
 python-updater -- Find & rebuild packages broken due to a Python upgrade
```

.

Ist das normal, oder repariert das Ding nicht zuverlässig?

----------

## franzf

Irgend was ist da faul... Alle Pakete, die neu gebaut werden sollen, haben explizit "-python" gesetzt. Könnte es sein, dass du in /usr/lib64/python2.6 noch verwaiste Dateien hast?

----------

## tazinblack

nö, /usr/lib64/python2.6 gibts auf der Maschine nicht mehr.

Nur noch /usr/lib64/python2.7 und /usr/lib64/python3.1

Edit: Höchstens die vmware-tools von vmware bringen noch ein python2.6 mit, ich such mal ...

----------

## Finswimmer

Ich habe das gleiche Problem.

Ein "locate python2.6" brachte keine Treffer.

----------

## Finswimmer

```
$python-updater -v

 * Starting Python Updater...

 * Main active version of Python:  2.7

 * Active version of Python 2:     2.7

 * Active version of Python 3:     3.1

 * check "shared_linking" enabled.

 * check "static_linking" enabled.

 * check "pylibdir" enabled.

 * check "manual" enabled.

 * check "need_rebuild" enabled.

 *   Adding to list: app-accessibility/speech-dispatcher:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 *   Adding to list: app-office/libreoffice-bin:0

 *     check: static_linking [ Binaries linked against Python static libraries found:

 *       /usr/lib64/libreoffice/basis3.3/program/libpython2.6.so.1.0

 *     ]

 *   Adding to list: dev-libs/libgamin:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 *   Adding to list: dev-libs/libxslt:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 *   Adding to list: dev-vcs/subversion:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 *   Adding to list: net-analyzer/rrdtool:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 *   Adding to list: sys-apps/file:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 3.1 ]

 *   Adding to list: sys-libs/cracklib:0

 *     check: PYTHON_ABIS [ Previous Python ABIs: , new Python ABIs: 2.7 ]

 * emerge -Dv1 --keep-going app-accessibility/speech-dispatcher:0 app-office/libreoffice-bin:0 dev-libs/libgamin:0 dev-libs/libxslt:0 dev-vcs/subversion:0 net-analyzer/rrdtool:0 sys-apps/file:0 sys-libs/cracklib:0

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

Calculating dependencies... done!

[ebuild   R    ] net-analyzer/rrdtool-1.4.5-r1  USE="-doc -lua -perl -python -rrdcgi -ruby -tcl" 0 kB [0]

[ebuild   R    ] dev-vcs/subversion-1.6.17-r7  USE="bash-completion berkdb dso java kde nls vim-syntax webdav-neon -apache2 -ctypes-python -debug -doc -emacs -extras -gnome-keyring -perl -python -ruby -sasl -webdav-serf" 0 kB [0]

[ebuild   R    ] app-accessibility/speech-dispatcher-0.7.1-r1  USE="alsa espeak nas -ao -flite -pulseaudio -python" 0 kB [0]

[ebuild   R    ] dev-libs/libxslt-1.1.26-r2  USE="crypt -debug -python -static-libs" 0 kB [0]

[ebuild   R    ] sys-libs/cracklib-2.8.16  USE="nls -python" 0 kB [0]

[ebuild   R    ] sys-apps/file-5.09  USE="zlib -python -static-libs" 0 kB [0]

[ebuild   R    ] dev-libs/libgamin-0.1.10-r2  USE="-debug -python -static-libs" 0 kB [0]

[ebuild   R    ] app-office/libreoffice-bin-3.3.4  USE="java -gnome -offlinehelp" LINGUAS="de en_GB -af -ar -as -ast -be_BY -bg -bn -bo -br -brx -bs -ca -ca_XV -cs -cy -da -dgo -dz -el -en -en_ZA -eo -es -et -eu -fa -fi -fr -ga -gl -gu -he -hi -hr -hu -id -is -it -ja -ka -kk -km -kn -ko -kok -ks -ku -lo -lt -lv -mai -mk -ml -mn -mni -mr -my -nb -ne -nl -nn -nr -ns -oc -om -or -pa_IN -pl -pt -pt_BR -ro -ru -rw -sa_IN -sat -sd -sh -si -sk -sl -sq -sr -ss -st -sv -sw_TZ -ta -te -tg -th -tn -tr -ts -ug -uk -uz -ve -vi -xh -zh_CN -zh_TW -zu" 0 kB [1]

Total: 8 packages (8 reinstalls), Size of downloads: 0 kB

Portage tree and overlays:

 [0] /usr/portage

 [1] /usr/local/portage

Would you like to merge these packages? [Yes/No] 

```

Zeile 604 in python-updater:

 if [[ "${PYTHON_ABIS}" != "${new_PYTHON_ABIS}" ]]; then

...

veinfo 1 "check: PYTHON_ABIS [ Previous Python ABIs: ${PYTHON_ABIS}, new Python ABIs: ${new_PYTHON_ABIS} ]"

...

Das kann natürlich nicht gehen, da "" nicht gleich 2.7 ist...

EDIT:

mit dieser Zeile

if [[ "${PYTHON_ABIS}" != "${new_PYTHON_ABIS}" ]] && [[ "${PYTHON_ABIS}" != "" ]]; then

wird nur libreOffice zum neu installieren vorgeschlagen.

Das ist aber in Ordnung...

Nun ist die Frage, ob diese Änderung überhaupt Sinn macht? Oder nicht ungewollte Probleme bereitet.

Zum Beispiel weiß ich nicht, wie akkurat das Herausfiltern der ${PYTHON_ABIS} ist.

Evtl. ist das sogar ein gewollter Fallback, wenn genau dies nicht klappt.

Dann würden zwar unnötig Pakete neu installiert, aber niemals zu wenige...

----------

