[Dirvish] Absolute versus relative path names for dirvish

Keith Lofstrom keithl at kl-ic.com
Tue Jan 2 10:12:00 PST 2007


Dave Howorth wrote:
> Programs are not generally built with absolute paths.

Bernd Haug wrote:
> Not in my experience - many custom build scripts modify headers with
> absolute paths.

Right now, dirvish 1.2.1 does a unhealthy combination of both, since
it looks at the path for the helper programs but looks in a fixed
place for the config files, unless overridden by a command line option.
The build process is an ad hoc shell script that appends (some) common
code onto each executable.  

Dirvish 1.3.X, still highly experimental and in need of help from a
much better programmer than I. It is constructed with ModuleBuild,
and all the target install directories are selectable when the
installer is built.  

The 1.3.1 common code is a Perl module rather than something that is
appended onto each executable.  Since Perl will always be around, but 
automake and other tools may not, it uses ModuleBuild to get closer to
the standard Perl install process.  The install targets can be entered
as command line options into ModuleBuild.  1.3.1 helps prepare for an
object oriented rewrite, which will make other contributions of
associated programs (particularly recovery programs) much easier to
write, it makes a better foundation for testing scripts, and it allows
for a more forgiving config syntax.   

The 1.3.X executabless will still look at the path to find the
pieces it needs.  There are some system calls in there, rsync itself
for example, that are also dependent on the path.  And this will be
needed for testing, because we will want to select different executables
and paths during testing.  Since different users and distros put the
pieces in different places, we will want to heavily regression test
this to make sure that future versions of dirvish are backwards 
compatable with existing configurations and perl and rsync versions.
A fixed path, rather than an environment path, would make this kind
of testing difficult.  

So, bottom line, when calling dirvish-runall from cron, you should
call it from a simple wrapper script that sets the path in the
runtime environment.  We probably should emphasize this more in the
documentation so it doesn't surprise so many people.

Keith

-- 
Keith Lofstrom          keithl at keithl.com         Voice (503)-520-1993
KLIC --- Keith Lofstrom Integrated Circuits --- "Your Ideas in Silicon"
Design Contracting in Bipolar and CMOS - Analog, Digital, and Scan ICs


More information about the Dirvish mailing list