From 1153aae9e467b103096eec542ccf2365a55c7fd5 Mon Sep 17 00:00:00 2001 From: NeteR_VezeR <139502574+0netervezer0@users.noreply.github.com> Date: Sun, 1 Jun 2025 01:18:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20install=5Feasy.sh=20=D0=B4=D0=BB=D1=8F=20apple?= =?UTF-8?q?=20silicon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Использующийся для сборки clang не распознаёт архитектуру apple-silicon (apple-m1 и тп) как допустимое значение для -march. Поэтому я добавил повторную попытку сборки без использования -march (на macOS особый Apple CLang, и всё должно без проблем собираться без дополнительных флагов). Также источник проблемы часто заключается в SIP и XProtect: эти системы могут отправлять взаимодействующие с сетью файлы в карантин, это я тоже исправил, вытаскивая бинарники из карантина через xattr (вывод перенаправлен в null, чтобы избежать вывода ошибок на случай, если карантин всё таки пуст). Все эти изменения будут применимы только к macOS, для остальных систем ничего не менял. Если macOS на Intel, то такой ошибки по идее быть вообще не должно (SIP и XProtect лучше всего работают именно на apple-silicon), а значит изменения не должны повлиять на macOS с x64_86 архитектурой. Ещёперенаправил make clean в null, чтобы уменьшить объём мусора в терминале. Все внесённые изменения протестированы на macOS с процессорами M1 и M2. --- install_easy.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/install_easy.sh b/install_easy.sh index 96ade3fc..d72588aa 100755 --- a/install_easy.sh +++ b/install_easy.sh @@ -101,9 +101,22 @@ check_bins() ;; esac CFLAGS="-march=native ${CFLAGS}" make -C "$EXEDIR" $make_target || { - echo could not compile - make -C "$EXEDIR" clean - exitp 8 + if [ "$SYSTEM" = macos ]; then + echo "retrying compile" + echo "removing quarantine attributes" + xattr -d com.apple.quarantine ./binaries/mac64/ip2net 2>/dev/null + xattr -d com.apple.quarantine ./binaries/mac64/mdig 2>/dev/null + xattr -d com.apple.quarantine ./binaries/mac64/tpws 2>/dev/null + make -C "$EXEDIR" $make_target || { + echo could not compile + make -C "$EXEDIR" clean 2>/dev/null + exitp 8 + } + else + echo could not compile + make -C "$EXEDIR" clean 2>/dev/null + exitp 8 + fi } echo compiled else