@@ -18,19 +18,21 @@ class KeeperCommander < Formula
1818 end
1919
2020 depends_on "pkgconf" => :build
21- depends_on "rust" => :build # bcrypt dependencies
21+ depends_on "rust" => :build # for bcrypt, keeper-pam-webrtc-rs
2222
23- depends_on "certifi"
24- depends_on "cryptography"
23+ depends_on "certifi" => :no_linkage
24+ depends_on "cryptography" => :no_linkage
2525 depends_on "ffmpeg"
2626 depends_on "libvpx"
2727 depends_on "libyaml"
2828 depends_on "opus"
29- depends_on "pillow"
29+ depends_on "pillow" => :no_linkage
30+ depends_on "pydantic-core" => :no_linkage
30313132 depends_on "srtp"
3233
3334 on_macos do
35+ depends_on "llvm" => :build if DevelopmentTools . clang_build_version <= 1699
3436 depends_on "openssl@3"
3537 end
3638
@@ -39,7 +41,7 @@ class KeeperCommander < Formula
3941 depends_on "openjpeg"
4042 end
4143
42- pypi_packages exclude_packages : %w[ certifi cryptography pillow ]
44+ pypi_packages exclude_packages : %w[ certifi cryptography pillow pydantic-core ]
4345
4446 resource "annotated-types" do
4547 url "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz"
@@ -61,6 +63,11 @@ class KeeperCommander < Formula
6163 sha256 "b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"
6264 end
6365
66+ resource "cbor2" do
67+ url "https://files.pythonhosted.org/packages/a2/b8/c0f6a7d46f816cb18b1fda61a2fe648abe16039f1ff93ea720a6e9fb3cee/cbor2-5.7.1.tar.gz"
68+ sha256 "7a405a1d7c8230ee9acf240aad48ae947ef584e8af05f169f3c1bde8f01f8b71"
69+ end
70+
6471 resource "charset-normalizer" do
6572 url "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz"
6673 sha256 "94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"
@@ -82,8 +89,8 @@ class KeeperCommander < Formula
8289 end
8390
8491 resource "deprecated" do
85- url "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2 /deprecated-1.2.18 .tar.gz"
86- sha256 "422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d "
92+ url "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634 /deprecated-1.3.1 .tar.gz"
93+ sha256 "b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223 "
8794 end
8895
8996 resource "fido2" do
@@ -107,8 +114,8 @@ class KeeperCommander < Formula
107114 end
108115
109116 resource "fpdf2" do
110- url "https://files.pythonhosted.org/packages/87/ff/4a1dd414e5c5df5a11904118afdb544f3a446c9c512cc77e9741cf74fb30 /fpdf2-2.8.4 .tar.gz"
111- sha256 "12b1f1dd35d0c2f35284bcfe10b153d6ca4baf29377379843e73d3f971eab6b7 "
117+ url "https://files.pythonhosted.org/packages/e9/c0/784b130a28f4ed612e9aff26d1118e1f91005713dcd0a35e60b54d316b56 /fpdf2-2.8.5 .tar.gz"
118+ sha256 "af4491ef2e0a5fe476f9d61362925658949c995f7e804438c0e81008f1550247 "
112119 end
113120
114121 resource "idna" do
@@ -132,8 +139,8 @@ class KeeperCommander < Formula
132139 end
133140
134141 resource "keeper-pam-webrtc-rs" do
135- url "https://files.pythonhosted.org/packages/4a/cb/9e5851e7f991dd1a14d6db0502169c535ec55408bba42f682734ce9df442 /keeper_pam_webrtc_rs-1.1.0 .tar.gz"
136- sha256 "f8b79c5595585d2faf381f0e67600c0d8415b90905b01b573d192199a9a91fa0 "
142+ url "https://files.pythonhosted.org/packages/b6/0c/88474a9a15cf02704b924e65ec301f4a9ed0ac609d9b4d2f1c173c3e3fe7 /keeper_pam_webrtc_rs-1.1.2 .tar.gz"
143+ sha256 "70e3625705bcd56a83e0c38d325436d9800da420ccb9e2cf73cf4fe8417c1f13 "
137144 end
138145
139146 resource "keeper-secrets-manager-core" do
@@ -196,11 +203,6 @@ class KeeperCommander < Formula
196203 sha256 "1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74"
197204 end
198205
199- resource "pydantic-core" do
200- url "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz"
201- sha256 "70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5"
202- end
203-
204206 resource "pygments" do
205207 url "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz"
206208 sha256 "636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"
@@ -211,6 +213,26 @@ class KeeperCommander < Formula
211213 sha256 "ad8637738ced5bdb88c28b087fea39ca552860c2d30004ac01033c0f8eb4f36e"
212214 end
213215
216+ resource "pyobjc-core" do
217+ url "https://files.pythonhosted.org/packages/ab/dc/6d63019133e39e2b299dfbab786e64997fff0f145c45a417e1dd51faaf3f/pyobjc_core-12.0.tar.gz"
218+ sha256 "7e05c805a776149a937b61b892a0459895d32d9002bedc95ce2be31ef1e37a29"
219+ end
220+
221+ resource "pyobjc-framework-cocoa" do
222+ url "https://files.pythonhosted.org/packages/37/6f/89837da349fe7de6476c426f118096b147de923139556d98af1832c64b97/pyobjc_framework_cocoa-12.0.tar.gz"
223+ sha256 "02d69305b698015a20fcc8e1296e1528e413d8cf9fdcd590478d359386d76e8a"
224+ end
225+
226+ resource "pyobjc-framework-localauthentication" do
227+ url "https://files.pythonhosted.org/packages/08/20/6744b25940d9462e0410cadd6da2e25ea3c01e6067a1234d8092ae0a40fa/pyobjc_framework_localauthentication-12.0.tar.gz"
228+ sha256 "6287b671d4e418419d8d5b2244616d72f346f6b8a8bc18d9a6bccb93a291091c"
229+ end
230+
231+ resource "pyobjc-framework-security" do
232+ url "https://files.pythonhosted.org/packages/cb/d6/ab109af82a65d52ab829010013b5a24b829c9155bc9608ebc80a43b8797c/pyobjc_framework_security-12.0.tar.gz"
233+ sha256 "d64d069da79fbf1dadbc091717604843b9d5be96670f7b40bc9a08df12b4045b"
234+ end
235+
214236 resource "pyperclip" do
215237 url "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz"
216238 sha256 "244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6"
@@ -241,11 +263,6 @@ class KeeperCommander < Formula
241263 sha256 "0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"
242264 end
243265
244- resource "typing-extensions" do
245- url "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz"
246- sha256 "0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"
247- end
248-
249266 resource "typing-inspection" do
250267 url "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz"
251268 sha256 "ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"
@@ -272,8 +289,8 @@ class KeeperCommander < Formula
272289 end
273290
274291 resource "wrapt" do
275- url "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d /wrapt-1.17.3 .tar.gz"
276- sha256 "f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0 "
292+ url "https://files.pythonhosted.org/packages/49/19/5e5bcd855d808892fe02d49219f97a50f64cd6d8313d75df3494ee97b1a3 /wrapt-2.0.0 .tar.gz"
293+ sha256 "35a542cc7a962331d0279735c30995b024e852cf40481e384fd63caaa391cbb9 "
277294 end
278295
279296 resource "zipp" do
@@ -282,7 +299,19 @@ class KeeperCommander < Formula
282299 end
283300
284301 def install
285- venv = virtualenv_install_with_resources without : "keeper-pam-webrtc-rs"
302+ without = %w[ keeper-pam-webrtc-rs ]
303+
304+ if OS . mac?
305+ # Help `pyobjc-framework-cocoa` pick correct SDK after removing -isysroot from Python formula
306+ ENV . append_to_cflags "-isysroot #{ MacOS . sdk_path } "
307+ # pyobjc-core uses "-fdisable-block-signature-string" introduced in clang 17
308+ ENV . llvm_clang if DevelopmentTools . clang_build_version <= 1699
309+ else
310+ # `pyobjc-*` dependencies are only needed on macOS
311+ without += resources . filter_map { |r | r . name if r . name . start_with? ( "pyobjc" ) }
312+ end
313+
314+ venv = virtualenv_install_with_resources ( without :)
286315
287316 # Workaround for `Caused by: Failed to read readme specified in pyproject.toml`
288317 resource ( "keeper-pam-webrtc-rs" ) . stage do
0 commit comments