Skip to content

Commit

Permalink
thrift: 0.18.1 -> 0.21.0
Browse files Browse the repository at this point in the history
I'm fetching from Github instead of the apache server since the release
from apache.org appears to be missing the file
"lib/cpp/test/Thrift5272.thrift". As such, it will not build. For
reasons that are unclear, the mirror on github appears to have that file
and will build.

I remove all the patches since it appears to build on aarch64-darwin
without the patches.

I removed the disabled tests since it appears to build on aarch64-darwin
(sandbox = true) without those tests being disabled.
  • Loading branch information
Palmer Cox committed Jan 18, 2025
1 parent e969a11 commit 05f7967
Showing 1 changed file with 7 additions and 67 deletions.
74 changes: 7 additions & 67 deletions pkgs/by-name/th/thrift/package.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
fetchFromGitHub,
boost,
zlib,
libevent,
Expand All @@ -17,11 +17,13 @@

stdenv.mkDerivation rec {
pname = "thrift";
version = "0.18.1";
version = "0.21.0";

src = fetchurl {
url = "https://archive.apache.org/dist/thrift/${version}/${pname}-${version}.tar.gz";
hash = "sha256-BMbxDl14jKeOE+4u8NIVLHsHDAr1VIPWuULinP8pZyY=";
src = fetchFromGitHub {
owner = "apache";
repo = "thrift";
tag = "v0.21.0";
hash = "sha256-OF/pFG8OXROsyYGf6jgfVTYTrTc8UB5QJh4gbostFfU=";
};

# Workaround to make the Python wrapper not drop this package:
Expand Down Expand Up @@ -53,46 +55,10 @@ stdenv.mkDerivation rec {
zlib
];

postPatch = ''
# Python 3.10 related failures:
# SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
# AttributeError: module 'collections' has no attribute 'Hashable'
substituteInPlace test/py/RunClientServer.py \
--replace "'FastbinaryTest.py'," "" \
--replace "'TestEof.py'," "" \
--replace "'TestFrozen.py'," ""
# these functions are removed in Python3.12
substituteInPlace test/py/SerializationTest.py \
--replace-fail "assertEquals" "assertEqual" \
--replace-fail "assertNotEquals" "assertNotEqual"
'';

preConfigure = ''
export PY_PREFIX=$out
'';

patches = [
# ToStringTest.cpp is failing from some reason due to locale issue, this
# doesn't disable all UnitTests as in Darwin.
./disable-failing-test.patch
(fetchpatch {
name = "setuptools-gte-62.1.0.patch"; # https://github.com/apache/thrift/pull/2635
url = "https://github.com/apache/thrift/commit/c41ad9d5119e9bdae1746167e77e224f390f2c42.diff";
hash = "sha256-FkErrg/6vXTomS4AsCsld7t+Iccc55ZiDaNjJ3W1km0=";
})
(fetchpatch {
name = "thrift-install-FindLibevent.patch"; # https://github.com/apache/thrift/pull/2726
url = "https://github.com/apache/thrift/commit/2ab850824f75d448f2ba14a468fb77d2594998df.diff";
hash = "sha256-ejMKFG/cJgoPlAFzVDPI4vIIL7URqaG06/IWdQ2NkhY=";
})
(fetchpatch {
name = "thrift-fix-tests-OpenSSL3.patch"; # https://github.com/apache/thrift/pull/2760
url = "https://github.com/apache/thrift/commit/eae3ac418f36c73833746bcd53e69ed8a12f0e1a.diff";
hash = "sha256-0jlN4fo94cfGFUKcLFQgVMI/x7uxn5OiLiFk6txVPzs=";
})
];

cmakeFlags =
[
"-DBUILD_JAVASCRIPT:BOOL=OFF"
Expand All @@ -107,32 +73,6 @@ stdenv.mkDerivation rec {
"-DOPENSSL_USE_STATIC_LIBS=ON"
];

disabledTests =
[
"PythonTestSSLSocket"
"PythonThriftTNonblockingServer"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Tests that hang up in the Darwin sandbox
"SecurityTest"
"SecurityFromBufferTest"
"python_test"

# fails on hydra, passes locally
"concurrency_test"

# Tests that fail in the Darwin sandbox when trying to use network
"UnitTests"
"TInterruptTest"
"TServerIntegrationTest"
"processor"
"TNonblockingServerTest"
"TNonblockingSSLServerTest"
"StressTest"
"StressTestConcurrent"
"StressTestNonBlocking"
];

doCheck = !static;

checkPhase = ''
Expand Down

0 comments on commit 05f7967

Please sign in to comment.