From: Paul Vinciguerra Date: Wed, 12 Sep 2018 20:40:13 +0000 (-0700) Subject: Fix: vppapigen make build fails on fresh install X-Git-Tag: v18.10-rc1~200 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=9ce6a21aaa76cd40c95ebbcb5fc6e48a8f5dfdb9;hp=b1232555e91b286feab5667b5a22f29aa8e96626;p=vpp.git 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 --- 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