Skip to content
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

Linux/aarch64 build fails with weird conda error #24

Closed
pkgw opened this issue Jul 15, 2019 · 5 comments
Closed

Linux/aarch64 build fails with weird conda error #24

pkgw opened this issue Jul 15, 2019 · 5 comments

Comments

@pkgw
Copy link
Contributor

pkgw commented Jul 15, 2019

Here's a strange one. The most recent Linux/aarch64 build almost fully succeeds, but dies at the very end with this error:

Fixing permissions
Packaged license file.
Traceback (most recent call last):
  File "/opt/conda/bin/conda-build", line 11, in <module>
    sys.exit(main())
  File "/opt/conda/lib/python3.7/site-packages/conda_build/cli/main_build.py", line 445, in main
    execute(sys.argv[1:])
  File "/opt/conda/lib/python3.7/site-packages/conda_build/cli/main_build.py", line 436, in execute
    verify=args.verify, variants=args.variants)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/api.py", line 209, in build
    notest=notest, need_source_download=need_source_download, variants=variants)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 2313, in build_tree
    notest=notest,
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 1612, in build
    newly_built_packages = bundlers[pkg_type](output_d, m, env, stats)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 1003, in bundle_conda
    output['checksums'] = create_info_files(metadata, files, prefix=metadata.config.host_prefix)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 704, in create_info_files
    write_info_files_file(m, files)
  File "/opt/conda/lib/python3.7/site-packages/conda_build/build.py", line 549, in write_info_files_file
    fo.write(f + '\n')
UnicodeEncodeError: 'utf-8' codec can't encode character '\udc93' in position 5: surrogates not allowed

(xref: Azure build info)

My best guess is that the install is creating some file with a bogus name, but it's hard for me to see how that would happen on aarch64 but not any other platform/arches.

@conda-forge/core Anyone seen anything like this before?

pkgw added a commit to pkgw/pango-feedstock that referenced this issue Jul 15, 2019
@pkgw
Copy link
Contributor Author

pkgw commented Jul 15, 2019

Ah, local investigation:

-rw-rw-r--.  1 peter peter     2065 Jul 15 15:18  xml2Conf.sh
lrwxrwxrwx.  1 peter peter       19 Jul 15 15:41 ''$'\003\223\177'' '$'\003'')X'$'\003''"t'$'\003\265\177'' '$'\003\315' -> libfribidi.so.0.4.0

Looks like this is a variation of conda-forge/glib-feedstock#40.

@pkgw
Copy link
Contributor Author

pkgw commented Jul 15, 2019

xref: mesonbuild/meson#4685

@pkgw
Copy link
Contributor Author

pkgw commented Jul 15, 2019

For posterity: the following command at the end of build.sh will delete the offending file that ldconfig creates:

# XXX GROSS TEMP hack get the aarch64 build working despite pango-feedstock#24.
find $PREFIX/lib -maxdepth 1 -lname '*fribidi*' -delete -ls

However, any package that relies on Pango and calls ldconfig will have the same issue, which is super confusing and annoying, so it seems best not to deploy this hack.

@ocefpaf
Copy link
Member

ocefpaf commented Jul 17, 2019

My guess is that we need a newer (odler?) conda-build here. I don't think the problem is realated with the package.

@pkgw
Copy link
Contributor Author

pkgw commented Jul 17, 2019

To the best of my diagnosis, the problem is fundamentally with how Meson modifies the ELF files it installs on Linux, which are technically correct but can confuse old versions of ldconfig. I'm not sure what conda-build could do about that, short of adding a lot of very specialized code to check for the confusing ELF constructs.

Anyway, rebuilding fribidi with a modification to prevent Meson's munging made this problem go away.

@pkgw pkgw closed this as completed Jul 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants