mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 09:58:01 +00:00
rhel: Make the version, displayed to the user, customizable.
Since on CentOS/RHEL the builds are based on stable branches and not on tags for debugging purpose it's better to have the downstream version as version so it's easier to know which commits are included in a build. This commit adds --with-version-suffix as ./configure option in order to set an OVS version suffix that should be shown to the user via ovs-vsctl -V and, so, also on database, on ovs-vsctl show and the other utilities. --with-version-suffix is used in Fedora/CentOS/RHEL spec file in order to have the version be aligned with the downstream one. Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
parent
1aa9e137fe
commit
9e6d43ef32
@ -8,6 +8,8 @@
|
||||
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = --with-version-suffix="$(VERSION_SUFFIX)"
|
||||
|
||||
AM_CPPFLAGS = $(SSL_CFLAGS)
|
||||
AM_LDFLAGS = $(SSL_LDFLAGS)
|
||||
AM_LDFLAGS += $(OVS_LDFLAGS)
|
||||
@ -163,6 +165,7 @@ SUFFIXES += .in
|
||||
-e 's,[@]PYTHON3[@],$(PYTHON3),g' \
|
||||
-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
|
||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||
-e 's,[@]VERSION_SUFFIX[@],$(VERSION_SUFFIX),g' \
|
||||
-e 's,[@]localstatedir[@],$(localstatedir),g' \
|
||||
-e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
|
||||
-e 's,[@]sysconfdir[@],$(sysconfdir),g' \
|
||||
|
13
acinclude.m4
13
acinclude.m4
@ -497,6 +497,19 @@ AC_DEFUN([OVS_CHECK_DPDK], [
|
||||
AM_CONDITIONAL([DPDK_NETDEV], test "$DPDKLIB_FOUND" = true)
|
||||
])
|
||||
|
||||
dnl Append a version suffix.
|
||||
|
||||
AC_DEFUN([OVS_CHECK_VERSION_SUFFIX], [
|
||||
AC_ARG_WITH([version-suffix],
|
||||
[AS_HELP_STRING([--with-version-suffix=ver_suffix],
|
||||
[Specify a string that will be appended
|
||||
to OVS version])])
|
||||
AC_DEFINE_UNQUOTED([VERSION_SUFFIX], ["$with_version_suffix"],
|
||||
[Package version suffix])
|
||||
AC_SUBST([VERSION_SUFFIX], [$with_version_suffix])
|
||||
])
|
||||
])
|
||||
|
||||
dnl Checks for net/if_dl.h.
|
||||
dnl
|
||||
dnl (We use this as a proxy for checking whether we're building on FreeBSD
|
||||
|
@ -202,6 +202,7 @@ OVS_CHECK_LINUX_SCTP_CT
|
||||
OVS_CHECK_LINUX_VIRTIO_TYPES
|
||||
OVS_CHECK_DPDK
|
||||
OVS_CHECK_PRAGMA_MESSAGE
|
||||
OVS_CHECK_VERSION_SUFFIX
|
||||
AC_SUBST([CFLAGS])
|
||||
AC_SUBST([OVS_CFLAGS])
|
||||
AC_SUBST([OVS_LDFLAGS])
|
||||
|
@ -19,7 +19,7 @@
|
||||
#define OPENVSWITCH_VERSION_H 1
|
||||
|
||||
#define OVS_PACKAGE_STRING "@PACKAGE_STRING@"
|
||||
#define OVS_PACKAGE_VERSION "@PACKAGE_VERSION@"
|
||||
#define OVS_PACKAGE_VERSION "@PACKAGE_VERSION@@VERSION_SUFFIX@"
|
||||
|
||||
#define OVS_LIB_VERSION @LT_CURRENT@
|
||||
#define OVS_LIB_REVISION @LT_REVISION@
|
||||
|
@ -146,7 +146,7 @@ ovsdb_internal_error(struct ovsdb_error *inner_error,
|
||||
ds_put_char(&ds, ')');
|
||||
}
|
||||
|
||||
ds_put_format(&ds, " (%s %s)", program_name, VERSION);
|
||||
ds_put_format(&ds, " (%s %s)", program_name, VERSION VERSION_SUFFIX);
|
||||
|
||||
if (inner_error) {
|
||||
char *s = ovsdb_error_to_string_free(inner_error);
|
||||
|
@ -618,12 +618,14 @@ ovs_set_program_name(const char *argv0, const char *version)
|
||||
program_name = basename;
|
||||
|
||||
free(program_version);
|
||||
if (!strcmp(version, VERSION)) {
|
||||
program_version = xasprintf("%s (Open vSwitch) "VERSION,
|
||||
if (!strcmp(version, VERSION VERSION_SUFFIX)) {
|
||||
program_version = xasprintf("%s (Open vSwitch) "VERSION
|
||||
VERSION_SUFFIX,
|
||||
program_name);
|
||||
} else {
|
||||
program_version = xasprintf("%s %s\n"
|
||||
"Open vSwitch Library "VERSION,
|
||||
"Open vSwitch Library "VERSION
|
||||
VERSION_SUFFIX,
|
||||
program_name, version);
|
||||
}
|
||||
}
|
||||
|
@ -816,7 +816,8 @@ main(int argc, char *argv[])
|
||||
/* ovsdb-server is usually a long-running process, in which case it
|
||||
* makes plenty of sense to log the version, but --run makes
|
||||
* ovsdb-server more like a command-line tool, so skip it. */
|
||||
VLOG_INFO("%s (Open vSwitch) %s", program_name, VERSION);
|
||||
VLOG_INFO("%s (Open vSwitch) %s", program_name,
|
||||
VERSION VERSION_SUFFIX);
|
||||
}
|
||||
|
||||
unixctl_command_register("exit", "", 0, 0, ovsdb_server_exit, &exiting);
|
||||
|
1
python/.gitignore
vendored
1
python/.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
dist/
|
||||
*.egg-info
|
||||
setup.py
|
||||
|
@ -75,25 +75,24 @@ EXTRA_DIST += \
|
||||
EXTRA_DIST += \
|
||||
python/ovs/compat/sortedcontainers/LICENSE \
|
||||
python/README.rst \
|
||||
python/setup.py \
|
||||
python/test_requirements.txt
|
||||
|
||||
# C extension support.
|
||||
EXTRA_DIST += python/ovs/_json.c
|
||||
|
||||
PYFILES = $(ovs_pyfiles) python/ovs/dirs.py $(ovstest_pyfiles) $(ovs_pytests)
|
||||
PYFILES = $(ovs_pyfiles) python/ovs/dirs.py python/setup.py $(ovstest_pyfiles) $(ovs_pytests)
|
||||
|
||||
EXTRA_DIST += $(PYFILES)
|
||||
PYCOV_CLEAN_FILES += $(PYFILES:.py=.py,cover)
|
||||
|
||||
FLAKE8_PYFILES += \
|
||||
$(filter-out python/ovs/compat/% python/ovs/dirs.py,$(PYFILES)) \
|
||||
$(filter-out python/ovs/compat/% python/ovs/dirs.py python/setup.py,$(PYFILES)) \
|
||||
python/ovs_build_helpers/__init__.py \
|
||||
python/ovs_build_helpers/extract_ofp_fields.py \
|
||||
python/ovs_build_helpers/nroff.py \
|
||||
python/ovs_build_helpers/soutil.py \
|
||||
python/ovs/dirs.py.template \
|
||||
python/setup.py
|
||||
python/setup.py.template
|
||||
|
||||
nobase_pkgdata_DATA = $(ovs_pyfiles) $(ovstest_pyfiles)
|
||||
ovs-install-data-local:
|
||||
@ -113,7 +112,7 @@ ovs-install-data-local:
|
||||
rm python/ovs/dirs.py.tmp
|
||||
|
||||
.PHONY: python-sdist
|
||||
python-sdist: $(srcdir)/python/ovs/version.py $(ovs_pyfiles) python/ovs/dirs.py
|
||||
python-sdist: $(srcdir)/python/ovs/version.py $(ovs_pyfiles) python/ovs/dirs.py python/setup.py
|
||||
cd python/ && $(PYTHON3) -m build --sdist
|
||||
|
||||
.PHONY: pypi-upload
|
||||
@ -129,8 +128,8 @@ ovs-uninstall-local:
|
||||
ALL_LOCAL += $(srcdir)/python/ovs/version.py
|
||||
$(srcdir)/python/ovs/version.py: config.status
|
||||
$(AM_V_GEN)$(ro_shell) > $(@F).tmp && \
|
||||
echo 'VERSION = "$(VERSION)"' >> $(@F).tmp && \
|
||||
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
||||
echo 'VERSION = "$(VERSION)$(VERSION_SUFFIX)"' >> $(@F).tmp && \
|
||||
if cmp -s $(@F).tmp $@; then touch $@; else cp $(@F).tmp $@; fi; rm $(@F).tmp
|
||||
|
||||
ALL_LOCAL += $(srcdir)/python/ovs/dirs.py
|
||||
$(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
|
||||
@ -147,6 +146,15 @@ $(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
|
||||
EXTRA_DIST += python/ovs/dirs.py.template
|
||||
CLEANFILES += python/ovs/dirs.py
|
||||
|
||||
ALL_LOCAL += $(srcdir)/python/setup.py
|
||||
$(srcdir)/python/setup.py: python/setup.py.template config.status
|
||||
$(AM_V_GEN)sed \
|
||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||
< $(srcdir)/python/setup.py.template > $(@F).tmp && \
|
||||
if cmp -s $(@F).tmp $@; then touch $@; else cp $(@F).tmp $@; fi; rm $(@F).tmp
|
||||
EXTRA_DIST += python/setup.py.template
|
||||
CLEANFILES += python/setup.py
|
||||
|
||||
EXTRA_DIST += python/TODO.rst
|
||||
|
||||
$(srcdir)/python/ovs/flow/ofp_fields.py: $(srcdir)/build-aux/gen_ofp_field_decoders include/openvswitch/meta-flow.h
|
||||
|
@ -23,24 +23,16 @@ except ImportError: # Needed for setuptools < 59.0
|
||||
|
||||
import setuptools
|
||||
|
||||
VERSION = "unknown"
|
||||
VERSION = "@VERSION@"
|
||||
|
||||
try:
|
||||
# Try to set the version from the generated ovs/version.py
|
||||
exec(open("ovs/version.py").read())
|
||||
except IOError:
|
||||
print("Ensure version.py is created by running make python/ovs/version.py",
|
||||
file=sys.stderr)
|
||||
sys.exit(-1)
|
||||
|
||||
try:
|
||||
# Try to open generated ovs/dirs.py. However, in this case we
|
||||
# don't need to exec()
|
||||
open("ovs/dirs.py")
|
||||
except IOError:
|
||||
print("Ensure dirs.py is created by running make python/ovs/dirs.py",
|
||||
file=sys.stderr)
|
||||
sys.exit(-1)
|
||||
for x in ("version.py", "dirs.py"):
|
||||
try:
|
||||
# Try to open generated ovs/{version,dirs}.py
|
||||
open(f"ovs/{x}")
|
||||
except IOError:
|
||||
print(f"Ensure {x} is created by running make python/ovs/{x}",
|
||||
file=sys.stderr)
|
||||
sys.exit(-1)
|
||||
|
||||
ext_errors = (CCompilerError, ExecError, PlatformError)
|
||||
if sys.platform == 'win32':
|
@ -186,6 +186,7 @@ This package provides IPsec tunneling support for OVS tunnels.
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--with-pkidir=%{_sharedstatedir}/openvswitch/pki \
|
||||
--with-version-suffix=-%{release} \
|
||||
PYTHON3=%{__python3}
|
||||
|
||||
build-aux/dpdkstrip.py \
|
||||
|
@ -351,7 +351,7 @@ def args_get():
|
||||
# None is a special value indicating to read flows from stdin.
|
||||
# This handles the case
|
||||
# ovs-dpctl dump-flows | ovs-dpctl-flows.py
|
||||
parser.add_argument("-v", "--version", version="@VERSION@",
|
||||
parser.add_argument("-v", "--version", version="@VERSION@@VERSION_SUFFIX@",
|
||||
action="version", help="show version")
|
||||
parser.add_argument("-f", "--flow-file", dest="flowFiles", default=None,
|
||||
action="append",
|
||||
|
@ -70,7 +70,7 @@ ovs_ctl () {
|
||||
esac
|
||||
}
|
||||
|
||||
VERSION='@VERSION@'
|
||||
VERSION='@VERSION@@VERSION_SUFFIX@'
|
||||
|
||||
DAEMON_CWD=/
|
||||
|
||||
|
@ -51,7 +51,7 @@ def addr2line(binary, addr):
|
||||
|
||||
|
||||
def main():
|
||||
parser = optparse.OptionParser(version='@VERSION@',
|
||||
parser = optparse.OptionParser(version='@VERSION@@VERSION_SUFFIX@',
|
||||
usage="usage: %prog [binary]",
|
||||
description="""\
|
||||
Parses the output of ovs-appctl backtrace producing a more human readable
|
||||
|
@ -85,7 +85,7 @@ if __name__ == "__main__":
|
||||
if key in ['-h', '--help']:
|
||||
usage()
|
||||
elif key in ['-V', '--version']:
|
||||
print("ovs-pcap (Open vSwitch) @VERSION@")
|
||||
print("ovs-pcap (Open vSwitch) @VERSION@@VERSION_SUFFIX@")
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
||||
|
@ -189,7 +189,7 @@ EOF
|
||||
exit 0
|
||||
;;
|
||||
-V|--version)
|
||||
echo "ovs-pki (Open vSwitch) @VERSION@"
|
||||
echo "ovs-pki (Open vSwitch) @VERSION@@VERSION_SUFFIX@"
|
||||
exit 0
|
||||
;;
|
||||
--di*=*)
|
||||
|
@ -47,7 +47,7 @@ try:
|
||||
from ovs.fatal_signal import add_hook
|
||||
except Exception:
|
||||
print("ERROR: Please install the correct Open vSwitch python support")
|
||||
print(" libraries (version @VERSION@).")
|
||||
print(" libraries (version @VERSION@@VERSION_SUFFIX@).")
|
||||
print(" Alternatively, check that your PYTHONPATH is pointing to")
|
||||
print(" the correct location.")
|
||||
sys.exit(1)
|
||||
@ -453,7 +453,7 @@ def main():
|
||||
if cur in ['-h', '--help']:
|
||||
usage()
|
||||
elif cur in ['-V', '--version']:
|
||||
print("ovs-tcpdump (Open vSwitch) @VERSION@")
|
||||
print("ovs-tcpdump (Open vSwitch) @VERSION@@VERSION_SUFFIX@")
|
||||
sys.exit(0)
|
||||
elif cur in ['--db-sock']:
|
||||
db_sock = nxt
|
||||
|
@ -46,7 +46,7 @@ if __name__ == "__main__":
|
||||
if key in ['-h', '--help']:
|
||||
usage()
|
||||
elif key in ['-V', '--version']:
|
||||
print("ovs-tcpundump (Open vSwitch) @VERSION@")
|
||||
print("ovs-tcpundump (Open vSwitch) @VERSION@@VERSION_SUFFIX@")
|
||||
sys.exit(0)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
@ -393,7 +393,7 @@ def main():
|
||||
usage()
|
||||
return 0
|
||||
elif key in ['-V', '--version']:
|
||||
print_safe('ovs-vlan-test (Open vSwitch) @VERSION@')
|
||||
print_safe('ovs-vlan-test (Open vSwitch) @VERSION@@VERSION_SUFFIX@')
|
||||
return 0
|
||||
elif key in ['-s', '--server']:
|
||||
server = True
|
||||
|
@ -3470,7 +3470,8 @@ bridge_run(void)
|
||||
|
||||
vlog_enable_async();
|
||||
|
||||
VLOG_INFO_ONCE("%s (Open vSwitch) %s", program_name, VERSION);
|
||||
VLOG_INFO_ONCE("%s (Open vSwitch) %s", program_name,
|
||||
VERSION VERSION_SUFFIX);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user