quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Quilt-dev] [RFC] compatibility layer


From: Andreas Gruenbacher
Subject: Re: [Quilt-dev] [RFC] compatibility layer
Date: Sat, 17 Sep 2005 20:48:36 +0200
User-agent: KMail/1.7.1

Hello John,

On Saturday 17 September 2005 15:12, John Vandenberg wrote:
> This patch introduces a `compat' directory, prefixed to the PATH.  The
> directory is to be filled with workarounds that are included when
> required.
>
> Three types of compatibility options are supported:
>
> symlinks: locations specifically chosen with --with-blah
> programs.in: alternative scripts to emulate missing binaries
> functions.sh: shell functions emulating missing binaries
>
> Included is one program (getopt) and two functions (mktemp and column)

Very nice, thanks a lot! I particularly like the configure.ac cleanup.

For the compatibility symlinks, you redefine the FOO variables in Makefile 
(e.g., BASH). This confused me a little before I realized what was going on. 
It's broken, too: you end up with relative paths in shebang lines (e.g., ``#! 
bash'' for ``#! @BASH@''). Relative paths in shebang lines are invalid. We 
should instead get rid of @FOO@ substitutions in the scripts where we can. 
That's the cleanup we were heading for, anyway.

I think we can keep compat/ out of the path if the directory doesn't exist, 
and only create this directory when needed).

Not sure whether we need compatfns and functions.sh; those can as well remain 
as external programs IMHO. I would rather remove this again and convert the 
two bash snippets in compat/ to standalone scripts.

> Three minor issues remain ..
> 1) $(BASH) in Makefile.in using --with-bash=... will be 'bash' rather
> than $withval.  This should be solved by include compat/ in the
> Makefile PATH

This is also resolved by not redefining those variables. We should rather do 
that.

> 2) older autoconf not support; a little m4 sugar can solve this.

I don't think we do care. People with an old autoconf can choose to either not 
mess with configure.ac, or get a more recent autoconf. Depending on a recent 
version of autoconf is common practice.

> 3) ln -s is not useful on MSYS, but I doubt anybody is clamouring for
> that at the moment :)

Yes, this is a separate issue ;-)

So I think we should include the following patch on top of yours, replace 
instances @BASH@ and @INSTALL@ with $(BASH) and $(INSTALL) in Makefile, and 
then go on and replace obsoleted @FOO@ instances from all the scripts.

Again, thank you very much for your work!

Cheers,
Andreas.

Attachment: compat2.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]