about summary refs log tree commit diff
path: root/pkgs/development/python2-modules
diff options
context:
space:
mode:
authorFabián Heredia Montiel <fabianhjr@protonmail.com>2022-12-12 11:11:10 -0600
committerRobert Schütz <github@dotlambda.de>2022-12-15 00:28:46 -0800
commit8549e49c1833197f71e62e6d3f51bf72d4338ee2 (patch)
tree3abb25c472eb49c3b224a36a8618b5e16416b89f /pkgs/development/python2-modules
parent38358880b31c619a4596f3a462095a7f41ed0eb1 (diff)
downloadnixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar.gz
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar.bz2
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar.lz
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar.xz
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.tar.zst
nixlib-8549e49c1833197f71e62e6d3f51bf72d4338ee2.zip
python2Packages.scandir: revert removal
This reverts commit 7d4a0668d26c39bfcd1b40b21b7d169cedbfe9aa.

Closes https://github.com/NixOS/nixpkgs/issues/205742
Diffstat (limited to 'pkgs/development/python2-modules')
-rw-r--r--pkgs/development/python2-modules/scandir/add-aarch64-darwin-dirent.patch28
-rw-r--r--pkgs/development/python2-modules/scandir/default.nix24
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 000000000000..1b35a0b950ce
--- /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 000000000000..e712cca8348d
--- /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 ];
+  };
+}