-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
greetings, people of Mars,
I'm currently in process of submitting a *split python package*. That means that if everything goes well, it will be in Factory by tomorrow. (If something -does- go wrong, you can still check out devel:languages:python:Factory in buildservice.) Sorry for such short notice, but i had too much work actually making the package and didn't really have time to write long mails about it. I took care to break as little as possible, but i'm sure that mayhem will ensue regardless ;e)
What is a split python package, you ask?
It's rather simple. What used to be 'python' is now three different things:
* libpython2_6-1_0 (as per shared library packaging policy) This contains single file libpython2.6.so.1.0 Packages that only embed python will get this via autoreqprov, and that might or might not break them, depending on whether they explicitly require python, how they use the embedded python interpreter (it might or might not need site.py and parts of standard library) or if they use it at all. Some of those will need to explicitly require python, for others it might be sufficient to suggest it.
* python-base This is what you'd normally call "python". It has all of the files you want, except those listed below, but with added benefit of no BuildRequires. That means that python-base is built very very soon.
* python And finally, python itself. This contains the four modules that pull in extra dependencies: - - _hashlib.so - - sqlite3 module and _sqlite3.so - - ssl module and _ssl.so - - readline.so
I'm actually considering moving readline and its family of user-friendly-python-interpreter-with-history scripts to python-base. But i'm unsure of how deep in the build process is libreadline, and it's probably not worth it anyway - this split is designed to remove build-time dependencies, which it does well, and python without its subpackages doesn't have too many install-time dependencies.
Also, python-devel no longer depends on python-tk, nor does it depend on python, now it's a subpackage of python-base. That means that requiring python-devel does -not- pull in python, which (again) can break packages that depend on some of the missing modules.
%py_requires still list 'python' as required, though. I might later add something like %py_requires_base that only requires python-base.
Regarding python-devel, i've moved a few key files from it into python-base, so now it should be finally possible to install without python-devel. (what's now left is making python modules noarch and all will be well)
Now that you know all this, you might want to go and examine your packages that depend on python, if they actually need the extra modules or if python-base is sufficient for them.
have fun with it regards jan matejek
--------------------------------------------------------------------- To unsubscribe, e-mail: firstname.lastname@example.org For additional commands, e-mail: email@example.com