Blob Blame History Raw
document: modulemd
version: 1
data:
    summary: Python programming language, version 2
    description: >-
        Python is an interpreted, interactive, object-oriented programming
        language often compared to Tcl, Perl, Scheme or Java. Python includes
        modules, classes, exceptions, very high level dynamic data types
        and dynamic typing. Python supports interfaces to many system calls and
        libraries, as well as to various windowing systems (X11, Motif, Tk,
        Mac and MFC).

        Programmers can write new built-in modules for Python in C or C++.
        Python can be used as an extension language for applications that
        need a programmable interface.
    license:
        module:
            - MIT
    dependencies:
        buildrequires:
            bootstrap: master

            # Need an already built Python interpreter
            # python2-bootstrap: master
                # Disabled since python2-bootstrap requires platform, and
                # bootstrap and platform modules conflict

            # python2-devel requires python3-rpm-generators which
            # requires python3 and python3-setuptools
            # python3: master
                # Disabled since python3 requires platform, and
                # bootstrap and platform modules conflict

            # tk-devel buildrequires /usr/bin/perl
            # perl: master
                # Disabled since perl requires platform, and
                # bootstrap and platform modules conflict
        requires:
            platform: master

            # python2-devel requires python3-rpm-generators which
            # requires python3 and python3-setuptools
            python3: master
    references:
        community: https://www.python.org/
        documentation: https://docs.python.org/2/
        tracker: https://src.fedoraproject.org/modules/python2
    profiles:
        minimal:
            rpms:
                - python2
                - python2-libs
                - python2-pip
                - python2-setuptools
        default:
            rpms:
                - python2
                - python2-libs
                - python2-pip
                - python2-setuptools
        full:
            rpms:
                - python2
                - python2-devel
                - python2-libs
                - python2-pip
                - python2-setuptools
                - python2-wheel
    filter:
        rpms:
            # Requires unavailable: tk, tcl, libX11
            - python2-tkinter
            # Requires unavailable: python3-tkinter
            - python2-tools
            # Requires unavailable: python3-tools
            - python2-test
            # Requires unavailable: python3-{tkinter,tools,test} and more
            - python2-debug

            # Remove Python 3 stuff we had to build but don't want in the
            # module
            - python3-wheel
            - python3-setuptools
            - python3-pip
            - python3-rpm-macros
    api:
        rpms:
            - python2
            - python2-devel
            - python2-libs
            - python2-pip
            - python2-setuptools
            - python2-wheel
    buildopts:
        rpms:
            macros: |
                # setuptools
                %_without_platform_python 1

                # Note that we cannot disable building of Python 3 subpackages,
                # because python2-devel (needed to build all Python 2 packages)
                # has a runtime dependency on python3-rpm-generators, and that
                # package requires python3-setuptools at runtime. By rebuilding
                # python-setuptools SRPM with only python2, we overshadow the
                # already built python3 subpackage and it is no longer
                # available for python3-rpm-generators when building python-pip
                # (or any other Python package).
    components:
        rpms:
            python-rpm-macros:
                rationale: Build and runtime dependency of python2-devel
                ref: master
                buildorder: 10
            python-wheel:
                rationale: Used for unbundling of pip and setuptools
                ref: master
                buildorder: 10
            python-setuptools:
                rationale: Python Packaging ecosystem
                ref: master
                buildorder: 20
            python-pip:
                rationale: Python Packaging ecosystem
                ref: master
                buildorder: 30
            python2:
                rationale: Main Python language interpreter
                ref: master
                buildorder: 40