mac bundle: fix -cli codesigning
This commit is contained in:
parent
3350394c22
commit
533db7aa17
@ -40,11 +40,11 @@ msg "Modifying install names: ${x}"
|
|||||||
{
|
{
|
||||||
# id
|
# id
|
||||||
if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then
|
if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then
|
||||||
echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'"
|
install_name_tool -id @rpath/$(basename ${x}) ${x}
|
||||||
fi
|
fi
|
||||||
GetDependencies "${x}" | while read -r y
|
GetDependencies "${x}" | while read -r y
|
||||||
do
|
do
|
||||||
echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'"
|
install_name_tool -change ${y} @rpath/$(basename ${y}) ${x}
|
||||||
done
|
done
|
||||||
} | bash -v
|
} | bash -v
|
||||||
done
|
done
|
||||||
@ -107,6 +107,8 @@ __EOS__
|
|||||||
minimum_macos_version=${MINIMUM_SYSTEM_VERSION}
|
minimum_macos_version=${MINIMUM_SYSTEM_VERSION}
|
||||||
LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)"
|
LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)"
|
||||||
EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)"
|
EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)"
|
||||||
|
CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)"
|
||||||
|
NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)"
|
||||||
|
|
||||||
APP="${PROJECT_NAME}.app"
|
APP="${PROJECT_NAME}.app"
|
||||||
CONTENTS="${APP}/Contents"
|
CONTENTS="${APP}/Contents"
|
||||||
@ -118,7 +120,7 @@ EXECUTABLE="${MACOS}/rawtherapee"
|
|||||||
GDK_PREFIX="${LOCAL_PREFIX}/local/"
|
GDK_PREFIX="${LOCAL_PREFIX}/local/"
|
||||||
|
|
||||||
msg "Removing old files:"
|
msg "Removing old files:"
|
||||||
rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip"
|
rm -rf "${APP}" *.dmg *.zip
|
||||||
|
|
||||||
msg "Creating bundle container:"
|
msg "Creating bundle container:"
|
||||||
install -d "${RESOURCES}" \
|
install -d "${RESOURCES}" \
|
||||||
@ -133,8 +135,10 @@ echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutT
|
|||||||
echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt
|
echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt
|
||||||
echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt
|
echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt
|
||||||
|
|
||||||
msg "Copying release files:"
|
msg "Copying binary executable files."
|
||||||
ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}"
|
ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}"
|
||||||
|
|
||||||
|
msg "Copying Resources directory."
|
||||||
ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}"
|
ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}"
|
||||||
|
|
||||||
# Copy the Lensfun database into the app bundle
|
# Copy the Lensfun database into the app bundle
|
||||||
@ -147,7 +151,7 @@ ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/lible
|
|||||||
# Copy libomp to Frameworks
|
# Copy libomp to Frameworks
|
||||||
ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
||||||
|
|
||||||
msg "Copying dependencies from ${GTK_PREFIX}:"
|
msg "Copying dependencies from ${GTK_PREFIX}."
|
||||||
CheckLink "${EXECUTABLE}"
|
CheckLink "${EXECUTABLE}"
|
||||||
|
|
||||||
# dylib install names
|
# dylib install names
|
||||||
@ -238,7 +242,7 @@ s|@shortVersion@|${PROJECT_VERSION}|
|
|||||||
s|@arch@|${arch}|" \
|
s|@arch@|${arch}|" \
|
||||||
"${CONTENTS}/Info.plist"
|
"${CONTENTS}/Info.plist"
|
||||||
plutil -convert binary1 "${CONTENTS}/Info.plist"
|
plutil -convert binary1 "${CONTENTS}/Info.plist"
|
||||||
update-mime-database -V "${CONTENTS}/Resources/share/mime"
|
update-mime-database -V "${RESOURCES}/share/mime"
|
||||||
|
|
||||||
msg "Build glib database:"
|
msg "Build glib database:"
|
||||||
mkdir -p ${RESOURCES}/share/glib-2.0
|
mkdir -p ${RESOURCES}/share/glib-2.0
|
||||||
@ -246,37 +250,34 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas
|
|||||||
"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas"
|
"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas"
|
||||||
|
|
||||||
# Append an LC_RPATH
|
# Append an LC_RPATH
|
||||||
msg "Registering @rpath into the executable:"
|
msg "Registering @rpath into the main executable."
|
||||||
echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}'" | bash -v
|
install_name_tool -add_rpath ${LIB} ${EXECUTABLE}
|
||||||
echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v
|
|
||||||
|
|
||||||
ModifyInstallNames
|
ModifyInstallNames
|
||||||
|
|
||||||
# fix @rpath in Frameworks
|
# fix @rpath in Frameworks
|
||||||
msg "Registering @rpath in Frameworks folder:"
|
msg "Registering @rpath in Frameworks folder."
|
||||||
for frameworklibs in "${CONTENTS}"/Frameworks/* ; do
|
for frameworklibs in "${LIB}"/*{dylib,so} ; do
|
||||||
echo " install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib '${frameworklibs}'" | bash -v
|
install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib ${frameworklibs}
|
||||||
echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v
|
install_name_tool -add_rpath "${LIB}" ${frameworklibs}
|
||||||
done
|
done
|
||||||
|
install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli
|
||||||
|
install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli
|
||||||
|
|
||||||
# Sign the app
|
# Codesign the app
|
||||||
CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)"
|
|
||||||
if ! test -z "${CODESIGNID}" ; then
|
if ! test -z "${CODESIGNID}" ; then
|
||||||
msg "Codesigning:"
|
msg "Codesigning Application."
|
||||||
install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CONTENTS}"/rt.entitlements
|
install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements
|
||||||
plutil -convert binary1 "${CONTENTS}"/rt.entitlements
|
plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements
|
||||||
codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${CONTENTS}"/rt.entitlements
|
mv "${EXECUTABLE}"-cli "${LIB}"
|
||||||
codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}"
|
|
||||||
codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}"-cli
|
|
||||||
for frameworklibs in "${LIB}"/* ; do
|
for frameworklibs in "${LIB}"/* ; do
|
||||||
codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp "${frameworklibs}"
|
codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}"
|
||||||
done
|
done
|
||||||
codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}"
|
codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}"
|
||||||
spctl -a -vvvv ${APP}
|
spctl -a -vvvv ${APP}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Notarize the app
|
# Notarize the app
|
||||||
NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)"
|
|
||||||
if ! test -z "$NOTARY" ; then
|
if ! test -z "$NOTARY" ; then
|
||||||
msg "Notarizing the application:"
|
msg "Notarizing the application:"
|
||||||
ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip"
|
ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip"
|
||||||
@ -308,7 +309,6 @@ local srcDir="$(mktemp -dt $$)"
|
|||||||
|
|
||||||
msg "Preparing disk image sources at ${srcDir}:"
|
msg "Preparing disk image sources at ${srcDir}:"
|
||||||
cp -R "${APP}" "${srcDir}"
|
cp -R "${APP}" "${srcDir}"
|
||||||
ditto "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt "${srcDir}"
|
|
||||||
ln -s /Applications "${srcDir}"
|
ln -s /Applications "${srcDir}"
|
||||||
|
|
||||||
# Web bookmarks
|
# Web bookmarks
|
||||||
@ -331,7 +331,7 @@ hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAM
|
|||||||
|
|
||||||
# Sign disk image
|
# Sign disk image
|
||||||
if ! test -z "$CODESIGNID" ; then
|
if ! test -z "$CODESIGNID" ; then
|
||||||
codesign --deep --force -v -s ""${CODESIGNID}"" --timestamp "${dmg_name}.dmg"
|
codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Notarize the dmg
|
# Notarize the dmg
|
||||||
@ -363,7 +363,6 @@ fi
|
|||||||
|
|
||||||
# Zip disk image for redistribution
|
# Zip disk image for redistribution
|
||||||
msg "Zipping disk image for redistribution:"
|
msg "Zipping disk image for redistribution:"
|
||||||
zip "${dmg_name}.zip" "${dmg_name}.dmg" "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt"
|
|
||||||
rm "${dmg_name}.dmg"
|
rm "${dmg_name}.dmg"
|
||||||
msg "Removing disk image caches:"
|
msg "Removing disk image caches:"
|
||||||
rm -rf "${srcDir}"
|
rm -rf "${srcDir}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user