diff options
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/python2-modules/scandir/add-aarch64-darwin-dirent.patch | 28 | ||||
-rw-r--r-- | pkgs/development/python2-modules/scandir/default.nix | 24 |
2 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/development/python2-modules/scandir/add-aarch64-darwin-dirent.patch b/pkgs/development/python2-modules/scandir/add-aarch64-darwin-dirent.patch new file mode 100644 index 0000000000000..1b35a0b950ce2 --- /dev/null +++ b/pkgs/development/python2-modules/scandir/add-aarch64-darwin-dirent.patch @@ -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 diff --git a/pkgs/development/python2-modules/scandir/default.nix b/pkgs/development/python2-modules/scandir/default.nix new file mode 100644 index 0000000000000..e712cca8348d1 --- /dev/null +++ b/pkgs/development/python2-modules/scandir/default.nix @@ -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 ]; + }; +} |