Relegate python to a new package

Bug #32228 reported by John Moser on 2006-02-21
8
Affects Status Importance Assigned to Milestone
ubuntu-meta (Ubuntu)
Medium
Matt Zimmerman

Bug Description

Okay, I removed all the Python stuff that nothing depended on, then deborphan'd away the extra libraries and cut off Dive Into Python (a book on python) and bicyclerepair (a python developer's tool). Then I ran apt-get for the basic ubuntu-desktop and found out how much shit was pulled out:

bluefox@icebox$ sudo apt-get install ubuntu-desktop
Password:
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  bicyclerepair diveintopython libadns1 libcurl3 libgd1-noxpm libgd2-noxpm
  libgdchart-gd1-noxpm libgeoip1 libgmp3c2 libid3-3.8.3c2a libmysqlclient15
  libnetcdf3 libpq4 libraptor1 librasqal0 librdf0 libsqlite0 libsqlite3-0
  python-adns python-cddb python-clientcookie python-crypto
  python-egenix-mxproxy python-egenix-mxstack python-egenix-mxtexttools
  python-egenix-mxtools python-epydoc python-eunuchs python-examples
  python-gadfly python-gd python-gdbm python-gdchart python-genetic
  python-geoip python-gnupginterface python-gst python-htmlgen python-htmltmpl
  python-id3lib python-imaging python-imaging-sane python-jabber
  python-kjbuckets python-ldap python-mysqldb python-netcdf python-newt
  python-numeric python-pam python-parted python-pexpect python-pgsql
  python-pisock python-pqueue python-pyao python-pylibacl python-pyogg
  python-pyopenssl python-pyorbit python-pyvorbis python-pyxattr
  python-reportlab python-simpletal python-soappy python-sqlite python-stats
  python-syck python-tk python-unit python-xmpp python2.4-adns
  python2.4-clientcookie python2.4-crypto python2.4-dictclient
  python2.4-egenix-mxdatetime python2.4-egenix-mxproxy
  python2.4-egenix-mxstack python2.4-egenix-mxtexttools
  python2.4-egenix-mxtools python2.4-epydoc python2.4-eunuchs
  python2.4-examples python2.4-gadfly python2.4-gd python2.4-gdbm
  python2.4-geoip python2.4-htmlgen python2.4-htmltmpl python2.4-id3lib
  python2.4-imaging python2.4-imaging-sane python2.4-jabber
  python2.4-kjbuckets python2.4-ldap python2.4-librdf python2.4-libxslt1
  python2.4-mysqldb python2.4-pam python2.4-pexpect python2.4-pgsql
  python2.4-pycurl python2.4-pylibacl python2.4-pyopenssl python2.4-pyxattr
  python2.4-reportlab python2.4-simpletal python2.4-soappy python2.4-sqlite
  python2.4-syck python2.4-tk python2.4-unit python2.4-xmpp
Suggested packages:
  vim-python idle pymacs libgd-tools geoip-bin netcdf-doc epydoc-doc
  python-imaging-doc python-egenix-mxdatetime python-numeric-tutorial
  python-reportlab-doc dictd python-ldap-doc mysql-server-4.1 mysql-server
  libcurl3-gnutls-dev pyopenssl-doc tix
Recommended packages:
  libadns1-bin raptor-utils redland-utils tetex-extra
  python2.4-reportlab-accel
The following NEW packages will be installed:
  bicyclerepair diveintopython libadns1 libcurl3 libgd1-noxpm libgd2-noxpm
  libgdchart-gd1-noxpm libgeoip1 libgmp3c2 libid3-3.8.3c2a libmysqlclient15
  libnetcdf3 libpq4 libraptor1 librasqal0 librdf0 libsqlite0 libsqlite3-0
  python-adns python-cddb python-clientcookie python-crypto
  python-egenix-mxproxy python-egenix-mxstack python-egenix-mxtexttools
  python-egenix-mxtools python-epydoc python-eunuchs python-examples
  python-gadfly python-gd python-gdbm python-gdchart python-genetic
  python-geoip python-gnupginterface python-gst python-htmlgen python-htmltmpl
  python-id3lib python-imaging python-imaging-sane python-jabber
  python-kjbuckets python-ldap python-mysqldb python-netcdf python-newt
  python-numeric python-pam python-parted python-pexpect python-pgsql
  python-pisock python-pqueue python-pyao python-pylibacl python-pyogg
  python-pyopenssl python-pyorbit python-pyvorbis python-pyxattr
  python-reportlab python-simpletal python-soappy python-sqlite python-stats
  python-syck python-tk python-unit python-xmpp python2.4-adns
  python2.4-clientcookie python2.4-crypto python2.4-dictclient
  python2.4-egenix-mxdatetime python2.4-egenix-mxproxy
  python2.4-egenix-mxstack python2.4-egenix-mxtexttools
  python2.4-egenix-mxtools python2.4-epydoc python2.4-eunuchs
  python2.4-examples python2.4-gadfly python2.4-gd python2.4-gdbm
  python2.4-geoip python2.4-htmlgen python2.4-htmltmpl python2.4-id3lib
  python2.4-imaging python2.4-imaging-sane python2.4-jabber
  python2.4-kjbuckets python2.4-ldap python2.4-librdf python2.4-libxslt1
  python2.4-mysqldb python2.4-pam python2.4-pexpect python2.4-pgsql
  python2.4-pycurl python2.4-pylibacl python2.4-pyopenssl python2.4-pyxattr
  python2.4-reportlab python2.4-simpletal python2.4-soappy python2.4-sqlite
  python2.4-syck python2.4-tk python2.4-unit python2.4-xmpp ubuntu-desktop
0 upgraded, 114 newly installed, 0 to remove and 0 not upgraded.
Need to get 1447kB/9741kB of archives.
After unpacking 41.8MB of additional disk space will be used.
Do you want to continue [Y/n]?

41.8M in 114 packages. This isn't even all of the python packages we have; it's just the ones installed by default.

How about relegating these to ubuntu-devel-python? It'd save on bloat.

 subscribe <email address hidden>

Changed in ubuntu-meta:
assignee: nobody → sabdfl
Mark Shuttleworth (sabdfl) wrote :

I'd like to maintain the position that a standard Ubuntu system is "highly scriptable" in Python - for desktop app extension (Gimp plugins), OpenOffice, as well as server-side extension (CGI etc). Would consider leaving these in main and not installing by default, but think that deserves wider discussion.

John Moser (nigelenki) wrote :

It doesn't seem like something a typical user or even an administrator would do, more something python fans would pick up.

If I wanted something to, say, replicate my users to LDAP or Active Directory, things that can easily be done with a few shell commands, I'd write a bash script. If I wanted something to sort large numbers of files, I'd write a bash script. If I wanted to add some kind of quick 'less' or 'file' thing to Nautilus, I'd write a bash script that used Zenity.

The only time I'd see someone using Python to script something is if the thing they're scripting integrates with Python (GIMP); or if they're actually writing some larger program (ClamTK et al, a GUI full-featured LDAP administration tool....). This places Python in the category of "Things only a developer is going to use," and thus in an area that I don't feel is interesting to the general user base even considering more saavy administrators.

I take your point about where we are NOW, however I'm looking towards a
time when Ubuntu is more widespread and solutions on top of it have a
need for greater integration. Python is my preferred platform for that
integration, and this is the early foundation of that.

Consider the implications of Microsoft's new scripting effort around the
shell (is it called Monad?) and C#. Perhaps mono is the right long term
solution (or iron-python on mono) but in the immediate present I would
like to maintain the position that Python on Ubuntu is ubiquitous and
present by default. I'd be happy to discuss this further over a beer,
but for now the high-level policy remains.

What is certainly open to tweaking and patching is the selection of
Python packages that are installed by default, I'm sure there is plenty
of room for optimisation it has not been reviewed (much) since a late
night in Brazil two years ago. Suggestions welcome, but "get rid of it
all" won't get more of a response from me.

John Moser (nigelenki) wrote :

Please don't say mono; anything that can't function without data-code confusion makes me scream. Programmers need to realize that program code and program data are not the same thing, and you should not be executing memory your program can modify (like, say, the stack...)

At any rate, I am not against python, just against it being installed by default. IMHO having a set of ubuntu-dev-python ubuntu-dev-c ubuntu-dev-c++ ubuntu-dev-mono (gack!) ubuntu-dev-java (gack!) ubuntu-dev-objective-c would be nicer, though nobody is going to maintain 40 different development seeds.

We work on a dependency system. A packge that wants python-gdchart (i.e. nessus) will request it, and it will be there in main. Slapping it into the base system by default won't get it used, which means it won't be better tested aside from that we'll know that package X conflicts with python-Y and removes ubuntu-desktop a lot faster. I see no honest gains from this.

Matt Zimmerman (mdz) wrote :

ubuntu-desktop in edgy no longer depends on these Python modules.

Changed in ubuntu-meta:
assignee: sabdfl → mdz
status: Unconfirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers