On Wed, Oct 29, 2008 at 4:51 PM, Andrey Vul <[EMAIL PROTECTED]> wrote:

> Found the code, and it's actually part of python (as of 2.4).
> Gentoo sets aliased to 1 when printing the system uname.
> /usr/lib/python2.{4,5,6}/platform.py:
>
> def _platform(*args):
>
>    """ Helper to format the platform string in a filename
>        compatible format e.g. "system-version-machine".
>    """
>    # Format the platform string
>    platform = string.join(
>        map(string.strip,
>            filter(len,args)),
>        '-')
>
>    # Cleanup some possible filename obstacles...
>    replace = string.replace
>    platform = replace(platform,' ','_')
>    platform = replace(platform,'/','-')
>    platform = replace(platform,'\\','-')
>    platform = replace(platform,':','-')
>    platform = replace(platform,';','-')
>    platform = replace(platform,'"','-')
>    platform = replace(platform,'(','-')
>    platform = replace(platform,')','-')
>
>    # No need to report 'unknown' information...
>    platform = replace(platform,'unknown','')
>
>    # Fold '--'s and remove trailing '-'
>    while 1:
>        cleaned = replace(platform,'--','-')
>        if cleaned == platform:
>            break
>        platform = cleaned
>    while platform[-1] == '-':
>        platform = platform[:-1]
>
>    return platform
>
> def platform(aliased=0, terse=0):
>
>    """ Returns a single string identifying the underlying platform
>        with as much useful information as possible (but no more :).
>
>        The output is intended to be human readable rather than
>        machine parseable. It may look different on different
>        platforms and this is intended.
>
>        If "aliased" is true, the function will use aliases for
>        various platforms that report system names which differ from
>        their common names, e.g. SunOS will be reported as
>        Solaris. The system_alias() function is used to implement
>        this.
>
>        Setting terse to true causes the function to return only the
>        absolute minimum information needed to identify the platform.
>
>    """
>    result = _platform_cache.get((aliased, terse), None)
>    if result is not None:
>        return result
>
>    # Get uname information and then apply platform specific cosmetics
>    # to it...
>    system,node,release,version,machine,processor = uname()
>    if machine == processor:
>        processor = ''
>    if aliased:
>        system,release,version = system_alias(system,release,version)
>
>    if system == 'Windows':
>        # MS platforms
>        rel,vers,csd,ptype = win32_ver(version)
>        if terse:
>            platform = _platform(system,release)
>        else:
>            platform = _platform(system,release,version,csd)
>
>    elif system in ('Linux',):
>        # Linux based systems
>        distname,distversion,distid = dist('')
>        if distname and not terse:
>            platform = _platform(system,release,machine,processor,
>                                 'with',
>                                 distname,distversion,distid)
>        else:
>            # If the distribution name is unknown check for libc vs. glibc
>            libcname,libcversion = libc_ver(sys.executable)
>            platform = _platform(system,release,machine,processor,
>                                 'with',
>                                 libcname+libcversion)
>    elif system == 'Java':
>        # Java platforms
>        r,v,vminfo,(os_name,os_version,os_arch) = java_ver()
>        if terse:
>            platform = _platform(system,release,version)
>        else:
>            platform = _platform(system,release,version,
>                                 'on',
>                                 os_name,os_version,os_arch)
>
>    elif system == 'MacOS':
>        # MacOS platforms
>        if terse:
>            platform = _platform(system,release)
>        else:
>            platform = _platform(system,release,machine)
>
>    else:
>        # Generic handler
>        if terse:
>            platform = _platform(system,release)
>        else:
>            bits,linkage = architecture(sys.executable)
>            platform =
> _platform(system,release,machine,processor,bits,linkage)
>
>    _platform_cache[(aliased, terse)] = platform
>    return platform
>
>
> Proof: run /usr/lib/python2.{4,5,6}/platform.py
> aliased and terse have no effect wrt output
> (kernel_version-with-libc_version)
> --
> Andrey Vul
>
> A: Because it messes up the order in which people normally read text.
> Q: Why is top-posting such a bad thing?
> A: Top-posting.
> Q: What is the most annoying thing in e-mail?
>
>
Good digging around :). So this is a python bug then? Or does portage need
to be update for some change that went into python? Actually, is this really
even a bug...its just a minor cosmetic problem really.

Reply via email to