44# Adaptd from https://github.com/munki/munki/blob/Munki3dev/code/tools/build_python_framework.sh
55# IMPORTANT
66# Run this with your current directory being the path where this script is located
7-
8- # Harcoded versions
9- RP_SHA=" fb4dd9b024b249c71713f14d887f4bcea78aa8b0 "
10- MP_SHA=" 0fcd47faf0fb2b4e8a0256a77be315a3cb6ab319 "
7+ # set -x
8+ # Harcoded (commit) versions of relocatable-python & munki-pkg
9+ RP_SHA=" 8ee72fe3a5dbef733365370ebf44f25022b895ef " # https://github.com/gregneagle/relocatable-python/commits/main/
10+ MP_SHA=" 96cffb4eac9207c1130404ec1fee8f4777fa38fd " # https://github.com/munki/munki-pkg/commits/main/
1111MACOS_VERSION=11 # use 10.9 for non-universal
1212PYTHON_PRERELEASE_VERSION=
1313PYTHON_BASEURL=" https://www.python.org/ftp/python/%s/python-%s${PYTHON_PRERELEASE_VERSION} -macos%s.pkg"
@@ -19,7 +19,8 @@ RP_BINDIR="/tmp/relocatable-python"
1919MP_BINDIR=" /tmp/munki-pkg"
2020CONSOLEUSER=$( /usr/bin/stat -f " %Su" /dev/console)
2121PIPCACHEDIR=" /Users/${CONSOLEUSER} /Library/Caches/pip"
22- XCODE_PATH=" /Applications/Xcode_15.2.app"
22+ XCODE_PATH=" /Applications/Xcode.app"
23+ XCODE_BUILD_PATH=" $XCODE_PATH /Contents/Developer/usr/bin/xcodebuild"
2324XCODE_NOTARY_PATH=" $XCODE_PATH /Contents/Developer/usr/bin/notarytool"
2425XCODE_STAPLER_PATH=" $XCODE_PATH /Contents/Developer/usr/bin/stapler"
2526NEWSUBBUILD=$(( 80620 + $(/ usr/ bin/ git rev- parse HEAD~ 0 | xargs - I{} / usr/ bin/ git rev- list -- count {})) )
5657if [ -n " $4 " ]; then
5758 PYTHON_VERSION=$4
5859else
59- PYTHON_VERSION=3.12.1
60+ PYTHON_VERSION=3.13.5
6061fi
6162
6263if [ -n " $5 " ]; then
6364 PYTHON_MAJOR_VERSION=$5
6465else
65- PYTHON_MAJOR_VERSION=3.12
66+ PYTHON_MAJOR_VERSION=3.13
6667fi
6768# Set python bin version based on PYTHON_VERSION
6869PYTHON_BIN_VERSION=" ${PYTHON_VERSION% .* } "
@@ -96,8 +97,8 @@ if [ -d "${PIPCACHEDIR}" ]; then
9697 /usr/bin/sudo /bin/rm -rf " ${PIPCACHEDIR} "
9798fi
9899
99- # kill homebrew packages
100- /usr/local/bin/brew remove --force $( /usr/local/bin/brew list)
100+ # # kill homebrew packages
101+ # /usr/local/bin/brew remove --force $(/usr/local/bin/brew list)
101102
102103# Ensure Xcode is set to run-time
103104sudo xcode-select -s " $XCODE_PATH "
@@ -141,18 +142,7 @@ else
141142fi
142143
143144# make a symbolic link to help with interactive use
144- if [[ " ${PYTHON_MAJOR_VERSION} " == " 3.9" ]]; then
145- /bin/ln -s " $PYTHON_BIN_NEW " " $TOOLSDIR /$TYPE /payload/usr/local/bin/managed_python3"
146- fi
147- if [[ " ${PYTHON_MAJOR_VERSION} " == " 3.10" ]]; then
148- /bin/ln -s " $PYTHON_BIN_NEW " " $TOOLSDIR /$TYPE /payload/usr/local/bin/managed_python3"
149- fi
150- if [[ " ${PYTHON_MAJOR_VERSION} " == " 3.11" ]]; then
151- /bin/ln -s " $PYTHON_BIN_NEW " " $TOOLSDIR /$TYPE /payload/usr/local/bin/managed_python3"
152- fi
153- if [[ " ${PYTHON_MAJOR_VERSION} " == " 3.12" ]]; then
154- /bin/ln -s " $PYTHON_BIN_NEW " " $TOOLSDIR /$TYPE /payload/usr/local/bin/managed_python3"
155- fi
145+ /bin/ln -s " $PYTHON_BIN_NEW " " $TOOLSDIR /$TYPE /payload/usr/local/bin/managed_python3"
156146
157147SB_RESULT=" $? "
158148if [ " ${SB_RESULT} " != " 0" ]; then
166156# C_INCLUDE_PATH="/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/Current/Headers/"
167157
168158export C_INCLUDE_PATH=" /Library/ManagedFrameworks/Python/Python.framework/Versions/Current/Headers/"
169-
170159C_INCLUDE_PATH=" /Library/ManagedFrameworks/Python/Python.framework/Versions/Current/Headers/" RP_EXTRACT_BINDIR=" ${RP_BINDIR} /relocatable-python-${RP_SHA} "
160+
171161" ${RP_EXTRACT_BINDIR} /make_relocatable_python_framework.py" \
172162--baseurl " ${PYTHON_BASEURL} " \
173163--python-version " ${PYTHON_VERSION} " \
174164--os-version " ${MACOS_VERSION} " \
175165--upgrade-pip \
176- --no-unsign \
177166--pip-requirements " ${TOOLSDIR} /requirements_${TYPE} .txt" \
178167--destination " ${FRAMEWORKDIR} "
179168
235224 /usr/bin/find " $TOOLSDIR /$TYPE /payload${FRAMEWORKDIR} /Python3.framework/Versions/${PYTHON_BIN_VERSION} /lib" -type f -name " *dylib" -exec /usr/bin/codesign -s - --preserve-metadata=identifier,entitlements,flags,runtime -f {} \;
236225 /usr/bin/codesign -s - --deep --force --preserve-metadata=identifier,entitlements,flags,runtime " $TOOLSDIR /$TYPE /payload${FRAMEWORKDIR} /Python3.framework/Versions/${PYTHON_BIN_VERSION} /Resources/Python.app"
237226 /usr/bin/codesign -s - --force --preserve-metadata=identifier,entitlements,flags,runtime " $TOOLSDIR /$TYPE /payload${FRAMEWORKDIR} /Python3.framework/Versions/${PYTHON_BIN_VERSION} /Python"
238- /usr/bin/codesign -s - --force --preserve-metadata=identifier,entitlements,flags,runtime " $TOOLSDIR /$TYPE /payload${FRAMEWORKDIR} Python3.framework/Versions/Current/Python"
227+ /usr/bin/codesign -s - --force --preserve-metadata=identifier,entitlements,flags,runtime " $TOOLSDIR /$TYPE /payload${FRAMEWORKDIR} / Python3.framework/Versions/Current/Python"
239228fi
240229
241230# Print out some information about the signatures
0 commit comments