[Dirvish] Dirvish version 1.3.0 now available
em-dirvish-1 at nerim.net
Tue Dec 21 16:18:38 PST 2004
On Friday 17 Dec 2004 07:05, Doug Hanks spake thus:
> Dirvish version 1.3.0 is now available. Dirvish has been upgraded
> slightly with a beta release of GNU autoconf.
Thanks for showing the way...!
> Please beta test this release and provide feedback and bugs so that
> they may be corrected in the next release.
I have a few questions:
- You look up the location of rsync and ssh (AC_PATH_PROG). I didn't see any
use of the result. Am I missing something, or are they placeholders for use
- It seems like $CONFDIR is not set anywhere. I installed to a fake root
directory and got "ERROR: no master configuration file" when I ran dirvish,
even though I do have /etc/dirvish/master.conf.
Anyway, I decided to follow your lead... I started looking into Perl
equivalents of the auto* tools. There are basically 2: ExtUtils::MakeMaker
is the historic builder/installer. Module::Build is a rewrite of the former
with a view to "making the job easier".
I decided to give Module::Build a try. You can find the result here:
BEWARE: This version includes patches for the following issues mentionned on
the dirvish Wiki:
- RsyncError24 (now it's error 100, a warning)
- ChmodOnExpire (requires File::chmod in addition to the previous dirvish
It has only undergone very light testing and may very well not work as
This version uses both the autoconf work Doug did and Module::Build. This is
because M::B has no native mechanism for installing manpages in sections 5
and 8, so I used Doug's autoconf work to handle that aspect.
Anyway, to use it after untarring:
- Optional steps: "aclocal", "autoconf", "automake --add-missing"
- perl Build.PL
- ./Build install
(configure and make install are called from the Build script - see Build.PL)
Note that you have considerable flexibility in deciding where files should go
during install, e.g:
* ./Build install destdir=/tmp/test installdirs=vendor
will install to a "vendor" hierarchy (e.g. /usr) under /tmp/test
* ./Build install installdirs=site --install_path script=/usr/local/sbin
will install to "site" hierarchy (e.g. /usr/local) except that the main
scripts will be installed to /usr/local/sbin instead of /usr/local/bin.
(Paul, that example is specially for you ;-) ).
- Ability to easily check for presence of required Perl modules, including
version number if necessary. (Missing modules are not treated as fatal.)
- Very flexible about specifying target directories. See above.
- Follows Perl standards. (Directory layout, access to perl configuration...)
- loadconfig is now a module and is installed to an appropriate perl module
- Doesn't natively handle manpages for sections 5 and 8. This is in fact
because Perl itself doesn't have settings for this in Config.pm from what I
can tell. Means we have to use both M::B and autoconf, so could be
- Requires Module::Build which is not yet part of Perl core. We could use
MakeMaker instead though.
Problems not yet handled:
- CONFDIR has been hardcoded to /etc/dirvish in each script.
- INSTALL not updated.
- The call to ./configure in Build.PL should probably move to another target,
or have some form of up to date check, otherwise it runs every time...
- The man pages should be converted to POD. Then we can generate the man
pages (and HTML/...) from the POD files which would probably allow us to
include version info etc. more easily.
- loadconfig has been turned into a module, but is still in the toplevel
directory. It should move to lib.
- etc. ;-)
Please let me know what you think of this...
Cheers and have a Happy Christmas,
More information about the Dirvish