The ovs-flowviz executable Python script is expected to be
executed by the end user.
Surveying where current executable binaries are installed for the
package, the placement of ovs-flowviz in python3-openvswitch
is unexpected to me, other client binaries are shipped inside the
openvswitch-common package.
To me, the python3-openvswitch package represents a library
dependency, which you would install to get the Python ovs module
for your Python application to consume.
This is also the current choice of placement for the downstream
Debian / Ubuntu package [0].
Consequently this patch proposes to move ovs-flowviz and its
manual page to openvswitch-common.
The Python dependencies are added as recommended dependencies,
which will retain good interactive UX, and at the same time allow
non-interactive users to opt out.
0: 353e3d71cc
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
At present, the OVS Python module is built and installed after
`dh_install`. This was done to ensure proper linking of the
_json Python extension.
A side effect of this approach is that .install files unexpectedly
do not work, and consequently placement of Python executables
become cumbersome and non-standard.
The preferred approach to this is to make use of pybuild. In
addition to solving the .install file problem, it also takes care
of building extensions for every requested/supported Python
version, without the need for retrieving and looping over versions
in debian/rules.
We still can't use fully standard Python handling, as we have
interdependencies between C and Python parts of the code base to
build the Python JSON extension.
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
ovs-flowviz script should be shipped in bindir in fedora and the
man pages should be shipped in the same python3-openvswitch package
for both debian and fedora.
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
The packaging source in the OVS repository has drifted away from
what is currently in Debian and Ubuntu. This state is problematic
because from time to time someone tries to build packages from the
upstream OVS debian package source and then expect that package to
work with up-/down-grades from-/to/ distro versions.
To support the on-going work to remove the out of tree OVS kernel
driver from the repository [0], an update to the debian packaging
is also required. On the back of the discussion in [0] we agreed
that replacing the current version with what Debian and Ubuntu
is currently converging on would be preferable.
This commit is a first in a series to update the upstream OVS
debian packaging source to be up to date with what is currently
in Debian and Ubuntu.
0: https://mail.openvswitch.org/pipermail/ovs-dev/2022-June/394634.html
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Python 2 reaches end-of-life on January 1, 2020, which is only
a few months away. This means that OVS needs to stop depending
on in the next release that should occur roughly that same time.
Therefore, this commit removes all support for Python 2. It
also makes Python 3 a mandatory build dependency.
Some of the interesting consequences:
- HAVE_PYTHON, HAVE_PYTHON2, and HAVE_PYTHON3 conditionals have
been removed, since we now know that Python3 is available.
- $PYTHON and $PYTHON2 are removed, and $PYTHON3 is always
available.
- Many tests for Python 2 support have been removed, and the ones
that depended on Python 3 now run unconditionally. This allowed
several macros in the testsuite to be removed, making the code
clearer. This does make some of the changes to the testsuite
files large due to indentation level changes.
- #! lines for Python now use /usr/bin/python3 instead of
/usr/bin/python.
- Packaging depends on Python 3 packages.
Acked-by: Numan Siddique <nusiddiq@redhat.com>
Tested-by: Numan Siddique <nusiddiq@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>