On 05/07/10 23:11, Allan McRae wrote:
Hi all,
Here comes a rebuild so large that our TODO list had trouble handling it! Hopefully all packages are now in the rebuild list.... At a total of 518 packages long, it puts the combined libpng/libjpeg rebuild to shame.
Python-2.7 has been releases and will be the last 2.x official release of python. So it is time to switch to python-3.x as our /usr/bin/python and python-2.7 as our /usr/bin/python2. See http://wiki.archlinux.org/index.php/DeveloperWiki:Python_Todo_List for all the details about how to achieve this.
It is actually not that hard. I had a system converted when python-3.1 was released as a test run. The main key is to build packages in a clean chroot so that they detect and point their files to /usr/bin/python2. Some packages are stupid and require a sed at the end of packaging to fix that.
Because this rebuild is crazy stupid, I would like to plan when it is going to occur. We will need to clear out [testing] as much as possible over the coming week or two (what is happening with perl...). Also, a new KDE is a the beginning of next month so I would not want to conflict with that. Any other major rebuilds on the way? Should we do this in a separate repo?
Just to clarify why this _is_ happening. python-2.7 will enable USC4 (UTF8) and will not enable the usual stupid hack of including the previous pythons include path (the past has shown that this breaks too much). So ~500 out of the 518 packages are going to need to be rebuilt anyway... I think this is a major point people are missing. So the choice is: 1) massive rebuild now _and_ even more massive rebuild later when python3 is more widely used with lots of package renames (python3-foo would need renamed python-foo and python-foo would become python2-foo). We actually can not handle that dual rename with provides/replaces/conflicts.... 2) one massive rebuild allowing the packages to gradually transition their packages to python3. As in the wiki, there will be no forced package renaming (let the maintainers introduce a python2-foo package only if they want to supply a python2 and python3 version) but the description should be updated to say python2. #1 is completely crazy and can not be done cleanly on a rolling release distro. #2 is slightly crazy and works fine (one of my installs underwent this conversion). This has been in planning for over a year. I have trialled various ways of achieving this transition over the last year and have concluded that doing it with the python-2.7 release is optimal because: - we are doing most of the rebuilds anyway - it is early enough that our repo is not filled with python3-foo packages - most major python projects have basic python3 support in their developmental code or are working on it (see the number of GSoC projects doing this transition....) so we will see python3 packages soon. I am not delaying the inevitable, especially when the delay will hurt us more in the long run. Allan