python313Packages.paddlepaddle: 2.5.0 -> 3.0.0

This commit is contained in:
emaryn
2025-06-10 02:23:45 +08:00
parent ac300460e0
commit e6afb967b6
2 changed files with 66 additions and 54 deletions
@@ -2,26 +2,33 @@
x86_64-linux = {
platform = "manylinux1_x86_64";
cpu = {
cp39 = "sha256-Yu/FWoMhYp+behAth/jH0FKlf2LJr8TyvL9MBwmuews=";
cp310 = "sha256-O7d/5LY2dEMf5gW5WrN3xzIIEi2vT0RWoMeVOk5lATk=";
cp312 = "sha256-gafFsQFQsHUh0c0Ukdyh+3b/YhsU2xDomdlZ86d5Neo=";
cp313 = "sha256-j8SGXv02Vu6ZQkEkeSy4imQhUbTVkafW1KXGr9rpWVk=";
};
gpu = {
cp39 = "sha256-XHREY27jc+BrVyCJgpMvPVOFiKgPwuiNXPXO3biMLnc=";
cp310 = "sha256-oTEBa26o5g6ruuTBgUljjDqign5fXmCn0EnL/0mv+ao=";
cp311 = "sha256-KWlGhjg9k1+wlm3Tk/mvMqh9LWZ0yGA1g99bCPlFf0U=";
cp312 = "sha256-KJ2drJWLuwdaYsCj7egh1nQV4j35vT+UgH0qTdxoyHk=";
};
};
aarch64-linux = {
platform = "manylinux2014_aarch64";
cpu = {
cp312 = "sha256-3aqZaosKANvkJp2iHWUFKHfsNpOiLswHucraPs0RaIY=";
cp313 = "sha256-u8TVc7NdJKJi4C1yaW6A9bSu5B9phnGvlXTe6xqD5vc=";
};
};
x86_64-darwin = {
platform = "macosx_10_9_x86_64";
cpu = {
cp39 = "sha256-5g9b2gC6uosMpoJiobpj8yToIS6ifAFRvLEqnc/o/QQ=";
cp310 = "sha256-2c1hjwNCOOOx9tVfBk+Pyk/pF0m/2tAmRsBH91834eM=";
cp312 = "sha256-3P6/sQ3rFaoz0qLWbVoS2d5lRh2KQNJofi+zIhFQ0Lo=";
cp313 = "sha256-UsQB/+Sq5WMWZgozAVpv11XNoj09cKKLE7c9cMvbuMs=";
};
};
aarch64-darwin = {
platform = "macosx_11_0_arm64";
cpu = {
cp39 = "sha256-JhYNTOx1UkuNf/63lHXBDry6FQjPnbIB8jU5jKcyX2k=";
cp310 = "sha256-4ltYEYm2OzPBc6D2bQt2dEh6Sz+5m1mMKGGYgQGLSAY=";
cp312 = "sha256-hnfo1C/2b3T7yjL/Mti2S749Vu0pqS1D3EGPDxaPy2k=";
cp313 = "sha256-nRBR8uII2h1Dna7nyGG8tQJA8JcSSW62Hpzoxhj68vk=";
};
};
}
@@ -1,13 +1,12 @@
{
stdenv,
config,
lib,
stdenv,
buildPythonPackage,
fetchPypi,
python,
pythonOlder,
pythonAtLeast,
openssl_1_1,
zlib,
setuptools,
cudaSupport ? config.cudaSupport or false,
@@ -20,22 +19,22 @@
pillow,
decorator,
astor,
paddle-bfloat,
opt-einsum,
typing-extensions,
}:
let
pname = "paddlepaddle" + lib.optionalString cudaSupport "-gpu";
version = "2.5.0";
version = if cudaSupport then "2.6.2" else "3.0.0";
format = "wheel";
pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
cpuOrGpu = if cudaSupport then "gpu" else "cpu";
allHashAndPlatform = import ./binary-hashes.nix;
hash =
allHashAndPlatform."${stdenv.system}"."${cpuOrGpu}"."${pyShortVersion}"
or (throw "${pname} has no binary-hashes.nix entry for '${stdenv.system}.${cpuOrGpu}.${pyShortVersion}' attribute");
platform = allHashAndPlatform."${stdenv.system}".platform;
src = fetchPypi ({
allHashAndPlatform."${stdenv.hostPlatform.system}"."${cpuOrGpu}"."${pyShortVersion}"
or (throw "${pname} has no binary-hashes.nix entry for '${stdenv.hostPlatform.system}.${cpuOrGpu}.${pyShortVersion}' attribute");
platform = allHashAndPlatform."${stdenv.hostPlatform.system}".platform;
src = fetchPypi {
inherit
version
format
@@ -46,7 +45,7 @@ let
dist = pyShortVersion;
python = pyShortVersion;
abi = pyShortVersion;
});
};
in
buildPythonPackage {
inherit
@@ -56,40 +55,15 @@ buildPythonPackage {
src
;
disabled = pythonOlder "3.9" || pythonAtLeast "3.11";
libraryPath = lib.makeLibraryPath (
# TODO: remove openssl_1_1 and zlib, maybe by building paddlepaddle from
# source as suggested in the following comment:
# https://github.com/NixOS/nixpkgs/pull/243583#issuecomment-1641450848
[
openssl_1_1
zlib
]
++ lib.optionals cudaSupport (
with cudaPackages_11;
[
cudatoolkit.lib
cudatoolkit.out
cudnn
]
)
);
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
function fixRunPath {
p=$(patchelf --print-rpath $1)
patchelf --set-rpath "$p:$libraryPath" $1
${lib.optionalString cudaSupport ''
addDriverRunpath $1
''}
}
fixRunPath $out/${python.sitePackages}/paddle/fluid/libpaddle.so
'';
disabled =
if cudaSupport then
(pythonOlder "3.11" || pythonAtLeast "3.13")
else
(pythonOlder "3.12" || pythonAtLeast "3.14");
nativeBuildInputs = [ addDriverRunpath ];
propagatedBuildInputs = [
dependencies = [
setuptools
httpx
numpy
@@ -97,8 +71,8 @@ buildPythonPackage {
pillow
decorator
astor
paddle-bfloat
opt-einsum
typing-extensions
];
pythonImportsCheck = [ "paddle" ];
@@ -106,14 +80,45 @@ buildPythonPackage {
# no tests
doCheck = false;
meta = with lib; {
description = "PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice &";
postFixup = lib.optionalString stdenv.hostPlatform.isLinux (
let
libraryPath = lib.makeLibraryPath (
[
zlib
(lib.getLib stdenv.cc.cc)
]
++ lib.optionals cudaSupport (
with cudaPackages_11;
[
cudatoolkit.lib
cudatoolkit.out
cudnn
]
)
);
in
''
function fixRunPath {
p=$(patchelf --print-rpath $1)
patchelf --set-rpath "$p:${libraryPath}" $1
${lib.optionalString cudaSupport ''
addDriverRunpath $1
''}
}
fixRunPath $out/${python.sitePackages}/paddle/base/libpaddle.so
fixRunPath $out/${python.sitePackages}/paddle/libs/lib*.so
''
);
meta = {
description = "Machine Learning Framework from Industrial Practice";
homepage = "https://github.com/PaddlePaddle/Paddle";
license = licenses.asl20;
maintainers = with maintainers; [ happysalada ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ happysalada ];
platforms =
[ "x86_64-linux" ]
++ optionals (!cudaSupport) [
++ lib.optionals (!cudaSupport) [
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];