HISE Logo Forum
    • Categories
    • Register
    • Login

    extractZipFile problem

    Scheduled Pinned Locked Moved General Questions
    81 Posts 5 Posters 4.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.
    • LindonL
      Lindon @Lindon
      last edited by

      @Lindon said in extractZipFile problem:

      So I tried setting the sandbox settings I needed and manually compiling n XCode, but XCode told me this warning:

      👎 TheInstaller - App isn't code signed but requires entitlements. It is not possible to add entitlements to a binary without signing it. (in target 'TheInstaller - App')

      ...and I think this is why it still fails...

      HISE Development for hire.
      www.channelrobot.com

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

        @Lindon said in extractZipFile problem:

        @d-healey -- Okay well if I understand what your test is and what I'm supposed to do:

        1. First button select a zip
        2. second button select a folder
        3. press extract.....and get 1 inside 2

        Then - fail sadly... test.txt never ends up in Audio/Plug-Ins/VST3

        Yep you understood perfectly. Did you test from within HISE or did you compile?

        Now that we have a simple test I can attempt to recreate your result and we can find a solution.

        BTW I intentionally labelled the checkbox I added to HISE "Admin Permissions" because I figured it may be needed for more than just Windows at some point :)

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

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

          @d-healey said in extractZipFile problem:

          Yep you understood perfectly. Did you test from within HISE or did you compile?

          Now that we have a simple test I can attempt to recreate your result and we can find a solution.

          BTW I intentionally labelled the checkbox I added to HISE "Admin Permissions" because I figured it may be needed for more than just Windows at some point :)

          _ I only tested from within HISE at the moment, I will try compiling now...

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon said in extractZipFile problem:

            _ I only tested from within HISE at the moment, I will try compiling now...

            Might also be worth seeing if codesigning or notarizing makes a difference.

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

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

              @d-healey said in extractZipFile problem:

              @Lindon said in extractZipFile problem:

              _ I only tested from within HISE at the moment, I will try compiling now...

              Might also be worth seeing if codesigning or notarizing makes a difference.

              Compiled, tried - still fails - will try codesigning and notarizing...tho I cant see how that will make any difference...

              HISE Development for hire.
              www.channelrobot.com

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

                @Lindon I'll fire up my old mac now and see what result I get

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

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

                  Same issue for me on Mojave. I also notice (and I remember Christoph telling me about this) that zip files automatically extract on download...

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

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

                    @d-healey not really worrying about download extraction...:-)

                    HISE Development for hire.
                    www.channelrobot.com

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

                      @Lindon said in extractZipFile problem:

                      @d-healey not really worrying about download extraction...:-)

                      Yet :)

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

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

                        To confirm, those sandbox settings didn't make a difference here either. I'll keep searching. I guess as a last resort we can use the user's plugin folder instead of the system one.

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

                        Matt_SFM 1 Reply Last reply Reply Quote 0
                        • Matt_SFM
                          Matt_SF @d.healey
                          last edited by

                          @d-healey @Lindon coming back late here but FYI, I just tested David's test project, compiled it as a standalone and it works just fine. Didn't ask for anything, it extracted correctly the zip file into my Audio/Plug-Ins/VST3/TESTDIR

                          @Lindon said in extractZipFile problem:

                          So, all you MacOS experts ...how do I get my app to start with super user permissions....?

                          AFAIK if your app requires writing permission, the user will be prompted to allow access when needed. Like, at the beginning of this thread when I tested the extracting function, HISE asked for permission the first time, then never again afterwards.

                          As far as I recall a WhiteBox generated installer (or MacOS when I try and start an installer) will ask for the password to start...

                          This option must be checked : "Require admin password for installation". But it should be checked by default.

                          3c248c06-8f55-4088-9856-29a60bb7f168-image.png

                          But maybe tweaking these options for your installer might do the trick...? (I've never used them) :

                          accc4be2-beee-4421-b87b-585b10532a1d-image.png

                          The Installer - App isn't code signed but requires entitlements. It is not possible to add entitlements to a binary without signing it.

                          I also get this warning but when I ignore it, I still can codesign/notarize my plugins correctly :)

                          Develop branch
                          Win10 & VS17 / Ventura & Xcode 14. 3

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

                            @Matt_SF Are you using Mojave? The problem doesn't exist on Big Sur or Monterey but is only on earlier versions.

                            Packages may impart the necessary permissions on our binaries (but I I don't see how it could) I'll have to test.

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

                            Matt_SFM 1 Reply Last reply Reply Quote 0
                            • Matt_SFM
                              Matt_SF @d.healey
                              last edited by

                              @d-healey said in extractZipFile problem:

                              @Matt_SF Are you using Mojave? The problem doesn't exist on Big Sur or Monterey but is only on earlier versions.

                              Ah, indeed I'm on Monterey.

                              Packages may impart the necessary permissions on our binaries (but I I don't see how it could) I'll have to test.

                              I also thought that would be weird... About the write permission I highlighted in my last screenshot, this is what the documentation says :
                              "Access : The access permissions for the item after it's installed on disk."

                              Develop branch
                              Win10 & VS17 / Ventura & Xcode 14. 3

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

                                @Matt_SF I just tested and the installer makes no difference in this case.

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

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

                                  Codesigning doesn't seem to help. Haven't tried notarizing but since this wasn't necessary before Catalina I don't think it will help.

                                  Unless someone offers a solution I'm just going to install it in the user's plugin folder for anything below Big Sur. Engine.getSystemStats() is helpful here ;)

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

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

                                    And here's a little test to see if zip files are automatically extracted when downloading through HISE. It seems they are not, which is a relief!

                                    HiseSnippet 925.3ocsV80aaaCDmxIpX1aqXEXe.D7Sx.t9OcswcqXXc1NdvXMIFUoE6sBFpSwDghTfjJqdA4w8wXeG22fsiRxwxsFYsFX5ACd++2c7tidgVw.iQoIdMOeUFP79J+nUR6xIKobIY9Th2C8iU+tTnnwmCFKY7pLpw.wDOuC9EmNdMOjT782+zXpfJYvFVDxaUbF7JdJ2tg6hW9qbgXFMFNmmVS6m9x4LkbhRnxQ7bf+.RFkcE8R3TpSsF9DuGbbL2pzQVpELnNiUwqhVh3qT+2xM7KDfiXHIBcTIaxjkbQ7h04pgP7NbwlL+fxL+a8OgGyui+lJv2THHXiE0qAdMtOHM7y.Rd0fzgkP5Q9QLMOytQhCOeo+boEzITrTWGJk5RZ7WM7mnPMj1dozqfYZj3NKBOZvftA3OcdQqVQf9ZP2y.1wTC7lW+pv1Ks1LyOzuehRmm1aI2.8n4wbU+1NC3RAWBAI4RlkqjAJ43bqUIG5BnVIBYpzLkDCc2fqohbnSqaZ0jmDDVQ0r45toYbADh97Vzsqg6kfcxZGD1tx0s63.XU.lPEhKvthvOLx6BcaGJGRDJFUDjqEA+XPaWgyZ5mm4zwzOA0xze3QOaz2OZzyOZvngO4w+AOCduUSY3MbOjn8KZ0bsWRPe37bzJiERcXelRDC5vZLmVg.SmhbycmW.l1XuhsvgcJ7X0EAS.T4LtjaVBw2YqqJsVisRILO5FbyscCR5dWRG14lacU0ZWQmprvYxxBPqaaE7ghRR1orpBq.yncI1M6puOCCk4oW.55MBNEwl6smXdvm1DCqrGolhJ4bI2dVFTQWT9iKO+wyWjplL7zalOkZotQtJdndYf1xcvwaJbMtypb.ro+TvbkUkUnaUmIBYagzGVMdV1IR3wNCpZKIum3468mXzV4NbFdvPuFlKWnArsyMuxMmnRQ+Q0nJdMHe77Ot4QEmKn1sWG416VI.q3asCvMmKMb6p56k+L1QM3d2Q8oBwG4ufaYK2MFarCLh2E+efwpM6es+wII.ytAfG5O621203+Gg+0pbKWd4ITql65ANMOMBePiAXzkRPXbsCMb8ikzCbztJPDHiKH9G7qR3PGsWkvgqERRoLs5crx4L2aGeQAGDSxhmJa5ehiNXHoX1CsyePuAjT7Yr2wXtz+w3Hxts4I6gMe2dXyS2Cad1dXyQ6gMi1Cad98Zi6eP7y4VUZ43.xXwwEKg77NVRwNqhtPx+BDB6rT.
                                    

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

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

                                      @Lindon Have you checked if File.hasWriteAccess() gives any useful feedback in this situation? On Monterey it returns 0 even though I can write to the folder which is weird.

                                      Here's an example function that we could use to choose the path based on the OS version and write access.

                                      inline function getVST3Path()
                                      {
                                      	local os = Engine.getSystemStats().OperatingSystemName;
                                      	local version = os.substring(os.indexOf("OSX") + 4, os.length);
                                      	local username = Engine.getSystemStats().FullUserName;
                                      	local systemPath = "/Library/Audio/Plug-ins/VST3";
                                      	local f = FileSystem.fromAbsolutePath(systemPath);
                                      	
                                      	if (version < "11.0" || !f.hasWriteAccess())
                                      	    return "/Users/" + username + "/Library/Audio/Plug-ins/VST3";
                                      		
                                      	return systemPath;
                                      }
                                      
                                      Console.print(getVST3Path());
                                      

                                      I haven't tested this on Mojave so let me know if you find any issues with it.

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

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

                                        Another option which I will explore tomorrow is running an external command like cp to copy the plugin from a temp location to the destination.

                                        I just did a quick test on my main system to copy a file from my downloads folder to my desktop :D

                                        const f = FileSystem.fromAbsolutePath("/usr/bin/cp");
                                        f.startAsProcess("/home/dave/Downloads/test.txt /home/dave/Desktop/testCopy.txt");
                                        

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

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

                                          @d-healey said in extractZipFile problem:

                                          @Lindon Have you checked if File.hasWriteAccess() gives any useful feedback in this situation? On Monterey it returns 0 even though I can write to the folder which is weird.

                                          Here's an example function that we could use to choose the path based on the OS version and write access.

                                          inline function getVST3Path()
                                          {
                                          	local os = Engine.getSystemStats().OperatingSystemName;
                                          	local version = os.substring(os.indexOf("OSX") + 4, os.length);
                                          	local username = Engine.getSystemStats().FullUserName;
                                          	local systemPath = "/Library/Audio/Plug-ins/VST3";
                                          	local f = FileSystem.fromAbsolutePath(systemPath);
                                          	
                                          	if (version < "11.0" || !f.hasWriteAccess())
                                          	    return "/Users/" + username + "/Library/Audio/Plug-ins/VST3";
                                          		
                                          	return systemPath;
                                          }
                                          
                                          Console.print(getVST3Path());
                                          

                                          I haven't tested this on Mojave so let me know if you find any issues with it.

                                          OKay a range of problems...

                                          First this function is returning a Path on Mojave as follows:

                                          /Users/Lindon Mulcahy-Parker/Library/Audio/Plug-Ins/VST3

                                          ..and this is failing, because there is no user called Lindon Mulcahy-Parker

                                          ... if I force the function to return this path:

                                          /Users/lindon/Library/Audio/Plug-Ins/VST3. then I can successfully upload the VST3 to this folder...

                                          ..which in the SystemStats is LogonName, so I think we need to use that instead....

                                          ..we also need to account for the AU plugins too, so I suggest we need to generalise up this function call to:

                                          inline function getPluginPath()
                                          {
                                          	local os = Engine.getSystemStats().OperatingSystemName;
                                          	local version = os.substring(os.indexOf("OSX") + 4, os.length);
                                          	local username = Engine.getSystemStats().LogonName;
                                          	local systemPath = "/Library/Audio/Plug-Ins";
                                          	local f = FileSystem.fromAbsolutePath(systemPath);
                                          	if (version < "11.0" || !f.hasWriteAccess())
                                          	{
                                          	    return "/Users/" + username + "/Library/Audio/Plug-Ins";
                                          	};
                                          	return systemPath;
                                          }
                                          

                                          Testing it out now...

                                          HISE Development for hire.
                                          www.channelrobot.com

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

                                            yeah thats working....

                                            Now my only concern is with this LogonName - will it always be correct?

                                            Can anyone with MacOS - of any vintage - run this snippet and check the Console print out against your Users folder on your machine? thanks..

                                            HiseSnippet 719.3ocsUs0aSCCE1tqYhVtHlD+.r1SshQWKLFHlPLVufpXWJjsIdaxywswZI1Q1NCpP7el+AvwIYscaUksJQdnpmKewe9b9NmLPqXbiQoQ3JGONgivOxyerzF1NjJjn9cP3m3c.0X4ZRtq8FmPMFd.BiW4SNG3JkQYO+9C6QinRFepKD5Tkfw2WDKrS8NX2OKhh5QC3GKhmI6s1sOSIaqhTo.eVwqIJgxtfNheH0kVIODd0tABqR6aoVtAxYOUvX+P02k44epvHNOh6LZg7gWTtaT6PQTvfqtqFDBWdvza9J427m4cfHPLw+zJvSyBPlhX1Z.tzhnTq6AkvyPox4TZMOelVjXmFwwmG50WBMjgTnTOKUxyEU5KXu1JHCosQL8BdOMXLAQssa1bCB7S8cpVUyGQRMbsDJvj2S5JGIj7Fi3V+wPKO1cmL0p2Xe0Hkz0D.Hva1nh3MRzBos15GGx0bhITkFEPNmSnjgpn.PsvnQQ7.hMTXd25vYcCbadBbrlMWm77IDn9NCSkLqPIIvoor7ij0pW8mUqT8WUI2LzvgyMl6dqUvIqmaXmdSuHf0jowmy0aPtjFkxmjHzPtdWd06VWlk2FlIQkruTXOJgWX2yUsBx++s0Dnh9H7uS52gZoNYRgOHuDt1JbzA2geILmkKZp30gatvpRfIsaon.srJHMhZut.2MIWD.pGWSU4TNRivNd1I86gpu4BU82UJtl2.gkENeNVZNbDpT+O3XwthG60c3PNyNkfk858skcwv+33+pJ0JjiNfZ0hefvdGlF6CqHYb3zkRdD7x8vkbpkb6lNaWEvmKCxL9C7TDrkyFWDr0UAQwTlVcFKeJvsM5AYd.NIyV9VA9J.XSZgxlL.bdMazDECKFOiwbW+W.B34i4kKAlWsDX1ZIv75k.y1KAl2rDXd6Bw39lzGSsp37wAvwftYqHv3tRJnrxTgn+1+Pm3F
                                            

                                            HISE Development for hire.
                                            www.channelrobot.com

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

                                            20

                                            Online

                                            1.8k

                                            Users

                                            11.9k

                                            Topics

                                            103.9k

                                            Posts