A minimal subset of python (was Re: [@core] working definition for the minimal package set)

2012-11-13 Thread David Malcolm
On Mon, 2012-11-12 at 11:28 -0500, Matthew Miller wrote:
 Okay, cool -- there's a lot of enthusiasm for a SIG for the core package
 set.
 
 So, first up on the SIG goals: clarifying our target.
 
 It's been suggested before that there's so many possibilities that this is
 useless, but the point here is to *pick* a reasonable choice as a group and
 to work with that (even if we can't get complete consensus). Then, later,
 when someone says but minimal could mean so many differen things! we
 simply say sure, but *this* is what we mean.
 
 I see three basic options for the target:
 
  A) kernel + init system and we're done
  B) boot to yum (with network): a text-mode bootstrap environment on which
 other things can be added by hand (or by kickstart)
  C) a traditional Unix command line environment with the expected basic
 tools available
 
 To me, 'C' is too wide for two reasons. First, it's too open for continual
 debate, because different people might expect different tools. Second, it's
 not necessarily the right base for the rest of the distribution, because
 many use cases might not really need that traditional Unix environment.
 
 I think 'A' is interesting and useful, but I don't think it should be our
 target, because it's not *useful enough*. We may want to eventually define a
 sub-group which covers just this tiny base (maybe with busybox?), but I
 think that's a different project.
 
 So that leaves me at *mostly B*, although I have some sympathy to the idea
 that we should include a few other things like a man page reader, since
 we're installing man pages, and a way to deliver e-mail to root, since we're
 installing things that send such mail. And I think the core environment
 should include ssh, but I'm open to the idea that even that should be an
 add-on.

If we're targeting yum as core functionality, that implies a subset of
Python: enough to run yum at least, but probably not much more.

This ties into https://bugzilla.redhat.com/show_bug.cgi?id=867962 which
I'd prefer to solve by introducing a python-core package.  I've heard
complaints from upstream that no-one can know what the python package
means on any given distribution (everyone splits it out in slightly
different ways).  Fixing that suggests that the python package should
become a metapackage that brings in everything built from the python
tarball.

If we go down this route, say in Fedora 19, then let's introduce a
python-core or somesuch, and define it loosely to be whatever yum
needs in the minimal environment.

Does this sound sane? (especially from the POV of yum developers)  What
does yum need?

Dave

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: A minimal subset of python (was Re: [@core] working definition for the minimal package set)

2012-11-13 Thread tim.laurid...@gmail.com
Did a quick scan and removed internals

random   : ['import random : (cli.py)']
subprocess   : ['from subprocess import Popen, PIPE :
(yum/packages.py)']
gettext  : ['import gettext : (output.py)']
fnmatch  : ['import fnmatch : (completion-helper.py)']
tempfile : ['import tempfile : (yum/misc.py)']
base64   : ['import base64 : (yum/misc.py)']
imp  : ['import imp : (yum/plugins.py)']
logging.config   : ['import logging.config : (yum/__init__.py)']
string   : ['import string : (yum/__init__.py)']
textwrap : ['from textwrap import fill : (yum/plugins.py)']
urlgrabber.grabber   : ['from urlgrabber.grabber import URLGrabError :
(output.py)']
iniparse.compat  : ['from iniparse.compat import NoSectionError,
NoOptionError, ParsingError : (yum/config.py)']
ConfigParser : ['from ConfigParser import ConfigParser,
ParsingError : (yum-updatesd.py)']
cmd  : ['import cmd : (shell.py)']
uuid : ['from uuid import uuid4 : (yum/misc.py)']
logging.handlers : ['import logging.handlers : (yum/logginglevels.py)']
threading: ['import threading : (yum-updatesd.py)']
shlex: ['import shlex : (completion-helper.py)']
signal   : ['import signal : (cli.py)']
cStringIO: ['from cStringIO import StringIO :
(yum/mdparser.py)']
locale   : ['import locale : (output.py)']
xml.sax.saxutils : ['import xml.sax.saxutils : (yum/misc.py)']
lzma : ['import lzma : (yum/misc.py)']
sha  : ['import sha : (yum/misc.py)']
urllib   : ['import urllib : (yum/misc.py)']
re   : ['import re # For YumTerm : (output.py)']
gpgme: ['import gpgme : (yum/misc.py)']
fcntl: ['import fcntl : (yum/rpmtrans.py)']
optparse : ['from optparse import OptionParser :
(yum-updatesd.py)']
xml.etree: ['from xml.etree import cElementTree :
(yum/mdparser.py)']
struct   : ['import struct : (yum/packages.py)']
logging  : ['import logging : (output.py)']
socket   : ['import socket : (yum/logginglevels.py)']
weakref  : ['from weakref import proxy as weakref :
(output.py)']
sqlitecachec : ['import sqlitecachec : (yum/yumRepo.py)']
os   : ['import os : (yum-updatesd.py)']
pdb  : ['import pdb : (yummain.py)']
struct, time, cStringIO, base64, types
curses   : ['import curses : (output.py)']
__builtin__  : ['import __builtin__ : (shell.py)']
operator : ['import operator : (yumcommands.py)']
rpm  : ['import rpm : (output.py)']
errno: ['import errno : (yummain.py)']
binascii : ['import binascii : (yum/misc.py)']
types: ['import types : (output.py)']
md5  : ['import md5 : (yum/misc.py)']
pwd  : ['import pwd : (output.py)']
gpgme.editutil   : ['import gpgme.editutil : (yum/misc.py)']
copy : ['import copy : (yum/config.py)']
hashlib  : ['import hashlib : (yum/misc.py)']
atexit   : ['import atexit : (yum/plugins.py)']
StringIO : ['import StringIO : (yum/__init__.py)']
exceptions   : ['import exceptions : (utils.py)']
sqlutils : ['from sqlutils import sqlite, executeSQL, sql_esc :
(yum/pkgtag_db.py)']
urlgrabber   : ['import urlgrabber : (yum/__init__.py)']
sqlite   : ['import sqlite : (yum/sqlutils.py)']
urlgrabber.progress  : ['from urlgrabber.progress import TextMeter,
TextMultiFileMeter : (output.py)']
shutil   : ['import shutil : (yum/misc.py)']
xattr: ['import xattr : (yum/packages.py)']
bz2  : ['import bz2 : (yum/misc.py)']
grp  : ['import grp : (yum/packages.py)']
sqlite3  : ['import sqlite3 as sqlite : (yum/sqlutils.py)']
stat : ['import stat : (yum/packages.py)']
warnings : ['import warnings : (yum/config.py)']
glob
urlgrabber.mirror: ['import urlgrabber.mirror : (yum/yumRepo.py)']
iniparse : ['from iniparse import INIConfig : (yum/config.py)']
sys  : ['import sys : (yum-updatesd.py)']
cElementTree : ['import cElementTree : (yum/mdparser.py)']
os.path  : ['import os.path : (yummain.py)']
urlparse : ['import urlparse : (yum/config.py)']

Tim


On Tue, Nov 13, 2012 at 5:09 PM, David Malcolm dmalc...@redhat.com wrote:

 On Mon, 2012-11-12 at 11:28 -0500, Matthew Miller wrote:
  Okay, cool -- there's a lot of enthusiasm for a SIG for the core package
  set.
 
  So, first up on the SIG goals: clarifying our target.
 
  It's been suggested before that there's so many possibilities that this
 is
  useless, but the point here is to *pick* a reasonable choice as a group
 and
  to work with that