Merge pull request #137741 from emilazy/more-aarch64-darwin-fixes
{darwin.trash,rpm,dash,jwhois}: fix on aarch64-darwin
This commit is contained in:
@@ -7,7 +7,7 @@ index 5e4306f..9c975fc 100644
|
||||
@echo ---- Compiling:
|
||||
@echo ======================================
|
||||
- $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -force_cpusubtype_ALL -mmacosx-version-min=10.7 -arch i386 -arch x86_64 -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES)
|
||||
+ $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -force_cpusubtype_ALL -mmacosx-version-min=10.7 -arch x86_64 -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES)
|
||||
+ $(CC) -O2 -Wall -Wextra -Wpartial-availability -Wno-unguarded-availability -framework AppKit -framework ScriptingBridge -o $@ $(SOURCE_FILES)
|
||||
|
||||
analyze:
|
||||
@echo
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
From 7e75779eaeacdbb46a387a59d9aaf1481a1da3e5 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Gierakowski <agierakowski@gmail.com>
|
||||
Date: Sun, 19 Jul 2020 08:38:05 +0100
|
||||
Subject: [PATCH] fix dirent64 et al on darwin
|
||||
|
||||
---
|
||||
configure.ac | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b8faca9..cee1e4d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -139,6 +139,7 @@ if test "$ac_cv_func_signal" != yes; then
|
||||
[klibc has bsd_signal instead of signal])])
|
||||
fi
|
||||
|
||||
+dnl TODO: stat64 is deprecated since macOS 10.6
|
||||
dnl Check for stat64 (dietlibc/klibc).
|
||||
AC_CHECK_FUNC(stat64,, [
|
||||
AC_DEFINE(fstat64, fstat, [64-bit operations are the same as 32-bit])
|
||||
@@ -155,6 +156,16 @@ AC_CHECK_FUNC(open64,, [
|
||||
AC_DEFINE(open64, open, [64-bit operations are the same as 32-bit])
|
||||
])
|
||||
|
||||
+dnl OS X apparently has stat64 but not readdir64.
|
||||
+AC_CHECK_FUNC(readdir64,, [
|
||||
+ AC_DEFINE(readdir64, readdir, [64-bit operations are the same as 32-bit])
|
||||
+])
|
||||
+
|
||||
+dnl OS X apparently has stat64 but not dirent64.
|
||||
+AC_CHECK_TYPE(struct dirent64,, [
|
||||
+ AC_DEFINE(dirent64, dirent, [64-bit operations are the same as 32-bit])
|
||||
+],[#include <dirent.h>])
|
||||
+
|
||||
dnl Check if struct stat has st_mtim.
|
||||
AC_MSG_CHECKING(for stat::st_mtim)
|
||||
AC_COMPILE_IFELSE(
|
||||
--
|
||||
2.15.1
|
||||
|
||||
@@ -1,30 +1,42 @@
|
||||
{ lib, stdenv, buildPackages, autoreconfHook, fetchurl, libedit }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildPackages
|
||||
, autoreconfHook
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, libedit
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dash";
|
||||
version = "0.5.11.2";
|
||||
version = "0.5.11.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://gondor.apana.org.au/~herbert/dash/files/${pname}-${version}.tar.gz";
|
||||
sha256 = "0pvdpm1cgfbc25ramn4305a0158yq031q1ain4dc972rnxl7vyq0";
|
||||
sha256 = "13g06zqfy4n7jkrbb5l1vw0xcnjvq76i16al8fjc5g33afxbf5af";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
patches = [
|
||||
(fetchurl {
|
||||
(fetchpatch {
|
||||
# Dash executes code when noexec ("-n") is specified
|
||||
# https://www.openwall.com/lists/oss-security/2020/11/11/3
|
||||
url = "https://git.kernel.org/pub/scm/utils/dash/dash.git/patch/?id=29d6f2148f10213de4e904d515e792d2cf8c968e";
|
||||
sha256 = "08q90bx36ixwlcj331dh7420qyj8i0qh1cc1gljrhd83fhl9w0y5";
|
||||
sha256 = "0aadb7aaaan6jxmi6icv4p5gqx7k510yszaqsa29b5giyxz5l9i1";
|
||||
})
|
||||
|
||||
# aarch64-darwin fix from upstream; remove on next release
|
||||
(fetchpatch {
|
||||
url = "https://git.kernel.org/pub/scm/utils/dash/dash.git/patch/?id=6f6d1f2da03468c0e131fdcbdcfa9771ffca2614";
|
||||
sha256 = "16iz2ylkyhpxqq411ns8pjk8rizh6afhavvsf052wvzsnmmlvfbw";
|
||||
})
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# Temporary fix until a proper one is accepted upstream
|
||||
./0001-fix-dirent64-et-al-on-darwin.patch
|
||||
];
|
||||
|
||||
# configure.ac patched; remove on next release
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook;
|
||||
buildInputs = [ libedit ];
|
||||
|
||||
configureFlags = [ "--with-libedit" ];
|
||||
|
||||
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ];
|
||||
|
||||
# Work around error from <stdio.h> on aarch64-darwin:
|
||||
# error: 'TARGET_OS_IPHONE' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
|
||||
# TODO: this should probably be fixed at a lower level than this?
|
||||
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-Wno-undef-prefix";
|
||||
|
||||
meta = {
|
||||
description = "A client for the WHOIS protocol allowing you to query the owner of a domain name";
|
||||
homepage = "https://www.gnu.org/software/jwhois/";
|
||||
|
||||
@@ -36,14 +36,20 @@ stdenv.mkDerivation rec {
|
||||
"--sharedstatedir=/com"
|
||||
];
|
||||
|
||||
# Small fixes for ndb on darwin
|
||||
# https://github.com/rpm-software-management/rpm/pull/1465
|
||||
patches = [
|
||||
# Small fixes for ndb on darwin
|
||||
# https://github.com/rpm-software-management/rpm/pull/1465
|
||||
(fetchpatch {
|
||||
name = "darwin-support.patch";
|
||||
url = "https://github.com/rpm-software-management/rpm/commit/2d20e371d5e38f4171235e5c64068cad30bda557.patch";
|
||||
sha256 = "0p3j5q5a4hl357maf7018k3826jhcpqg6wfrnccrkv30g0ayk171";
|
||||
})
|
||||
# Fix build on aarch64-darwin
|
||||
# https://github.com/rpm-software-management/rpm/pull/1775
|
||||
(fetchpatch {
|
||||
url = "https://github.com/emilazy/rpm/commit/45120e756930b4787ea2e06fb8a9e623ea13f2f3.patch";
|
||||
sha256 = "0zzblwx9apxyjsri4cxd09y9b2hs57r2fck98939j1qgcwy732ar";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
Reference in New Issue
Block a user