Re: A minimal subset of python (was Re: [@core] working definition for the minimal package set)
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 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 (e
A minimal subset of python (was Re: [@core] working definition for the minimal package set)
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