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

tim.lauridsen at gmail.com tim.lauridsen at gmail.com
Tue Nov 13 17:26:37 UTC 2012


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 <dmalcolm at 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 (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 at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20121113/89076198/attachment.html>


More information about the devel mailing list