58 Commits
Author SHA1 Message Date
Erik Gomez 489aae7e56 add a sitecustomize 2026-05-12 14:26:09 -05:00
Erik Gomez 6788370532 Merge branch 'main' into claude 2026-05-12 13:03:26 -05:00
Erik Gomez 874c152e5c Update build_python_framework_pkgs.zsh 2026-05-12 12:48:25 -05:00
Erik Gomez 2047ec4572 sign the bundled tcl/tk frameworks 2026-05-12 12:40:54 -05:00
Erik Gomez 373cd44f6c try to fix python 3.14 and 3.13 2026-05-12 12:31:30 -05:00
Erik GomezandClaude Opus 4.7 7773030dd3 Drop --no-unsign and bump RP_SHA to 8ee72fe
The --no-unsign flag was disabling relocatable-python's own
fix_broken_signatures step (locallibs/fix.py), which ad-hoc re-signs
every binary modified by install_name_tool before ensurepip runs.
That's the exact code path needed to satisfy Apple Silicon Gatekeeper.

The flag's stated purpose ('don't touch the python.org signature') was
never achievable — install_name_tool invalidates the signature whether
you tell relocatable-python to handle it or not. Keeping --no-unsign
just left the binary in a broken signed state, which Gatekeeper SIGKILLs.

Bumping RP_SHA to 8ee72fe simultaneously, since the prior pin
(fb4dd9b) had the same code path and was only kept while investigating.
The newer SHA additionally sets CPPFLAGS for pip, useful for packages
with native extensions.

Closes the local equivalent of gregneagle/relocatable-python#32 for our
build pipeline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 12:21:26 -05:00
Erik GomezandClaude Opus 4.7 10a76b1e0b Revert RP_SHA to fb4dd9b (last known-good for Apple Silicon)
The newer relocatable-python commit 8ee72fe (Oct 2024, adds symlink
path handling) causes ensurepip to die with SIGKILL on Apple Silicon
during the framework build: install_name_tool invalidates the
binary's code signature, and ensurepip runs before any re-sign step,
so Gatekeeper kills the process.

A prior bump attempt was already reverted in this repo (commit d8db8a2,
PR #67) — sticking with fb4dd9b until upstream addresses the
ad-hoc-resign-before-ensurepip flow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 12:21:26 -05:00
Erik GomezandClaude Opus 4.7 700848e195 Force writable perms on existing FRAMEWORKDIR
mkdir -m 777 only applies the mode to newly created directories.
If /Library/ManagedFrameworks/Python already exists from a prior
install with stricter perms, the un-sudo'd relocatable-python
tool fails with 'Permission denied' when writing the framework.
Add an explicit chmod after mkdir.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 12:21:26 -05:00
Erik GomezandClaude Opus 4.7 91480efece Fix PYTHON_BASEURL format string slot count
The refactor baked 'macos11' into the URL as a literal, leaving only
two %s slots. relocatable-python's locallibs/get.py expects three:
(version, version, os-version). The mismatch raised
'TypeError: not all arguments converted during string formatting'
during framework download.

Restore the third %s; --os-version 11 is already passed to the
make_relocatable_python_framework.py invocation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 12:21:26 -05:00
Erik Gomez 85599c237f Move signed pkg to outputs/ before notarization
Fixes regression where a signed-but-unnotarized .pkg was built into
the staging dir and then deleted by cleanup() without ever reaching
outputs/. The pre-refactor script moved the .pkg unconditionally
after munkipkg succeeded; the refactor lost that mv when it was
consolidated into notarize_and_staple().
2026-05-12 12:21:26 -05:00
Erik Gomez 24bebe07a6 Refactor build script for Apple Silicon
- Drop universal2 enforcement; arm64 wheels used directly
- Single 'recommended' flavor; remove minimal/no_customization branches
- Long-flag arguments; derive major version from full version
- Functions: parse_args, prepare_build_dirs, download_tool,
  build_framework, codesign_framework, build_pkg,
  notarize_and_staple, zip_framework, cleanup
- Collapse signed/ad-hoc codesign duplication; fixes latent path bug
- Bump relocatable-python and munki-pkg SHAs
- Gate CI-only steps (brew remove, xcode-select) on $CI
2026-05-12 12:21:26 -05:00
Nate Walck d8db8a2c54 Revert Relocatable Python hash bump (#67)
Revert RP hash to see if it fixes the build
2025-06-25 09:41:15 -05:00
Allister Banks 9c344405f3 Add Python 3.13 ci job and update actions
* 2025 updates try 2

no _logic_ changes, just version bumps and 3.13 support/default - some commented-out _potential_ fixes and explanatory text

* copy pasta

3.13

* undo commented-outs

revorted

* moar copy-pasta

😅
2025-06-25 10:28:05 -04:00
Erik Gomez 5e5340aaa0 cleanup old scripts and move to --no-rcs shebang (#59) 2024-03-14 10:49:48 -05:00
Erik Gomez cd4759da9e Attempt to use new python bin path for symlinks (#58) 2024-02-23 13:08:11 -06:00
Erik Gomez 34dc7836ea it didnt work, keep new shim 2024-02-02 13:21:41 -06:00
Erik Gomez db82baae98 attempt to use the shebang for 3.11 and 3.12 2024-02-02 13:08:21 -06:00
Erik Gomez 34d2ff0b7b cleanup old frameworks preinstall 2024-02-02 13:08:08 -06:00
Erik Gomez 9b80e1dc69 fix PYTHON_MAJOR_VERSION calls 2024-02-02 10:39:54 -06:00
Erik Gomez f23b147e49 try and fix managed_python3 issue 2024-02-02 10:34:34 -06:00
Erik Gomez b6959b9227 fix other envvar for notarization 2024-02-01 17:32:54 -06:00
Erik Gomez b8a523c3ac lrn2zsh 2024-02-01 14:06:01 -06:00
Erik Gomez ce8f7aa642 remove duplicate toolsdir 2024-02-01 12:45:27 -06:00
Erik Gomez 015c8e2c13 move the universal check higher up 2024-02-01 11:22:39 -06:00
Erik Gomez a9c3bba87b attempt to use a shim for managed_python3 on python 3.11 and 3.12 2024-02-01 10:05:25 -06:00
Erik Gomez 4139760ebb add major version env_var 2024-02-01 10:04:59 -06:00
Erik Gomez a0ae84c71d update gha and use new certs 2023-03-21 10:41:24 -05:00
Erik Gomez 3de6920d83 more attempts to fix 2023-01-09 18:08:54 -06:00
Erik Gomez 26b0db5b8d try another way 2023-01-09 18:01:41 -06:00
Erik Gomez 1c03a419ba try the MF path instead 2023-01-09 17:39:47 -06:00
Erik Gomez 93a3115bf3 go back to dynamic header 2023-01-09 17:34:02 -06:00
Erik Gomez e77b14a31c move to xcode command line tools python instead 2023-01-09 17:12:38 -06:00
Erik Gomez ee4333a42a set xcode path 2023-01-09 17:09:32 -06:00
Erik Gomez 421bb7a916 sigh 2023-01-09 16:52:20 -06:00
Erik Gomez f58ac5b70e get builds working locally (finally) 2023-01-09 16:42:19 -06:00
Erik Gomez 17853201e2 small changes 2023-01-09 14:23:22 -06:00
Erik Gomez dd97ea183f make a bunch of changes to the build process 2023-01-09 13:51:46 -06:00
Erik Gomez 1c97a8cf5c fix build package 2022-02-10 11:04:34 -06:00
Erik Gomez abc9d006ef remove unsigned pkg from build since we wont be uploading it now 2022-02-10 10:23:32 -06:00
Erik Gomez b9b6e4e770 remove build date 2022-02-10 09:50:05 -06:00
Erik Gomez 8fd214bf54 Move to a more sane version (like nudge) and build 3.10.2 python
- This also makes changelog a bit more dynamic
2022-02-10 09:40:38 -06:00
Erik Gomez 251cdfb067 fix the notary issues (#39)
fix the notary issues

* more fixes

* do the bin version not current since current is a symlink

* add a bunch more things now

* preserve_xattr in munki-pkg signed package

* try and debug things with spctl

* change the order of the code signing

* paths are still technically wrong but this works already
2022-02-08 16:36:13 -06:00
Nate Walck 1f9aab0562 Add notarization (#37)
* Add notarization to build script

* Pass NOTARY_PASS secret as an env var to the build script
2022-02-08 09:27:09 -06:00
Nate Walck 545d9da8d3 Update to Python 3.9.10 and update libs (#36)
* Update to Python 3.9.10 and update libs

* Fix tokenize-rt version as 4.2.0 was yanked

* PyObjC doesn't seem universal anymore, trying to force a build

* Let's upgrade to latest release of PyObjC

* Update release notes to reflect PyObjC change
2022-02-02 15:49:33 -06:00
Nate Walckanderikg eb1558c95f Combined dependabot and docklib PRs (#30)
* Combined dependabot and docklib PRs

* Update requests to 2.25.1

* Add additional debug output when archs do not match

* Update PyYAML to 5.4.1

* Update Python to 3.9.5

* Update github action to do python 3.9.5

* Fix MACOS_VERSION name as they now use 11 upstream instead of 11.0

* Trying minimal to confirm that works

* First stab at updating all recommended libs, will need another pr

* Fix lib versions

* Requests was unhappy with idna 3, reverting to 2.x

* Revert pyobjc to 7.0.1

* force compilation for items that lack a universal binary

* bad copy pasta

* Update release description

* Only create a release and upload signed packages if on main

* try some more fixes

Co-authored-by: erikg <e@eriknicolasgomez.com>
2021-07-08 16:55:01 -05:00
Erik Gomez d00f59f73a try to get clean runs 2020-12-15 11:47:24 -06:00
Nate Walck d351788697 Make sure cleanup is actually working (#21) 2020-12-15 10:39:15 -06:00
Erik Gomez 326e61ec51 confirm universal before going to next step 2020-12-14 17:17:39 -06:00
Nate Walck 92fa66f67e First stab at universal 3.9.1 macadmins python (#18)
* First stab at universal 3.9.1 macadmins python

* Update workflow files

* Removed old build workflows

* Add improvements from IAs

* Revert to older MP as signing failed, update release notes
2020-12-14 17:05:39 -06:00
Erik Gomez ee805778c5 Move python frameworks into their own Python folder 2020-07-09 11:31:51 -05:00