HISE Logo Forum
    • Categories
    • Register
    • Login

    Installer permissions ...again

    Scheduled Pinned Locked Moved General Questions
    29 Posts 5 Posters 1.2k 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.
    • Adam_GA
      Adam_G @Lindon
      last edited by

      @Lindon yes i am able to write to ~/Library/Audio/Plug-Ins. the flag in Hise just determines where the AppData folder goes (its called ApplicationData on Mac) and the installer you create determines where the vst files go. hope that helps.

      LindonL 1 Reply Last reply Reply Quote 0
      • LindonL
        Lindon @Adam_G
        last edited by

        @Adam_G said in Installer permissions ...again:

        @Lindon yes i am able to write to ~/Library/Audio/Plug-Ins. the flag in Hise just determines where the AppData folder goes (its called ApplicationData on Mac) and the installer you create determines where the vst files go. hope that helps.

        Okay great - so your installer written in HISE (not packages etc.) it installs in ~/Library ???

        If so how did you set up HISE flags for this?

        HISE Development for hire.
        www.channelrobot.com

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

          @Lindon When you access the AppData folder and write a link file, for example, that's also in ~/Library...

          Could you just go up the parent directories and then back down the other fork into the VST3 / Components folder using the FileSystem APIs?

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

          LindonL 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @DanH
            last edited by Lindon

            @DanH said in Installer permissions ...again:

            @Lindon When you access the AppData folder and write a link file, for example, that's also in ~/Library...

            I think you might find that its not... its in: ~/Users/username/Library/Application Support/...... unless you set the globals flag for this -- which doesn't help any here.

            Could you just go up the parent directories and then back down the other fork into the VST3 / Components folder using the FileSystem APIs?

            I have no problem getting the path - I just dont have write permission to this folder:

            ~/Library/Audio/Plug-Ins

            HISE Development for hire.
            www.channelrobot.com

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

              @Lindon ah yeah, ok. I've had numerous permissions issues since upgrading to Sonoma with other software as well as HISE - did a lot of manually changing folder permissions and giving programs disk access etc. Always an uphill battle - and then more issues when they release another OSX update!

              Are there examples of other devs using an app to install the plugin files?

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

              LindonL oskarshO d.healeyD 3 Replies Last reply Reply Quote 0
              • LindonL
                Lindon @DanH
                last edited by

                @DanH said in Installer permissions ...again:

                Are there examples of other devs using an app to install the plugin files?

                Well it's clearly possible WhiteBox Packages build a .pkg file that does it - as do other installers, but looking thru the JUCE forums it seems its a not-uncommon problem, with only ugly work arounds.

                HISE Development for hire.
                www.channelrobot.com

                1 Reply Last reply Reply Quote 0
                • oskarshO
                  oskarsh @DanH
                  last edited by oskarsh

                  @DanH I just build a installer for MacOS that installs the VST3 and the AU into the System Root and the Samples and LinkOSX file into the ~/Library/Application support.

                  Since the Whitebox Packages Installer can only install into either home or the root you will need to choose root directory and then run a post install script to move the files to the home directory.

                  Here is my script. That will also setup the LinkOSX file for the sample location so that you open up the Plugin and have it work right away without installing Samples. I had no permission errors with that approach since.

                  #!/bin/sh
                  # Write sample location selected by user to LinkOSX for HISE
                  
                  # First, remove LinkOSX file if it's already there
                  instrumentname="InstrumentName"
                  devname="Company Name"
                  
                  mv /Library/Application\ Support/CompanyName ~/Library/Application\ Support/
                  
                  FILE="$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
                  if test -n "$FILE"; then
                  		rm -R "$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
                  fi
                  
                  # Second, use the environment variable from WhiteBox Packages to write the destination to a file
                  destfile=/Users/${USER}/Library/Application\ Support/${devname}/${instrumentname}/LinkOSX
                  printf "/Users/${USER}/Library/Application Support/${devname}/${instrumentname}/Samples" > "$destfile"
                  
                  
                  LindonL DanHD 2 Replies Last reply Reply Quote 0
                  • LindonL
                    Lindon @oskarsh
                    last edited by

                    @oskarsh said in Installer permissions ...again:

                    @DanH I just build a installer for MacOS that installs the VST3 and the AU into the System Root and the Samples and LinkOSX file into the ~/Library/Application support.

                    Since the Whitebox Packages Installer can only install into either home or the root you will need to choose root directory and then run a post install script to move the files to the home directory.

                    Here is my script. That will also setup the LinkOSX file for the sample location so that you open up the Plugin and have it work right away without installing Samples. I had no permission errors with that approach since.

                    #!/bin/sh
                    # Write sample location selected by user to LinkOSX for HISE
                    
                    # First, remove LinkOSX file if it's already there
                    instrumentname="InstrumentName"
                    devname="Company Name"
                    
                    mv /Library/Application\ Support/CompanyName ~/Library/Application\ Support/
                    
                    FILE="$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
                    if test -n "$FILE"; then
                    		rm -R "$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
                    fi
                    
                    # Second, use the environment variable from WhiteBox Packages to write the destination to a file
                    destfile=/Users/${USER}/Library/Application\ Support/${devname}/${instrumentname}/LinkOSX
                    printf "${DSTROOT}/Library/Application Support/${devname}/${instrumentname}/Samples" > "$destfile"
                    
                    

                    This is an interesting approach - do you think there is a way to write a script that would copy a plugin from say:
                    ~/Users//Library/Audio/Plug-Ins/VST3/some.vst3
                    to:
                    ~/Library/Audio/Plug-Ins/VST3/some.vst3

                    -- then somehow run this from within the HISE installer at the end...

                    HISE Development for hire.
                    www.channelrobot.com

                    DanHD oskarshO 2 Replies Last reply Reply Quote 0
                    • DanHD
                      DanH @oskarsh
                      last edited by

                      @oskarsh Yup I do the same, just wondering about an app that isn't Whitebox Packages being able to install the plugin files.

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

                      1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @DanH
                        last edited by

                        @DanH said in Installer permissions ...again:

                        Are there examples of other devs using an app to install the plugin files?

                        I do it with Rhapsody, but I use the user library folder.

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

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

                          @Lindon I don't think moving the files will be an issue. As for running the installer from within HISE I don't know, but presumably it will bring up the Packages installer process etc when run.

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

                          LindonL 1 Reply Last reply Reply Quote 0
                          • d.healeyD
                            d.healey
                            last edited by

                            I think you guys are misunderstanding what Lindon is trying to do. He's trying to make an app that puts files in the Library folder. He's not using an installer program like Packages.

                            @Lindon startAsProcess can launch an external program (and presumably a script). There is also a setExecutePermission function that might be helpful here.

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

                            LindonL 1 Reply Last reply Reply Quote 1
                            • LindonL
                              Lindon @DanH
                              last edited by Lindon

                              @DanH said in Installer permissions ...again:

                              @Lindon I don't think moving the files will be an issue. As for running the installer from within HISE I don't know, but presumably it will bring up the Packages installer process etc when run.

                              no, I dont mean to run Packages at all - I dont use PAckages any more...

                              So

                              1. Run the HISE-based installer, it writes the VST3 to the User folder structure
                              2. run a shell script (from within the HISE installer) to copy the vst3 to the System folder...so I assume this is File.startAsProcess(String parameters);

                              See that assumption right there? Often a bad thing...

                              Now the plugin is in both places (best outcome).

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @Lindon oh right haha! Did seem a bit strange running packages at the end 😆

                                I'm not sure you'd want the plugin in both locations. could confuse the user should they want to uninstall or update etc. That shell script deletes the original folder after copying.

                                If the User/Library location works ok why not use that? do DAWs generally check both locations? I find most plugins install into the ~/Library though which seems the safer option.

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

                                1 Reply Last reply Reply Quote 0
                                • LindonL
                                  Lindon @d.healey
                                  last edited by Lindon

                                  @d-healey said in Installer permissions ...again:

                                  I think you guys are misunderstanding what Lindon is trying to do. He's trying to make an app that puts files in the Library folder. He's not using an installer program like Packages.

                                  @Lindon startAsProcess can launch an external program (and presumably a script). There is also a setExecutePermission function that might be helpful here.

                                  Thanks yeah - this is what Im trying to do. Not sure setExecutePermission does much more than allow the file to be executable - its not sudo -ing anything, or chmod -ing and Im worried that the shell script will just run into the same permissions problem I have already... I guess I can try it next time I'm on the mac.

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  oskarshO 1 Reply Last reply Reply Quote 0
                                  • oskarshO
                                    oskarsh @Lindon
                                    last edited by

                                    This post is deleted!
                                    1 Reply Last reply Reply Quote 0
                                    • oskarshO
                                      oskarsh @Lindon
                                      last edited by

                                      @Lindon Ah now I understand. That is possible.

                                      To move from the home directory to the root directory you will need sudo rights. You can keep your HISE app without Root priviliges (best practice) and simply ask for the root password when its needed. Here is a simple shell script which opens a dialog to ask for the password then does a sudo action. In your case it should copy the folder.

                                      #!/bin/bash
                                      
                                      # Prompt for password
                                      PASSWORD=$(osascript -e 'Tell application "System Events" to display dialog "Please enter your password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)
                                      
                                      if [ -z "$PASSWORD" ]; then
                                          echo "User canceled or did not enter a password."
                                          exit 1
                                      fi
                                      
                                      # Use the captured password to execute a command as sudo
                                      echo "$PASSWORD" | sudo -S echo "This is a placeholder for your command"
                                      
                                      # Replace the echo command above with the command you need to run as sudo
                                      # For example:
                                      # echo "$PASSWORD" | sudo -S your-command-here
                                      
                                      LindonL 1 Reply Last reply Reply Quote 1
                                      • LindonL
                                        Lindon @oskarsh
                                        last edited by

                                        @oskarsh said in Installer permissions ...again:

                                        @Lindon Ah now I understand. That is possible.

                                        To move from the home directory to the root directory you will need sudo rights. You can keep your HISE app without Root priviliges (best practice) and simply ask for the root password when its needed. Here is a simple shell script which opens a dialog to ask for the password then does a sudo action. In your case it should copy the folder.

                                        #!/bin/bash
                                        
                                        # Prompt for password
                                        PASSWORD=$(osascript -e 'Tell application "System Events" to display dialog "Please enter your password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)
                                        
                                        if [ -z "$PASSWORD" ]; then
                                            echo "User canceled or did not enter a password."
                                            exit 1
                                        fi
                                        
                                        # Use the captured password to execute a command as sudo
                                        echo "$PASSWORD" | sudo -S echo "This is a placeholder for your command"
                                        
                                        # Replace the echo command above with the command you need to run as sudo
                                        # For example:
                                        # echo "$PASSWORD" | sudo -S your-command-here
                                        

                                        Thanks - I will give this a go....

                                        HISE Development for hire.
                                        www.channelrobot.com

                                        LindonL 1 Reply Last reply Reply Quote 0
                                        • LindonL
                                          Lindon @Lindon
                                          last edited by

                                          @oskarsh well almost immedately bumping into my lack of MacOS knowledge... Im starting out with a simple copy command (cp)

                                          cp /Users/lindonparker/Library/Audio/Plug-Ins/VST3/LoopBoss.vst3 /Library/Audio/Plug-Ins/VST3/LoopBoss.vst3

                                          But the mac tells me this:

                                          cp: /Users/lindonparker/Library/Audio/Plug-Ins/VST3/LoopBoss.vst3 is a directory (not copied).

                                          HISE Development for hire.
                                          www.channelrobot.com

                                          LindonL 1 Reply Last reply Reply Quote 0
                                          • LindonL
                                            Lindon @Lindon
                                            last edited by

                                            @Lindon

                                            ah.....

                                            cp -r

                                            HISE Development for hire.
                                            www.channelrobot.com

                                            oskarshO 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            48

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts