from twisted 2.0.0: Traceback (most recent call last): File "setup.py", line 20, in ? from twisted import copyright File "./twisted/__init__.py", line 21, in ? raise ImportError, "you need zope.interface installed (http://zope.org/Products/ZopeInterface/)" ImportError: you need zope.interface installed (http://zope.org/Products/ZopeInterface/) !!! ERROR: dev-python/twisted-2.0.0 failed. net-zope/zopeinterface-3.0.1 (18/32) would have been merged later. Every single merge had to be Ctrl-C'ed, python-updater doesn't exit correctly Reproducible: Always Steps to Reproduce: 1. emerge lots of python programs, including twisted 2. update python to 2.4 3. run python-updater Actual Results: see error above Expected Results: fix my python programs ;-) Portage 2.0.51.22-r1 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r0, 2.6.12-rc5 i686) ================================================================= System uname: 2.6.12-rc5 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.6.12 ccache version 2.4 [enabled] dev-lang/python: 2.3.5, 2.4.1 sys-apps/sandbox: 1.2.8 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.16-r1 sys-devel/libtool: 1.5.18 virtual/os-headers: 2.6.11-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/" LDFLAGS="-Wl,-O1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowext X a52 aac aalib acpi alsa apache2 apm avi bash-completion berkdb bidi bigger-fonts bitmap-fonts bootsplash ccache cdda cddb cdparanoia cdr chroot crypt cups curl dga divx4linux dv dvd dvdr dvdread ecc eds emboss encode esd fam fbcon ffmpeg fftw foomaticdb fortran gd gd-external gdbm gif gimp gimpprint glep gmp gphoto2 gpm graphviz gstreamer imagemagick imlib ipv6 jabber jack jikes jit jpeg jpeg2k kde kdeenablefinal ladcca libg++ libwww lm_sensors lzo lzw-tiff mad matroska mhash mikmod mime mjpeg mmx mmxext mng motif mozilla mozsvg mp3 mpeg mpeg4 ncurses nls nptl nvidia ogg oggvorbis openal opengl oss pam parse-clocks pdf pdflib perl physfs png python qt quicktime readline real recode ruby samba sdl spell sqlite sse sse2 ssl tcltk tcpd tetex threads tiff transcode truetype truetype-fonts type1-fonts utf8 vorbis win32codecs wxgtk1 xine xml2 xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY
i thought it would just fail silently and tell you at the end what it failed to fix and you could do it yourself. i guess the thing is you can't abort the whole process if one package fails because others might still work without that package? as i don't have twisted-2.0 and zope installed, i'm not quite sure how the dependencies with those packages work out in python-updater. any of the other python devs care the comment?
I'm using depreorder.py within ghc-updater, which is a near-clone of python-updater, and I also discovered that the dependency ordering isn't correct. If I understand the code correctly, it fails with nested dependencies. Assume package A depends on B, and package B depends on C. Then the original code will create a list [B, A, C, B], and then remove duplicates yielding [B, A, C], which is obviously wrong. I've patched depreorder.py to use a topological sort of the dependency cache instead. I hope that the code is correct. It at least seems to work in the few limited test cases I've put it through. Would be nice if you'd consider this patch for inclusion. Cheers, ks
Created attachment 68252 [details, diff] the patch for depreorder.py
Thanks Andres, added your patch to python-updater in 2.4.2-r1. Not going to change the ctrl-C handling at this moment.