Thread: Status of sql_help.h

Status of sql_help.h

From
Tom Lane
Date:
I see that src/bin/psql/sql_help.h is now generated automatically
from the SGML documentation.  This is a Good Thing.  But: since
sql_help.h is now a derived file, shouldn't it be removed from the
CVS repository, for the same reasons that we don't keep gram.c
and other derived files in CVS?  If we leave it there, it'll generate
a lot of extra update traffic.

The only reason I can see for leaving it in CVS is that if we remove it,
people who pull sources from CVS would need Perl in order to build psql.
(People who download tarballs would *not*, since release_prep updates
sql_help.h along with the other derived files.)  That's annoying, but
I think it may not be a fatal objection.  Most hackers are probably
more likely to already have Perl than to already have bison or flex...

I thought about suggesting that create_help.pl be rewritten in some
"more portable" fashion such as an awk script.  But really, if you
consider non-Unix platforms, Perl is more portable than awk or any
other likely alternative.  (It might be worthwhile to remove the one
or two unnecessary Perl-5-isms in the script, so that it will run on
Perl 4 if that's what's available.)

Comments?  Anyone feel that we really can't expect users of the CVS
repository to have Perl?
        regards, tom lane

PS: "make distclean" should probably not remove sql_help.h, for the
same reasons that we don't remove gram.c --- it *is* a distributed
file, and a particular user might not have the tools to rebuild it.
This is true whether or not we leave it in CVS.


Re: [HACKERS] Status of sql_help.h

From
Peter Eisentraut
Date:
On 1999-11-13, Tom Lane mentioned:

> sql_help.h is now a derived file, shouldn't it be removed from the
> CVS repository, for the same reasons that we don't keep gram.c

You're the CVS guys. Whatever works.

> I thought about suggesting that create_help.pl be rewritten in some
> "more portable" fashion such as an awk script.  But really, if you

If I'm supposed to maintain this (or do *anything* with it), it can't be
awk. No reason to make a step backwards to accomodate an undocumented
portability problem. I would argue that a lot more people are familiar
with Perl and can read that script than an awk alternative. We don't write
strict (-pedantic) ANSI C code either for the sake of portability.

> other likely alternative.  (It might be worthwhile to remove the one
> or two unnecessary Perl-5-isms in the script, so that it will run on
> Perl 4 if that's what's available.)

On a quick look I couldn't find a useful listing of things new in Perl 5
or some way to test for Perl 4 compatibility. Shortly, I don't know what a
Perl-5-ism is and I really don't feel like finding out either. However, if
someone is inclined to fix those things if it doesn't make it all ugly, be
my guest.

> Comments?  Anyone feel that we really can't expect users of the CVS
> repository to have Perl?

If you don't have Perl, the question is really: Do you have CVS? Do you
have rlogin? Do you have networking support in your kernel? Do you have a
computer?

Seriously, I'd suggest that we wait for a documented problem before taking
unnecessary steps.

Hmm, interesting. From the GNU Makefile standards:

"The `configure' script and the Makefile rules for building and
installation should not use any utilities directly except these:    cat cmp cp diff echo egrep expr false grep
install-info   ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true"
 

No awk there either.

> PS: "make distclean" should probably not remove sql_help.h, for the
> same reasons that we don't remove gram.c --- it *is* a distributed
> file, and a particular user might not have the tools to rebuild it.

That was my bad. For some reason I had the idea that "distclean" stood for
"distinctly clean" (really clean). :-\ I'll fix that. Perhaps we ought to
decide on some standard targets. "maintainer-clean" would be the proper
one to use (in GNU, again). It also contains the note:

"... Since these files are normally included in the distribution, we don't
take care to make them easy to reconstruct.  If you find you need to
unpack the full distribution again, don't blame us."

Well said.
-Peter

-- 
Peter Eisentraut                  Sernanders vaeg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden



Re: [HACKERS] Status of sql_help.h

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> "The `configure' script and the Makefile rules for building and
> installation should not use any utilities directly except these:
>      cat cmp cp diff echo egrep expr false grep install-info
>      ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true"
> No awk there either.

Do I need to point out that Perl isn't there either?  But this GNU rule
is irrelevant, because it applies to tools needed to build a standard
*distribution* of a package.  Maintainer tools can include other things.
Using perl to generate sql_help.h seems perfectly appropriate to me,
as I said before.

What I wanted to find out was whether there were a lot of people using
the CVS server who don't have Perl and would object to installing it.
That's what will determine whether we can remove sql_help.h from the CVS
archive (as opposed to distributed tarballs).

>> PS: "make distclean" should probably not remove sql_help.h, for the
>> same reasons that we don't remove gram.c --- it *is* a distributed
>> file, and a particular user might not have the tools to rebuild it.

> That was my bad. For some reason I had the idea that "distclean" stood for
> "distinctly clean" (really clean). :-\ I'll fix that. Perhaps we ought to
> decide on some standard targets. "maintainer-clean" would be the proper
> one to use (in GNU, again).

No, it wouldn't be.  We use distclean precisely as specified in the GNU
coding standards:

`distclean'    Delete all files from the current directory that are created by    configuring or building the program.
Ifyou have unpacked the    source and built the program without creating any other files,    `make distclean' should
leaveonly the files that were in the    distribution.
 

sql_help.h will now be in the distribution, therefore distclean
shouldn't remove it.
        regards, tom lane


Re: [HACKERS] Status of sql_help.h

From
Bruce Momjian
Date:
> I see that src/bin/psql/sql_help.h is now generated automatically
> from the SGML documentation.  This is a Good Thing.  But: since
> sql_help.h is now a derived file, shouldn't it be removed from the
> CVS repository, for the same reasons that we don't keep gram.c
> and other derived files in CVS?  If we leave it there, it'll generate
> a lot of extra update traffic.
> 
> The only reason I can see for leaving it in CVS is that if we remove it,
> people who pull sources from CVS would need Perl in order to build psql.
> (People who download tarballs would *not*, since release_prep updates
> sql_help.h along with the other derived files.)  That's annoying, but
> I think it may not be a fatal objection.  Most hackers are probably
> more likely to already have Perl than to already have bison or flex...
> 
> I thought about suggesting that create_help.pl be rewritten in some
> "more portable" fashion such as an awk script.  But really, if you
> consider non-Unix platforms, Perl is more portable than awk or any
> other likely alternative.  (It might be worthwhile to remove the one
> or two unnecessary Perl-5-isms in the script, so that it will run on
> Perl 4 if that's what's available.)
> 
> Comments?  Anyone feel that we really can't expect users of the CVS
> repository to have Perl?

Because we have proper dependency, any change to sgml will force the
next committer to commit a new sql_help.h right?  If so, seems like it
will work fine as is.

--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026