Skip to content

intro-install-plan.json does not match with intro-installed.json #10639

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
lithomas1 opened this issue Jul 29, 2022 · 3 comments · Fixed by #10800
Closed

intro-install-plan.json does not match with intro-installed.json #10639

lithomas1 opened this issue Jul 29, 2022 · 3 comments · Fixed by #10800
Assignees

Comments

@lithomas1
Copy link
Member

Describe the bug

The files listed in the intro-install-plan.json do not match with the files installed (listed in intro-installed.json).
This causes problems for meson-python, which uses intro-install-plan.json to find installed files.

In particular, on Windows, when building in release mode, pdb files will be listed in the install-plan but not installed, with a message like

File 'pandas\\_libs\\window\\indexers.cp38-win_amd64.pdb' not found, skipping

In addition, folders installed with install_subdir are not listed in the install-plan.

To Reproduce
Please include your meson.build files, preferably as a minimal toy example showing the issue.
You may need to create simple source code files (don't include private/proprietary code).

I found this problem while trying to port pandas to meson. Here is the code to reproduce.

git clone https://github.com/lithomas1/pandas.git@meson-poc
cd pandas
python -m build

It should be reproducible without pandas, though. I'll try to make a MRE when I have some time.
Expected behavior
A clear and concise description of what you expected to happen.

files listed in intro-install-plan should match files in intro-installed.

system parameters

  • Is this a cross build or just a plain native build (for the same computer)?
    native
  • what operating system (e.g. MacOS Catalina, Windows 10, CentOS 8.0, Ubuntu 18.04, etc.)
    Windows
  • what Python version are you using e.g.
    3.8.0
  • what meson --version
    0.63.0
  • what ninja --version if it's a Ninja build
@eli-schwartz
Copy link
Member

@FFY00, you originally implemented #9130 for your PEP 517 backend, what's the story here?

@FFY00
Copy link
Member

FFY00 commented Jul 29, 2022

I think the issue is that we don't install pdb files in release mode, but install-plan doesn't take that into account and still lists it.

@lithomas1
Copy link
Member Author

The issue with missing install subdirs can probably be fixed just by adding 'subdirs': installdata.subdirs here.

meson/mesonbuild/mintro.py

Lines 136 to 140 in f8ebfdf

for key, data_list in {
'data': installdata.data,
'man': installdata.man,
'headers': installdata.headers,
}.items():

I'm still not sure about the pdb files, though. The band-aid fix would be to just skip targets that don't exist on the file-system, but there seems to be a bigger issue here. @eli-schwartz Do you happen to know why the pdb files seem to be listed as install targets even in release mode?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants