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
dev-libs/leveldb: bump to 1.20, sub-slot to avoid ABI breakage #8848
Conversation
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Pull Request assignment Areas affected: ebuilds, profiles @gentoo/github: Too many disjoint maintainers, disabling auto-assignment. Bugs linked: 609966 In order to force reassignment and/or bug reference scan, please append |
Ping @patricklauer |
Might make more sense to just have bitcoin stuff depend on the virtual and |
dev-libs/leveldb/leveldb-1.20.ebuild
Outdated
targetos="FreeBSD" | ||
else | ||
targetos="Linux" | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
local targetos="$(usex kernel_FreeBSD FreeBSD Linux)"
} | ||
|
||
src_install() { | ||
insinto /usr/include |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is kinda awful, but ok...
Pull request CI report Report generated at: 2018-06-17 00:33 UTC No issues found |
Actually, sub-slots don't seem sufficient for this...? Stuff linking to it will break between when the update is installed, and when the rebuild finishes.. |
(whereas with a proper soname bump, preserved libs will keep them working in the interim) |
@luke-jr We don't really have a better solution though. And if the programme is already running, it will keep using the deleted leveldb.so until it is closed so it's not such a big deal IMO. |
|
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
* Upstream broke the ABI without changing the SONAME so we have to introduce a sub-slot, see google/leveldb#536 All reverse dependencies should now have the slot operator set, which will trigger rebuilds when required. The case of bitcoin is special because they only support specific leveldb versions. * Properly handle USE=static-libs when USE=snappy isn't set, change package.use.mask entry. See https://bugs.gentoo.org/651604 * Update the patch to build libmemenv.so which is required by bitcoin, see google/leveldb#236 * The patch also disables test building, allowing us to make src_compile more elegant. * Remove MIPS patch which was merged: google/leveldb#272 * Bump to EAPI=7 Closes: https://bugs.gentoo.org/609966 Package-Manager: Portage-2.3.40, Repoman-2.3.9
Package-Manager: Portage-2.3.40, Repoman-2.3.9
@SoapGentoo The ABI is broken without a soname bump, so this will replace the current library. Replaced libraries cannot be preserved, and will be silently linked against by software built against the old version. |
Hi,
This bumps leveldb to 1.20. Because of an ABI change without a SONAME change, I had to introduce a sub-slot. I made sure that all reverse dependencies have the correct slot operator. I changed the stable ceph and qtwebkit straight-to-stable. Other affected ebuilds were unstable.
Changes to the ebuild:
I've also removed a bunch of older unstable versions which aren't required by anything.
@luke-jr Once this is merged and you know leveldb 1.20 works with bitcoin, I think one of the options would be to add slot operators for virtual/bitcoin-leveldb to bitcoind and bitcoin-qt. Then, you would create a new version of the virtual that uses a new sub-slot and only corresponds to leveldb versions that have the same sub-slot, maybe something like :