HISE Logo Forum
    • Categories
    • Register
    • Login

    Mac Installer issue that effects (I think) all of us

    Scheduled Pinned Locked Moved General Questions
    37 Posts 7 Posters 3.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Casey KolbC
      Casey Kolb @Dan Korneff
      last edited by

      Thank you for this thread! Super useful.

      @dustbro Do you mind posting your final shell script? I haven't quite cracked it yet on my system.

      Casey Kolb
      Founder & CEO of Lunacy Audio
      Composer | Producer | Software Developer

      1 Reply Last reply Reply Quote 0
      • Dan KorneffD
        Dan Korneff
        last edited by

        Here's what I got going on. My installer places all of the extra files (Markdown, AudioRecources.dat, ImageResources.dat, user manual, etc...) into the system Library/Application Support folder, then I use a post-install script to move the data into the user Library/Application Support folder.
        I've added comments above each line.

        #!/bin/sh
        
        // this line moves the System Library folder to the User Library folder:
        /usr/bin/rsync -avurpE --remove-source-files /Library/Application\ Support/Company/Product/ $HOME/Library/Application\ Support/Company/Product/
        
        // this line deletes the System Library folder after the files are moved:
        find /Library/Application\ Support/Company/ -type d -empty -delete
        
        // determine logged in user:
        loggedInUser=`/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }'`
        
        //This line copies my user manual from the User Library to Desktop for easy access:
        /usr/bin/rsync -avurpE  $HOME/Library/Application\ Support/Company/Product/User\ Manual/ /Users/$loggedInUser/Desktop/
        
        exit 0
        

        Dan Korneff - Producer / Mixer / Audio Nerd

        Casey KolbC 1 Reply Last reply Reply Quote 1
        • Casey KolbC
          Casey Kolb @Dan Korneff
          last edited by

          @dustbro Amazing! Thank you 😀

          Casey Kolb
          Founder & CEO of Lunacy Audio
          Composer | Producer | Software Developer

          1 Reply Last reply Reply Quote 1
          • Casey KolbC
            Casey Kolb
            last edited by Casey Kolb

            @dustbro I'm having one serious issue with this approach and I wonder if you've encountered this as well. When I rsync the application folder like above, if the folder doesn't already exist (which will be the case for any user downloading the plugin for the first time) then it will keep the permissions set by Packages for the temp folder which has some pretty whack results and makes the folder read-only for the user. Only the system will be able to read/write.

            This is super deadly because it removes the ability to save presets or create new folders in the preset browser. It also disables the changing of the Sample Folder directory because the entire plugin folder becomes read-only. I've tried a bunch of different things in the bash script to fix this but nothing seems to be doing the trick.

            Casey Kolb
            Founder & CEO of Lunacy Audio
            Composer | Producer | Software Developer

            Dan KorneffD 1 Reply Last reply Reply Quote 0
            • Dan KorneffD
              Dan Korneff @Casey Kolb
              last edited by

              @Lunacy-Audio have you checked another system yet? I'm currently using this method successfully.
              The most common problem I've seen is the inability to remove the system Company folder after sync due to permissions issues.

              Dan Korneff - Producer / Mixer / Audio Nerd

              1 Reply Last reply Reply Quote 0
              • Casey KolbC
                Casey Kolb
                last edited by

                Yup, I'm checking across a few other machines every time I build the Packages installer. I have everything bundled into one installer, so VST, AU, AAX, Standalone, and also Presets. The Presets package has a post-installation script like the one above, but the permissions are always messed up. Should I be changing the Owner/Group in the actual temporary payload in Packages?

                Casey Kolb
                Founder & CEO of Lunacy Audio
                Composer | Producer | Software Developer

                1 Reply Last reply Reply Quote 0
                • Casey KolbC
                  Casey Kolb
                  last edited by Casey Kolb

                  I've also noticed that if the company folder doesn't already exist in $HOME/Library/Application\ Support/, then rsync won't create the folder automatically, so the install won't work.

                  Casey Kolb
                  Founder & CEO of Lunacy Audio
                  Composer | Producer | Software Developer

                  1 Reply Last reply Reply Quote 0
                  • Casey KolbC
                    Casey Kolb
                    last edited by Casey Kolb

                    Ok, so I think I've finally figured something out that works across all the Macs I'm testing. It basically ensures that directory exists and that the permissions are always set recursively from the plugin directory. I don't love all the sudo nonsense, so I'll see if I can find a cleaner solution at some point.

                    #!/bin/sh
                    # ensure plugin directory actually exists
                    sudo -u $USER mkdir -p $HOME/Library/Application\ Support/Company/Product/
                    
                    # move and sync files from temporary payload to real plugin directory
                    /usr/bin/rsync -avurpE --remove-source-files /Library/Application\ Support/Company/Product/ $HOME/Library/Application\ Support/Company/Product/
                    
                    # ensure permissions are recursively set to current user for plugin directory
                    sudo find $HOME/Library/Application\ Support/Company/ -type d -user root -exec sudo chown -R $USER: {} +
                    
                    # remove temporary folder
                    rm -rf /Library/Application\ Support/Company
                    
                    exit 0
                    

                    Casey Kolb
                    Founder & CEO of Lunacy Audio
                    Composer | Producer | Software Developer

                    DanHD 1 Reply Last reply Reply Quote 1
                    • DanHD
                      DanH @Casey Kolb
                      last edited by

                      @Lunacy-Audio Hmmmm I am failing massively at this :face_with_tears_of_joy:

                      Oh wait lol... It's actually doing what I want (thanks guys!)..... but yet, the installer says its 'failed'. So it delivers what I need but says failed... Which isn't ideal! I'm using @Lunacy-Audio script and replaced paths with my own.

                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                      https://dhplugins.com/ | https://dcbreaks.com/
                      London, UK

                      Dan KorneffD 1 Reply Last reply Reply Quote 0
                      • Dan KorneffD
                        Dan Korneff @DanH
                        last edited by

                        @DanH is it failing on :

                        # remove temporary folder
                        

                        Dan Korneff - Producer / Mixer / Audio Nerd

                        DanHD 1 Reply Last reply Reply Quote 0
                        • DanHD
                          DanH @Dan Korneff
                          last edited by

                          @dustbro I don't know - I tried removing that Last line just in case it was that and it still failed. However it still installed the files where I wanted, and there's no trace of the temporary directory

                          Weird one

                          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                          https://dhplugins.com/ | https://dcbreaks.com/
                          London, UK

                          Casey KolbC 1 Reply Last reply Reply Quote 0
                          • Casey KolbC
                            Casey Kolb @DanH
                            last edited by Casey Kolb

                            @DanH Your WhiteBox Packages installer is failing? Do you require a password for the installer? The bash script will only work if the user enters a password, which gives the installer full permissions.

                            Casey Kolb
                            Founder & CEO of Lunacy Audio
                            Composer | Producer | Software Developer

                            DanHD 1 Reply Last reply Reply Quote 0
                            • DanHD
                              DanH @Casey Kolb
                              last edited by

                              @Lunacy-Audio Thanks man. So I just tried it without the bash script and it's installing absolutely fine.

                              Perhaps I don't even need the bash script?!

                              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                              https://dhplugins.com/ | https://dcbreaks.com/
                              London, UK

                              Casey KolbC 1 Reply Last reply Reply Quote 0
                              • Casey KolbC
                                Casey Kolb @DanH
                                last edited by

                                @DanH The bash script is only if you're trying to install data (like documentation or user presets) along with the standard plugin files.

                                Are you setting it as a post-script? Mine looks like this.

                                Screen Shot 2021-02-17 at 10.17.26 AM.png

                                Casey Kolb
                                Founder & CEO of Lunacy Audio
                                Composer | Producer | Software Developer

                                DanHD 1 Reply Last reply Reply Quote 0
                                • DanHD
                                  DanH @Casey Kolb
                                  last edited by

                                  @Lunacy-Audio Yes I'm installing those LFO preset shapes (that you helped me make / save!). So data files which are all *.lfo, and they go straight into the Presets folder. My project looks roughly the same as yours in regards to the Post Install script etc.

                                  Like I said it's all working. Tried on 3 computers now, Mojave and Catalina....

                                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                  https://dhplugins.com/ | https://dcbreaks.com/
                                  London, UK

                                  Casey KolbC 1 Reply Last reply Reply Quote 1
                                  • Casey KolbC
                                    Casey Kolb @DanH
                                    last edited by

                                    @DanH Oh cool! Yeah that's a perfect use case. Ok, glad it's working.

                                    Casey Kolb
                                    Founder & CEO of Lunacy Audio
                                    Composer | Producer | Software Developer

                                    DanHD 1 Reply Last reply Reply Quote 0
                                    • DanHD
                                      DanH @Casey Kolb
                                      last edited by

                                      @Lunacy-Audio Yes but without the bash script (it wouldn't work with it) - so hopefully that doesn't cause any issues down the line....

                                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                      https://dhplugins.com/ | https://dcbreaks.com/
                                      London, UK

                                      Casey KolbC 1 Reply Last reply Reply Quote 0
                                      • Casey KolbC
                                        Casey Kolb @DanH
                                        last edited by

                                        @DanH The danger in not using the bash script is that you'll overwrite any presets or changes the user has added if they run the installer again. The bash script uses rsync to sync the files from the installer with whatever is currently there.

                                        But I'm not sure why it's not working on your end. I'm using it without any issues. You might need to make the .sh file executable? Hard to say without seeing your Packages file.

                                        Casey Kolb
                                        Founder & CEO of Lunacy Audio
                                        Composer | Producer | Software Developer

                                        DanHD 2 Replies Last reply Reply Quote 0
                                        • DanHD
                                          DanH @Casey Kolb
                                          last edited by

                                          @Lunacy-Audio Can I send you my Packages file to check pls? Can't seem to figure out the error!

                                          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                          https://dhplugins.com/ | https://dcbreaks.com/
                                          London, UK

                                          1 Reply Last reply Reply Quote 0
                                          • DanHD
                                            DanH @Casey Kolb
                                            last edited by

                                            @Lunacy-Audio @dustbro Hi guys, do you know what I'd need to tweak in the bash script in order to overwrite a folder, say the User Presets for example? I tried removing rsync but I think there's another step or two?

                                            Thanks, D

                                            DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                            https://dhplugins.com/ | https://dcbreaks.com/
                                            London, UK

                                            Dan KorneffD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            18

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts