gnu: Fix python inputs, part 2: all inputs become native-inputs.
This patch contains the changes where all [inputs] are changed to
[native-inputs].
* gnu/packages/python.scm (python-pytest, python-fixtures,
python-testrepository, python-virtualenv): All [inputs] are changed to
[native-inputs].
* gnu/packages/openstack.scm (python-bandit, python-debtcollector,
python-hacking, python-tempest-lib, python-oslo.config, python-oslo.context,
python-oslo.i18n, python-oslo.log, python-oslo.serialization,
python-oslosphinx, python-oslotest, python-oslo.utils): Likewise.
gnu: Fix python inputs, part 1: all inputs become propagated-inputs.
This patch contains the changes where all [inputs] are changed to
[propagated-inputs]
* gnu/packages/python.scm (python-passlib, python-paramiko, python-ccm,
python-babel, python-keyring python-pandas, python-tzlocal,
python-parse-type, python-nose2, python-pytest, python-pytest-mock,
python-pytest-xdist, python-scripttest, python-testtools, python-pytest-cov,
python-testscenarios, python-pbr-0.11, python-oauthlib, python-jinja2,
python-sphinx, python-tzlocal, python-bugz, python2-pytest-mock, behave,
pelican, sqlalchemy-utils, python-pygridtools, python-urwidtrees,
python-tornado, python2-tornado, python-debian, python-execnet,
python-pytest-cache, pytest-localserver, python-clint, python-rply,
python-hy, python-rauth, python-rsa, python-celery, python-vobject, s3cmd,
python-prompt-toolkit, ptpython, python-requests-oauthlib, python-stem,
python-binaryornot, python2-binaryornot, python-nltk, python-pymongo,
python-schematics, python-url, python2-url, python-freezegun,
python-glances, python-graphql-core, python-graphql-relay, python-graphene,
python-nautilus, python-s3transfer): All [inputs] become
[propagated-inputs].
* gnu/packages/bioinformatics.scm (python-biopython): Likewise.
* gnu/packages/django.scm (pytest-django): Likewise.
* gnu/packages/mail.scm (python-mailmanclient): Likewise.
* gnu/packages/password-utils.scm (python-bcrypt): Likewise.
* gnu/packages/propbuf.scm (python-protobuf): Likewise.
* gnu/packages/rdf.scm (python-rdflib): Likewise.
SQACH all become propagated
gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs).
Bug 20765 is solved since we build all Python packages using
option "--single-version-externally-managed".
* gnu/packages/bioinformatics.scm (pbtranscript-tofu): Remove
configure-flags. (pepr): remove phase "disable-egg-generation".
* gnu/packages/pdf.scm (reportlab): Remove configure-flags.
* gnu/packages/python.scm (python-sphinx-rtd-theme, python2-elib.intl,
python-pkgconfig, python-pytest-pep8, python-pytest-flakes): Remove
configure-flags. (python-pillow) remove phase
"disable-egg-generation". (python-libarchive-c) Remove patching
setup.cfg.
* gnu/packages/statistics.scm (python-patsy): remove phase
"prevent-generation-of-egg-archive".
* gnu/packages/tls.scm (python-acme): remove phase
"disable-egg-compression".
* gnu/packages/tor.scm (onionshare): Remove configure-flags.
gnu: Remove needless inputs python-pip and python2-pip.
This is installed together with Python 3 anyway and for our build
of Python 2.
* gnu/packages/python.scm (python2-fixtures): [inputs] remove "python-pip".
* gnu/packages/pdf.scm (python2-reportlab): [native-inputs] remove
"python2-pip". (python-reportlab)[properties]: remove "python2-variant".
gnu: Remove python-setuptools and python2-setuptools from inputs (part 4b)
This patch contains the changes in python.scm where
setuptools are used in an inherited package and removing this input also
removes the need for inheriting the package. This is the case if adding
setuptools in the inherited packge was the only change.
Change this to not inherit and remove the new needless call to
"strip-python2-variant (where applicable).
* gnu/packages/python.scm.scm: Remove inheriting Python 2 packages inheriting
from a Python 3 package if adding python-setuptools respective
python2-setuptools to [inputs], [native-inputs] and [propagated-inputs] have
been the sole reason for inheriting. Remove now needless [properties]
"python2-variant" where applicable.
(python2-lockfile, python2-keyring, python2-dateutil-2,
python2-parsedatetime, python2-pandas, python2-pyicu, python2-pytest-cov,
python2-pytest-runner, python2-pytest-xdist, python2-cov-core,
python2-itsdangerous, python2-numexpr, python2-q, python2-sqlalchemy-utils,
python2-alembic, python2-beautifulsoup4, python2-msgpack, python2-ipaddress,
python2-atomicwrites, python2-apipkg, python2-execnet, python2-pytest-cache,
python2-wtforms, python2-mako, python2-waitress, python2-wsgiproxy2,
python2-pyquery, python2-webtest, python2-translitcodec, python2-editor,
python2-sphinxcontrib-programoutput, python2-psycopg2, python2-vobject,
python2-flask, python2-cookies, python2-responses, python2-future,
python2-ply, python2-wcwidth, python2-prompt-toolkit, python2-jedi,
python2-requests-oauthlib, python2-pyserial, python2-nltk, python2-pymongo,
python2-sh, python2-schematics, python2-publicsuffix, python2-publicsuffix2,
python2-url, python2-freezegun, python2-cachecontrol, python2-lit,
python2-pytest-pep8, python2-pytest-flakes, python2-glances,
python2-betamax, python2-file, python2-flask-babel, python2-furl,
python2-imagesize python2-orderedmultidict, python2-pycodestyle,
python2-vcversioner, python2-graphql-core, python2-graphql-relay,
python2-validictory): Remove neesless input "python2-setuptools", don't
inherit, don't call strip-python2-variant.
(python-lockfile, python-keyring, python-dateutil-2, python-parsedatetime,
python-pandas, python-pyicu, python-pytest-cov, python-pytest-runner,
python-pytest-xdist, python-cov-core, python-itsdangerous, python-numexpr,
python-q, python-sqlalchemy-utils, python-alembic, python-beautifulsoup4,
python-msgpack, python-ipaddress, python-atomicwrites, python-apipkg,
python-execnet, python-pytest-cache, python-wtforms, python-mako,
python-waitress, python-wsgiproxy2, python-pyquery, python-webtest,
python-translitcodec, python-editor, python-sphinxcontrib-programoutput,
python-psycopg2, python-vobject, python-flask, python-cookies,
python-responses, python-future, python-ply, python-wcwidth,
python-prompt-toolkit, python-jedi, python-requests-oauthlib,
python-pyserial, python-nltk, python-pymongo, python-sh, python-schematics,
python-nltk, python-publicsuffix2, python-cachecontrol, python-lit,
python-pytest-pep8, python-pytest-flakes, python-glances, python-betamax,
python-file, python-flask-babel, python-furl, python-imagesize,
python-orderedmultidict, python-pycodestyle, python-vcversioner,
python-graphql-core, python-graphql-relay, python-validictory): Remove
"python2-variant" property.
gnu: Remove python-setuptools and python2-setuptools from inputs (part 4a)
This patch contains the changes for all modules beside python.scm where
setuptools are used in an inherited package and removing this input also
removes the need for inheriting the package. This is the case if adding
setuptools in the inherited package was the only change.
Change this to not inherit and remove the new needless call to
"strip-python2-variant (if applicable).
* gnu/packages/bioinformatics.scm (python-biopython, python2-biopython,
python-twobitreader, python2-twobitreader,
python-plastid, python2-plastid,
python2-pybigwig,
python2-screed,
sra-tools): No longer "inherit" Python 2 packages
inheriting from a Python 3 package if the sole reason for inheriting was
adding python-setuptools respective python2-setuptools to [inputs],
[native-inputs] or [propagated-inputs]. Remove now needless [properties]
"python2-variant" where applicable.
* gnu/packages/django.scm (python-pytest-django, python2-pytest-django,
python-django-filter, python2-django-filter): Likewise.
* gnu/packages/gnupg.scm (python2-pygpgme): Likewise.
* gnu/packages/mail.scm (python-mailmanclient, python2-mailmanclient):
Likewise.
* gnu/packages/mpd.scm (python-msp, python2-mpd2): Likewise.
* gnu/packages/music.scm (python-pylast, python2-pylast): Likewise.
* gnu/packages/openstack.scm (python-requests-mock, python2-requests-mock,
python2-git-review): Likewise.
* gnu/packages/password-utils.scm (python2-bcrypt): Likewise.
* gnu/packages/protobuf.scm (python-protobuf, python2-protobuf): Likewise.
* gnu/packages/statistics.scm (python-patsy, python2-patsy): Likewise.
* gnu/packages/web.scm (python2-feedparser): Likewise.
gnu: Remove python-setuptools and python2-setuptools from inputs (part 3)
This patch contains the changes where setuptools are used in an inherited
package and removing this input keeps the need for inheriting the package.
* gnu/packages/bioinformatics.scm (python2-biom-format): Remove
python-setuptools respective python2-setuptools from [inputs],
[native-inputs] and [propagated-inputs] in Python 2 packages inheriting from
a Python 3 package.
* gnu/packages/python.scm (python2-pytest-mock,
python2-oauthlib,
python2-seaborn,
python2-tornado,
python2-terminado,
python2-rauth,
python2-anyjson,
python2-amqp,
python2-kombu,
python2-billiard,
python2-celery,
python2-jellyfish,
python2-binaryornot,
python2-natsort,
python2-graphene): Likewise.
* gnu/packages/statistics.scm (python2-statsmodels): Likewise.
gnu: Remove python-setuptools and python2-setuptools from inputs (part 2)
This patch contains the changes where removing setuptools from the inputs
affected some code-lines beside.
* gnu/packages/admin.scm (ansible): Remove all [inputs], [native-inputs] and
[propagated-inputs] where python-setuptools or python2-setuptools are the
sole entries. Remove python-setuptools and python2-setuptools listed on a
line by its own from [inputs], [native-inputs] and [propagated-inputs].
* gnu/packages/backup.scm (duplicity): Likewise.
* gnu/packages/bioinformatics.scm (bamm, python2-pybedtools,
python2-bx-python, python2-dendropy, python-pysam, python2-pysam, clipper,
crossmap, cutadapt, deeptools, grit, idr, python2-warpedlmm,
pbtranscript-tofu, seqmagick): Likewise.
* gnu/packages/docbook.scm (dblatex): Likewise.
* gnu/packages/freedesktop.scm (python-pyxdg, python2-pyxdg): Likewise.
* gnu/packages/lirc.scm (python2-lirc): Likewise.
* gnu/packages/mp3.scm (eyed3): Likewise.
* gnu/packages/nutrition.scm (gourmet): Likewise.
* gnu/packages/openstack.scm (python-hacking, python2-hacking,
python-os-testr, python2-os-testr,
python-stevedore, python2-stevedore,
python-tempest-lib, python2-tempest-lib,
python-oslo.log, python2-oslo.log,
python-keystoneclient, python2-keystoneclient): Likewise.
* gnu/packages/password-utils.scm (assword): Likewise.
* gnu/packages/python.scm (python-passlib, python2-passlib,
python-babel, python2-babel,
python-parse-type,
python-pytest, python2-pytest,
python-scripttest, python2-scripttest,
python-testtools, python2-testtools,
python-testscenarios, python2-testscenarios,
python-subunit, python2-subunit,
python-pbr-0.11,
python-pbr, python2-pbr,
python-testrepository, python2-testrepository,
behave,
python-wheel, python2-wheel,
python-requests, python2-requests,
python-jsonschema, python2-jsonschema,
python-pyjwt, python2-pyjwt,
python-virtualenv, python2-virtualenv,
python-jinja2, python2-jinja2,
python-joblib, python2-joblib,
python-sphinx, python2-sphinx,
python-feedgenerator, python2-feedgenerator,
python-scikit-image, python2-scikit-image,
python-redis, python2-redis,
python2-fastlmm,
python-numpydoc, python2-numpydoc,
python-matplotlib, python2-matplotlib,
python2-pysnptools,
python-rpy2, python2-rpy2,
python-pillow, python2-pillow,
python-pycparser, python2-pycparser,
python-cffi, python2-cffi,
python-cairocffi, python2-cairocffi,
python-drmaa, python2-drmaa,
python-pathpy, python2-pathpy,
python-simplegeneric, python2-simplegeneric,
python-ipython, python2-ipython,
python-apsw, python2-apsw,
python-lxml, python2-lxml,
python-networkx, python2-networkx,
python-pyzmq, python2-pyzmq,
python-mccabe, python2-mccabe,
python-mccabe-0.2.1,
python-flake8, python2-flake8,
python-flake8-2.2.4,
python-mistune, python2-mistune,
python-ptyprocess, python2-ptyprocess,
python-llfuse, python2-llfuse,
python-webob, python2-webob,
python-xlrd, python2-xlrd,
python-tables, python2-tables,
python-pip, python2-pip,
python-libarchive-c, python2-libarchive-c,
python-docopt, python2-docopt,
python-pyrfc3339, python2-pyrfc3339,
python-configobj, python2-configobj,
python-clint, python2-clint,
python-rply, python2-rply,
python2-rpython,
python-widgetsnbextension, python2-widgetsnbextension
jupyter,
python-jupyter-console, python2-jupyter-console,
python-hy, python2-hy,
python-urllib3, python2-urllib3,
python-rsa, python2-rsa,
python-tox, python2-tox,
python2-hypothesis,
python-paste, python2-paste,
python-pastescript, python2-pastescript,
python2-unicodecsv,
python-pkgconfig, python2-pkgconfig,
python2-rope,
python-sqlparse, python2-sqlparse,
python-gevent, python2-gevent,
python-tabulate, python2-tabulate,
python-arrow, python2-arrow,
python-cleo, python2-cleo,
python-fake-factory, python2-fake-factory,
ptpython): Likewise.
* gnu/packages/rdf.scm (python-rdflib, python2-rdflib): Likewise.
* gnu/packages/terminals.scm (asciinema): Likewise.
* gnu/packages/version-control.scm (git-annex-remote-hubic): Likewise.
* gnu/packages/xdisorg.scm (arandr): Likewise.
gnu: Remove python-setuptools and python2-setuptools from inputs (part 1b)
This patch contains the changes in all modules beside python.scm where
removing setuptools from the inputs could be achieved by removing complete
lines.
* gnu/packages/admin.scm (graphios, thefuck): Remove all [inputs],
[native-inputs] and [propagated-inputs] where python-setuptools or
python2-setuptools are the sole entries. Remove python-setuptools and
python2-setuptools listed on a line by its own from [inputs],
[native-inputs] and [propagated-inputs].
* gnu/packages/backup.scm (rdiff-backup): Likewise.
* gnu/packages/bioinformatics.scm (htseq, macs, python2-pbcore, rseqc,
multiqc): Likewise.
* gnu/packages/django.scm (python-django, python2-django,
python-django-simple-math-captcha, python2-django-simple-math-captcha):
Likewise.
* gnu/packages/docker.scm (python-docker-py, docker-compose): Likewise.
* gnu/packages/game-development.scm (python-pygame): Likewise.
* gnu/packages/key-mon.scm (key-mon): Likewise.
* gnu/packages/mail.scm (khard): Likewise.
* gnu/packages/music.scm (beets, python2-pyechonest): Likewise.
* gnu/packages/openstack.scm (python-bandit, python2-bandit,
python-debtcollector, python2-debtcollector,
python-mox3, python2-mox3,
python-os-client-config, python2-os-client-config,
python-oslo.config, python2-oslo.config,
python-oslo.context, python2-oslo.context,
python-oslo.i18n, python2-oslo.i18n,
python-oslo.serialization, python2-oslo.serialization,
python-oslosphinx, python2-oslosphinx,
python-oslotest, python2-oslotest,
python-oslo.utils, python2-oslo.utils,
python-swiftclient, python2-swiftclient): Likewise.
* gnu/packages/pdf.scm (pdfposter): Likewise.
* gnu/packages/tls.scm (python-acme, python2-acme): Likewise.
gnu: Remove python-setuptools and python2-setuptools from inputs (part 1a)
This patch contains the changes in python.scm where removing setuptools from
the inputs could be achieved by removing complete lines.
* gnu/packages/python.scm (python-psutil, python2-psutil,
python-py-bcrypt, python2-py-bcrypt,
python-paramiko, python2-paramiko,
python-httplib2, python2-httplib2,
python-ecdsa, python2-ecdsa,
python-ccm, python2-ccm,
python2-backport-ssl-match-hostname,
python-pycrypto, python2-pycrypto,
python-six, python2-six,
python-dateutil, python2-dateutil,
python2-mechanize,
python-extras, python2-extras,
python-mimeparse, python2-mimeparse,
python-nose, python2-nose,
python-nose2, python2-nose2,
python-unittest2, python2-unittest2,
python-py, python2-py,
python-testresources, python2-testresources,
python-fixtures-0.3.16,
python-fixtures, python2-fixtures,
python-coverage, python2-coverage,
python-discover, python2-discover,
python-exif-read, python2-exif-read,
python-pyld, python2-pyld,
python-certifi, python2-certifi,
python-click, python2-click,
python-vcversioner, python2-vcversioner,
python-unidecode, python2-unidecode,
python-pyyaml, python2-pyyaml,
python-markupsafe, python2-markupsafe,
python-pystache, python2-pystache,
python-docutils, python2-docutils,
python-pygments, python2-pygments,
python-sphinx-rtd-theme, python2-sphinx-rtd-theme,
python-blinker, python2-blinker,
python-rq, python2-rq,
python-numpy, python2-numpy,
python-distutils-extra, python2-distutils-extra,
python2-elib.intl,
python-pillow, python2-pillow,
python-xcffib, python2-xcffib,
python-decorator, python2-decorator,
python-gridmap, python2-gridmap,
python-pickleshare, python2-pickleshare,
python-isodate, python2-isodate,
python-html5lib, python2-html5lib,
python2-cssutils,
python-cssselect, python2-cssselect,
python-netifaces, python2-netifaces,
python-sympy, python2-sympy,
python-testlib, python2-testlib,
python2-xlib,
python-singledispatch, python2-singledispatch,
python-backports-abc, python2-backports-abc,
python-pep8, python2-pep8,
python-pyflakes, python2-pyflakes,
python-fonttools, python2-fonttools,
python-ly,
python-appdirs, python2-appdirs,
python-netaddr, python2-netaddr,
python-wrapt, python2-wrapt,
python-iso8601, python2-iso8601,
python-monotonic, python2-monotonic,
python-prettytable, python2-prettytable,
python-pyasn1-modules, python2-pyasn1-modules,
python-idna, python2-idna,
python-pretend, python2-pretend,
python-cryptography-vectors, python2-cryptography-vectors,
python-cryptography, python2-cryptography,
python-pyopenssl, python2-pyopenssl,
python-debian, python2-debian,
python-chardet, python2-chardet,
python-zope-event, python2-zope-event,
python-zope-i18nmessageid, python2-zope-i18nmessageid,
python-websocket-client, python2-websocket-client,
python-args, python2-args,
python-astor, python2-astor,
python2-functools32,
python2-futures,
python2-promise,
python-colorama, python2-colorama,
python-pluggy, python2-pluggy,
python-jmespath, python2-jmespath,
python-botocore, python2-botocore,
awscli,
python-pytest-subtesthack, python2-pytest-subtesthack,
python-pastedeploy, python2-pastedeploy,
python-magic, python2-magic,
python2-s3cmd,
python2-bz2file,
python-cysignals, python2-cysignals,
python-py3status,
python-tblib, python2-tblib,
python-greenlet, python2-greenlet,
python-twisted, python2-twisted,
python-kazoo, python2-kazoo,
python-pykafka, python2-pykafka,
python2-jsonrpclib,
python-chai, python2-chai,
python-inflection, python2-inflection,
python-pylev, python2-pylev,
python-lazy-object-proxy, python2-lazy-object-proxy,
python-dnspython, python2-dnspython,
python-email-validator, python2-email-validator,
python-ukpostcodeparser, python2-ukpostcodeparser,
python-pyaml, python2-pyaml,
python-flexmock, python2-flexmock,
python-orator, python2-orator,
python-bleach, python2-bleach,
python-ipywidgets, python2-ipywidgets,
python-nbconvert, python2-nbconvert,
python-nbformat, python2-nbformat,
python-axolotl-curve25519, python-axolotl2-curve25519,
python-axolotl, python2-axolotl,
python-nautilus, python-s3transfer): Remove python-setuptools and
python2-setuptools from [inputs], [native-inputs] or [propagated-inputs].
Remove [inputs], [native-inputs] and [propagated-inputs] where
python-setuptools or python2-setuptools were the sole entry.
lint: more packages to probably be a native input.
* guix/scripts/lint.scm (check-inputs-should-be-native package): Add python
packages which are typically used for testing or for building the
documentation.
guix: Add lint-checker for packages which should be no inputs at all.
Also refactor some common code into a new function.
Examples for these pacakges are python(2)-setuptools and python(2)-pip, which
are installed together with python itself.
* guix/scripts/lint.scm (warn-if-package-has-input): New procedure.
(check-inputs-should-be-native package): Use it; rename and clean-up
variables. (check-inputs-should-not-be-an-input-at-all): New procedure.
(%checkers) Add it.
* doc/guix.texi (Python Modules): Document it.
* tests/lint.scm: ("inputs: python-setuptools should not be an input at all
(input)", "inputs: python-setuptools should not be an input at all
(native-input)" "inputs: python-setuptools should not be an input at all
(propagated-input)"): Add tests.
gnu: python-2.7: Add all guix prefixes in PYTHONPATH to site-prefixes.
* gnu/packages/patches/python-2.7-site-prefixes.patch: New file.
* gnu/packages/python.scm (python-2)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add patch.
guix: python-build-system: Add background about Python installation methods.
guix: python-build-system: Delete .egg-info file created in phase check.
* guix/build/python-build-system.scm (check): Delete .egg-info dirs
which did not exist prior to calling setup.py but afterwards.
guix: python-build-system: Add helpers for getting and setting PYTHONPATH.
* guix/build/python-build-system.scm (add-installed-pythonpath,
site-packages): New exported procedures.
guix: python-build-system: Add option "#:use-setuptools?" (default true).
* guix/build-system/python.scm (python-build): New keyword argument
"#:use-setuptools?", defaulting to #t.
* guix/build/python-build-system.scm (call-setup-py): New positional
parameter "use-setuptools?". If false, do not use the shim-wrapper
for addin setuptools. (build, check): accept keyword-
parameter, and pass to call-setuppy. (install): same; if
"use-setuptools?" is false, do not use options "--root" and
"--single-version-externally-managed" for setup.py.
* doc/guix.texi (Build Systems): Document it.
guix: python-build-system: Import setuptools before calling `setup.py'.
This is needed for packages using "distutils" instead of "setuptools" since
the former does not understand the "--single-version-externally-managed"
flag. Also export __file__ since it will be unset when setup.py is called from
python "exec".
* guix/build/python-build-system.scm (call-setuppy): extend "python setup.py"
call to import setuptools, export __file__, and call setup.py from
setuptools python environment.
Co-Authored-By: Hartmut Goebel <h.goebel@crazy-compilers.com>
guix: build all Python packages with --single-version-externally-managed.
This requires setuptools to be installed together with python, which is
the case for Python 3 anyway and which we do for our build of Python 2
(see last commit).
* guix/build/python-build-system.scm (install): Add
"--single-version-externally-managed" and "--root=/" to params to be
passed to call-setuppy. Remove thus needless manipulation of
PYTHONPATH. Remove now unused argument "inputs".
gnu: ensure pip and setuptools are installed even for Python 2.
* gnu/packages/python.scm (python-2.7): Add "--with-ensurepip=install" to
configure-flags.
* doc/guix.texi (Python Modules): Document it.