Mailinglist Archive: opensuse-packaging (47 mails)

< Previous Next >
[opensuse-packaging] split of python package
  • From: Jan Matějek <jmatejek@xxxxxxx>
  • Date: Wed, 17 Sep 2008 22:32:19 +0200
  • Message-id: <48D16953.9080505@xxxxxxx>
-----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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iEYEARECAAYFAkjRaVMACgkQjBrWA+AvBr98QwCeIJFUQG9Q3tbR+wWsmx8Fp247
vTsAn119PtGPoXDDlrm2nERgL0A3aUMm
=dwlG
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups