On Mon, 26 Mar 2012 15:38:32 +0200, Assela Pathirana wrote:
Here's what I did
1. I ran the msi installer (python-2.6.msi) as an admin user. - works
OK.
2. started pygtk-all-in-one-2.24.1.win32- py2.6.msi as the same user
3. The installer identifies python (The second screen -- where we make
component choices -- shows "Python 2.6 (installed for all users):
c:python26"
 4. After two screen the installer stops for a few seconds and then
the  following message appears.
"TARGETDIR property is not set."
5. I even tried with TARGETDIR=c:python26 property on the msiexec
command line, but same problem.

Some screenshots : https://dimos.ihe.nl/public/assela/Untitled.png [1]
(Ignore the ssl certificate warning -- I don't have one!)
Installer log :
https://dimos.ihe.nl/public/assela/pygtk-all-in-one.rar [2]

Just curious, but could you still answer the following questions:
- Is UAC enabled or disabled on your system?
- Did you at some point get an UAC elevation prompt?
- If you got an UAC prompt, did it ask to log in with
  a different account?
- Are you logged into Windows with a user, power user or admin
  user account?

So, the log file you provided hints at what might be causing the
problem at lines 4611, 4612, 4616, 4617 and 4620:
MSI (s) (C0:7C) [14:45:08:936]: Ignoring disallowed property PYTHON.MACHINE
MSI (s) (C0:7C) [14:45:08:936]: Ignoring disallowed property TARGETDIR
MSI (s) (C0:7C) [14:45:08:936]: Ignoring disallowed property USERNAME
MSI (s) (C0:7C) [14:45:08:936]: Ignoring disallowed property SOURCEDIR
MSI (s) (C0:7C) [14:45:08:936]: Ignoring disallowed property ROOTDRIVE

In short, it seems that marking the TARGETDIR property as secure should
fix this issue.


TLDR version (do read, there's a surprise at the end):

Researched this a bit and it seems to be a known interaction
between UAC and the Windows Installer engine.
Particularly, non-restricted public property values aren’t being
carried over from the UI sequence (the GUI part where you answer
various questions) to the *server side* execute sequence (the
part that executes the deferred transaction script and as such
does the real work) under certain circumstances.
Note that at the time of authoring the installer I only had access
to an XP machine (and in the mean time have not yet had sufficient
bad luck to encounter this problem myself on my 64 bit Windows 7
machine) :/

So, of the above properties:
- USERNAME is not set nor needed by our installer so we should
  be able to safely ignore it.
- PYTHON.MACHINE (and it's PYTHON.USER counterpart when doing a
  per user installation), ROOTDRIVE and SOURCEDIR are not used
  during the server side execute sequence, so hopefully there is
  no reason to pass these on.

That leaves only TARGETDIR that we should take care of and indeed
it is not listed as one of the restricted public properties
on [1]. Leading to the RequireTargetDir custom action [2]
correctly panicking and presenting you with the error message
you've been seeing.

Finally, here we are with some experimental PyGTK All-in-one
installer 2.24.3 builds with the TARGETDIR property marked as
secure: http://optionexplicit.be/tmp/2.24.3/

Could you give these a spin and report back? Note: these are as
of yet completely untested and I'll only be able to start executing
the huge list of tests (install/repair/change/uninstall on XP, 7 etc)
tomorrow evening, before considering uploading them to ftp.gnome.org.

Thanks,
Dieter

[1] http://msdn.microsoft.com/en-us/library/aa371243%28v=vs.85%29.aspx
[2] https://github.com/dieterv/pygtk-installer/blob/master/wix/template/PyGtk.wxs#L110

_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to