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

{Packaging} Pin cffi to 1.14.6 for RPM #20608

Merged
merged 1 commit into from
Dec 6, 2021
Merged

{Packaging} Pin cffi to 1.14.6 for RPM #20608

merged 1 commit into from
Dec 6, 2021

Conversation

jiasli
Copy link
Member

@jiasli jiasli commented Dec 3, 2021

Symptom

After

CI task Build Rpm Package fails when installing the built azure-cli-dev.rpm:

https://dev.azure.com/azure-sdk/public/_build/results?buildId=1227167&view=logs&jobId=eefb80ef-df2c-51d4-a735-8b3fa596bf12&j=eefb80ef-df2c-51d4-a735-8b3fa596bf12&t=6f9a8c49-480f-5696-065d-31253d9c4238

error: Failed dependencies:
	libffi-d58a691e.so.8.1.0(LIBFFI_BASE_8.0)(64bit) is needed by azure-cli-2.31.0-1.el7.x86_64
	libffi-d58a691e.so.8.1.0(LIBFFI_CLOSURE_8.0)(64bit) is needed by azure-cli-2.31.0-1.el7.x86_64
The command '/bin/sh -c rpm -i ./azure-cli-dev.rpm &&     az --version' returned a non-zero code: 1

Looks like what the built RPM package requires differs from what it provides.

# rpm --query --requires --package azure-cli-2.31.0-1.el7.x86_64.rpm
config(azure-cli) = 2.31.0-1.el7
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libffi-d58a691e.so.8.1.0()(64bit)
libffi-d58a691e.so.8.1.0(LIBFFI_BASE_8.0)(64bit)
libffi-d58a691e.so.8.1.0(LIBFFI_CLOSURE_8.0)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpython3.6m.so.1.0()(64bit)
python3
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

# rpm --query --provides --package azure-cli-2.31.0-1.el7.x86_64.rpm
azure-cli = 2.31.0-1.el7
azure-cli(x86-64) = 2.31.0-1.el7
config(azure-cli) = 2.31.0-1.el7
libffi-d58a691e.so.8.1.0()(64bit)
libffi.so.8(LIBFFI_BASE_8.0)(64bit)
libffi.so.8(LIBFFI_CLOSURE_8.0)(64bit)
libffi.so.8(LIBFFI_COMPLEX_8.0)(64bit)
libffi.so.8(LIBFFI_GO_CLOSURE_8.0)(64bit)

(RPM man page: https://man7.org/linux/man-pages/man8/rpm.8.html)

This issue has been reported to cffi: https://foss.heptapod.net/pypy/cffi/-/issues/513

Context

Some other tricky things:

Also see:

Some other resources that may be related:

Change

Revert cffi to the old 1.14.6 to unblock RPM and Mariner builds (#20584).

# pip3 install cffi==1.14.6

# find / -name libffi*
/usr/lib64/libffi.so.6.0.1
/usr/lib64/libffi.so.6
/usr/local/lib64/python3.6/site-packages/cffi.libs/libffi-c643fa1a.so.6.0.4

@jiasli
Copy link
Member Author

jiasli commented Dec 3, 2021

Before bumping cffi to 1.15.0, there is only libffi-806b1a9d.so.6.0.4()(64bit):

# curl -O https://packages.microsoft.com/yumrepos/azure-cli/azure-cli-2.30.0-1.el7.x86_64.rpm

# rpm --query --provides --package azure-cli-2.30.0-1.el7.x86_64.rpm
warning: azure-cli-2.30.0-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
azure-cli = 2.30.0-1.el7
azure-cli(x86-64) = 2.30.0-1.el7
config(azure-cli) = 2.30.0-1.el7
libffi-806b1a9d.so.6.0.4()(64bit)

# rpm --query --requires --package azure-cli-2.30.0-1.el7.x86_64.rpm
warning: azure-cli-2.30.0-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
config(azure-cli) = 2.30.0-1.el7
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libffi-806b1a9d.so.6.0.4()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpython3.6m.so.1.0()(64bit)
python3
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

Comment on lines -683 to -685

dependsOn: BuildPythonWheel
condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual', 'Schedule'))
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should build RPM/Yum for PRs, like we build MSI for PRs. Otherwise, issue like this can't be discovered by PR, but only after the PR gets merged.

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

Successfully merging this pull request may close these issues.

2 participants