ceph: arrow 19 compilation fix with protobuf 30; snappy: restore of RTTI patch (#427905)

This commit is contained in:
Niklas Hambüchen
2025-07-29 03:11:06 +02:00
committed by GitHub
2 changed files with 28 additions and 4 deletions
+17
View File
@@ -3,6 +3,7 @@
stdenv,
fetchFromGitHub,
cmake,
fetchpatch,
static ? stdenv.hostPlatform.isStatic,
}:
@@ -19,6 +20,22 @@ stdenv.mkDerivation rec {
patches = [
./revert-PUBLIC.patch
# Re-enable RTTI, without which other applications can't subclass snappy::Source
# While the patch was rejected upstream, it does not make it any less necessary to carry forward.
# ==> lack of RTTI *breaks* Ceph (and others) <==
#
# https://tracker.ceph.com/issues/53060
# https://build.opensuse.org/package/show/openSUSE:Factory/snappy
#
# Should this patch fail to apply use the above site to get the updated patch (rev in the url below).
# On the page there's a "latest revision" section which lists the last request which was merged into it.
# Click the "Request <insert number>" link, then view any file using "View file", and copy the rev from your address bar.
# For a different revision (in case nixpkgs is behind or something) you can go through the full revision history.
# Should the patch not be available for the nixpkgs version, ideally wait until the patch becomes available before bumping, or vendor it if necessary.
(fetchpatch {
url = "https://build.opensuse.org/public/source/openSUSE:Factory/snappy/reenable-rtti.patch?rev=e3449869b466869fc6b8a03a1a528fa6";
hash = "sha256-JhVhkHh7XPx1Bzf5xnOgWLgwh1oihX3O+emQWzE4Dho=";
})
];
outputs = [
+11 -4
View File
@@ -8,6 +8,7 @@
stdenv,
lib,
fetchurl,
fetchpatch2,
fetchFromGitHub,
fixDarwinDylibNames,
autoconf,
@@ -42,7 +43,7 @@
openssl,
perl,
pkg-config,
protobuf_29,
protobuf,
python3,
rapidjson,
re2,
@@ -67,9 +68,6 @@
}:
let
# https://github.com/apache/arrow/issues/45807
protobuf = protobuf_29;
arrow-testing = fetchFromGitHub {
name = "arrow-testing";
owner = "apache";
@@ -101,6 +99,15 @@ stdenv.mkDerivation (finalAttrs: {
sourceRoot = "${finalAttrs.src.name}/cpp";
patches = [
(fetchpatch2 {
name = "protobuf-30-compat.patch";
url = "https://github.com/apache/arrow/pull/46136.patch";
hash = "sha256-WTpe/eT3himlCHN/R78w1sF0HG859mE2ZN70U+9N8Ag=";
stripLen = 1;
})
];
# versions are all taken from
# https://github.com/apache/arrow/blob/apache-arrow-${version}/cpp/thirdparty/versions.txt