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

Updated build process checks for referenced libraries #668

Open
4 tasks
iramiller opened this issue Feb 17, 2022 · 1 comment
Open
4 tasks

Updated build process checks for referenced libraries #668

iramiller opened this issue Feb 17, 2022 · 1 comment
Labels
CI Continuous Integration and release process
Milestone

Comments

@iramiller
Copy link
Member

Summary

Some users have reported build issues with cleveldb and with the libwasmvm (both of which are shared libraries). The build process should be modified to require specific libraries with verified hashes to lock in these dependency versions.

Problem Definition

As the following linker report shows, shared libraries (in this case leveldb and libwasm are not locked against specific versions. This leads to issues because the implementation can vary widely across the revisions (or in the case of libwasm there is no restriction at all).

otool -L ./build/provenanced
./build/provenanced:
        /usr/local/opt/leveldb/lib/libleveldb.1.dylib (compatibility version 1.0.0, current version 1.23.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1675.129.0)
        /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 59306.101.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
        @rpath/libwasmvm.dylib (compatibility version 0.0.0, current version 0.0.0)
        /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)

Proposal

Require that all shared libraries target explicit compatibility versions. When the library does not provide version information (such as libwasmvm that reports 0.0.0 require that an explicit file hash matches the expected build version.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@iramiller iramiller added the CI Continuous Integration and release process label Feb 17, 2022
@iramiller iramiller added this to the v1.9.0 milestone Feb 17, 2022
@iramiller iramiller modified the milestones: v1.13.0, v1.13.1 Sep 30, 2022
@iramiller
Copy link
Member Author

We can update this process to remove cleveldb support with 1.14.x it looks like...

@iramiller iramiller modified the milestones: v1.13.1, v1.14.0 Dec 9, 2022
@nullpointer0x00 nullpointer0x00 modified the milestones: v1.14.0, v1.15.0 Jan 23, 2023
@SpicyLemon SpicyLemon modified the milestones: v1.15.0, v1.16.0 Apr 19, 2023
@iramiller iramiller moved this from Todo to Backlog in Provenance Core Protocol Team May 12, 2023
@iramiller iramiller moved this from Backlog to Todo in Provenance Core Protocol Team Jun 2, 2023
@SpicyLemon SpicyLemon modified the milestones: v1.16.0, v1.17.0 Jun 13, 2023
@SpicyLemon SpicyLemon moved this from Todo to Backlog in Provenance Core Protocol Team Sep 6, 2023
@iramiller iramiller modified the milestones: v1.17.0, v1.18.0 Oct 12, 2023
@iramiller iramiller modified the milestones: v1.18.0, v1.19.0 Jan 4, 2024
@SpicyLemon SpicyLemon modified the milestones: v1.19.0, v1.20.0 Jul 15, 2024
@iramiller iramiller modified the milestones: v1.20.0, v1.21.0 Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration and release process
Projects
Development

No branches or pull requests

3 participants