Merge pull request #193680 from wegank/gimp-aarch64-darwin

This commit is contained in:
Sandro 2022-10-04 15:12:33 +02:00 committed by GitHub
commit 5ecf65eb6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 14 deletions

View file

@ -19,24 +19,16 @@ python27Packages.buildPythonApplication {
propagatedBuildInputs = [
oildev
/*
Disable configargparse's tests on aarch64-darwin.
Several of py27 scandir's tests fail on aarch64-darwin. Chain:
configargparse -> pytest-check-hook -> pytest -> pathlib2 -> scandir
TODO: drop if https://github.com/NixOS/nixpkgs/issues/156807 resolves?
*/
(python27Packages.configargparse.overridePythonAttrs (old: {
doCheck = stdenv.hostPlatform.system != "aarch64-darwin";
}))
python27Packages.configargparse
];
patchPhase = ''
postPatch = ''
for file in setup.cfg _resholve/version.py; do
substituteInPlace $file --subst-var-by version ${version}
done
'';
postInstall = ''
postInstall = ''
installManPage resholve.1
'';

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, python, buildPythonPackage, pkg-config, glib, isPy3k, pythonAtLeast }:
{ lib, stdenv, fetchurl, fetchpatch, python, buildPythonPackage, pkg-config, glib, isPy3k, pythonAtLeast }:
buildPythonPackage rec {
pname = "pygobject";
@ -15,6 +15,11 @@ buildPythonPackage rec {
patches = lib.optionals stdenv.isDarwin [
./pygobject-2.0-fix-darwin.patch
(fetchpatch {
url = "https://github.com/macports/macports-ports/raw/f2975d5bbbc2459c661905c5a850cc661fa32f55/python/py-gobject/files/py-gobject-dynamic_lookup-11.patch";
sha256 = "sha256-mtlyu+La3+iC5iQAmVJzDA5E35XGaRQy/EKXzvrWRCg=";
extraPrefix = "";
})
];
configureFlags = [ "--disable-introspection" ];

View file

@ -37,7 +37,8 @@ buildPythonPackage rec {
buildPhase = "buildPhase";
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-ObjC";
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-ObjC"
++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "-lpython2.7";
installPhase = "installPhase";

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

@ -6,9 +6,13 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
sha256 ="1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
sha256 = "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
};
patches = [
./add-aarch64-darwin-dirent.patch
];
checkPhase = "${python.interpreter} test/run_tests.py";
meta = with lib; {