From 9ce6a21aaa76cd40c95ebbcb5fc6e48a8f5dfdb9 Mon Sep 17 00:00:00 2001 From: Paul Vinciguerra Date: Wed, 12 Sep 2018 13:40:13 -0700 Subject: [PATCH 1/1] Fix: vppapigen make build fails on fresh install Steps to reproduce: vagrant@localhost:/vagrant$ build-root/vagrant/build.sh ... @@@@ Building vpp in /vagrant/build-root/build-vpp-native/vpp @@@@ [51/1169] Generating API header /vagrant/build-root/build-vpp-native/vpp/vlibmemory/memclnt.api.json FAILED: cd /vagrant/build-root/build-vpp-native/vpp/vlibmemory && mkdir -p /vagrant/build-root/build-vpp-native/vpp/vlibmemory && /vagrant/src/tools/vppapigen/vppapigen --includedir /vagrant/src --input /vagrant/src/vlibmemory/memclnt.api JSON --output /vagrant/build-root/build-vpp-native/vpp/vlibmemory/memclnt.api.json AttributeError: 'module' object has no attribute 'dumps' This seems to be due to JSON.py namespace colliding with the standard lib json.py Change-Id: If389e4e05ef0c166b0c2b3bef7ec0185298679a8 Signed-off-by: Paul Vinciguerra --- build-data/platforms.mk | 4 ++-- extras/rpm/vpp.spec | 4 ++-- src/tools/vppapigen/CMakeLists.txt | 2 +- src/tools/vppapigen/vppapigen.py | 4 ++-- src/tools/vppapigen/{C.py => vppapigen_c.py} | 0 src/tools/vppapigen/{JSON.py => vppapigen_json.py} | 0 6 files changed, 7 insertions(+), 7 deletions(-) rename src/tools/vppapigen/{C.py => vppapigen_c.py} (100%) rename src/tools/vppapigen/{JSON.py => vppapigen_json.py} (100%) diff --git a/build-data/platforms.mk b/build-data/platforms.mk index fafddc64a0d..d06720272c6 100644 --- a/build-data/platforms.mk +++ b/build-data/platforms.mk @@ -78,9 +78,9 @@ install-deb: $(patsubst %,%-find-source,$(ROOT_PACKAGES)) : dev package needs a couple of additions ; \ echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/bin/vppapigen /usr/bin \ >> deb/debian/vpp-dev.install ; \ - echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/share/vpp/C.py /usr/share/vpp \ + echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/share/vpp/vppapigen_c.py /usr/share/vpp \ >> deb/debian/vpp-dev.install ; \ - echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/share/vpp/JSON.py /usr/share/vpp \ + echo ../$(INSTALL_PREFIX)$(ARCH)/vpp/share/vpp/vppapigen_json.py /usr/share/vpp \ >> deb/debian/vpp-dev.install ; \ echo ../../extras/japi/java/jvpp/gen/jvpp_gen.py /usr/bin \ >> deb/debian/vpp-dev.install ; \ diff --git a/extras/rpm/vpp.spec b/extras/rpm/vpp.spec index 13397513a2b..a66b46c5ae6 100644 --- a/extras/rpm/vpp.spec +++ b/extras/rpm/vpp.spec @@ -263,8 +263,8 @@ for i in $(ls %{_mu_build_dir}/../extras/japi/java/jvpp/gen/jvppgen/*.py); do install -p -m666 ${i} %{buildroot}%{python2_sitelib}/jvppgen done; -install -p -m 644 %{_mu_build_dir}/../src/tools/vppapigen/C.py %{buildroot}/usr/share/vpp -install -p -m 644 %{_mu_build_dir}/../src/tools/vppapigen/JSON.py %{buildroot}/usr/share/vpp +install -p -m 644 %{_mu_build_dir}/../src/tools/vppapigen/vppapigen_c.py %{buildroot}/usr/share/vpp +install -p -m 644 %{_mu_build_dir}/../src/tools/vppapigen/vppapigen_json.py %{buildroot}/usr/share/vpp # sample plugin mkdir -p -m755 %{buildroot}/usr/share/doc/vpp/examples/sample-plugin/sample diff --git a/src/tools/vppapigen/CMakeLists.txt b/src/tools/vppapigen/CMakeLists.txt index 0d982fe29f8..ce25cb0c9e7 100644 --- a/src/tools/vppapigen/CMakeLists.txt +++ b/src/tools/vppapigen/CMakeLists.txt @@ -21,4 +21,4 @@ install( COMPONENT vpp-dev ) -install(FILES C.py JSON.py DESTINATION share/vpp COMPONENT vpp-dev) +install(FILES vppapigen_c.py vppapigen_json.py DESTINATION share/vpp COMPONENT vpp-dev) diff --git a/src/tools/vppapigen/vppapigen.py b/src/tools/vppapigen/vppapigen.py index f3094ec0a84..9d04ec24cfc 100755 --- a/src/tools/vppapigen/vppapigen.py +++ b/src/tools/vppapigen/vppapigen.py @@ -785,14 +785,14 @@ def main(): '/../share/vpp/') for c in cand: c += '/' - if os.path.isfile(c + args.output_module + '.py'): + if os.path.isfile('{}vppapigen_{}.py'.format(c, args.output_module.lower())): pluginpath = c break else: pluginpath = args.pluginpath + '/' if pluginpath == '': raise Exception('Output plugin not found') - module_path = pluginpath + args.output_module + '.py' + module_path = '{}vppapigen_{}.py'.format(pluginpath, args.output_module.lower()) try: plugin = imp.load_source(args.output_module, module_path) diff --git a/src/tools/vppapigen/C.py b/src/tools/vppapigen/vppapigen_c.py similarity index 100% rename from src/tools/vppapigen/C.py rename to src/tools/vppapigen/vppapigen_c.py diff --git a/src/tools/vppapigen/JSON.py b/src/tools/vppapigen/vppapigen_json.py similarity index 100% rename from src/tools/vppapigen/JSON.py rename to src/tools/vppapigen/vppapigen_json.py -- 2.16.6