Revert "Drop python2 support"
This reverts commit fb1dc7c405f6114687338382149bfc775597935a.
I was under the impression, that all previous scripts were already
working with python 3. But as it turns out, this isn't true. Reverting,
so I can properly post follow-up patches, that fix the issues before we
apply this "drop python2" patch again.
Related: OS#2819
Change-Id: Ic1559d1a9f7839fa86a841d62a04b22e1caed466
diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh
index 9b219f9..08908a4 100755
--- a/contrib/jenkins.sh
+++ b/contrib/jenkins.sh
@@ -4,6 +4,16 @@
COM_FLAGS='-m compileall'
+# FIXME: remove once python 2 support is deprecated
+PY2=python2
+PY2_LIST="osmopy scripts/osmodumpdoc.py scripts/osmotestvty.py scripts/osmotestconfig.py"
+$PY2 ./setup.py install
+$PY2 tests/test_py2.py
+for f in $PY2_LIST
+do
+ $PY2 $COM_FLAGS $f
+done
+
rm -rf ./build
PY3=python3
PY3_LIST="osmopy scripts/osmo_ctrl.py scripts/osmo_rate_ctr2csv.py scripts/osmodumpdoc.py scripts/osmotestvty.py scripts/osmotestconfig.py scripts/osmo_interact_ctrl.py scripts/osmo_interact_vty.py scripts/osmo_verify_transcript_ctrl.py scripts/osmo_verify_transcript_vty.py scripts/soap.py scripts/twisted_ipa.py"
diff --git a/debian/control b/debian/control
index 1ad871d..52b614c 100644
--- a/debian/control
+++ b/debian/control
@@ -2,12 +2,26 @@
Section: python
Priority: optional
Maintainer: Harald Welte <laforge@gnumonks.org>
-Build-Depends: debhelper (>= 9), dh-python, python3, python3-setuptools
+Build-Depends: debhelper (>= 9), python, dh-python, python-setuptools, python3, python3-setuptools
Standards-Version: 3.9.8
Homepage: http://git.osmocom.org/python/osmo-python-tests/
Vcs-Git: git://git.osmocom.org/python/osmo-python-tests
Vcs-Browser: http://git.osmocom.org/python/osmo-python-tests/
+Package: python2-osmopy-libs
+Architecture: all
+Depends: ${python:Depends}, ${misc:Depends}
+Description: Python code (not only) for testing of Osmocom programs
+ .
+ This package contains the Python 2 version of osmopy libraries.
+
+Package: python2-osmopy-utils
+Architecture: all
+Depends: ${python:Depends}, ${misc:Depends}, python2-osmopy-libs
+Description: Python code (not only) for testing of Osmocom programs
+ .
+ This package contains the Python 2 version of osmopy utils.
+
Package: python3-osmopy-libs
Architecture: all
Depends: ${python3:Depends}, ${misc:Depends}
diff --git a/debian/rules b/debian/rules
index d0817c3..04b59f6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,9 +1,13 @@
#!/usr/bin/make -f
%:
- dh $@ --with python3
+ dh $@ --with python2,python3
override_dh_auto_install:
+ python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-libs
+ rm -rf $(CURDIR)/debian/python2-osmopy-libs/usr/bin
+ python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-utils
+ rm -rf $(CURDIR)/debian/python2-osmopy-utils/usr/lib
python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-libs
rm -rf $(CURDIR)/debian/python3-osmopy-libs/usr/bin
python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-utils
diff --git a/osmopy/__init__.py b/osmopy/__init__.py
index 18362ec..ce78caf 100644
--- a/osmopy/__init__.py
+++ b/osmopy/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
__version__ = '0.1.0'
__all__ = ['obscvty', 'osmoutil', 'osmo_ipa', 'osmo_interact', 'trap_helper', 'twisted_ipa']
diff --git a/osmopy/obscvty.py b/osmopy/obscvty.py
index ab280c0..d39d3da 100755
--- a/osmopy/obscvty.py
+++ b/osmopy/obscvty.py
@@ -16,6 +16,7 @@
#
# VTY helper code for OpenBSC
#
+from __future__ import print_function
import re
import socket
import sys, subprocess
diff --git a/osmopy/osmo_interact/__init__.py b/osmopy/osmo_interact/__init__.py
index 036238a..4fc4fac 100644
--- a/osmopy/osmo_interact/__init__.py
+++ b/osmopy/osmo_interact/__init__.py
@@ -1,2 +1,2 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
__all__ = ['common', 'vty', 'ctrl']
diff --git a/osmopy/osmo_interact/common.py b/osmopy/osmo_interact/common.py
index 87eca6a..cc7e190 100644
--- a/osmopy/osmo_interact/common.py
+++ b/osmopy/osmo_interact/common.py
@@ -24,6 +24,11 @@
vty.py and ctrl.py plug VTY and CTRL interface specific bits.
'''
+# Our setup.py currently wants everything to be parsable by both py2 and py3.
+# IMHO that is not a good idea, but until that changes, let's just keep this
+# py2 legacy shim in here so we can syntax-check this py3 module with py2.
+from __future__ import print_function
+
import argparse
import sys
import os
diff --git a/osmopy/osmoutil.py b/osmopy/osmoutil.py
index ec9c8c3..54a3456 100755
--- a/osmopy/osmoutil.py
+++ b/osmopy/osmoutil.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com>
# This program is free software: you can redistribute it and/or modify
@@ -14,6 +14,7 @@
# 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 __future__ import print_function
import subprocess
import os
import sys
diff --git a/scripts/osmodumpdoc.py b/scripts/osmodumpdoc.py
index 64b088f..d71edc8 100755
--- a/scripts/osmodumpdoc.py
+++ b/scripts/osmodumpdoc.py
@@ -1,9 +1,10 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
# Make sure this code is in sync with the BTS directory.
# Fixes may need to be applied to both.
"""Start the process and dump the documentation to the doc dir."""
+from __future__ import print_function
import subprocess
import time
import os
diff --git a/scripts/osmotestconfig.py b/scripts/osmotestconfig.py
index 70a32a4..f227504 100755
--- a/scripts/osmotestconfig.py
+++ b/scripts/osmotestconfig.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com>
# This program is free software: you can redistribute it and/or modify
@@ -13,6 +13,7 @@
# 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 __future__ import print_function
import os
import os.path
import time
diff --git a/scripts/osmotestvty.py b/scripts/osmotestvty.py
index 600860f..55017a5 100755
--- a/scripts/osmotestvty.py
+++ b/scripts/osmotestvty.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com>
# This program is free software: you can redistribute it and/or modify
@@ -13,6 +13,7 @@
# 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 __future__ import print_function
import os
import time
import unittest
diff --git a/setup.py b/setup.py
index ab604ce..69e18b0 100755
--- a/setup.py
+++ b/setup.py
@@ -19,20 +19,24 @@
from osmopy import __version__
import sys
-scripts = [
- "scripts/osmodumpdoc.py",
- "scripts/osmotestvty.py",
- "scripts/osmotestconfig.py",
- "scripts/osmo_ctrl.py",
- "scripts/osmo_rate_ctr2csv.py",
- "scripts/soap.py",
- "scripts/ctrl2cgi.py",
- "scripts/osmo_trap2cgi.py",
- "scripts/osmo_interact_vty.py",
- "scripts/osmo_interact_ctrl.py",
- "scripts/osmo_verify_transcript_vty.py",
- "scripts/osmo_verify_transcript_ctrl.py",
- ]
+if sys.version_info.major == 2:
+ scripts = [
+ "scripts/osmodumpdoc.py",
+ "scripts/osmotestconfig.py",
+ "scripts/osmotestvty.py",
+ ]
+elif sys.version_info.major == 3:
+ scripts = [
+ "scripts/osmo_ctrl.py",
+ "scripts/osmo_rate_ctr2csv.py",
+ "scripts/soap.py",
+ "scripts/ctrl2cgi.py",
+ "scripts/osmo_trap2cgi.py",
+ "scripts/osmo_interact_vty.py",
+ "scripts/osmo_interact_ctrl.py",
+ "scripts/osmo_verify_transcript_vty.py",
+ "scripts/osmo_verify_transcript_ctrl.py",
+ ]
setup(
name = 'osmopython',
diff --git a/tests/test_py2.py b/tests/test_py2.py
new file mode 100644
index 0000000..cac5261
--- /dev/null
+++ b/tests/test_py2.py
@@ -0,0 +1,7 @@
+#!/usr/bin/env python2
+
+# just import a smoke test for osmopy
+
+import osmopy
+
+print '[Python2] Smoke test PASSED.'