Bug 106784 - 18.1.1 autotools build fail without mako
Summary: 18.1.1 autotools build fail without mako
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: 18.0
Hardware: Other All
: medium normal
Assignee: Dylan Baker
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-02 13:19 UTC by fredrik
Modified: 2018-06-05 16:05 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description fredrik 2018-06-02 13:19:58 UTC
configure confirms that mako is not installed:

checking if module mako in python is installed... No module named mako
no

Yet:

  GEN      radeon_icd.x86_64.json
Traceback (most recent call last):
  File "./radv_icd.py", line 26, in <module>
    from radv_extensions import *
  File "/tmp/mesa3d-18.1.1-1-work/src/mesa-18.1.1/src/amd/vulkan/radv_extensions.py", line 32, in <module>
    from mako.template import Template
ImportError: No module named mako.template
Comment 1 Eric Engestrom 2018-06-04 11:22:48 UTC
I just sent a patch to the ML that should fix it; unfortunately for you, the fix is that it should've failed earlier, you do need mako when building radv.
(cc'ed you on the patch so that you can confirm the configure step now fails)
Comment 2 fredrik 2018-06-04 11:32:33 UTC
Bummer! No workaround available to avoid mako? It does introduce a lot of previously unneeded depencencies.
Comment 3 Michael Olbrich 2018-06-04 15:44:49 UTC
Why not ship the generated files in the tarball like it's done in other parts of mesa?
Comment 4 Eric Engestrom 2018-06-04 17:25:43 UTC
(In reply to fredrik from comment #2)
> Bummer! No workaround available to avoid mako? It does introduce a lot of
> previously unneeded depencencies.

Those dependencies will be needed even for tarball builds once we switch to meson for building tarballs (it takes a snapshot of the git tree), so any workaround would be temporary anyway.


(In reply to Michael Olbrich from comment #3)
> Why not ship the generated files in the tarball like it's done in other
> parts of mesa?

It could be possible, I didn't look into this; I'll let Dave and Bas (cc'ed on the patch) decide what is best.
Comment 5 Bas Nieuwenhuizen 2018-06-04 18:36:38 UTC
Some of those files (radv_icd.py) uses the install path, you can't really put the result of that in a release tarball.


so either we need to stop using mako for that and use something else, or we still need mako.

Just curious though what are the main reasons against mako? Intel has been depending on them like this for a while.
Comment 6 fredrik 2018-06-04 18:40:50 UTC
(In reply to Bas Nieuwenhuizen from comment #5)
> Just curious though what are the main reasons against mako? Intel has been
> depending on them like this for a while.

My only "objection" is additional dependency bloat:

These are new deps to run mesa3d 18.1 on my system:

-- Packages installed
python-appdirs
python-pyparsing
python-six
python-pip
python-packaging
python-setuptools
mako
Comment 7 Dylan Baker 2018-06-04 19:00:11 UTC
Those are just build-time dependencies, you can uninstall them afterwards.
Comment 8 fredrik 2018-06-04 19:08:24 UTC
(In reply to Dylan Baker from comment #7)
> Those are just build-time dependencies, you can uninstall them afterwards.

It's not really practical in a source based distribution (yes a few still exist).
Comment 9 Eric Engestrom 2018-06-05 16:05:20 UTC
I just pushed the "radv needed mako all along" patch with Bas' blessing:

commit c765c39ea73178c81a8bf88fe57c8d39a01dc57d
Author: Eric Engestrom <eric.engestrom@intel.com>
Date:   Mon Jun 4 12:08:15 2018 +0100

    configure: radv depends on mako
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=106784
    Fixes: 17201a2eb0b1b85387136 "radv: port to using updated anv
                                  entrypoint/extension generator."
    Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
    Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.