POV-Ray : Newsgroups : povray.beta-test : POV-Ray 3.7.1 Release Candidate 1 ready for testing : Re: POV-Ray 3.7.1 Release Candidate 1 ready for testing Server Time
29 Jul 2021 04:56:44 EDT (-0400)
  Re: POV-Ray 3.7.1 Release Candidate 1 ready for testing  
From: William F Pokorny
Date: 26 Jun 2017 08:34:19
Message: <5950ff4b@news.povray.org>
On 06/25/2017 12:31 AM, Cousin Ricky wrote:
> On 2017-06-23 04:17 PM (-4), clipka wrote:
>> **IMPORTANT NOTE:** In contrast to the betas, the Windows version of the
>> release candidate does NOT make any attempt to co-exist with v3.7.0. If
>> you intend to keep v3.7.0 around, make sure to back up the binaries, or
>> install v3.7.1 in a different location.
> 
> I am an active Object Collection contributor, and I test my modules 
> across different POV-Ray versions.  Some differences between v3.7.0 and 
> v3.7.1 are significant enough that I wish to keep v3.7.0 around.
> 
> Regarding the Unix version, I did *not* take your earlier suggestion to 
> run the configure script with the --prefix= parameter.  (See "Peaceful 
> coexistence between 3.7.0 and 3.7.1" in p.t.tutorials.)  I understand 
> this to mean that my beta installs have already been storing data where 
> v3.7.0 looks for them.  (I've already noticed the changes in the user 
> manual.)  Does this mean that the hack I used to keep both versions 
> coexisting should continue to work?
> 
> 

I am currently using the following method to maintain multiple versions 
of POV-Ray on Ubuntu linux for similar testing and support reasons.

I create a tmpUser directory in my own space. Within this directory I 
currently have sub-directories called MyP370, MyP371, MyP372, MyJG, 
MyUber and MyPovr. If you were supporting multiple users on your system 
or creating installable system-images you might create these directories 
in /usr/local/share.

In your local git repository(ies) where the branch(es) are available do 
the usual builds always specifying a prefix:

git checkout release/v3.7.1
cd unix
./prebuild
cd ..
./configure COMPILED_BY="wfp" --prefix=$HOME/tmpUser/MyP371
make -j4
make check
make install

For each branch you want to maintain change the --prefix argument to 
point to the corresponding install space.  In my case the branches are 
currently "3.7-stable", "release/v3.7.1", "master"(3.7.2) and other 
experimental branches including my own "povr" branch for my work version 
of povray.

It's helpful to do a 'make clean' or 'make distclean' after each 'make 
install'.  With the code refactoring over time the clean and distclean 
"targets" have changed due the source code directories getting moved 
around and renamed.  You can skip the cleanup step but you might find 
yourself with, for example, extra "*.o" object files laying around. 
Note you'll get extra directories relative to any particular branch in 
any case.  These extra directories will be empty if you have done the 
distclean step while in the branch where they were valid.

With the differing distributions built and installed, I create small 
wrapper scripts in my $HOME/bin directory to run each. For example, I 
have a p370 bash script which looks like:

------------------ Start -----------------
#!/bin/bash
#--------------------------------------------------
# Wrapper to run local POV-Ray 3.7.0 stable install
#--------------------------------------------------

#-- Use install version's povray.ini over, for example,
#   $HOME/.povray/3.7/povray.ini which might have been
#   customized or be incompatible. If have Library paths
#   important and normally in the home directory, will
#   need to use -L or add additional Library_Path= in temp .ini file.
#
export POVINI=$HOME/tmpUser/MyP370/etc/povray/3.7/povray.ini
echo "" >$HOME/.povray/3.7/povray.ini

#   Note:
#   A similar conflict is possible with
#   $HOME/.povray/<version>/povray.conf. Use $PATH install only.
echo "" >$HOME/.povray/3.7/povray.conf

#--- Run what the user passes for options.
$HOME/tmpUser/MyP370/bin/povray $@

exit $?
------------------ End -----------------

Now instead of the usual:

povray +w800 +h600 the.pov

command use instead one of:

p370  +w800 +h600 the.pov
p371  +w800 +h600 the.pov
p372  +w800 +h600 the.pov
pPovr +w800 +h600 the.pov
pJG   +w800 +h600 the.pov
pUber +w800 +h600 the.pov

One of the awkward parts today is every "make install"(1) puts its own 
versions of povray.ini and povray.conf into the users $HOME in a .povray 
sub-directory common for all 3.7 versions.  My view is this isn't 
something "make install" should be doing - rather povray should on start 
look to create these files if need be on a users first invocation. 
Further, better to maintain separate versions for 3.7.0 vs 3.7.1 for 
example.  Anyway, not the way in works today and part of what the 
wrapper scripts do is avoid the stuff in $HOME.

The six distributions currently require just under 300MB of disk space.

(1) - uberpov is set up so as to maintain its own .uberpov directory, 
but I use the same form of wrapper script as all other versions to keep 
things simple.

Bill P.


Post a reply to this message

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