summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-01-05 08:49:04 +0100
committerTomas Babej <tbabej@redhat.com>2016-01-15 13:39:52 +0100
commit7e56b4bbd79d9d42af23babc7496dd15d85d28ea (patch)
tree3716b9a6747789dd37554bd7e2fb5b49ef193e1e
parent58c42ddac0964a8cce7c1e1faa7516da53f028ad (diff)
downloadfreeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.tar.gz
freeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.tar.xz
freeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.zip
ipapython: remove default_encoding_utf8
Replace the "import default_encoding_utf8" in ipalib/cli.py with equivalent Python code. https://fedorahosted.org/freeipa/ticket/5596 Reviewed-By: Tomas Babej <tbabej@redhat.com>
-rw-r--r--.gitignore1
-rw-r--r--freeipa.spec.in2
-rw-r--r--ipalib/cli.py13
-rw-r--r--ipapython/Makefile2
-rw-r--r--ipapython/py_default_encoding/Makefile25
-rw-r--r--ipapython/py_default_encoding/default_encoding_utf8.c57
-rw-r--r--ipapython/py_default_encoding/setup.py45
-rw-r--r--ipatests/pytest.ini1
8 files changed, 4 insertions, 142 deletions
diff --git a/.gitignore b/.gitignore
index 06b017df2..937559072 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,7 +73,6 @@ freeipa2-dev-doc
/ipapython/setup.py
/ipapython/version.py
!/ipapython/Makefile
-!/ipapython/py_default_encoding/Makefile
!/ipapython/ipap11helper/Makefile
/ipaplatform/__init__.py
diff --git a/freeipa.spec.in b/freeipa.spec.in
index 7d9e750b8..961d8c38e 100644
--- a/freeipa.spec.in
+++ b/freeipa.spec.in
@@ -1311,13 +1311,11 @@ fi
%{python_sitelib}/ipalib/*
%dir %{python_sitelib}/ipaplatform
%{python_sitelib}/ipaplatform/*
-%attr(0644,root,root) %{python_sitearch}/default_encoding_utf8.so
%attr(0644,root,root) %{python_sitearch}/_ipap11helper.so
%{python_sitelib}/ipapython-*.egg-info
%{python_sitelib}/ipalib-*.egg-info
%{python_sitelib}/freeipa-*.egg-info
%{python_sitelib}/ipaplatform-*.egg-info
-%{python_sitearch}/python_default_encoding-*.egg-info
%{python_sitearch}/_ipap11helper-*.egg-info
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 3b1b5a393..a95648533 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -39,16 +39,9 @@ from six.moves import input
if six.PY3:
unicode = str
-try:
- #pylint: disable=F0401
- import default_encoding_utf8 # pylint: disable=unused-import
-except ImportError:
- # This is a chicken-and-egg problem. The api can't be imported unless
- # this is already installed and since it is installed with IPA therein
- # lies the problem. Skip it for now so ipalib can be imported in-tree
- # even in cases that IPA isn't installed on the dev machine.
- # Also, under Python 3, default_encoding_utf8 is not built at all.
- pass
+if six.PY2:
+ reload(sys)
+ sys.setdefaultencoding('utf-8') # pylint: disable=no-member
from ipalib import frontend
from ipalib import backend
diff --git a/ipapython/Makefile b/ipapython/Makefile
index 833f3cdc5..201c5894d 100644
--- a/ipapython/Makefile
+++ b/ipapython/Makefile
@@ -1,7 +1,7 @@
PYTHON ?= /usr/bin/python2
PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib())")
-SUBDIRS = py_default_encoding ipap11helper
+SUBDIRS = ipap11helper
all:
@for subdir in $(SUBDIRS); do \
diff --git a/ipapython/py_default_encoding/Makefile b/ipapython/py_default_encoding/Makefile
deleted file mode 100644
index a73f429db..000000000
--- a/ipapython/py_default_encoding/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-PYTHON ?= /usr/bin/python2
-PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib())")
-PYTHONVERSION ?= $(shell $(PYTHON) -c "import sys; print(sys.version_info[0])")
-
-all:
- if [ "$(PYTHONVERSION)" = "2" ]; then \
- python2 setup.py build; \
- fi
-
-install:
- # Skip this module under Python 3
- if [ "$(PYTHONVERSION)" = "2" ]; then \
- if [ "$(DESTDIR)" = "" ]; then \
- python2 setup.py install; \
- else \
- python2 setup.py install --root $(DESTDIR); \
- fi; \
- fi
-
-clean:
- rm -rf build
-
-distclean: clean
-
-maintainer-clean: distclean
diff --git a/ipapython/py_default_encoding/default_encoding_utf8.c b/ipapython/py_default_encoding/default_encoding_utf8.c
deleted file mode 100644
index 07adf28ec..000000000
--- a/ipapython/py_default_encoding/default_encoding_utf8.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Authors:
- * John Dennis <jdennis@redhat.com>
- *
- * Copyright (C) 2009 Red Hat
- * see file 'COPYING' for use and warranty information
- *
- * This program is free software you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <Python.h>
-
-PyDoc_STRVAR(setdefaultencoding_doc,
-"setdefaultencoding(encoding='utf-8')\n\
-\n\
-Set the current default string encoding used by the Unicode implementation.\n\
-Defaults to utf-8."
-);
-
-static PyObject *
-setdefaultencoding(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"utf-8", NULL};
- char *encoding;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:setdefaultencoding", kwlist, &encoding))
- return NULL;
-
- if (PyUnicode_SetDefaultEncoding(encoding))
- return NULL;
-
- Py_RETURN_NONE;
-}
-
-static PyMethodDef methods[] = {
- {"setdefaultencoding", (PyCFunction)setdefaultencoding, METH_VARARGS|METH_KEYWORDS, setdefaultencoding_doc},
- {NULL, NULL} /* sentinel */
-};
-
-
-PyMODINIT_FUNC
-initdefault_encoding_utf8(void)
-{
- PyUnicode_SetDefaultEncoding("utf-8");
- Py_InitModule3("default_encoding_utf8", methods, "Forces the default encoding to utf-8");
-}
diff --git a/ipapython/py_default_encoding/setup.py b/ipapython/py_default_encoding/setup.py
deleted file mode 100644
index 6a1af6282..000000000
--- a/ipapython/py_default_encoding/setup.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Authors:
-# John Dennis <jdennis@redhat.com>
-#
-# Copyright (C) 2009 Red Hat
-# see file 'COPYING' for use and warranty information
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-from distutils.core import setup, Extension
-from distutils.sysconfig import get_python_inc
-import sys
-import os
-
-python_header = os.path.join(get_python_inc(plat_specific=0), 'Python.h')
-if not os.path.exists(python_header):
- sys.exit("Cannot find Python development packages that provide Python.h")
-
-default_encoding_utf8 = Extension('default_encoding_utf8', ['default_encoding_utf8.c'])
-
-setup(name = 'python-default-encoding',
- version = '0.1',
- description = 'Forces the default encoding in Python to be utf-8',
- long_description = 'Forces the default encoding in Python to be utf-8',
- author = 'John Dennis',
- author_email = 'jdennis@redhat.com',
- maintainer = 'John Dennis',
- maintainer_email = 'jdennis@redhat.com',
- license = 'GPLv3+',
- platforms = 'posix',
- url = '',
- download_url = '',
- ext_modules = [default_encoding_utf8],
-)
-
diff --git a/ipatests/pytest.ini b/ipatests/pytest.ini
index 95932270a..e38858bc7 100644
--- a/ipatests/pytest.ini
+++ b/ipatests/pytest.ini
@@ -21,7 +21,6 @@ addopts = --doctest-modules
--ignore=doc/examples/python-api.py
--ignore=install/share/copy-schema-to-ca.py
--ignore=install/share/wsgi.py
- --ignore=ipapython/py_default_encoding/setup.py
--ignore=ipapython/ipap11helper/setup.py
markers =
tier0: basic unit tests and critical functionality