From 02665ca91b3945a97f5b9f8d4f35a3acf5958ea5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 17 Sep 2023 23:03:18 -0700 Subject: [PATCH] Change github workflows to provide MacOs full release zip file (#1290) --- .github/workflows/buildLoadup.yml | 339 +++- .github/workflows/buildReleaseInclDocker.yml | 1 + installers/deb/build_deb.sh | 26 +- .../downloads_page/medley_downloads.html | 34 +- installers/downloads_page/medley_downloads.md | 35 +- installers/macos/.gitignore | 7 + installers/macos/app/Info.plist | 33 + installers/macos/app/PkgInfo | 1 + installers/macos/build_app.sh | 170 ++ installers/macos/build_artifacts.sh | 66 + installers/macos/build_dmg.sh | 185 ++ installers/macos/images/A2P_icon.svg | 209 +++ installers/macos/images/A2P_icon128.png | Bin 0 -> 6147 bytes installers/macos/images/A2P_icon256.png | Bin 0 -> 11610 bytes installers/macos/images/App_icon.svg | 209 +++ installers/macos/images/App_icon1024.png | Bin 0 -> 37270 bytes installers/macos/images/App_icon512.png | Bin 0 -> 18314 bytes installers/macos/images/Command_icon.svg | 209 +++ installers/macos/images/Command_icon128.png | Bin 0 -> 5917 bytes installers/macos/images/Command_icon256.png | Bin 0 -> 11025 bytes installers/macos/images/Install_Message.png | Bin 0 -> 54660 bytes installers/macos/images/Install_Message.svg | 1556 +++++++++++++++++ installers/macos/images/Install_icon.svg | 209 +++ installers/macos/images/Install_icon128.png | Bin 0 -> 5960 bytes installers/macos/images/Install_icon256.png | Bin 0 -> 5960 bytes installers/macos/images/MedleyIcon.png | Bin 0 -> 29321 bytes installers/macos/images/MedleyIcon.svg | 199 +++ installers/macos/images/MedleyIcon128.png | Bin 0 -> 4212 bytes installers/macos/images/MedleyIcon256.png | Bin 0 -> 7444 bytes installers/macos/pkg/Distribution.xml | 29 + installers/macos/scripts/medley_add2path | 43 + installers/win/medley.iss | 2 +- medley | 2 +- run-medley | 1 - scripts/medley/medley.command | 151 ++ scripts/medley/medley.sh | 143 +- scripts/medley/medley_args.sh | 29 +- 37 files changed, 3614 insertions(+), 274 deletions(-) create mode 100644 installers/macos/.gitignore create mode 100644 installers/macos/app/Info.plist create mode 100644 installers/macos/app/PkgInfo create mode 100755 installers/macos/build_app.sh create mode 100755 installers/macos/build_artifacts.sh create mode 100755 installers/macos/build_dmg.sh create mode 100644 installers/macos/images/A2P_icon.svg create mode 100644 installers/macos/images/A2P_icon128.png create mode 100644 installers/macos/images/A2P_icon256.png create mode 100644 installers/macos/images/App_icon.svg create mode 100644 installers/macos/images/App_icon1024.png create mode 100644 installers/macos/images/App_icon512.png create mode 100644 installers/macos/images/Command_icon.svg create mode 100644 installers/macos/images/Command_icon128.png create mode 100644 installers/macos/images/Command_icon256.png create mode 100644 installers/macos/images/Install_Message.png create mode 100644 installers/macos/images/Install_Message.svg create mode 100644 installers/macos/images/Install_icon.svg create mode 100644 installers/macos/images/Install_icon128.png create mode 100644 installers/macos/images/Install_icon256.png create mode 100644 installers/macos/images/MedleyIcon.png create mode 100644 installers/macos/images/MedleyIcon.svg create mode 100644 installers/macos/images/MedleyIcon128.png create mode 100644 installers/macos/images/MedleyIcon256.png create mode 100644 installers/macos/pkg/Distribution.xml create mode 100755 installers/macos/scripts/medley_add2path create mode 100755 scripts/medley/medley.command mode change 100755 => 120000 scripts/medley/medley.sh diff --git a/.github/workflows/buildLoadup.yml b/.github/workflows/buildLoadup.yml index 3079bbbd..635d0a8a 100644 --- a/.github/workflows/buildLoadup.yml +++ b/.github/workflows/buildLoadup.yml @@ -60,7 +60,7 @@ defaults: jobs: -###################################################################################### +# JOB: inputs ####################################################################### # Regularize the inputs so they can be referenced the same way whether they are # the result of a workflow_dispatch or a workflow_call @@ -85,8 +85,7 @@ jobs: fi - -###################################################################################### +# JOB: sentry ####################################################################### # Use sentry-action to determine if this release has already been built # based on the latest commit to the repo @@ -114,11 +113,11 @@ jobs: with: tag: "loadup" -###################################################################################### +# JOB: loadup ####################################################################### # - # Do the loadup + # Do the loadup and push to release on github # loadup: @@ -129,7 +128,8 @@ jobs: combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }} medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }} medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }} - debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }} + artifacts_filename_template: ${{ steps.job_outputs.outputs.ARTIFACTS_FILENAME_TEMPLATE }} + release_url: ${{ steps.push.outputs.html_url }} needs: [inputs, sentry] if: | @@ -156,22 +156,35 @@ jobs: # Get Maiko release information, retrieves the name of the latest # release. Used to download the correct Maiko release - - name: Get Maiko Release Information + # Find latest release (draft or normal) + - name: Get maiko release information id: maiko - uses: abatilo/release-info-action@v1.3.2 - with: - owner: ${{ github.repository_owner }} - repo: maiko + run: | + tag="" + if [ "${{ needs.inputs.outputs.draft }}" = "true" ]; + then + gh release list --repo ${{ github.repository_owner }}/maiko | grep Draft >/tmp/releases-$$ + if [ $? -eq 0 ]; + then + tag=$(head -n 1 /tmp/releases-$$ | awk '{ print $3 }') + fi + fi + if [ -z "${tag}" ]; + then + tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }') + fi + echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT} + env: + GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }} # Setup environment variables & establish job outputs - name: Setup Environment Variables run: | echo "build_time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_OUTPUT} - echo "TARBALL_DIR=installers/deb/tmp/tarballs" >>${GITHUB_ENV} - echo "DEBS_DIR=installers/deb/debs" >>${GITHUB_ENV} - echo "TARS_DIR=installers/deb/tars" >>${GITHUB_ENV} + echo "TARBALL_DIR=/tmp/tarballs" >>${GITHUB_ENV} echo "MEDLEY_RELEASE_TAG=${RELEASE_TAG}" >>${GITHUB_ENV} - echo "MAIKO_RELEASE_TAG=${{ steps.maiko.outputs.latest_tag }}" >>${GITHUB_ENV} + echo "MAIKO_RELEASE_TAG=${{ steps.maiko.outputs.maiko_tag }}" >>${GITHUB_ENV} + echo "ARTIFACTS_FILENAME_TEMPLATE=medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@" >>${GITHUB_ENV} - name: More Environment Variables run: | echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_RELEASE_TAG#medley-}" >>${GITHUB_ENV} @@ -182,27 +195,25 @@ jobs: - name: Establish job outputs id: job_outputs run: | - echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> $GITHUB_OUTPUT; - echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> $GITHUB_OUTPUT; - echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> $GITHUB_OUTPUT; + echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT} + echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT} + echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT} + echo "ARTIFACTS_FILENAME_TEMPLATE=${ARTIFACTS_FILENAME_TEMPLATE}" >> ${GITHUB_OUTPUT} # Setup some needed dirs in workspace - name: Create work dirs run: mkdir -p ${TARBALL_DIR} - # Download Maiko Release Assets + # Download Maiko Release Assets and untar it - name: Download Release Assets - uses: robinraju/release-downloader@v1.6 - with: - repository: ${{ github.repository_owner }}/maiko - token: ${{ secrets.GITHUB_TOKEN }} - latest: true - out-file-path: ${{ env.TARBALL_DIR }} - fileName: "${{ env.MAIKO_RELEASE_TAG }}-linux.*.tgz" - - - name: Untar Maiko Release for use in loadup run: | - tar -xzf "${TARBALL_DIR}/${{ env.MAIKO_RELEASE_TAG }}-linux.x86_64.tgz" + gh release download ${MAIKO_RELEASE_TAG} \ + -D ${TARBALL_DIR} \ + --repo ${{ github.repository_owner }}/maiko \ + -p '*.tgz' + tar -xzf "${TARBALL_DIR}/${MAIKO_RELEASE_TAG}-linux.x86_64.tgz" + env: + GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }} # Checkout Notecards and tar it in the tarballsdir - name: Checkout Notecards @@ -210,11 +221,11 @@ jobs: with: repository: ${{ github.repository_owner }}/notecards path: ./notecards - - run: mv ./notecards ../notecards - name: Tar notecards into tarball dir run: | - cd .. - tar cfz medley/${TARBALL_DIR}/notecards.tgz notecards + mv ./notecards ../notecards + cd ../notecards + git archive --format=tgz --output="${TARBALL_DIR}/notecards.tgz" --prefix=notecards/ main # Install vnc - name: Install vnc @@ -224,7 +235,6 @@ jobs: run: | Xvnc -geometry 1280x720 :0 & export DISPLAY=":0" - PATH="$PWD/maiko:$PATH" scripts/loadup-all.sh -apps scripts/loadup-db.sh @@ -233,15 +243,6 @@ jobs: scripts/release-make-tars.sh "${MEDLEY_RELEASE_TAG}" mv releases/"${MEDLEY_SHORT_RELEASE_TAG}"/*.tgz "${TARBALL_DIR}" - # Build the deb files as well as the tgz files - - name: Build .deb files for 3 architectures - id: debs - run: | - cd installers/deb - debs_filename_base=$(./build_deb.sh) - echo "DEBS_FILENAME_BASE=${debs_filename_base}" >> $GITHUB_ENV; - echo "DEBS_FILENAME_BASE=${debs_filename_base}" >> $GITHUB_OUTPUT; - # Push the release up to github releases - name: Delete existing release with same tag (if any) uses: cb80/delrel@latest @@ -250,21 +251,166 @@ jobs: continue-on-error: true - name: Push the release - id: push_release + id: push uses: ncipollo/release-action@v1 with: allowUpdates: true artifacts: + # ${{ env.TARBALL_DIR }}/notecards.tgz, ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz, - ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz, - ${{ env.DEBS_DIR }}/*.deb, - ${{ env.TARS_DIR }}/*.tgz + ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz tag: ${{ env.MEDLEY_RELEASE_TAG }} draft: ${{ needs.inputs.outputs.draft }} prerelease: false generateReleaseNotes: true token: ${{ secrets.GITHUB_TOKEN }} + # Save the tarball directory for subsequent jobs + - name: Save tarballs + uses: actions/upload-artifact@v3 + with: + name: tarballs + path: ${{ env.TARBALL_DIR }} + if-no-files-found: error + + +# JOB: linux_installer ############################################################## + + # + # Create the linux installers (.deb and .tgz) and push to release on github + # + linux_installer: + + runs-on: ubuntu-latest + + needs: [inputs, sentry, loadup] + if: | + needs.sentry.outputs.release_not_built == 'true' + || needs.inputs.outputs.force == 'true' + + steps: + + # Checkout latest commit + - name: Checkout Medley + uses: actions/checkout@v3 + + # Environment variables + - name: Environment variables + run: | + echo "DEBS_DIR=installers/deb/debs" >>${GITHUB_ENV} + echo "TARS_DIR=installers/deb/tars" >>${GITHUB_ENV} + echo "TARBALL_DIR=installers/deb/tmp/tarballs" >>${GITHUB_ENV} + echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \ + >>${GITHUB_ENV} + echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} + + # Create taball dir + - run: mkdir -p ${TARBALL_DIR} + + # Get the tarballs + - name: Get tarballs + uses: actions/download-artifact@v3 + with: + name: tarballs + path: ${{ env.TARBALL_DIR }} + + # Build the deb files as well as the tgz files + - name: Build .deb files for 3 architectures + id: debs + run: | + cd installers/deb + ./build_deb.sh + + # Push the debs and tgz up to github releases + - name: Push the release + id: push_release + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifacts: + ${{ env.DEBS_DIR }}/*.deb, + ${{ env.TARS_DIR }}/*.tgz + tag: ${{ env.MEDLEY_RELEASE_TAG }} + token: ${{ secrets.GITHUB_TOKEN }} + omitBodyDuringUpdate: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + omitPrereleaseDuringUpdate: true + + + +# JOB: macos_installer ############################################################## + + # + # Create the macos installers (.dmg and .zip) and push to release on github + # + macos_installer: + + runs-on: macos-12 + + needs: [inputs, sentry, loadup] + if: | + needs.sentry.outputs.release_not_built == 'true' + || needs.inputs.outputs.force == 'true' +# if: false + + defaults: + run: + shell: bash + + steps: + + # Checkout latest commit + - name: Checkout Medley + uses: actions/checkout@v3 + + # Environment variables + - name: Environment variables + run: | + MACOS_DIR=installers/macos + echo "MACOS_DIR=${MACOS_DIR}" >>${GITHUB_ENV} + echo "ARTIFACTS_DIR=${MACOS_DIR}/artifacts" >>${GITHUB_ENV} + echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV} + echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \ + >>${GITHUB_ENV} + echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} + + # Create tarball dir + - run: mkdir -p ${TARBALL_DIR} + + # Get the tarballs + - name: Get tarballs + uses: actions/download-artifact@v3 + with: + name: tarballs + path: ${{ env.TARBALL_DIR }} + + # Build the .dmg and .zip files + - name: Build .dmg & .zip files + id: dmg-zip + run: | + cd ${MACOS_DIR} + ./build_artifacts.sh + + # Push the .dmg and .zip up to github releases + - name: Push the release + id: push_release + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifacts: + # 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg, + ${{ env.ARTIFACTS_DIR }}/*.zip + tag: ${{ env.MEDLEY_RELEASE_TAG }} + token: ${{ secrets.GITHUB_TOKEN }} + omitBodyDuringUpdate: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + omitPrereleaseDuringUpdate: true + + + +# JOB: windows_installer ############################################################# # # Create the Windows installer, push it up to the release on github and @@ -279,7 +425,11 @@ jobs: needs.sentry.outputs.release_not_built == 'true' || needs.inputs.outputs.force == 'true' + outputs: + windows_installer_filename: ${{ steps.jobout.outputs.INSTALLER_FILENAME }} + steps: + # Checkout latest commit - name: Checkout Medley uses: actions/checkout@v3 @@ -294,8 +444,8 @@ jobs: echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append $msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" echo "MEDLEY_SHORT_RELEASE_TAG=$msrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append - $debs="${{ needs.loadup.outputs.debs_filename_base }}" - echo "DEBS_FILENAME_BASE=$debs" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append + $aft="${{ needs.loadup.outputs.artifacts_filename_template }}" + echo "ARTIFACTS_FILENAME_TEMPLATE=$aft" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append # Download vnc viewer - name: Download vncviewer @@ -310,8 +460,7 @@ jobs: shell: powershell run: | iscc installers\win\medley.iss - $filename="medley-install_${env:COMBINED_RELEASE_TAG}_x64.exe" - echo "INSTALLER_FILENAME=$filename" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append + # Upload windows installer to release - name: Upload windows installer to release @@ -319,7 +468,7 @@ jobs: uses: ncipollo/release-action@v1 with: allowUpdates: true - artifacts: installers/win/${{ env.INSTALLER_FILENAME }} + artifacts: installers/win/medley-*.exe tag: ${{ env.MEDLEY_RELEASE_TAG }} token: ${{ secrets.GITHUB_TOKEN }} omitBodyDuringUpdate: true @@ -327,18 +476,63 @@ jobs: omitNameDuringUpdate: true omitPrereleaseDuringUpdate: true - # Install the OpenSSH Client - - name: Install the OpenSSH Client - shell: powershell + +# JOB: downloads_page ################################################################ + + # + # Update the downloads page on OIO + # + + downloads_page: + + runs-on: ubuntu-latest + + needs: [inputs, sentry, loadup, linux_installer, macos_installer, windows_installer] + if: | + needs.sentry.outputs.release_not_built == 'true' + || needs.inputs.outputs.force == 'true' + + steps: + + # Environment variables + - name: Environment Varibales (from other jobs) run: | - Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 + crt="${{ needs.loadup.outputs.combined_release_tag }}" + echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV} + mrt="${{ needs.loadup.outputs.medley_release_tag }}" + echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV} + msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" + echo "MEDLEY_SHORT_RELEASE_TAG=${msrt}" >>${GITHUB_ENV} + + # Checkout latest commit + - name: Checkout Medley + uses: actions/checkout@v3 + + + # Upload a dummy file to release + # Needed since download url of the release changes on every update + # So this will be the final update before creating downloads page + # and we can use its url for the page + - run: echo "placeholder" >placeholder.txt + - name: Upload windows installer to release + id: pushph + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifacts: placeholder.txt + tag: ${{ env.MEDLEY_RELEASE_TAG }} + token: ${{ secrets.GITHUB_TOKEN }} + omitBodyDuringUpdate: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + omitPrereleaseDuringUpdate: true # Update the downloads page and the man page on OIO - name: Update the downloads page and the man page to the OIO static page host shell: bash run: | # Figure out filenames - download_url="${{ steps.push.outputs.html_url }}" + download_url="${{ steps.pushph.outputs.html_url }}" download_url="${download_url/\/tag\//\/download\/}" local_template="installers/downloads_page/medley_downloads.html" local_filename="medley_downloads.html" @@ -356,9 +550,8 @@ jobs: # Fill in downloads page template sed \ -e "s/@@@MEDLEY.SHORT.RELEASE.TAG@@@/${MEDLEY_SHORT_RELEASE_TAG}/g" \ + -e "s/@@@COMBINED.RELEASE.TAG@@@/${COMBINED_RELEASE_TAG}/g" \ -e "s~@@@DOWNLOAD_URL@@@~${download_url}~g" \ - -e "s/@@@DEBS.FILENAME.BASE@@@/${DEBS_FILENAME_BASE}/g" \ - -e "s/@@@WINDOWS.INSTALLER.FILENAME@@@/${INSTALLER_FILENAME}/g" \ < "${local_template}" > "${local_filename}" # Create sftp instruction file echo "-rm ${remote_filepath}.oldold" > batch @@ -375,7 +568,7 @@ jobs: -###################################################################################### +# JOB: complete ##################################################################### # Use set-sentry-action to determine set the sentry that says this release has # been successfully built @@ -387,9 +580,16 @@ jobs: outputs: build_successful: ${{ steps.output.outputs.build_successful }} - needs: [inputs, sentry, loadup, windows_installer] + needs: [inputs, sentry, loadup, downloads_page] steps: + # Delete the tarballs artifact + - name: Delete tarballs artifact + uses: geekyeggo/delete-artifact@v2 + with: + name: tarballs + failOnError: false + # Checkout the actions for this repo owner - name: Checkout Actions uses: actions/checkout@v3 @@ -411,21 +611,4 @@ jobs: echo "build_successful='true'" >> $GITHUB_OUTPUT ###################################################################################### - - - -# - name: Download the Windows installer created in windows job -# uses: actions/download-artifact@v3 -# with: -# name: windows_installer -# path: installers/win - -# - name: Rename the Windows installer w/ version tag -# run: | -# maiko_release_tag="${{ steps.maiko.outputs.latest_tag }}" -# combined_release_tag="${MEDLEY_RELEASE_TAG#medley-}_${maiko_release_tag#maiko-}" -# windows_installer_filename="medley_install_${combined_release_tag}_x64.exe" -# cd installers/win -# mv medley_install_vXXXVERSIONXXX_x64.exe "${windows_installer_filename}" -# echo "WINDOWS_INSTALLER_FILENAME=${windows_installer_filename}" >>${GITHUB_ENV} - +###################################################################################### diff --git a/.github/workflows/buildReleaseInclDocker.yml b/.github/workflows/buildReleaseInclDocker.yml index cfc9aa42..5049109c 100644 --- a/.github/workflows/buildReleaseInclDocker.yml +++ b/.github/workflows/buildReleaseInclDocker.yml @@ -84,6 +84,7 @@ jobs: echo "force=false" >> $GITHUB_OUTPUT; fi + ###################################################################################### diff --git a/installers/deb/build_deb.sh b/installers/deb/build_deb.sh index 5beb7314..78d45bc9 100755 --- a/installers/deb/build_deb.sh +++ b/installers/deb/build_deb.sh @@ -11,15 +11,6 @@ ############################################################################### # set -x -# mess with file desscriptors so we get only one line on stdout -# so we can communicate only what we want back to any githib runner -# stash fd 1 in fd 3 -exec 3>&1 -# make fd 1 (stdout) be the same as stdout -# so none of the std output from this file will be captured by -# $() but it will still be written out to the tty (via stderr) -exec 1>&2 - tarball_dir=tmp/tarballs # Make sure we are in the right directory @@ -32,6 +23,13 @@ then exit 1 fi +# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE +if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ]; +then + ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@" +fi + + # If running as a github action or -t arg, then skip downloading the tarballs if ! [[ -n "${GITHUB_WORKSPACE}" || "$1" = "-t" ]]; @@ -69,7 +67,6 @@ fi pushd ${tarball_dir} >/dev/null 2>/dev/null medley_release=$(echo medley-*-loadups.tgz | sed "s/medley-\(.*\)-loadups.tgz/\1/") maiko_release=$(echo maiko-*-linux.x86_64.tgz | sed "s/maiko-\(.*\)-linux.x86_64.tgz/\1/") -debs_filename_base="medley-full-${medley_release}_${maiko_release}" popd >/dev/null 2>/dev/null @@ -136,7 +133,7 @@ do # # Create tar file for this arch # - filename="${debs_filename_base}-${wslp}-${arch}" + filename="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e "s#@@PLATFORM@@#${wslp}#" -e "s#@@ARCH@@#${arch}#" -e "s#@@MEDLEY.RELEASE@@#${medley_release}#" -e "s#@@MAIKO.RELEASE@@#${maiko_release}#" )" mkdir -p tars echo "Creating tar file tars/${filename}.tgz" tar -C ${il_dir} -czf tars/${filename}.tgz . @@ -151,8 +148,5 @@ do done done -# send just one line back to github $() construct -# do this by restoring fd 1 to what it was orginally -exec 1>&3 -echo "${debs_filename_base}" - +################################################################################################################ +################################################################################################################ diff --git a/installers/downloads_page/medley_downloads.html b/installers/downloads_page/medley_downloads.html index e41529a9..4e81d85d 100644 --- a/installers/downloads_page/medley_downloads.html +++ b/installers/downloads_page/medley_downloads.html @@ -10,36 +10,46 @@
  • Local Installations (for any Linux distro)

  • -
  • WINDOWS 10/11 (Medley runs in a Docker container)

    +
  • macOS 11 (Big Sur) and later - for both Intel and Apple Silicon

    -

    Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines

  • + +
  • WINDOWS 10/11 (Medley running within Cygwin)

    + +

    Not available

  • diff --git a/installers/downloads_page/medley_downloads.md b/installers/downloads_page/medley_downloads.md index 7d251244..cd87f574 100644 --- a/installers/downloads_page/medley_downloads.md +++ b/installers/downloads_page/medley_downloads.md @@ -6,38 +6,47 @@ * #### Standard Linux - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86\_64.deb) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.deb) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.deb) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.deb) * #### Windows System for Linux - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86\_64.deb) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.deb) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb) * ### Local Installations (for any Linux distro) * #### Standard Linux - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86\_64.tgz) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.tgz) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.tgz) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.tgz) * #### Windows System for Linux - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86\_64.tgz) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz) - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.tgz) + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz) - * ## WINDOWS 10/11 (Medley runs in a Docker container) - - [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines](@@@DOWNLOAD_URL@@@/@@@WINDOWS.INSTALLER.FILENAME@@@) + * ## macOS 11 (Big Sur) and later - for both Intel and Apple Silicon + * ### DMG Installer + + Not available + + * ### ZIP Installer + + [Release @@@MEDLEY.SHORT.RELEASE.TAG@@@](@@@DOWNLOAD_URL@@@/medley-full-macos-universal-@@@COMBINED.RELEASE.TAG@@@.zip) + + * ## WINDOWS 10/11 (Medley running within Cygwin) + + Not available diff --git a/installers/macos/.gitignore b/installers/macos/.gitignore new file mode 100644 index 00000000..14816e60 --- /dev/null +++ b/installers/macos/.gitignore @@ -0,0 +1,7 @@ +tmp +devtmp +pkg/*.pkg +artifacts + + + diff --git a/installers/macos/app/Info.plist b/installers/macos/app/Info.plist new file mode 100644 index 00000000..72d0498d --- /dev/null +++ b/installers/macos/app/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + medley/medley + CFBundleGetInfoString + Medley Interlisp, Copyright 2023 Interlisp.org + CFBundleIconFile + Medley.icns + CFBundleIdentifier + org.interlisp.Medley + CFBundleDocumentTypes + + + CFBundleInfoDictionaryVersion + 3.51 + CFBundlePackageType + APPL + CFBundleShortVersionString + --VERSION_TAG-- + CFBundleSignature + Medley + CFBundleVersion + --VERSION_TAG-- + NSHumanReadableCopyright + Copyright 2023 Interlisp.org + LSMinimumSystemVersion + 11.0 + + diff --git a/installers/macos/app/PkgInfo b/installers/macos/app/PkgInfo new file mode 100644 index 00000000..5c0b3d6d --- /dev/null +++ b/installers/macos/app/PkgInfo @@ -0,0 +1 @@ +APPLMedley diff --git a/installers/macos/build_app.sh b/installers/macos/build_app.sh new file mode 100755 index 00000000..7c66cf96 --- /dev/null +++ b/installers/macos/build_app.sh @@ -0,0 +1,170 @@ +#!/bin/bash +############################################################################### +# +# build_app.sh: build app bundle for installing Medley Interlisp on MacOS +# +# 2023-02-23 Frank Halasz +# +# Copyright 2023 by Interlisp.org +# +############################################################################### + +APPNAME=Medley + +# 2023-07-19 Temorary selector to allow us to create .zip asset before app/dmg work is finished +INCLUDE_APP="no" # "yes" or "no" + +# Make sure we are in the right directory +if [ ! -f ./app/Info.plist ]; +then +echo "Can't find ./app/Info.plist file." +echo "Incorrect cwd?" +echo "Should be in medley/installers/macos" +echo "Exiting" +exit 1 +fi + +# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE +if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ]; +then + ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@" +fi + +# +# Setup directories +# +CWD=$(pwd) +RESULTS_DIR=${CWD}/artifacts +APPBUNDLE=${RESULTS_DIR}/${APPNAME}.app +APPBUNDLECONTENTS=${APPBUNDLE}/Contents +APPBUNDLEEXE=${APPBUNDLECONTENTS}/MacOS +APPBUNDLERESOURCES=${APPBUNDLECONTENTS}/Resources +APPBUNDLEICON=${APPBUNDLECONTENTS}/Resources +tmp_dir=${CWD}/tmp +tarball_dir=${tmp_dir}/tarballs + +# If running as a github action or -t arg, then skip downloading the tarballs +if ! [[ -n "${GITHUB_WORKSPACE}" || "$1" = "-t" ]]; +then + # First, make sure gh is available and we are logged in to github + if [ -z "$(which gh)" ]; + then + echo "Can't find gh" + echo "Exiting." + exit 2 + fi + gh auth status 2>&1 | grep --quiet --no-messages "Logged in to github.com" + if [ $? -ne 0 ]; + then + echo "Not logged into github." + echo "Exiting." + exit 3 + fi + # then clear out the ./tmp directory + rm -rf ${tmp_dir} + mkdir -p ${tmp_dir} + # then download the maiko and medley tarballs + mkdir -p ${tarball_dir} + echo "Fetching maiko and medley release tarballs" + TAG=$(gh release list --repo interlisp/maiko | head -n 1 | awk "{print \$1 }") + gh release download ${TAG} \ + --repo interlisp/maiko \ + --dir ${tarball_dir} \ + --pattern "*darwin*.tgz" + TAG=$(gh release list --repo interlisp/medley | head -n 1 | awk "{print \$1 }") + gh release download ${TAG} \ + --repo interlisp/medley \ + --dir ${tarball_dir} \ + --pattern "*-loadups.tgz" \ + --pattern "*-runtime.tgz" + gh repo clone interlisp/notecards notecards -- --depth 1 + (cd notecards; git archive --format=tgz --output=../notecards.tgz --prefix=notecards/ main) + mv notecards.tgz ${tarball_dir} + rm -rf notecards +fi + +# Figure out release tags from tarball names +pushd ${tarball_dir} >/dev/null 2>/dev/null +medley_release=$(echo medley-*-loadups.tgz | sed "s/medley-\(.*\)-loadups.tgz/\1/") +maiko_release=$(echo maiko-*-darwin.x86_64.tgz | sed "s/maiko-\(.*\)-darwin.x86_64.tgz/\1/") +popd >/dev/null 2>/dev/null + +if [ "${INCLUDE_APP}" = "yes" ]; then + # + # Create bundle dirs + # + rm -rf ${RESULTS_DIR} + mkdir -p ${RESULTS_DIR} + rm -rf ${APPBUNDLE} + mkdir -p ${APPBUNDLE} + mkdir ${APPBUNDLE}/Contents + mkdir ${APPBUNDLE}/Contents/MacOS + mkdir ${APPBUNDLE}/Contents/Resources + # + # Create icons and put in bundle + # + iconset_dir=${tmp_dir}/${APPNAME}.iconset + rm -rf ${iconset_dir} + mkdir -p ${iconset_dir} + image_dir=${CWD}/images + sips -z 16 16 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_16x16.png >/dev/null 2>&1 + sips -z 32 32 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_16x16@2x.png >/dev/null 2>&1 + sips -z 32 32 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_32x32.png >/dev/null 2>&1 + sips -z 64 64 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_32x32@2x.png >/dev/null 2>&1 + sips -z 128 128 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_128x128.png >/dev/null 2>&1 + sips -z 256 256 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_128x128@2x.png >/dev/null 2>&1 + sips -z 256 256 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_256x256.png >/dev/null 2>&1 + sips -z 512 512 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_256x256@2x.png >/dev/null 2>&1 + sips -z 512 512 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_512x512.png >/dev/null 2>&1 + cp ${image_dir}/App_icon1024.png ${iconset_dir}/icon_512x512@2x.png + iconutil -c icns -o ${tmp_dir}/${APPNAME}.icns ${iconset_dir} + cp ${tmp_dir}/${APPNAME}.icns ${APPBUNDLEICON}/ + rm -r ${iconset_dir} + rm ${tmp_dir}/${APPNAME}.icns + # + # Update and copy in "control" files + # + sed -e "s/--VERSION_TAG--/${medley_release}.${maiko_release}.0/g" \ + < app/Info.plist \ + > ${APPBUNDLECONTENTS}/Info.plist + cp app/PkgInfo ${APPBUNDLECONTENTS}/ +fi #INCLUDE_APP + +# +# Untar the maiko and medley releases into the bundle +# +il_dir=${APPBUNDLE}/Contents/MacOS +mkdir -p ${il_dir} +tar -x -z -C ${il_dir} \ + -f "${tarball_dir}/maiko-${maiko_release}-darwin.universal.tgz" +tar -x -z -C ${il_dir} \ + -f "${tarball_dir}/medley-${medley_release}-runtime.tgz" +tar -x -z -C ${il_dir} \ + -f "${tarball_dir}/medley-${medley_release}-loadups.tgz" +tar -x -z -C ${il_dir} \ + -f "${tarball_dir}/notecards.tgz" +# +# Handle run_medley needing separate directories for each arch +# +pushd ${il_dir}/maiko >/dev/null 2>&1 +ln -s darwin.universal darwin.aarch64 +ln -s darwin.universal darwin.x86_64 +popd >/dev/null 2>&1 +# +# Add file icon to medley.command +# +if [ -z "$(which fileicon)" ]; +then + brew install fileicon +fi +fileicon set ${il_dir}/medley/scripts/medley/medley.command ${image_dir}/Command_icon128.png +# +# Also create the zip file of il_dir for distribution +# +pushd ${il_dir} >/dev/null 2>&1 +filename="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e "s#@@PLATFORM@@#macos#" -e "s#@@ARCH@@#universal#" -e "s#@@MEDLEY.RELEASE@@#${medley_release}#" -e "s#@@MAIKO.RELEASE@@#${maiko_release}#" )" +zip -r -6 -y -q ${RESULTS_DIR}/${filename}.zip . +popd >/dev/null 2>&1 + +###################################################################################################### +###################################################################################################### diff --git a/installers/macos/build_artifacts.sh b/installers/macos/build_artifacts.sh new file mode 100755 index 00000000..700642e6 --- /dev/null +++ b/installers/macos/build_artifacts.sh @@ -0,0 +1,66 @@ +#!/bin/bash +############################################################################### +# +# build_artifacts.sh: build the artifacts for installing Medley Interlisp on +# MacOS. Basically just calls build_app.sh and build_dmg.sh. +# based on Medley.app built by build_app.sh +# +# 2023-03-03 Frank Halasz +# +# Copyright 2023 by Interlisp.org +# +############################################################################### + +# +# Figure out what directory this script is being executed from +# +get_abs_filename() { + # $1 : relative filename + echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" +} + +get_script_dir() { + + # call this with ${BASH_SOURCE[0]:-$0} as its (only) parameter + + # set -x + + local SCRIPT_PATH="$( get_abs_filename "$1" )"; + + pushd . > '/dev/null'; + + while [ -h "$SCRIPT_PATH" ]; + do + cd "$( dirname -- "$SCRIPT_PATH"; )"; + SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )"; + done + + cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null'; + SCRIPT_PATH="$( pwd; )"; + + popd > '/dev/null'; + + # set +x + + echo "${SCRIPT_PATH}" +} + +SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}") + +# +# cd to the dir we are executing from and call +# build_app.sh and the build_dmg.sh +# +cd ${SCRIPTDIR} +t="" +c="" +if [[ "$1" = "-t" || "$2" = "-t" ]]; then t="-t"; fi +if [[ "$1" = "-c" || "$2" = "-c" ]]; then c="-c"; fi +./build_app.sh "${t}" 2>&1 +# 2023-07-20 Not building dmg as yet, just using this to build zip file +# while we finish work around dmg +# ./build_dmg.sh "${c}" + + + +############################################################################### diff --git a/installers/macos/build_dmg.sh b/installers/macos/build_dmg.sh new file mode 100755 index 00000000..531aca0e --- /dev/null +++ b/installers/macos/build_dmg.sh @@ -0,0 +1,185 @@ +#!/bin/bash +############################################################################### +# +# build_dmg.sh: build dmg for installing Medley Interlisp on MacOS +# based on Medley.app built by build_app.sh +# +# 2023-03-03 Frank Halasz +# +# Copyright 2023 by Interlisp.org +# +# Based on code found at: +# http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools +# +############################################################################### + +#set -o verbose #echo onset +o verbose #echo off + +# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE +if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ]; +then + ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@" +fi + +# +# Set Parameters +# +APP_NAME="Medley.app" +VOL_NAME="Medley_Install" +BG_NAME=Install_Message.png +WIN_WIDTH=700 +WIN_HEIGHT=850 + +# +# Set pathnames +# +CWD=$(pwd) +TMP_DIR=${CWD}/tmp +RESULTS_DIR=${CWD}/artifacts +APP_PATH=${RESULTS_DIR}/${APP_NAME} +DMG_PATH=${RESULTS_DIR}/${VOL_NAME} +SRC_DIR=${TMP_DIR}/dmg_src +IMAGES_DIR=${CWD}/images +SCRIPTS_DIR=${CWD}/scripts + +# +# Make sure we are in the right directory +# +if [ ! -e ${APP_PATH} ]; +then + echo "Can't find the app: ${APP_NAME}." + echo "Incorrect cwd? Should be in medley/installers/macos." + echo "Or build_app.sh not yet run?" + echo "Exiting" + exit 1 +fi + +# +# Copy over files from build app etc to dmg proto-directory +# +if [ ! "$1" = "-c" ] +then + # + # Cleanup anything leftover from last run + # + rm -rf ${SRC_DIR} + mkdir -p ${SRC_DIR} + + # + # Assemble source directory for DMG + # + #ditto ${APP_PATH} ${SRC_DIR}/${APP_NAME} + mv ${APP_PATH} ${SRC_DIR}/${APP_NAME} + SetFile -a B ${SRC_DIR}/${APP_NAME} + ditto ${SCRIPTS_DIR}/medley_add2path ${SRC_DIR}/medley_add2path + ditto ${IMAGES_DIR}/${BG_NAME} ${SRC_DIR}/.background/${BG_NAME} +fi + +# +# Create initial dmg image +# +if [ -e "/Volumes/${VOL_NAME}" ]; +then + hdiutil detach /Volumes/${VOL_NAME} +fi +rm -f ${DMG_PATH}.temp.dmg +hdiutil create -srcfolder ${SRC_DIR} -volname ${VOL_NAME} -fs HFS+ \ + -fsargs "-c c=64,a=16,e=16" -format UDRW ${DMG_PATH}.temp.dmg +device=$(\ + hdiutil attach -readwrite -noverify -noautoopen "${DMG_PATH}".temp.dmg \ + | egrep '^/dev/' | sed 1q | awk '{print $1}' \ + ) + +# +# cd to the new dmg +# +pushd /Volumes/${VOL_NAME} >/dev/null 2>&1 + +# +# Add symbolic link for medley script and icon for addpath +# +ln -s Medley.app/Contents/MacOS/medley/scripts/medley/medley.command medley +if [ -z "$(which fileicon)" ]; +then + brew install fileicon +fi +fileicon set medley_add2path ${IMAGES_DIR}/A2P_icon128.png + +# +# Dress up the appearance using Applescript +# +ROW1=375 +ROW2=650 +COL1=139 +COL2=350 +COL3=561 +osascript </dev/null 2>&1 + +# +# Detach the tmp dmg and convert it to final (compressed, ro) dmg +# +hdiutil detach ${device} +sync +rm -f ${DMG_PATH}.dmg +hdiutil convert "${DMG_PATH}".temp.dmg -format UDZO -imagekey zlib-level=6 -o ${DMG_PATH}.dmg +rm -rf "${DMG_PATH}".temp.dmg + +# +# Extract version info from app Info.plist & rename dmg using version +# +sed_script='{/CFBundleVersion/!d;N;s/^.*\(.*\)<\/string>/\1/;s/.0$//;s/\./_/;p;}' +version=$(sed -ne "${sed_script}" ${SRC_DIR}/${APP_NAME}/Contents/Info.plist) +DMG_NAME="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e 's#@@PLATFORM@@#macos#' -e 's#@@ARCH@@#$universal#' -e 's#@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@#${version}#' )" +mv ${DMG_PATH}.dmg ${RESULTS_DIR}/${DMG_NAME}.dmg + +# +# Done +# +echo "DMG build completed." + +############################################################################### +############################################################################### + diff --git a/installers/macos/images/A2P_icon.svg b/installers/macos/images/A2P_icon.svg new file mode 100644 index 00000000..002a759a --- /dev/null +++ b/installers/macos/images/A2P_icon.svg @@ -0,0 +1,209 @@ + + + + Medley + + + + + + + + + + + + add2path + + + + + + + + + + + + + + diff --git a/installers/macos/images/A2P_icon128.png b/installers/macos/images/A2P_icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..a82b12ae957094d8ca4cea6a6d280791462693ee GIT binary patch literal 6147 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 literal 0 HcmV?d00001 diff --git a/installers/macos/images/A2P_icon256.png b/installers/macos/images/A2P_icon256.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff942f9bc308a2cb8ba698b4cee3b24b259a99d GIT binary patch literal 11610 zcmc(lWl)x3)aP$HB&4JS1SAA00YO^2rMtT%rBfOy>2B#xk?w9O>5xXcb1&ZAot>SX zcjnzMyB{3n;hy`s;#}wa&+mVQ$jOSKqY|M)5QHuvF024SFyOy15Hce8p=DoS0)C*_ zimN+-57(dm!4xRAyapcDbu%M;w<%J3p0-M$9oDpmyh1$yNymA%#m96e<$76#Z-VTq%! zo!WFN^gdRGY74{vxLgXje-KbHF?IekKyk{q_18Zw?bqeOK+^(W(?b0#K4kLLA6W;m z&jlxgU?K9CqA)(sF>)XQ4asT z#%cl4t!-~38yXrq;^!#*`SZu+_M)^Q^y8#Itk1VG84*4tTuAB1M?XYnHZ~<^7P`2U zl+fT{WT>rp3^_4b$+I*!Jq>+#ex~rm0|fz!`}5O=%o@W4Qcj+yy+v)ef=bXULg zsWw*sxGCgHe;l{=@315LJ190bc1_zzI&O;?KZD}x0~Z%jR#ujMuA#m@jFgm=F<$8N zN(&=MTx!%mbe^C#UVp7C#9p`2<=DV#u0|pxH%fNBCtSW*rIfC}_{R@;OftTb=%!#7 z@Z#s!{s94njmST~O`;1?H%hlYk$^tyavLP1zeOjSZh zxQU1iqM)S2A|wO@_jqw}uo&9zhXnot)`OXarSLyq%?FuTSO_XADlT?^mz0-}Y6unJ z%R<>#_XV&sFyc9I%R8&-I><|lCCb1#= zlar{pI7KQ~JY3w&%uE6Eot^D%S_TG%p80uVO0ftfi8-64ruJ`m^h(iAGMUrVKI!SC zbG4TFBNXEQhEq7iWo1>ISuB2-3@7Vf9j($yaC361QSD6QTA)J+2nh9#d+}VM0?7H} z!mk85rAyf%Zf@>WK2MD_k?(U8xl(qk9SDy2e$R6iETOTfsesVXP_EEdwMBDG8Q+Wk zdwBk@qg2>7HMZF39LMD@kDW|2`WY80%Cej(TLr_}Wkg(sEMUPwRDvrA%#%6kxOAWv z_w+JQAZj?fCW0yqx>1J`S%k_whKGkY8X`PeXdxw`K*XB@L&G=c*LbS@$%%<=)6*(= z-4yK45qyX?N7A@wo85mlgvu9obO<`)fAxVC2w&gYLgMG=2P5{NriJKeuS;hJV)VIelU zEI0S;o<#T;Ei?&fXe67hsp)Q93yaVod)58?859!}GjRI4NCZYeG>=-8bFErF*L8ME zc^KoDKXMNAit_VkhI&Wq91v#NxNJDz|BrNJ?+7a@+`T&5x{>ku1NL)syyCdM) zhOC%Qj##AV?ZsKFn&4klh{aA~wsNbYBgxdrNN>LGGip91y{V}w$YegrAbgWMP9Ybb z^mhaDRCJ6fRQ|N&5XcC9TT-jgSgW@;o5iF!p|O17-@isL`AS?`5y;s?I$-op{`OB< zJEqc-lau2@v1Z$2S!0uvPpLy$L!;<`Ldmk`g->5Dh_*$MSCRrSKH|e8(?mF8nBbAW z)0w3I;%LKSU|vyD!W|zUzta}-KK3z@A=cZPrUKh6Pa%uwbA7sH_;7a(ekHdM!}$tQ zuk19`gm^BTqH^-t)L1Vw|L?@}Y`#=9$kWZSqdw|>N*hgZGU91Q|JV7sr@t2ZrqS%m z6p>c{`r^Kmk9fQ)>Eu#kf1UkV<*@|Ca^vx8LA`hTAV=|VnwM)@Ir@0?k;?dXK^{i{!Q+#*yjyaw@^@;mx=JhBMsL%3 zymM;Kt~~heJ|WRD@CpvdLvmRBR7(}kq uHCFBf*c9l6H<0})>e0obd;8u|uvz;k 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 + + + Medley + + + + + + + + + + + + app + + + + + + + + + + + + + + diff --git a/installers/macos/images/App_icon1024.png b/installers/macos/images/App_icon1024.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3e4dd5ee62a7cf6c3a8bad885261e6333c4916 GIT binary patch literal 37270 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 z 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 literal 0 HcmV?d00001 diff --git a/installers/macos/images/App_icon512.png b/installers/macos/images/App_icon512.png new file mode 100644 index 0000000000000000000000000000000000000000..e8beafa13917cd88fb0930f4650d9cbf5b6c3ab0 GIT binary patch literal 18314 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 + + + Medley + + + + + + + + + + + + command + + + + + + + + + + + + + + diff --git a/installers/macos/images/Command_icon128.png b/installers/macos/images/Command_icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..e04486ca920db61341021f5502b34362fb518638 GIT binary patch literal 5917 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

    RDS|() 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 EU&5}wEdT%j literal 0 HcmV?d00001 diff --git a/installers/macos/images/Install_Message.svg b/installers/macos/images/Install_Message.svg new file mode 100644 index 00000000..8c228660 --- /dev/null +++ b/installers/macos/images/Install_Message.svg @@ -0,0 +1,1556 @@ + + + + + + +Install Install Medley Interlisp1. Drag (copy) the three items below into Applications or any folder of your choosing.3. If you want to excute medley without specifying a path,run medley_add2path from a Terminal - one-time.medley command from a Terminal.2. Double-click on the Medley.app to run OR run the + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +andandoror diff --git a/installers/macos/images/Install_icon.svg b/installers/macos/images/Install_icon.svg new file mode 100644 index 00000000..a6f48158 --- /dev/null +++ b/installers/macos/images/Install_icon.svg @@ -0,0 +1,209 @@ + + + + Medley + + + + + + + + + + + + install + + + + + + + + + + + + + + diff --git a/installers/macos/images/Install_icon128.png b/installers/macos/images/Install_icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..059d15622028a6386d82e236f74453f1838c6b5a GIT binary patch literal 5960 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 literal 0 HcmV?d00001 diff --git a/installers/macos/images/Install_icon256.png b/installers/macos/images/Install_icon256.png new file mode 100644 index 0000000000000000000000000000000000000000..059d15622028a6386d82e236f74453f1838c6b5a GIT binary patch literal 5960 zcmaJ_1yB_6zdw-fmJ*Pb?vPX(>F)0Ch65Cl5^0WBK&209q@){ZIO6E;&f~2!Z{C}E zGyiupd%vCCot^!C;}hQ)4K)Q^EJ`d82!yMoD60jm;r|W{G~mBW(sBq`Fg+9vy@B=g z-+?5GgR=pgQ259h_-MP^`S@FU*@FE2{ka_7oV~3rJ#4w$z3j7(#3?}_vS}sRH#z}1 zhq?YHDYJ+^_!nsEO9w)hPg;LCk78#keAj-ik-G0Yv^s$+U^Dx^Q+S8pbQgjuD)g$1 zNEPHzo_|`AFTqCFk)wzV@6SU@hSMfFs32paL~I4No87)Y&p8%_Z`^w1@wX>xF0WJZ zq2Q3MXZcAN*b$;wtY9GXc%UGWi$sEOsNaClKGT7oDG-E5Fkp0a{HNO{lXwm?o}QT1 zr!mudZFRb#lncV8^=HofzHdSJR>V7ZusJ7oaPl@rz3W-Ye_yv15fPyy+n?RMxbU&z z>slhw{ei**Mubobx%`~vYjB5;Zk7o{&cQ?MwogvkdLcJ|I9l&6_yQe~zbMAujtve9 z)=)s^L5r=y8L6oxb%90=ZX=PX*gjnMYdvv`zx@+48+CGB*Vor$0>98CjR_QfaNyzwZ>y*=wX}SxO1a-4 z7c}2;q0o^l=0CmMT}qdx>^M_ySbW%*NSjzyRW<7OE`w{+$H1d_zXG@AA}|~Zitr_y3 zp1g@PO#3zrY06~-R7)kbAbNL1kG=V$?EcKC(SnGmsOQ+ve3)sK1gIoh}rGOD`~Z`1saFbAR8R$wf3ZH7yU7b8&ERILub&&fHQ7I7rLG z;Ig3f^vjso*qID&EHqroqH8|XDeX&X79d-2c|;uIogr$XiH$*6>SQv-4)4PS+NMZ z)RMXq;^i%IyLRFP9{D8OYhW~^uf)A@ROhwHG6#b>nVKmny`oS0x%hJ59Q-Jk!mR4! zUr(mVj;di|GF)l;yD{YUm)@=WVq-)?+TGW}m=a8HJJsnDMEL=A$n}dq3ky`hFX0x* zxx?i51U1`PA*W)H^v5KX$hn^yWs9a_O)C>H%|k(Ne*T$|R-GR(Yntx$-`ro)*!6*6 zm=M-!ftam`nFI0c{{-_p!P43#I=!F~h1IC69BgZgfg@up*_!^WuU@@mW&No|y0EY? zS^O?Tc^+#AKLJ@$HMDbXz?+T3;^t&Etu$b<(UV#{0IF4wd{@{@gH&8xET~)8;jJ@= z`LLN`?lAr>%8cE#Jxrpvx32xZ+H+n0;NalGXzOx+)^Wc4Du?N(2I%qbvTI~SwJPoI z{yrtAe1SPOBc=&Lkt^2hNq^%|mwLQ0*J3nSfg>n{6CWG9R+uQM70fAGY}Yeh?r1%l zzi3=2*}~zZ0x~qDFp1G<51Osc#pX2DLlh;3Url9#f*Sp8#;$0cN`oSPOd;|zrR(Vb z4;<9#f&Q?JO$--Tt?_#w5mmUhBM{G-77h+F8t|WFcSPk{o0(`&_(sHJ;a&ijtF~#+4k&UWc;^!>9Kfn*60IwS39x*^mP=Gvl-GYnYZ1 zkN5j^ou2ExyCIoH-U`B%@K2q`8X8f^bK5NW?d~(RyfI3946&HvGV2T-dIpt4Q+XjOAK@==(b8hpKc26TEtG9ky)4iK5woau zFE5)_rQP1%p6-k@U}0fF|GqJnLBH8rda-yKT!`}~$UWa765W|*<{?E%2%_m1H+>5_!^#`duHW=T$vTrQaSlGV%Zn75Mfx5fh@)8_PXY?e?fw{Mkrep6uG1cn*9*?yj2MfiKCf6E=5o zp~4*4-q-VKUwPLPQ|aaw{dCN6y$)e!OQOU${J27Vbs$xqng@Z5ECp9T9PN)K<8MP< zPQ`mfqk69r=6;#dKy2nL@a6Gn3+fMW+YzIZ?S=8wlG2-7GPpR;(D4HjqWwpqx9#S8 zHo^nmD4;(t?bAN$+oq-~i>}aqNJ=6k&fl8uZg2+M9;zFE8L$cXOfv|vFwYZzNZBcS z!|@ovWmWyjRSX~cP$S4z&yT445Jxy$%_H2kJ;c;4m(P5QK&?ld;R*@qJv7T*2fW9Y zH0#NGjOGP^F_%L7lgOb$(3)+fInKrs#H`}$t(ERQJ zrvv>QZnr%n2&6v|=v~e%Vaxfoz?<^)G0}(XS$LE8bwsBSnhtegy+c> zBx!p2e&WQhc~%4jPzw`_f^TIPH{GYmPWpobN*=E{P~GJ$1yW{K7LVVC1qknkR==t3 zX@wWWtjnW3SA9>%#8hmMnO*$=KcC)$T+Y}S3Ajh9Fk9ar*;DC11sJ(+e|7@`Uuv}t zs~4Pn`nteiu|H|ISYpe+4Ec)qvImyTc@J!`DeyM-7?a2MjJ(^55H(7U8b|!ARfF@` zOKF6nfS@iIQ9X(Q+K>niU-{y#oQM=tME=ypLJ%jXLM~js$Tu1_)X?mIxR@72wzthF zOK%4rs(b-+)BE`b;$ru(@|5~pS{l;}SUXln)Vr|< zPlpFA8MG_Z4u5b#vZ_l6{dQ*+XytITq#9u)M*Q>h?EU38AiNWKHXa){ub9~e^>oOcl(;BaNY>B)${IUOG)-p|c-2WIGvk^Ooa z`BM+Qcwc|^^0VkX3ADj1In~1V+XEv*=o?g0R07b-6YZV;Fx!BQZ2@6(XLfOe_|xQ)Q0*W3>Y7Wlq=E-T7f_c@6}S$ z(h6tlUD%9_(XLYNy>ARy6DKF8x0IAr3%#o}1zeVM)%7a0o0gjjsd8U8A`^Hp$`W?e zsE}`JZli!$nS&zVj{d6=j{Vv71j{OCTd}2~6g1rOqyd}Z%yaiTsk>xS$=K2K+3dpn zd9}-K7%Vv_$7GA^=0h^krf)(=;aBA@0oP3aU^ZrEtFtrgfZ$Q9G`$~1MX9&gQcUdy z1lHEp-&J(rMHx#6=HPQCKoSCgA~1?4sU8&y0&?3HdS83PMoLUfEE8l@I*~ZlKdQIg z*wh;AqiJ-Q&F7ff`*JC6ZqDHJym{<2ukMqvrvL8I>cB9#EhgL98L04+XgF^tLnYE# z_EQTqOJwdJNjwFCQ4tX=JHk_O4c}D@A`(a~?YVwAAHO_saV2@T3;WwUpER8x*1u*8 zC-A$Ymk<{Z912DrtuRVXP3^=p2Y>r^jC67u>F;p7^{t+|N~zEQF;98a#|%2dtA>!p z1(ISFG&YiRb93)am+5cbgld(L0Q?dhC;4n+{aWn>jA#b@Lv53sii+Rzz#|OCYJOPe z5OX8f`|W)W`KgD)*C@fD;rzs%-@O^VvR&JrLazM zWwp&trd#kD^i8O)A2JhjvB#=wKNjD+%vQb#y}KyMistrsxbdW~dMugc!%fq+=kns@!(wND_g!+N7ZKEC*+xRyxHy_d&6xQtQ19N|?b(HiHTQkmW#@dV zsSXrj|Bqz+%paYy(JsUf^ATlyCpW|iId^u#Do9~(tgADP=IMfx!;qTG$z4m7~ z6K1(hn;B(6Rqu6JK@9O8eok*Jq;IPq`T1%*eS9Y7BXX!Ov)Rpy3ZNQ?U;myF#Pqz* zpXL|P5&EE$&K(-YEFusYm%-)env#(bU0i%;fqz$^UR9Zcp+n1PwYA7pBpKG32oH^{ zNeSy(b?z$M(8&_f;Y4%}K(WgW+oQ~u#A>Vtg2O|8Oyyi>SUX#fe1^AGLF0|8$u|xT zR37hORhG^&%F0+oN-@3rtIw;5GQJdfmucw&JqoorWqa-GVLQ!&U8bYwHE8`-JxY75 z^KDXkzPa>H$q80sf0`yc%F62Mo1t`Ae#zuV!1ppnWvQRw(8BU-Ykgc?%#MQJ``_IW z69t)7C$@htA^j&eg&yx5X?bO-(z(q?2Z*!GZ=irC396{7)M7``AO^G(eVTIhuV1o^ z$%!A&&#+n3N!TaWh>}0G5UP4AVZK;sn7;8+4rke=Sp3|q;N?UqG^6Kp3_}tV+mtDS zK;}tE1{3{BNy(BRkc1LQ$spuod^`uxA3Z7YD&1DR71Y_2CGX2R)kCeI$U71i^ngS) z!C3m?@EM-l9{)b#&j;%HKit{=HDkv=wQ#<^d3Fc&T^AN`x^ao~GYdnC%LwhNY>fuy z52U-jy}c?BfmmNSN7uwJNg^fQ5tFPwn z)7db+Ii5baxcnjWTmN>u_7vy?SrZd_Dfi_bKujpcGP=MYUeG6fk~<#Tc!*;EpkPv{ z(4cm)zmV%@Dh4{U-tX#b`=@OrntiP%ZU_Z_)of~du`T%1Zj3IW2aK6?CwyYirI8R% zqyq_d_cD8&^&cyLo&SixI~GvYM2#&er>BPps9_QkvTA!U9od#$4#whll6H@SotHlQ zV(CE4Z0zhN0eN6vZqWbSyov>IH#Akg+i|30@<_)12P{I8Nk>O7F!AQT`+TuI`aQXG z1rq_#5EJuvc!PdVv}BzeK{#b^JY_jihWk!In}M-$a&GRsy>%9Vt~9kwQ~;Z=RT7Wx ziJum91;97}03RROaRt%pLuh98a}966{1gvCv}xKZTXuGU$WsIMN&zvvyG>RnL@7Ya zm{DVMl$VzW_RS{rNjv#QjO&-^EcS+`6e;x0| z#-G1$22Z1Y{qkz0B7WDMMip!AhKdSn)igD}U<=ib|^51BJ)^+d;(AGQZI>vtw@qyVQ*qT84R!nhS=ERgLQ%{#h7$cX?vK)kP@C z#I#V1%wuPW2CwpEHyo{QB*Aq*e&F^J+oNG%8P@7%2Vmw8;}{`eFbADO7w6k1)d|%# z@^@50zy!p0w7lf?{Kn>Ui{m+MbFL{?K+a5*yk{RG8(R-^K}N@;>9b#AKI-kR4qPxJ z;|^&sxyP48MD{uE;!qv@`RJQpa&aN-216|%O8r)fagS6g-My*U8$4o*=u}Ue$jvo6 z8IPQA5gWn|zsDycnH>~r5SJR|21Hx;)4k99J)5vObBgEXohztEHo1)eMFTYp=m^=J zK)+*Ly0hsYKPES$ovp3y^%63FAi&VFlU;9~MkSweDOi13__CcG22 zh$$fOPpMpPIrtrlcK_vd=kE%puXN1?RPwgQ3g&2(`PV>x^yRC(pHRo~7EHQCm%PkO z6>wr6hp~8K%(^_(w=Zn@{)FG^sBaxM0|E9(eS*IR%qmP^BA(Y~9EMI-$oi;nK)N=M zS!o7_GuvP>gvRR`_b-n7+>*>pf(Z@XIZ@|=JvI7mrOO}6r_MdW`0LGZBo literal 0 HcmV?d00001 diff --git a/installers/macos/images/MedleyIcon.png b/installers/macos/images/MedleyIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..44611728ce5d58192efa4b07fc8fffd0f4fc78a7 GIT binary patch literal 29321 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�Yt-?CFuDRyV(f%M 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
    eqb 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 GJzoLQj9Iz> literal 0 HcmV?d00001 diff --git a/installers/macos/images/MedleyIcon.svg b/installers/macos/images/MedleyIcon.svg new file mode 100644 index 00000000..01fabd13 --- /dev/null +++ b/installers/macos/images/MedleyIcon.svg @@ -0,0 +1,199 @@ + + + + Medley + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installers/macos/images/MedleyIcon128.png b/installers/macos/images/MedleyIcon128.png new file mode 100644 index 0000000000000000000000000000000000000000..b69cf172a940106dbad3c11866860c406f29eff3 GIT binary patch literal 4212 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⁣>A82_ZFw-ZTua+Y50ZEsumG)A}Cl>6;EGzvaZ2eZp_FR$T>t7K$cz&{-F zUXXBbNlGU9`umr+-%NVk3H-vuc0~gYC$rUi^2D`Ljw5V2NaCNmI>v9`zFm%;JX#qs zK%}CDalkvf?kFvHCh)=sY-hfQ`(ITU9vYek{sQ^8Gwk&s!Sp|~*pmvOzE1i_@4J1_ zEl_^&00w4+h=>S685tR?fgCk-Oib9dB>?=9F|I@M1EP6& zdhV|l7Z%#mh{wmr7a2JQ1l--(*+J|sY5)Mq$jWkn!4>Rm?d?f0P(p!c`y+?*30hRl z%&uDxs-)BKWV}}Cc;LxUu5Q%U79uAnXL{JkQnIt4;IhSHA26Sr>g+Y(>36PyQRr|c zl1*l?D`+N=5dG@az|mbkK4M^V%*J6sKfAkIEkn-Q3bnFyjg8T7-_q37)Fexy47H%3 zNL~J<$Au|a_)#Ws5}?}nS{ZUJpp>vZs%h>rwWYPnR0|;vy&12Yn-zTh{H%|57Qpn>zJo!7Zi-X@!`A5^XIqCVH1S61wc$709>1&pJ%vy!OYy8tvB>p z_+(&s*xtiLh$f0aw_s>JnIK$kE&^_~giW_Q-dk}P1LQ?$MlIS7YSQH*Y_EyDybL}b z^Qsm>zeYxs3iNkYJ!NdJ;U$YZYBoJ%i}?Q#bwBc^AqUE5D(E^jHFd-B1PC?4PimSA zduNC@2uc4-GHvk2Ut3*`OH8!$@Jq?R;qOa}0xAxa>tJKtv7Edt+kP;d)crDWDkv(x zFp)}6Pj?XdM|p#_g< literal 0 HcmV?d00001 diff --git a/installers/macos/images/MedleyIcon256.png b/installers/macos/images/MedleyIcon256.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf07bbd34963eaafec12e64b95262872fac48c4 GIT binary patch literal 7444 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 SPJ$avNL5)=sr;c;*na>NUl1+; literal 0 HcmV?d00001 diff --git a/installers/macos/pkg/Distribution.xml b/installers/macos/pkg/Distribution.xml new file mode 100644 index 00000000..17d9a284 --- /dev/null +++ b/installers/macos/pkg/Distribution.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + Medley-base.pkg + + diff --git a/installers/macos/scripts/medley_add2path b/installers/macos/scripts/medley_add2path new file mode 100755 index 00000000..3005330f --- /dev/null +++ b/installers/macos/scripts/medley_add2path @@ -0,0 +1,43 @@ +#!/bin/bash + +# functions to discover what directory this script is being executed from +get_abs_filename() { + # $1 : relative filename + echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" +} + +get_script_dir() { + + # call this with ${BASH_SOURCE[0]:-$0} as its (only) parameter + + # set -x + + local SCRIPT_PATH="$( get_abs_filename "$1" )"; + + pushd . > '/dev/null'; + + while [ -h "$SCRIPT_PATH" ]; + do + cd "$( dirname -- "$SCRIPT_PATH"; )"; + SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )"; + done + + cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null'; + SCRIPT_PATH="$( pwd; )"; + + popd > '/dev/null'; + + # set +x + + echo "${SCRIPT_PATH}" +} + +SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}") + +touch ~/.profile +cat >> ~/.profile < '/dev/null'; + + while [ -h "$SCRIPT_PATH" ]; + do + cd "$( dirname -- "$SCRIPT_PATH"; )"; + SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )"; + done + + cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null'; + SCRIPT_PATH="$( pwd; )"; + + popd > '/dev/null'; + + # set +x + + echo "${SCRIPT_PATH}" +} + +SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}") +# Define some generally useful functions +source ${SCRIPTDIR}/medley_utils.sh + +export MEDLEYDIR=$(cd ${SCRIPTDIR}; cd ../..; pwd) +IL_DIR=$(cd ${MEDLEYDIR}; cd ..; pwd) +export LOGINDIR=${HOME}/il + +# Are we running under Docker or if not under WSL +# or under Darwin? +# +docker=false +wsl=false +darwin=false + +if [ "$(uname)" = "Darwin" ]; +then + darwin=true +elif [ -n "${MEDLEY_DOCKER_BUILD_DATE}" ]; +then + docker='true' +else + wsl_ver=0 + # WSL2 + grep --ignore-case --quiet wsl /proc/sys/kernel/osrelease + if [ $? -eq 0 ]; + then + wsl='true' + wsl_ver=2 + else + # WSL1 + grep --ignore-case --quiet microsoft /proc/sys/kernel/osrelease + if [ $? -eq 0 ]; + then + if [ $(uname -m) = x86_64 ]; + then + wsl='true' + wsl_ver=1 + else + echo "ERROR: Running Medley on WSL1 requires an x86_64-based PC." + echo "This is not an x86_64-based PC." + echo "Exiting" + exit 23 + fi + else + wsl='false' + fi + fi +fi + +# process args +source ${SCRIPTDIR}/medley_args.sh + +# Make sure that there is not another instance currently running with this same id +ps ax | grep ldex | grep --quiet "\-id ${run_id}" +if [ $? -eq 0 ]; +then + echo "Another instance of Medley Interlisp is already running with the id \"${run_id}\"." + echo "Only a single instance with a given id can be run at the same time." + echo "Please retry using the \"--id \" argument to give this new instance a different id." + echo "Exiting" + exit 3 +fi + +# Set LDEDESTSYSOUT env variable based on id +if [ -z ${LDEDESTSYSOUT} ]; +then + if [ "${run_id}" = "default" ]; + then + export LDEDESTSYSOUT=${LOGINDIR}/vmem/lisp.virtualmem + else + export LDEDESTSYSOUT=${LOGINDIR}/vmem/lisp_${run_id}.virtualmem + fi +fi + +# Create LOGINDIR if necessary +if [ ! -e ${LOGINDIR} ]; +then + mkdir -p ${LOGINDIR} +elif [ ! -d ${LOGINDIR} ]; +then + echo "ERROR: Medley requires a directory named ${LOGINDIR}." + echo "But ${LOGINDIR} exists appears not be a directory." + echo "Exiting" + exit 2 +fi +mkdir -p ${LOGINDIR}/vmem + +# Call run-medley with or without vnc +if [[ ( ${darwin} = true ) || (( ${wsl} = false || ${use_vnc} = false ) && ${docker} = false) ]]; +then + # If not using vnc, just call run-medley + ${MEDLEYDIR}/run-medley -id "${run_id}" ${geometry} ${screensize} ${run_args[@]} +else + # do the vnc thing on wsl or docker + source ${SCRIPTDIR}/medley_vnc.sh +fi + + + diff --git a/scripts/medley/medley.sh b/scripts/medley/medley.sh deleted file mode 100755 index e8f54761..00000000 --- a/scripts/medley/medley.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash -############################################################################### -# -# medley.sh - script for running Medley Interlisp on Linux/WSL. -# On Linux and WSL when using X Windows it just sets -# up directories and environment variables and then calls -# run-medley. On WSL, there is an option to run without -# or around X Windows by using the XVnc and a VNC viewer -# on the Windows side. This script will start this VNC viewer -# on the Windows side. -# -# 2023-01-12 Frank Halasz -# -# Copyright 2023 Interlisp.org -# -############################################################################### - -#set -x - -# functions to discover what directory this script is being executed from -get_abs_filename() { - # $1 : relative filename - echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" -} -get_script_dir() { - - # call this with ${BASH_SOURCE[0]:-$0} as its (only) parameter - - # set -x - - local SCRIPT_PATH="$( get_abs_filename "$1" )"; - - pushd . > '/dev/null'; - - while [ -h "$SCRIPT_PATH" ]; - do - cd "$( dirname -- "$SCRIPT_PATH"; )"; - SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )"; - done - - cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null'; - SCRIPT_PATH="$( pwd; )"; - - popd > '/dev/null'; - - # set +x - - echo "${SCRIPT_PATH}" -} - -SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}") -# Define some generally useful functions -source ${SCRIPTDIR}/medley_utils.sh - -export MEDLEYDIR=$(cd ${SCRIPTDIR}; cd ../..; pwd) -IL_DIR=$(cd ${MEDLEYDIR}; cd ..; pwd) -export LOGINDIR=${HOME}/il - -# Are we running under Docker or if not under WSL? -if [ -n "${MEDLEY_DOCKER_BUILD_DATE}" ]; -then - docker='true' - wsl='false' -else - docker='false' - wsl_ver=0 - # WSL2 - grep --ignore-case --quiet wsl /proc/sys/kernel/osrelease - if [ $? -eq 0 ]; - then - wsl='true' - wsl_ver=2 - else - # WSL1 - grep --ignore-case --quiet microsoft /proc/sys/kernel/osrelease - if [ $? -eq 0 ]; - then - if [ $(uname -m) = x86_64 ]; - then - wsl='true' - wsl_ver=1 - else - echo "ERROR: Running Medley on WSL1 requires an x86_64-based PC." - echo "This is not an x86_64-based PC." - echo "Exiting" - exit 23 - fi - else - wsl='false' - fi - fi -fi - -# process args -source ${SCRIPTDIR}/medley_args.sh - -# Make sure that there is not another instance currently running with this same id -ps ax | grep ldex | grep --quiet "\-id ${run_id}" -if [ $? -eq 0 ]; -then - echo "Another instance of Medley Interlisp is already running with the id \"${run_id}\"." - echo "Only a single instance with a given id can be run at the same time." - echo "Please retry using the \"--id \" argument to give this new instance a different id." - echo "Exiting" - exit 3 -fi - -# Set LDEDESTSYSOUT env variable based on id -if [ -z ${LDEDESTSYSOUT} ]; -then - if [ "${run_id}" = "default" ]; - then - export LDEDESTSYSOUT=${LOGINDIR}/vmem/lisp.virtualmem - else - export LDEDESTSYSOUT=${LOGINDIR}/vmem/lisp_${run_id}.virtualmem - fi -fi - -# Create LOGINDIR if necessary -if [ ! -e ${LOGINDIR} ]; -then - mkdir -p ${LOGINDIR} -elif [ ! -d ${LOGINDIR} ]; -then - echo "ERROR: Medley requires a directory named ${LOGINDIR}." - echo "But ${LOGINDIR} exists appears not be a directory." - echo "Exiting" - exit 2 -fi -mkdir -p ${LOGINDIR}/vmem - -# Call run-medley with or without vnc -if [[ ( ${wsl} = false || ${use_vnc} = false ) && ${docker} = false ]]; -then - # If not using vnc, just call run-medley - ${MEDLEYDIR}/run-medley -id "${run_id}" ${geometry} ${screensize} ${run_args[@]} -else - # do the vnc thing on wsl or docker - source ${SCRIPTDIR}/medley_vnc.sh -fi - - diff --git a/scripts/medley/medley.sh b/scripts/medley/medley.sh new file mode 120000 index 00000000..a64e11ba --- /dev/null +++ b/scripts/medley/medley.sh @@ -0,0 +1 @@ +medley.command \ No newline at end of file diff --git a/scripts/medley/medley_args.sh b/scripts/medley/medley_args.sh index 11a7d868..6687ad7a 100755 --- a/scripts/medley/medley_args.sh +++ b/scripts/medley/medley_args.sh @@ -140,7 +140,12 @@ do shift ;; -z | --man) - /usr/bin/man -l "${MEDLEYDIR}/docs/man-page/medley.1.gz" + if [ ${darwin} = true ]; + then + /usr/bin/man "${MEDLEYDIR}/docs/man-page/medley.1.gz" + else + /usr/bin/man -l "${MEDLEYDIR}/docs/man-page/medley.1.gz" + fi exit 0 ;; --windows) @@ -155,16 +160,20 @@ do usage "${err_msg[@]}" ;; *) - if [[ $# -eq 1 || "$2" = "--" ]]; + # if matched the empty string, just ignore + if [ -n "$1" ]; then - sysout_flag=true - sysout_arg="$1" - else - err_msg=( - "ERROR: sysout argument must be last argument" - "or last argument before the \"--\" flag" - ) - usage "${err_msg[@]}" + if [[ $# -eq 1 || "$2" = "--" ]]; + then + sysout_flag=true + sysout_arg="$1" + else + err_msg=( + "ERROR: sysout argument must be last argument" + "or last argument before the \"--\" flag" + ) + usage "${err_msg[@]}" + fi fi ;; esac