python2Packages.scandir: revert removal

This reverts commit 7d4a0668d2.

Closes https://github.com/NixOS/nixpkgs/issues/205742
This commit is contained in:
Fabián Heredia Montiel 2022-12-12 11:11:10 -06:00 committed by Robert Schütz
parent 38358880b3
commit 8549e49c18
3 changed files with 54 additions and 0 deletions

View file

@ -0,0 +1,28 @@
diff --git a/scandir.py b/scandir.py
index 3f602fb..40af3e5 100644
--- a/scandir.py
+++ b/scandir.py
@@ -23,6 +23,7 @@ from os import listdir, lstat, stat, strerror
from os.path import join, islink
from stat import S_IFDIR, S_IFLNK, S_IFREG
import collections
+import platform
import sys
try:
@@ -432,6 +433,15 @@ elif sys.platform.startswith(('linux', 'darwin', 'sunos5')) or 'bsd' in sys.plat
('__d_padding', ctypes.c_uint8 * 4),
('d_name', ctypes.c_char * 256),
)
+ elif 'darwin' in sys.platform and 'arm64' in platform.machine():
+ _fields_ = (
+ ('d_ino', ctypes.c_uint64),
+ ('d_off', ctypes.c_uint64),
+ ('d_reclen', ctypes.c_uint16),
+ ('d_namlen', ctypes.c_uint16),
+ ('d_type', ctypes.c_uint8),
+ ('d_name', ctypes.c_char * 1024),
+ )
else:
_fields_ = (
('d_ino', ctypes.c_uint32), # must be uint32, not ulong

View file

@ -0,0 +1,24 @@
{ lib, python, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "scandir";
version = "1.10.0";
src = fetchPypi {
inherit pname version;
sha256 = "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
};
patches = [
./add-aarch64-darwin-dirent.patch
];
checkPhase = "${python.interpreter} test/run_tests.py";
meta = with lib; {
description = "A better directory iterator and faster os.walk()";
homepage = "https://github.com/benhoyt/scandir";
license = licenses.gpl3;
maintainers = with maintainers; [ abbradar ];
};
}

View file

@ -67,6 +67,8 @@ with self; with super; {
rpm = disabled super.rpm; rpm = disabled super.rpm;
scandir = callPackage ../development/python2-modules/scandir { };
sequoia = disabled super.sequoia; sequoia = disabled super.sequoia;
setuptools = callPackage ../development/python2-modules/setuptools { }; setuptools = callPackage ../development/python2-modules/setuptools { };