On 18/06/08 10:41 PM Teus Benschop wrote:
Neil Mayhew wrote:
I'm not sure this should be a requirement of the build process. git
needs to be on the machine where bibledit will run, but as far as I
can tell it's not needed to build bibledit. So I don't think the
configure script should require it.
Without the git program bibledit is rather crippled. For that reason
the ./configure script checks that git is there. The configure script
also check that zip is there, and tee, and unzip and gzip, and so on,
a whole lot of dependencies that are not needed to build, but are
required for proper operation of Bibledit.
I agree, but I don't think that configure is the right place to do it.
Git is required at ./configure stage, because I am afraid that if
this would not be done there would be people who just install it
without git, and forget about the rest being lazy, and then make
support calls saying this or that functionality does not work, and
what to do.
Again, I see your point, but configure doesn't entirely solve the
problem. It does, for people building from source and installing on
the same machine, but hopefully this will become quite rare as
Bibledit becomes packaged (and kept up-to-date) for various systems.
However, it doesn't solve the problem for someone who is given a
binary from a friend, or who copies it to one of their other
computers, or who subsequently removes one of the necessary packages
(like git) from their system.
I think it would be much better to have a check in Bibledit at
startup, so that it refuses to run if git, zip, tee, gzip etc. aren't
there. You can do that like this:
if (system("which git") != 0 || system("which zip") != 0 || ... )
refuseToRun();
You could, of course, factor that into a subroutine that takes an
array of command names and returns a single result.
--Neil