Makensis utility not found

I’m trying to use pdeploy to make a self-contained installer, after making a p3d file using packp3d.

Here is the command i used and the error:

D:\Panda3D-1.7.0\Jogos>pdeploy.exe -n testecamera -N "Teste de Camera" -v 1.0.0 -c -s TesteCamera.p3d installer

:Installer(warning): Makensis utility not found, no Windows installer will be built!

Thanks for any help

Hm… Do you see a win-nsis subdirectory containing makensis.exe in your Panda3D installation directory?

There is a NSIS directory but not a win-nsis. and inside it is a makensis.exe

Hm, what if you add this nsis directory to your PATH? (Copying the structure inside the “nsis” dir into the “bin” dir would work too, but it’s a little uglier).

Installing NSIS from the NSIS website could work as well.

I tryed to install NSIS from the NSIS website but it didnt work, so I copied all the files to the bin directory and now i have another problem saying Access denied (Acesso negado) after the unpacking.

:PackageInfo: Unpacking /c/DOCUME~1/Felipe/CONFIG~1/Temp/testecamera_exe_4dd5f2/
hosts/runtime.panda3d.org_96a0ec538744def6/images/images.mf
Traceback (most recent call last):
  File "C:\panda3d-1.7.0\built_cmu\direct\showbase\Messenger.py", line 352, in _
_taskChainDispatch
  File "C:\panda3d-1.7.0\built_cmu\direct\showbase\Messenger.py", line 410, in _
_dispatch
  File "C:\panda3d-1.7.0\built_cmu\direct\p3d\AppRunner.py", line 493, in __star
tIfReady
  File "VFSImporter", line 153, in load_module
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/pdeploy.py", line 2
42, in <module>
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/DeploymentTools.py"
, line 254, in build
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/DeploymentTools.py"
, line 662, in buildNSIS
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 221, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 219, in rmtree
WindowsError: [Error 5] Acesso negado: 'C:\\DOCUME~1\\Felipe\\CONFIG~1\\Temp\\te
stecamera_exe_4dd5f2\\hosts\\runtime.panda3d.org_96a0ec538744def6\\images\\auth_
click.png'
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
  File "C:\panda3d-1.7.0\built_cmu\direct\p3d\AppRunner.py", line 411, in run
  File "C:\panda3d-1.7.0\built_cmu\direct\task\Task.py", line 496, in run
  File "C:\panda3d-1.7.0\built_cmu\direct\task\Task.py", line 454, in step
  File "C:\panda3d-1.7.0\built_cmu\direct\showbase\Messenger.py", line 352, in _
_taskChainDispatch
  File "C:\panda3d-1.7.0\built_cmu\direct\showbase\Messenger.py", line 410, in _
_dispatch
  File "C:\panda3d-1.7.0\built_cmu\direct\p3d\AppRunner.py", line 493, in __star
tIfReady
  File "VFSImporter", line 153, in load_module
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/pdeploy.py", line 2
42, in <module>
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/DeploymentTools.py"
, line 254, in build
  File "/root/pandaworker/panda3d-1.7.0/built_cmu/direct/p3d/DeploymentTools.py"
, line 662, in buildNSIS
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 216, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 221, in rmtree
  File "/usr/local/lib/python2.6/shutil.py", line 219, in rmtree
WindowsError: [Error 5] Acesso negado: 'C:\\DOCUME~1\\Felipe\\CONFIG~1\\Temp\\te
stecamera_exe_4dd5f2\\hosts\\runtime.panda3d.org_96a0ec538744def6\\images\\auth_
click.png'
Failure on startup.

I’m the administrator so i shouldnt have any access problem

I couldnt manage to add the NSIS subdirectory to my PATH, I tryed to do as the manual says, but didnt work.

Thanks

Hm…

drwr, do you have any idea? One of your commits mentioned rmtree being unreliable, if I recall correctly.

Yes indeed, shutil.rmtree() is unable to remove the files in the Panda3D directory, because we set them read-only. Unlink Unix, Windows requires a two-step process to remove a read-only file: you have to make it read-write first, and then you can remove it; but shutil.rmtree() doesn’t do this, and will raise an IOError instead. I defined an AppRunner.rmtree() to serve in its place.

David

Thanks a lot for the help.

I think i understood the problem, but not what i need to do in this case…

Hm, I checked in a fix for the upcoming 1.7.1 release, but I’m not sure if there’s an easy workaround - sorry.

An alternative would be packaging the game on a Linux system.

Lol packaging windows game on linux, ironic.

but i think that probably many people make installers for their games in windows. Everyone is having the same problem?

1.7.0 hasn’t been out that long yet. There’s a reason we consider the .0 releases experimental. :slight_smile:

David

so should i use the 1.6.2 version? does it have the pdeploy command or anything similar?

No. You basically need to wait for 1.7.1, sorry.

ok…

The pdeploy and the whole plugin thing is the “new thing” and works quite well considering its a .0 release. I am sure we would have .1 soon since many bugs where found and fixed.