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

Silent grab external dependency from libuuid during build without possibility to disable it #100369

Closed
VVD opened this issue Dec 20, 2022 · 5 comments
Labels
build The build process and cross-build type-bug An unexpected behavior, bug, or error

Comments

@VVD
Copy link

VVD commented Dec 20, 2022

Bug report

During build process of the python it silent grab external (not in base system, but installed from ports) dependency from libuuid (misc/e2fsprogs-libuuid):

checking uuid.h usability... yes
checking uuid.h presence... yes
checking for uuid.h... yes
checking for uuid_generate_time_safe... no
checking for uuid_generate_time in -luuid... yes
checking for uuid_create... yes
checking for uuid_enc_be... yes

Without libuuid (misc/e2fsprogs-libuuid) installed:

checking uuid.h usability... yes
checking uuid.h presence... yes
checking for uuid.h... yes
checking for uuid_generate_time_safe... no
checking for uuid_generate_time in -luuid... no
checking for uuid_create... yes
checking for uuid_enc_be... yes

And it's impossible to disable this behavior without additional patches to configure script.

Your environment

  • CPython versions tested on: 3.10.9
  • Operating system and architecture: FreeBSD 13.1-p5 amd64

IMHO, best solution is to add an options to configure script, for example: --disable-libuuid and --enable-libuuid.
Additionally: base system have uuid.h and misc/e2fsprogs-libuuid have uuid/uuid.h - better check for uuid.h if --disable-libuuid used and for uuid/uuid.h if --enable-libuuid.

P.S. Sorry for my poor english.

@VVD VVD added the type-bug An unexpected behavior, bug, or error label Dec 20, 2022
@AlexWaygood AlexWaygood added the build The build process and cross-build label Dec 20, 2022
@eli-schwartz
Copy link
Contributor

Reading the code for configure.ac, I am pretty sure this is not an issue anymore since GH-29741, which cleaned up the uuid module in a couple ways including refactoring the configure checks to use pkg-config.

A side effect of this is that it actually checks properly for different providers of uuid -- and if it finds the FreeBSD base system version of uuid.h, it marks it as found and doesn't attempt to either probe it with pkg-config, or fall back on AC_CHECK_LIB. Therefore it won't ever find it in ports.

@eli-schwartz
Copy link
Contributor

Dunno if that's worth backporting from 3.11 to 3.10, at the very least that commit would need to be reduced and only part of it applied.

@VVD
Copy link
Author

VVD commented Dec 20, 2022

Dunno if that's worth backporting from 3.11 to 3.10, at the very least that commit would need to be reduced and only part of it applied.

Look like not backported yet.

@VVD VVD changed the title Silent grab external dependency from libuuid during build without possibility to diable it Silent grab external dependency from libuuid during build without possibility to disable it Dec 20, 2022
@VVD
Copy link
Author

VVD commented Jan 7, 2023

ping

@zware
Copy link
Member

zware commented May 11, 2023

This is fixed in 3.12 and can no longer be fixed in 3.10, leaving only 3.11 in question. The change is subtle enough that I'm not excited about trying to pick out (or review) the right bits to backport, so I'm going to go ahead and close the issue.

@zware zware closed this as not planned Won't fix, can't repro, duplicate, stale May 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build The build process and cross-build type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

4 participants