]> git.lyx.org Git - features.git/blobdiff - development/LyX-Mac-binary-release.sh
ctests: invert failing tests for new ru file
[features.git] / development / LyX-Mac-binary-release.sh
index 2cb6f75a4470db4cdf2c3935a8c1268ea0660e99..f918bca6a256c1baaf4ba452800d210abc21fd43 100644 (file)
@@ -152,6 +152,7 @@ usage() {
        echo " --with-build-path=PATH ....." default \${lyx-src-dir}/../lyx-build
        echo " --with-dmg-location=PATH ..." default \${build-path}
        echo " --with-binary-strip=yes ...." default no
+       echo " --codesign-identity=CSID ..." default is w/o CSID
        echo
        echo "All other arguments with -- are passed to configure"
        echo "including the defaults: ${LyXConfigureOptions}"
@@ -212,6 +213,10 @@ while [ $# -gt 0 ]; do
                esac
                shift
                ;;
+       --codesign-identity=*)
+               CODESIGN_IDENTITY=$(echo "${1}"|cut -d= -f2)
+               shift
+               ;;
        --libmagic-deployment=*)
                libmagic_deployment=$(echo ${1}|cut -d= -f2)
                shift
@@ -634,7 +639,10 @@ LYX_BUNDLE_PATH="${LyxAppPrefix}/${BUNDLE_PATH}"
 build_lyx() {
        # Clear Output
        if [ -n "${LyxAppZip}" -a -f "${LyxAppZip}" ]; then rm "${LyxAppZip}"; fi
-       if [ -d "${LyxAppPrefix}" ]; then rm -rf "${LyxAppPrefix}"; fi
+       if [ -d "${LyxAppPrefix}" ]; then
+               find "${LyxAppPrefix}" -type d -exec chmod u+w '{}' \;
+               rm -rf "${LyxAppPrefix}"
+       fi
 
        case "${EnableCXX11}" in
        "--enable-cxx11")
@@ -742,26 +750,25 @@ private_framework() {
        fwvrsn="1"
        mkdir -p "${condir}/${fwdir}"/Versions/${fwvrsn}/Headers
        mkdir -p "${condir}/${fwdir}"/Versions/${fwvrsn}/Resources
-       if [ ! -f "${condir}/${fwdir}/Versions/${fwvrsn}/${libnm}" ]; then
-               cp -p "${source}" "${condir}/${fwdir}/Versions/${fwvrsn}/${libnm}"
+       if [ ! -f "${condir}/${fwdir}/Versions/${fwvrsn}/${fwname}" ]; then
+               cp -p "${source}" "${condir}/${fwdir}/Versions/${fwvrsn}/${fwname}"
                for hfile in "$@" ; do
                        test -f "${hfile}" && cp -p "${hfile}" "${condir}/${fwdir}"/Versions/${fwvrsn}/Headers
                done
                ln -s ${fwvrsn} "${condir}/${fwdir}/Versions/Current"
                ln -s Versions/Current/Headers "${condir}/${fwdir}/Headers"
                ln -s Versions/Current/Resources "${condir}/${fwdir}/Resources"
-               ln -s Versions/Current/"${libnm}" "${condir}/${fwdir}/${libnm}"
-               ln -s Versions/Current/"${libnm}" "${condir}/${fwdir}/${fwname}"
-               installname -id "@executable_path/../${fwdir}/${libnm}" "${condir}/${fwdir}/${libnm}"
+               ln -s Versions/Current/"${fwname}" "${condir}/${fwdir}/${fwname}"
+               installname -id "@executable_path/../${fwdir}/${fwname}" "${condir}/${fwdir}/${fwname}"
                if [ -f "${LyxSourceDir}"/development/LyX-Mac-frameworks-template.plist ]; then
                        cat "${LyxSourceDir}"/development/LyX-Mac-frameworks-template.plist | sed \
-                               -e "s/@CFBundleExecutable@/${libnm}/" \
+                               -e "s/@CFBundleExecutable@/${fwname}/" \
                                -e "s/@CFBundleIdentifier@/${libid}/" \
                                -e "s/@CFBundleShortVersionString@/${svrsn}/" \
                                -e "s/@CFBundleVersion@/${version}/" > "${condir}/${fwdir}"/Resources/Info.plist
                fi
        fi
-       installname -change "${source}" "@executable_path/../${fwdir}/${libnm}" "${target}"
+       installname -change "${source}" "@executable_path/../${fwdir}/${fwname}" "${target}"
 }
 
 deploy_qtlibs() {
@@ -794,7 +801,9 @@ EOF
                test -d "${condir}/${fwdir}" || (
                        echo Copy framework "${source}/lib/"$(basename "${fwdir}")
                        cp -pR "${source}/lib/"$(basename "${fwdir}") "${condir}/${fwdir}"
-                       rm -f "${condir}/${fwdir}/${version}${libnm}"_debug
+                       rm -f "${condir}/${fwdir}/${libnm}"_debug "${condir}/${fwdir}/${version}${libnm}"_debug
+                       test -f "${condir}/${fwdir}/${libnm}".prl && mv "${condir}/${fwdir}/${libnm}".prl "${condir}/${fwdir}"/Resources
+                       test -f "${condir}/${fwdir}/${libnm}"_debug.prl && mv "${condir}/${fwdir}/${libnm}"_debug.prl "${condir}/${fwdir}"/Resources
                        installname -id "@executable_path/../${fwdir}/${version}${libnm}" "${condir}/${fwdir}/${version}${libnm}"
                        find "${condir}/PlugIns" "${condir}/"$(dirname "${fwdir}") -name Headers -prune -o -type f -print | while read filename ; do
                                if [ "${filename}" != "${target}" ]; then
@@ -872,6 +881,41 @@ convert_universal() {
        done
 }
 
+# -------------------------
+# Create code sign signatures
+# -------------------------
+code_sign() {
+       target="$1"
+       condir=$(content_directory "${target}"/lyx)
+       appdir=$(dirname "${condir}")
+       # have to sign frameworks first
+       for fwname in Aspell Hunspell LibMagic ; do
+               fwitem="${condir}"/$(framework_name "${fwname}")
+               if [ -d "${fwitem}" ]; then
+                       codesign --verbose --force --sign "${CODESIGN_IDENTITY}" "${fwitem}"
+               fi
+       done
+       for csitem in \
+               "${condir}"/Frameworks/Qt*.framework/Versions/${QtFrameworkVersion} \
+               "${condir}"/PlugIns/*/lib*.dylib \
+               "${condir}"/Library/Spotlight/* \
+               "${target}"/inkscape \
+               "${target}"/lilypond \
+               "${target}"/lilypond-book \
+               "${target}"/maxima \
+               "${target}"/tex2lyx \
+               "${target}"/lyxeditor \
+               "${target}"/lyxconvert \
+               "${target}"/lyxclient
+       do
+               codesign --verbose --force --sign "${CODESIGN_IDENTITY}" "${csitem}"
+       done
+
+       /usr/bin/codesign --verbose --force --sign "${CODESIGN_IDENTITY}" "${appdir}" || {
+               echo Warning: codesign failed with certificate named '"'${CODESIGN_IDENTITY}'"'
+       }
+}
+
 deduplicate() {
        find "$@" -type f -print | while read file ; do
                echo $(md5 -q "$file") "$file"
@@ -980,7 +1024,7 @@ make_dmg() {
        VOLUME=$(mount |grep ${DEVICE} | cut -f 3 -d ' ')
 
        # copy in the application bundle
-       ditto --hfsCompression "${LyxAppDir}.app" "${VOLUME}/${LyxName}.app"
+       ditto --hfsCompression "${LyxAppPrefix}" "${VOLUME}/${LyxName}.app"
 
        # copy in background image
        mkdir -p "${VOLUME}/Pictures"
@@ -989,7 +1033,7 @@ make_dmg() {
        ln -s /Applications/ "${VOLUME}"/Applications
        test -d "${DocumentationDir}" && ditto --hfsCompression "${DocumentationDir}" "${VOLUME}"
        set_bundle_display_options "${VOLUME}" ${BG_W} ${BG_H}
-       ${XCODE_DEVELOPER}/Tools/SetFile -a C "${VOLUME}"
+       PATH="${XCODE_DEVELOPER}/Tools:$PATH" SetFile -a C "${VOLUME}"
        mv "${VOLUME}/Pictures" "${VOLUME}/.Pictures"
 
        # Unmount the disk image
@@ -1033,5 +1077,7 @@ if [ ${LyxOnlyPackage:-"no"} = "no" ]; then
        build_lyx
        convert_universal
        copy_dictionaries
+       test -n "${CODESIGN_IDENTITY}" && code_sign "${LYX_BUNDLE_PATH}"
+       find "${LyxAppPrefix}" -type d -exec chmod a-w '{}' \;
 fi
 build_package