POV-Ray : Newsgroups : povray.windows : Deployment of POV-Ray on Windows 2000 in a school : Deployment of POV-Ray on Windows 2000 in a school Server Time
28 Jun 2024 22:31:02 EDT (-0400)
  Deployment of POV-Ray on Windows 2000 in a school  
From: Soeren Kuklau
Date: 17 Jul 2003 16:19:31
Message: <20030717221931283+0200@news.povray.org>
Hi,

I'm trying to create a Windows Installer package (.msi) for POV-Ray, so 
I can deploy it on 11 or more computers in a school, through Windows 
2000 Server.

As students are not supposed to have installation privileges, POV-Ray 
would be installed on a machine basis, not a user basis (i.e. it would 
be installed with admin / system privileges, but accessible from any 
user). Herein lies the problem: the pvengine.exe binary has problems 
recognizing the installaton path, which is apparently stored as per-user (
HKCU) registry key, not a machine-wide (HKLM) one.

I've found three different behaviours when trying to launch POV-Ray with 
a different user than the one it was installed with:

A) it would complain about a missing "Home" key in the registry. That 
one, however, was created (by the installation program) in both HKCU _
and_ HKLM (for whatever reason).

Code bit:

-----

  getHome () ;
  if (HomePath [0] == '\0')
  {
    MessageBox (NULL,
                "ERROR : Cannot find Home entry in registry.\n\n"
                "This entry should have been set by the installation 
program.\n\n"
                "If you did not install using the correct installation 
procedure, please "
                "do this before running POV-Ray for Windows.\n\n"
                "Otherwise, consult the README file that should have 
accompanied this executable file.",
                "Critical Error",
                MB_ICONSTOP) ;
    return (1) ;
}  }

-----

"getHome()" seems to look at "HKCU" first, and if that one fails, it'll 
try with "HKLM" instead. That's fine. I dunno why I ever received this 
error message then.

B) it would complain about not being able to access its INI files. One 
would expect the program to try relative paths first, but it seems not.

Relevant code:

-----

  if (stat (EngineIniFileName, &statbuf) != 0 || (statbuf.st_mode & S_
IFREG) != 0)
  {
    if (debugFile)
      fprintf (debugFile, "INI directory not found\n") ;
    MessageBox (NULL,
                "ERROR : Cannot find INI directory in expected location\
n\n"
                "This directory should have been created by the 
installation program.\n\n"
                "If you did not install using the correct installation 
procedure, please "
                "do this before running POV-Ray for Windows. Otherwise, 
consult the README.DOC "
                "file that should have accompanied this executable file.
",
                "Critical Error",
                MB_ICONSTOP) ;
    return (1) ;
}  }

-----

This error message mentions a "README.DOC" file, which doesn't exist; 
the "readme.txt" file consists mostly of information regarding the 
rendering engine.

If the error message included the current "HomePath" var, that would 
ease debugging greatly. Maybe getHome() returned the wrong contents?

[ C) it wouldn't launch at all, as in: it wouldn't react to it being 
launched. This may be a Windows XP bug, however. ]

The process of creating the MSI package works by launching the "povwin35.
exe" setup file with specified parameters, and watching it through a 
capturing tool. The parameters we're giving the setup are:

1. custom destination folder: "C:\Applications\Graphics\POV-Ray" (
adhering to school-wide standards)
2. no backup folder (as this isn't an upgrade install)
3. custom shortcut folder: "Graphics\POV-Ray"
4. no update checking (as we manually check for new program versions for 
the whole network, then update the deployed packages)

It would then ask to do a test render, which works fine. Then we remove 
all traces of the program, customize the created MSI package and run 
that one instead. Running POV-Ray as the same user again would work. 
Running it as a test user of one of the students, however, will give one 
of the three problems A / B / sometimes C.

I suspect that even though the installer offers to install into a custom 
directory, the app does not truly support this, and still expects at 
least some of its files to reside in C:\Programs\POV-... - this, however, 
is bad application design (and not something I'd expect from this 
otherwise great program). As the source code is open

I'm not familiar with C much, so I'm not sure if I can help fix this, 
but there is something wrong either with the Wise installer, or with 
what happens at pvengine.exe launch time.

I'd appreciate any help.

-- 


<http://www.chucker.rasdi.net>


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.